fix: converting API body attributes empty strings to null.

This commit is contained in:
Ahmed Bouhuolia
2020-11-29 12:43:37 +02:00
parent 9a58b41e96
commit ea39eb17a7
6 changed files with 34 additions and 65 deletions

View File

@@ -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 (

View File

@@ -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;

View File

@@ -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 (
<div className={classNames(CLASSES.PAGE_FORM_FLOATING_ACTIONS)}>
<Button
@@ -18,6 +21,7 @@ export default function MakeJournalFloatingAction({
intent={Intent.PRIMARY}
name={'save'}
onClick={() => {
submitForm();
saveInvoke(onSubmitClick, { publish: true, redirect: true });
}}
>