feat(Sales & Purchases ): add setfieldvalue exchange rate.

This commit is contained in:
elforjani13
2022-02-23 12:22:27 +02:00
parent cf7d032aae
commit e6a7c7bc58
26 changed files with 118 additions and 66 deletions

View File

@@ -24,6 +24,7 @@ const getSchema = () =>
.label(intl.get('note')),
branch_id: Yup.string(),
warehouse_id: Yup.string(),
exchange_rate:Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()

View File

@@ -49,8 +49,13 @@ function CreditNoteFormHeaderFields({
creditNextNumber,
}) {
// Credit note form context.
const { customers, isForeignCustomer, baseCurrency, setSelectCustomer } =
useCreditNoteFormContext();
const {
customers,
isForeignCustomer,
baseCurrency,
selectCustomer,
setSelectCustomer,
} = useCreditNoteFormContext();
// Handle credit number changing.
const handleCreditNumberChange = () => {
@@ -102,6 +107,7 @@ function CreditNoteFormHeaderFields({
defaultSelectText={<T id={'select_customer_account'} />}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -116,8 +122,8 @@ function CreditNoteFormHeaderFields({
{/* ----------- Exchange rate ----------- */}
<If condition={isForeignCustomer}>
<ExchangeRateInputGroup
fromCurrency={'USD'}
toCurrency={'LYD'}
fromCurrency={baseCurrency}
toCurrency={selectCustomer?.currency_code}
name={'exchange_rate'}
formGroupProps={{ label: ' ', inline: true }}
/>

View File

@@ -43,6 +43,7 @@ export const defaultCreditNote = {
terms_conditions: '',
branch_id: '',
warehouse_id: '',
exchange_rate: '',
entries: [...repeatValue(defaultCreditNoteEntry, MIN_LINES_NUMBER)],
};
@@ -165,4 +166,4 @@ export const useSetPrimaryWarehouseToForm = () => {
}
}
}, [isWarehousesSuccess, setFieldValue, warehouses]);
};
};

View File

@@ -30,6 +30,7 @@ const Schema = Yup.object().shape({
delivered: Yup.boolean(),
branch_id: Yup.string(),
warehouse_id: Yup.string(),
exchange_rate: Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()

View File

@@ -47,8 +47,13 @@ function EstimateFormHeader({
estimateNumberPrefix,
estimateNextNumber,
}) {
const { customers, isForeignCustomer, baseCurrency, setSelectCustomer } =
useEstimateFormContext();
const {
customers,
isForeignCustomer,
baseCurrency,
selectCustomer,
setSelectCustomer,
} = useEstimateFormContext();
const handleEstimateNumberBtnClick = () => {
openDialog('estimate-number-form', {});
@@ -94,6 +99,7 @@ function EstimateFormHeader({
defaultSelectText={<T id={'select_customer_account'} />}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -109,8 +115,8 @@ function EstimateFormHeader({
{/* ----------- Exchange rate ----------- */}
<If condition={isForeignCustomer}>
<ExchangeRateInputGroup
fromCurrency={'USD'}
toCurrency={'LYD'}
fromCurrency={baseCurrency}
toCurrency={selectCustomer?.currency_code}
name={'exchange_rate'}
formGroupProps={{ label: ' ', inline: true }}
/>

View File

@@ -39,6 +39,7 @@ export const defaultEstimate = {
terms_conditions: '',
branch_id: '',
warehouse_id: '',
exchange_rate: '',
entries: [...repeatValue(defaultEstimateEntry, MIN_LINES_NUMBER)],
};

View File

@@ -57,8 +57,13 @@ function InvoiceFormHeaderFields({
invoiceNextNumber,
}) {
// Invoice form context.
const { customers, isForeignCustomer,selectCustomer ,setSelectCustomer } =
useInvoiceFormContext();
const {
customers,
isForeignCustomer,
baseCurrency,
selectCustomer,
setSelectCustomer,
} = useInvoiceFormContext();
// Handle invoice number changing.
const handleInvoiceNumberChange = () => {
@@ -110,6 +115,7 @@ function InvoiceFormHeaderFields({
defaultSelectText={<T id={'select_customer_account'} />}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -124,8 +130,8 @@ function InvoiceFormHeaderFields({
{/* ----------- Exchange rate ----------- */}
<If condition={isForeignCustomer}>
<ExchangeRateInputGroup
fromCurrency={'USD'}
toCurrency={'LYD'}
fromCurrency={baseCurrency}
toCurrency={selectCustomer?.currency_code}
name={'exchange_rate'}
formGroupProps={{ label: ' ', inline: true }}
/>

View File

@@ -100,6 +100,7 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) {
invoiceId,
submitPayload,
selectCustomer,
baseCurrency,
branches,
warehouses,

View File

@@ -20,6 +20,7 @@ const Schema = Yup.object().shape({
reference_no: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
// statement: Yup.string().nullable().max(DATATYPES_LENGTH.TEXT),
branch_id: Yup.string(),
exchange_rate:Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
id: Yup.number().nullable(),

View File

@@ -73,6 +73,7 @@ function PaymentReceiveHeaderFields({
isNewMode,
isForeignCustomer,
baseCurrency,
selectCustomer,
setSelectCustomer,
} = usePaymentReceiveFormContext();
@@ -170,8 +171,8 @@ function PaymentReceiveHeaderFields({
{/* ----------- Exchange rate ----------- */}
<If condition={isForeignCustomer}>
<ExchangeRateInputGroup
fromCurrency={'USD'}
toCurrency={'LYD'}
fromCurrency={baseCurrency}
toCurrency={selectCustomer?.currency_code}
name={'exchange_rate'}
formGroupProps={{ label: ' ', inline: true }}
/>

View File

@@ -34,6 +34,7 @@ export const defaultPaymentReceive = {
full_amount: '',
currency_code: '',
branch_id: '',
exchange_rate:'',
entries: [],
};

View File

@@ -27,6 +27,7 @@ const Schema = Yup.object().shape({
closed: Yup.boolean(),
branch_id: Yup.string(),
warehouse_id: Yup.string(),
exchange_rate: Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()

View File

@@ -54,8 +54,14 @@ function ReceiptFormHeader({
receiptNextNumber,
receiptNumberPrefix,
}) {
const { accounts, customers, isForeignCustomer, setSelectCustomer } =
useReceiptFormContext();
const {
accounts,
customers,
isForeignCustomer,
baseCurrency,
selectCustomer,
setSelectCustomer,
} = useReceiptFormContext();
const handleReceiptNumberChange = useCallback(() => {
openDialog('receipt-number-form', {});
@@ -101,6 +107,7 @@ function ReceiptFormHeader({
defaultSelectText={<T id={'select_customer_account'} />}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -115,8 +122,8 @@ function ReceiptFormHeader({
{/* ----------- Exchange rate ----------- */}
<If condition={isForeignCustomer}>
<ExchangeRateInputGroup
fromCurrency={'USD'}
toCurrency={'LYD'}
fromCurrency={baseCurrency}
toCurrency={selectCustomer?.currency_code}
name={'exchange_rate'}
formGroupProps={{ label: ' ', inline: true }}
/>

View File

@@ -39,6 +39,7 @@ export const defaultReceipt = {
closed: '',
branch_id: '',
warehouse_id: '',
exchange_rate: '',
entries: [...repeatValue(defaultReceiptEntry, MIN_LINES_NUMBER)],
};