diff --git a/src/containers/Purchases/Bills/BillForm/BillFormHeader.js b/src/containers/Purchases/Bills/BillForm/BillFormHeader.js
index 03b99c3a3..aeabceee5 100644
--- a/src/containers/Purchases/Bills/BillForm/BillFormHeader.js
+++ b/src/containers/Purchases/Bills/BillForm/BillFormHeader.js
@@ -8,24 +8,17 @@ import { CLASSES } from 'common/classes';
import BillFormHeaderFields from './BillFormHeaderFields';
import { PageFormBigNumber } from 'components';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'redux';
/**
* Fill form header.
*/
-function BillFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const { values } = useFormikContext();
+function BillFormHeader() {
+ const {
+ values: { currency_code, entries },
+ } = useFormikContext();
// Calculate the total due amount of bill entries.
- const totalDueAmount = useMemo(
- () => sumBy(values.entries, 'amount'),
- [values.entries],
- );
+ const totalDueAmount = useMemo(() => sumBy(entries, 'amount'), [entries]);
return (
@@ -33,9 +26,9 @@ function BillFormHeader({
);
}
-export default compose(withCurrentOrganization())(BillFormHeader);
+export default BillFormHeader;
diff --git a/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js b/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
index a2d0d97b2..9f96afca3 100644
--- a/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
+++ b/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
@@ -70,6 +70,7 @@ function BillFormHeader() {
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', contact?.currency_code);
setSelectVendor(contact);
}}
popoverFill={true}
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeader.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeader.js
index 921100831..715f8c309 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeader.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeader.js
@@ -8,23 +8,17 @@ import VendorCreditNoteFormHeaderFields from './VendorCreditNoteFormHeaderFields
import { getEntriesTotal } from 'containers/Entries/utils';
import { PageFormBigNumber } from 'components';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'utils';
/**
* Vendor Credit note header.
*/
-function VendorCreditNoteFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const { values } = useFormikContext();
+function VendorCreditNoteFormHeader() {
+ const { values:{entries ,currency_code} } = useFormikContext();
// Calculate the total amount.
const totalAmount = React.useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
+ () => getEntriesTotal(entries),
+ [entries],
);
return (
@@ -33,10 +27,10 @@ function VendorCreditNoteFormHeader({
);
}
-export default compose(withCurrentOrganization())(VendorCreditNoteFormHeader);
+export default VendorCreditNoteFormHeader;
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
index 01c58b345..5d3ae714f 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
@@ -108,6 +108,7 @@ function VendorCreditNoteFormHeaderFields({
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', contact?.currency_code);
setSelectVendor(contact);
}}
popoverFill={true}
diff --git a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeader.js b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeader.js
index 3669fc648..3d0487811 100644
--- a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeader.js
+++ b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeader.js
@@ -3,23 +3,18 @@ import classNames from 'classnames';
import { useFormikContext } from 'formik';
import { sumBy } from 'lodash';
import { CLASSES } from 'common/classes';
-import { compose } from 'utils';
import { Money } from 'components';
import { FormattedMessage as T } from 'components';
import PaymentMadeFormHeaderFields from './PaymentMadeFormHeaderFields';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
/**
* Payment made header form.
*/
-function PaymentMadeFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
+function PaymentMadeFormHeader() {
// Formik form context.
const {
- values: { entries },
+ values: { entries, currency_code },
} = useFormikContext();
// Calculate the payment amount of the entries.
@@ -36,7 +31,7 @@ function PaymentMadeFormHeader({
-
+
@@ -45,4 +40,4 @@ function PaymentMadeFormHeader({
);
}
-export default compose(withCurrentOrganization())(PaymentMadeFormHeader);
+export default PaymentMadeFormHeader;
diff --git a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
index 77aca7375..729895e08 100644
--- a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
+++ b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
@@ -111,6 +111,7 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', contact?.currency_code);
setPaymentVendorId(contact.id);
setSelectVendor(contact);
}}
@@ -162,7 +163,13 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
{/* ------------ Full amount ------------ */}
- {({ form, field: { value }, meta: { error, touched } }) => (
+ {({
+ form: {
+ values: { currency_code },
+ },
+ field: { value },
+ meta: { error, touched },
+ }) => (
}
inline={true}
@@ -172,7 +179,7 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
helperText={}
>
-
+
{
@@ -189,7 +196,7 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
minimal={true}
>
(
- )
+ )
)}
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeader.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeader.js
index 6c6690662..43f8ead83 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeader.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeader.js
@@ -8,24 +8,16 @@ import CreditNoteFormHeaderFields from './CreditNoteFormHeaderFields';
import { getEntriesTotal } from 'containers/Entries/utils';
import { PageFormBigNumber } from 'components';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'utils';
-
/**
* Credit note header.
*/
-function CreditNoteFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const { values } = useFormikContext();
+function CreditNoteFormHeader() {
+ const {
+ values: { entries, currency_code },
+ } = useFormikContext();
// Calculate the total amount.
- const totalAmount = React.useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
- );
+ const totalAmount = React.useMemo(() => getEntriesTotal(entries), [entries]);
return (
@@ -33,10 +25,10 @@ function CreditNoteFormHeader({
);
}
-export default compose(withCurrentOrganization())(CreditNoteFormHeader);
+export default CreditNoteFormHeader;
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
index 47692a51d..fc4fd95bd 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
@@ -108,6 +108,7 @@ function CreditNoteFormHeaderFields({
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', customer?.currency_code);
setSelectCustomer(customer);
}}
popoverFill={true}
diff --git a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeader.js b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeader.js
index d07f28e40..abb7288a6 100644
--- a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeader.js
+++ b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeader.js
@@ -6,23 +6,20 @@ import intl from 'react-intl-universal';
import { CLASSES } from 'common/classes';
import EstimateFormHeaderFields from './EstimateFormHeaderFields';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
import { getEntriesTotal } from 'containers/Entries/utils';
import { PageFormBigNumber } from 'components';
-import { compose } from 'utils';
// Estimate form top header.
-function EstimateFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const { values } = useFormikContext();
+function EstimateFormHeader() {
+ const {
+ values: { entries, currency_code },
+ } = useFormikContext();
+
// Calculate the total due amount of bill entries.
const totalDueAmount = useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
+ () => getEntriesTotal(entries),
+ [entries],
);
return (
@@ -32,10 +29,10 @@ function EstimateFormHeader({
);
}
-export default compose(withCurrentOrganization())(EstimateFormHeader);
+export default EstimateFormHeader;
diff --git a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
index fd36a2015..f2adc28bd 100644
--- a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
+++ b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
@@ -100,6 +100,7 @@ function EstimateFormHeader({
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', customer?.currency_code);
setSelectCustomer(customer);
}}
popoverFill={true}
diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeader.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeader.js
index ab5140b50..c7fce181a 100644
--- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeader.js
+++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeader.js
@@ -9,24 +9,16 @@ import InvoiceFormHeaderFields from './InvoiceFormHeaderFields';
import { getEntriesTotal } from 'containers/Entries/utils';
import { PageFormBigNumber } from 'components';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
-import { compose } from 'redux';
-
/**
* Invoice form header section.
*/
-function InvoiceFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
- const { values } = useFormikContext();
+function InvoiceFormHeader() {
+ const {
+ values: { currency_code, entries },
+ } = useFormikContext();
// Calculate the total due amount of invoice entries.
- const totalDueAmount = useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
- );
+ const totalDueAmount = useMemo(() => getEntriesTotal(entries), [entries]);
return (
@@ -34,9 +26,9 @@ function InvoiceFormHeader({
);
}
-export default compose(withCurrentOrganization())(InvoiceFormHeader);
+export default InvoiceFormHeader;
diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
index a83a1a219..0268caf3c 100644
--- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
+++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
@@ -116,6 +116,7 @@ function InvoiceFormHeaderFields({
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', customer?.currency_code);
setSelectCustomer(customer);
}}
popoverFill={true}
diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
index ded42d067..4a331d4be 100644
--- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
+++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
@@ -91,6 +91,10 @@ 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,
@@ -103,6 +107,7 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) {
baseCurrency,
branches,
warehouses,
+ currencyCode,
isInvoiceLoading,
isItemsLoading,
diff --git a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveFormHeader.js b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveFormHeader.js
index cdf9bcfd1..7cbb2efea 100644
--- a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveFormHeader.js
+++ b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveFormHeader.js
@@ -7,24 +7,21 @@ import { FormattedMessage as T } from 'components';
import { CLASSES } from 'common/classes';
import PaymentReceiveHeaderFields from './PaymentReceiveHeaderFields';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-import { compose } from 'utils';
/**
* Payment receive form header.
*/
-function PaymentReceiveFormHeader({
- // #withCurrentOrganization
- organization: { base_currency },
-}) {
+function PaymentReceiveFormHeader() {
// Formik form context.
- const { values } = useFormikContext();
+ const {
+ values: { currency_code, entries },
+ } = useFormikContext();
// Calculates the total payment amount from due amount.
const paymentFullAmount = useMemo(
- () => sumBy(values.entries, 'payment_amount'),
- [values.entries],
+ () => sumBy(entries, 'payment_amount'),
+ [entries],
);
return (
@@ -38,7 +35,7 @@ function PaymentReceiveFormHeader({
-
+
@@ -47,4 +44,4 @@ function PaymentReceiveFormHeader({
);
}
-export default compose(withCurrentOrganization())(PaymentReceiveFormHeader);
+export default PaymentReceiveFormHeader;
diff --git a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
index 61583145d..63ce759eb 100644
--- a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
+++ b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
@@ -153,6 +153,8 @@ function PaymentReceiveHeaderFields({
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('full_amount', '');
+ form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', customer?.currency_code);
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -207,7 +209,10 @@ function PaymentReceiveHeaderFields({
{/* ------------ Full amount ------------ */}
{({
- form: { setFieldValue },
+ form: {
+ setFieldValue,
+ values: { currency_code },
+ },
field: { value, onChange },
meta: { error, touched },
}) => (
@@ -220,7 +225,7 @@ function PaymentReceiveHeaderFields({
helperText={}
>
-
+
{
@@ -237,7 +242,7 @@ function PaymentReceiveHeaderFields({
minimal={true}
>
(
- )
+ )
)}
diff --git a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeader.js b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeader.js
index 41e329e0f..18d0e5619 100644
--- a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeader.js
+++ b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeader.js
@@ -7,10 +7,7 @@ import { CLASSES } from 'common/classes';
import { PageFormBigNumber } from 'components';
import ReceiptFormHeaderFields from './ReceiptFormHeaderFields';
-import withCurrentOrganization from 'containers/Organization/withCurrentOrganization';
-
import { getEntriesTotal } from 'containers/Entries/utils';
-import { compose } from 'redux';
/**
* Receipt form header section.
@@ -18,16 +15,13 @@ import { compose } from 'redux';
function ReceiptFormHeader({
// #ownProps
onReceiptNumberChanged,
- // #withCurrentOrganization
- organization: { base_currency },
}) {
- const { values } = useFormikContext();
+ const {
+ values: { currency_code, entries },
+ } = useFormikContext();
// Calculate the total due amount of bill entries.
- const totalDueAmount = useMemo(
- () => getEntriesTotal(values.entries),
- [values.entries],
- );
+ const totalDueAmount = useMemo(() => getEntriesTotal(entries), [entries]);
return (
@@ -37,10 +31,10 @@ function ReceiptFormHeader({
);
}
-export default compose(withCurrentOrganization())(ReceiptFormHeader);
+export default ReceiptFormHeader;
diff --git a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
index 03836f441..8d5f1dde8 100644
--- a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
+++ b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
@@ -108,6 +108,7 @@ function ReceiptFormHeader({
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
form.setFieldValue('exchange_rate', '');
+ form.setFieldValue('currency_code', customer?.currency_code);
setSelectCustomer(customer);
}}
popoverFill={true}