feat(Sales & Purchases ): add branch & warehouse.

This commit is contained in:
elforjani13
2022-02-20 13:54:31 +02:00
parent 3ed2393cf1
commit b46c3f4843
35 changed files with 1184 additions and 28 deletions

View File

@@ -2,7 +2,7 @@ import React from 'react';
import { useFormikContext } from 'formik';
import moment from 'moment';
import * as R from 'ramda';
import { omit } from 'lodash';
import { omit, first } from 'lodash';
import intl from 'react-intl-universal';
import {
defaultFastFieldShouldUpdate,
@@ -10,6 +10,7 @@ import {
repeatValue,
transformToForm,
} from 'utils';
import { useEstimateFormContext } from './EstimateFormProvider';
import {
updateItemsEntriesTotal,
ensureEntriesHaveEmptyLine,
@@ -36,6 +37,8 @@ export const defaultEstimate = {
reference: '',
note: '',
terms_conditions: '',
branch_id: '',
warehouse_id: '',
entries: [...repeatValue(defaultEstimateEntry, MIN_LINES_NUMBER)],
};
@@ -116,8 +119,8 @@ export const ITEMS_FILTER_ROLES = JSON.stringify([
/**
* Transform response errors to fields.
* @param {*} errors
* @param {*} param1
* @param {*} errors
* @param {*} param1
*/
export const handleErrors = (errors, { setErrors }) => {
if (errors.some((e) => e.type === ERRORS.ESTIMATE_NUMBER_IS_NOT_UNQIUE)) {
@@ -151,3 +154,34 @@ export const transfromsFormValuesToRequest = (values) => {
entries: entries.map((entry) => ({ ...omit(entry, ['amount']) })),
};
};
export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useEstimateFormContext();
React.useEffect(() => {
if (isWarehousesSuccess) {
const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses);
if (primaryWarehouse) {
setFieldValue('warehouse_id', primaryWarehouse.id);
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
};
export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useEstimateFormContext();
React.useEffect(() => {
if (isBranchesSuccess) {
const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id);
}
}
}, [isBranchesSuccess, setFieldValue, branches]);
};