diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.js index 18da5cc0e..9296bdca0 100644 --- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.js +++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.js @@ -74,8 +74,8 @@ function VendorCreditNoteForm({ ...(vendorcreditAutoIncrement && { vendor_credit_number: vendorCreditNumber, }), - ...newVendorCredit, currency_code: base_currency, + ...newVendorCredit, }), }), [vendorCredit, base_currency], diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormProvider.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormProvider.js index 7a2403902..fb9988c8d 100644 --- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormProvider.js +++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormProvider.js @@ -92,7 +92,7 @@ function VendorCreditNoteFormProvider({ const newVendorCredit = !isEmpty(bill) ? transformToEditForm({ - ...pick(bill, ['vendor_id', 'entries']), + ...pick(bill, ['vendor_id', 'currency_code', 'entries']), }) : []; diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js index dc3dcd0f3..5d762e1ae 100644 --- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js +++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormProvider.js @@ -85,7 +85,7 @@ function CreditNoteFormProvider({ creditNoteId, baseCurrency, ...props }) { const newCreditNote = !isEmpty(invoice) ? transformToEditForm({ - ...pick(invoice, ['customer_id', 'entries']), + ...pick(invoice, ['customer_id', 'currency_code', 'entries']), }) : []; diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceForm.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceForm.js index 047f0f553..71c3d7fd7 100644 --- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceForm.js +++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceForm.js @@ -74,8 +74,8 @@ function InvoiceForm({ invoice_no: invoiceNumber, }), entries: orderingLinesIndexes(defaultInvoice.entries), - ...newInvoice, currency_code: base_currency, + ...newInvoice, }), }), [invoice, newInvoice, invoiceNumber, invoiceIncrementMode, base_currency], diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js index 280152a78..658ab3549 100644 --- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js +++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js @@ -16,6 +16,7 @@ import styled from 'styled-components'; import { useObserveInvoiceNoSettings, customerNameFieldShouldUpdate, + useSetForeignCurrencyToEditForm, } from './utils'; import { CLASSES } from 'common/classes'; import { @@ -84,6 +85,8 @@ function InvoiceFormHeaderFields({ } }; + useSetForeignCurrencyToEditForm(); + // Syncs invoice number settings with form. useObserveInvoiceNoSettings(invoiceNumberPrefix, invoiceNextNumber); diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js index 4a331d4be..d542dd138 100644 --- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js +++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js @@ -36,7 +36,7 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) { const newInvoice = !isEmpty(estimate) ? transformToEditForm({ - ...pick(estimate, ['customer_id', 'customer', 'entries']), + ...pick(estimate, ['customer_id', 'currency_code', 'entries']), }) : []; @@ -91,10 +91,6 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) { !isEqual(selectCustomer?.currency_code, baseCurrency) && !isUndefined(selectCustomer?.currency_code); - const currencyCode = isForeignCustomer - ? selectCustomer?.currency_code - : baseCurrency; - const provider = { invoice, items, @@ -107,7 +103,6 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) { baseCurrency, branches, warehouses, - currencyCode, isInvoiceLoading, isItemsLoading, diff --git a/src/containers/Sales/Invoices/InvoiceForm/utils.js b/src/containers/Sales/Invoices/InvoiceForm/utils.js index 0392aa068..6f57ec70e 100644 --- a/src/containers/Sales/Invoices/InvoiceForm/utils.js +++ b/src/containers/Sales/Invoices/InvoiceForm/utils.js @@ -200,3 +200,14 @@ export const useSetPrimaryBranchToForm = () => { } }, [isBranchesSuccess, setFieldValue, branches]); }; + +export const useSetForeignCurrencyToEditForm = () => { + const { values } = useFormikContext(); + const { isNewMode, setSelectCustomer } = useInvoiceFormContext(); + + React.useEffect(() => { + if (!isNewMode) { + setSelectCustomer({ currency_code: values.currency_code }); + } + }, [isNewMode, setSelectCustomer, values]); +};