From ea39eb17a7194e74f9330f5642859c1f61b37fb3 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Sun, 29 Nov 2020 12:43:37 +0200 Subject: [PATCH] fix: converting API body attributes empty strings to null. --- .../Accounting/MakeJournalEntriesForm.js | 9 +--- .../MakeJournalEntriesForm.schema.js | 41 ------------------- .../MakeJournalFormFloatingActions.js | 4 ++ server/package.json | 2 + .../middleware/ConvertEmptyStringsToNull.ts | 7 +++- server/src/utils/index.js | 36 ++++++++-------- 6 files changed, 34 insertions(+), 65 deletions(-) delete mode 100644 client/src/containers/Accounting/MakeJournalEntriesForm.schema.js diff --git a/client/src/containers/Accounting/MakeJournalEntriesForm.js b/client/src/containers/Accounting/MakeJournalEntriesForm.js index 3f49897fc..b03b2bb03 100644 --- a/client/src/containers/Accounting/MakeJournalEntriesForm.js +++ b/client/src/containers/Accounting/MakeJournalEntriesForm.js @@ -17,11 +17,6 @@ import MakeJournalEntriesField from './MakeJournalEntriesField'; import MakeJournalNumberWatcher from './MakeJournalNumberWatcher'; import MakeJournalFormFooter from './MakeJournalFormFooter'; -import { - CreateMakeJournalFormSchema, - EditMakeJournalFormSchema, -} from './MakeJournalEntriesForm.schema'; - import withJournalsActions from 'containers/Accounting/withJournalsActions'; import withManualJournalDetail from 'containers/Accounting/withManualJournalDetail'; import withAccountsActions from 'containers/Accounts/withAccountsActions'; @@ -201,11 +196,11 @@ function MakeJournalEntriesForm({ }; if (isNewMode) { + requestMakeJournalEntries(form).then(handleSuccess).catch(handleError); + } else { requestEditManualJournal(manualJournal.id, form) .then(handleSuccess) .catch(handleError); - } else { - requestMakeJournalEntries(form).then(handleSuccess).catch(handleError); } }; return ( diff --git a/client/src/containers/Accounting/MakeJournalEntriesForm.schema.js b/client/src/containers/Accounting/MakeJournalEntriesForm.schema.js deleted file mode 100644 index 546c899b5..000000000 --- a/client/src/containers/Accounting/MakeJournalEntriesForm.schema.js +++ /dev/null @@ -1,41 +0,0 @@ -import * as Yup from 'yup'; -import { formatMessage } from 'services/intl'; -import { DATATYPES_LENGTH } from 'common/dataTypes'; - -const Schema = Yup.object().shape({ - journal_number: Yup.string() - // .required() - .min(1) - .max(DATATYPES_LENGTH.STRING) - .label(formatMessage({ id: 'journal_number_' })), - journal_type: Yup.string() - .required() - .min(1) - .max(DATATYPES_LENGTH.STRING) - .label(formatMessage({ id: 'journal_type' })), - date: Yup.date() - .required() - .label(formatMessage({ id: 'date' })), - currency_code: Yup.string().max(3), - reference: Yup.string().nullable().min(1).max(DATATYPES_LENGTH.STRING), - description: Yup.string().min(1).max(DATATYPES_LENGTH.STRING), - status: Yup.boolean(), - entries: Yup.array().of( - Yup.object().shape({ - credit: Yup.number().decimalScale(13).nullable(), - debit: Yup.number().decimalScale(13).nullable(), - account_id: Yup.number() - .nullable() - .when(['credit', 'debit'], { - is: (credit, debit) => credit || debit, - then: Yup.number().required(), - }), - contact_id: Yup.number().nullable(), - contact_type: Yup.string().nullable(), - note: Yup.string().max(DATATYPES_LENGTH.TEXT).nullable(), - }), - ), -}); - -export const CreateMakeJournalFormSchema = Schema; -export const EditMakeJournalFormSchema = Schema; diff --git a/client/src/containers/Accounting/MakeJournalFormFloatingActions.js b/client/src/containers/Accounting/MakeJournalFormFloatingActions.js index c067dd75b..2e6f1c20d 100644 --- a/client/src/containers/Accounting/MakeJournalFormFloatingActions.js +++ b/client/src/containers/Accounting/MakeJournalFormFloatingActions.js @@ -1,5 +1,6 @@ import React from 'react'; import { Intent, Button } from '@blueprintjs/core'; +import { useFormikContext } from 'formik'; import classNames from 'classnames'; import { FormattedMessage as T } from 'react-intl'; import { saveInvoke } from 'utils'; @@ -11,6 +12,8 @@ export default function MakeJournalFloatingAction({ onCancelClick, manualJournalId, }) { + const { submitForm } = useFormikContext(); + return (