fix(webapp): customer/vendor opening balnace with exchange rate

This commit is contained in:
Ahmed Bouhuolia
2023-06-11 19:29:26 +02:00
parent 4d9e3ccfb4
commit 2950e5ede4
7 changed files with 291 additions and 170 deletions

View File

@@ -5,6 +5,7 @@ import { useFormikContext } from 'formik';
import { first } from 'lodash';
import { useCustomerFormContext } from './CustomerFormProvider';
import { useCurrentOrganization } from '@/hooks/state';
export const defaultInitialValues = {
customer_type: 'business',
@@ -37,9 +38,11 @@ export const defaultInitialValues = {
shipping_address_postcode: '',
shipping_address_phone: '',
opening_balance: '',
currency_code: '',
opening_balance: '',
opening_balance_at: moment(new Date()).format('YYYY-MM-DD'),
opening_balance_exchange_rate: '',
opening_balance_branch_id: '',
};
@@ -57,3 +60,25 @@ export const useSetPrimaryBranchToForm = () => {
}
}, [isBranchesSuccess, setFieldValue, branches]);
};
/**
* Detarmines whether the current customer has foreign currency.
* @returns {boolean}
*/
export const useIsCustomerForeignCurrency = () => {
const currentOrganization = useCurrentOrganization();
const { values } = useFormikContext();
return currentOrganization.base_currency !== values.currency_code;
};
/**
* Detarmines the exchange opening balance field when should update.
*/
export const openingBalanceFieldShouldUpdate = (newProps, oldProps) => {
return (
newProps.shouldUpdateDeps.currencyCode !==
oldProps.shouldUpdateDeps.currencyCode ||
defaultFastFieldShouldUpdate(newProps, oldProps)
);
};