BIG-125: prevent items entries from send amount computed attribute.

This commit is contained in:
a.bouhuolia
2021-09-28 18:37:10 +02:00
parent 96269ccafb
commit 0aca6d9af7
10 changed files with 225 additions and 100 deletions

View File

@@ -6,7 +6,6 @@ import { Formik, Form } from 'formik';
import classNames from 'classnames';
import { useHistory } from 'react-router-dom';
import { CLASSES } from 'common/classes';
import * as R from 'ramda';
import ExpenseFormHeader from './ExpenseFormHeader';
import ExpenseFormBody from './ExpenseFormBody';
@@ -25,8 +24,13 @@ import {
CreateExpenseFormSchema,
EditExpenseFormSchema,
} from './ExpenseForm.schema';
import { transformErrors, defaultExpense, transformToEditForm } from './utils';
import { compose, orderingLinesIndexes } from 'utils';
import {
transformErrors,
defaultExpense,
transformToEditForm,
transformFormValuesToRequest,
} from './utils';
import { compose } from 'utils';
/**
* Expense form.
@@ -79,15 +83,10 @@ function ExpenseForm({
});
return;
}
// Filter expense entries that has no amount or expense account.
const categories = values.categories.filter(
(category) => category.amount && category.expense_account_id,
);
const form = {
...values,
...transformFormValuesToRequest(values),
publish: submitPayload.publish,
categories: R.compose(orderingLinesIndexes)(categories),
};
// Handle request success.
const handleSuccess = (response) => {

View File

@@ -8,6 +8,7 @@ import {
transformToForm,
repeatValue,
ensureEntriesHasEmptyLine,
orderingLinesIndexes
} from 'utils';
const ERROR = {
@@ -104,3 +105,25 @@ export const accountsFieldShouldUpdate = (newProps, oldProps) => {
defaultFastFieldShouldUpdate(newProps, oldProps)
);
};
/**
* Filter expense entries that has no amount or expense account.
*/
export const filterNonZeroEntries = (categories) => {
return categories.filter(
(category) => category.amount && category.expense_account_id,
);
}
/**
* Transformes the form values to request body.
*/
export const transformFormValuesToRequest = (values) => {
const categories = filterNonZeroEntries(values.categories);
return {
...values,
categories: R.compose(orderingLinesIndexes)(categories),
};
};