diff --git a/src/containers/Accounting/MakeJournal/utils.js b/src/containers/Accounting/MakeJournal/utils.js
index 67bb68990..6666b7084 100644
--- a/src/containers/Accounting/MakeJournal/utils.js
+++ b/src/containers/Accounting/MakeJournal/utils.js
@@ -9,7 +9,7 @@ import {
repeatValue,
transformToForm,
defaultFastFieldShouldUpdate,
- ensureEntriesHasEmptyLine
+ ensureEntriesHasEmptyLine,
} from 'utils';
import { AppToaster } from 'components';
import intl from 'react-intl-universal';
@@ -44,6 +44,7 @@ export const defaultManualJournal = {
reference: '',
currency_code: '',
publish: '',
+ exchange_rate: '',
entries: [...repeatValue(defaultEntry, 4)],
};
diff --git a/src/containers/Purchases/Bills/BillForm/BillForm.schema.js b/src/containers/Purchases/Bills/BillForm/BillForm.schema.js
index c221da83c..6f77262b2 100644
--- a/src/containers/Purchases/Bills/BillForm/BillForm.schema.js
+++ b/src/containers/Purchases/Bills/BillForm/BillForm.schema.js
@@ -25,6 +25,7 @@ const BillFormSchema = Yup.object().shape({
open: Yup.boolean(),
branch_id: Yup.string(),
warehouse_id: Yup.string(),
+ exchange_rate:Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()
diff --git a/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js b/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
index e7e11e11d..a2d0d97b2 100644
--- a/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
+++ b/src/containers/Purchases/Bills/BillForm/BillFormHeaderFields.js
@@ -37,7 +37,13 @@ import {
*/
function BillFormHeader() {
// Bill form context.
- const { vendors, isForeignVendor, setSelectVendor } = useBillFormContext();
+ const {
+ vendors,
+ isForeignVendor,
+ baseCurrency,
+ selectVendor,
+ setSelectVendor,
+ } = useBillFormContext();
return (
@@ -63,6 +69,7 @@ function BillFormHeader() {
defaultSelectText={}
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
+ form.setFieldValue('exchange_rate', '');
setSelectVendor(contact);
}}
popoverFill={true}
@@ -77,8 +84,8 @@ function BillFormHeader() {
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Purchases/Bills/BillForm/utils.js b/src/containers/Purchases/Bills/BillForm/utils.js
index 446f22be6..325fd6c4e 100644
--- a/src/containers/Purchases/Bills/BillForm/utils.js
+++ b/src/containers/Purchases/Bills/BillForm/utils.js
@@ -44,6 +44,7 @@ export const defaultBill = {
open: '',
branch_id: '',
warehouse_id: '',
+ exchange_rate: '',
entries: [...repeatValue(defaultBillEntry, MIN_LINES_NUMBER)],
};
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.schema.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.schema.js
index f94fa2ab1..164ebf9e3 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.schema.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteForm.schema.js
@@ -18,6 +18,7 @@ const getSchema = Yup.object().shape({
open: Yup.boolean(),
branch_id: Yup.string(),
warehouse_id: Yup.string(),
+ exchange_rate: Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
quantity: Yup.number()
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
index 30a6cef23..01c58b345 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/VendorCreditNoteFormHeaderFields.js
@@ -51,8 +51,13 @@ function VendorCreditNoteFormHeaderFields({
vendorcreditNextNumber,
}) {
// Vendor Credit form context.
- const { vendors, isForeignVendor, setSelectVendor } =
- useVendorCreditNoteFormContext();
+ const {
+ vendors,
+ isForeignVendor,
+ baseCurrency,
+ selectVendor,
+ setSelectVendor,
+ } = useVendorCreditNoteFormContext();
// Handle vendor credit number changing.
const handleVendorCreditNumberChange = () => {
@@ -102,6 +107,7 @@ function VendorCreditNoteFormHeaderFields({
defaultSelectText={}
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
+ form.setFieldValue('exchange_rate', '');
setSelectVendor(contact);
}}
popoverFill={true}
@@ -116,8 +122,8 @@ function VendorCreditNoteFormHeaderFields({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js b/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
index dd9c142fb..7eb2cd097 100644
--- a/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
+++ b/src/containers/Purchases/CreditNotes/CreditNoteForm/utils.js
@@ -41,6 +41,7 @@ export const defaultVendorsCreditNote = {
note: '',
branch_id: '',
warehouse_id: '',
+ exchange_rate: '',
entries: [...repeatValue(defaultCreditNoteEntry, MIN_LINES_NUMBER)],
};
diff --git a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeForm.schema.js b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeForm.schema.js
index aaeffc7e1..040611fdf 100644
--- a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeForm.schema.js
+++ b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeForm.schema.js
@@ -3,12 +3,8 @@ import intl from 'react-intl-universal';
import { DATATYPES_LENGTH } from 'common/dataTypes';
const Schema = Yup.object().shape({
- vendor_id: Yup.string()
- .label(intl.get('vendor_name_'))
- .required(),
- payment_date: Yup.date()
- .required()
- .label(intl.get('payment_date_')),
+ vendor_id: Yup.string().label(intl.get('vendor_name_')).required(),
+ payment_date: Yup.date().required().label(intl.get('payment_date_')),
payment_account_id: Yup.number()
.required()
.label(intl.get('payment_account_')),
@@ -20,6 +16,7 @@ const Schema = Yup.object().shape({
reference: Yup.string().min(1).max(DATATYPES_LENGTH.STRING).nullable(),
description: Yup.string().max(DATATYPES_LENGTH.TEXT),
branch_id: Yup.string(),
+ exchange_rate: Yup.number(),
entries: Yup.array().of(
Yup.object().shape({
id: Yup.number().nullable(),
diff --git a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
index ab5151efa..77aca7375 100644
--- a/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
+++ b/src/containers/Purchases/PaymentMades/PaymentForm/PaymentMadeFormHeaderFields.js
@@ -60,6 +60,8 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
isNewMode,
setPaymentVendorId,
isForeignVendor,
+ baseCurrency,
+ selectVendor,
setSelectVendor,
} = usePaymentMadeFormContext();
@@ -108,6 +110,7 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
defaultSelectText={}
onContactSelected={(contact) => {
form.setFieldValue('vendor_id', contact.id);
+ form.setFieldValue('exchange_rate', '');
setPaymentVendorId(contact.id);
setSelectVendor(contact);
}}
@@ -124,8 +127,8 @@ function PaymentMadeFormHeaderFields({ organization: { base_currency } }) {
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Purchases/PaymentMades/PaymentForm/utils.js b/src/containers/Purchases/PaymentMades/PaymentForm/utils.js
index aabe4edd1..2544b3574 100644
--- a/src/containers/Purchases/PaymentMades/PaymentForm/utils.js
+++ b/src/containers/Purchases/PaymentMades/PaymentForm/utils.js
@@ -35,6 +35,7 @@ export const defaultPaymentMade = {
statement: '',
currency_code: '',
branch_id: '',
+ exchange_rate: '',
entries: [],
};
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.schema.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.schema.js
index e37a24e05..a0c4388a7 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.schema.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteForm.schema.js
@@ -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()
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
index 1a0a34d97..47692a51d 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/CreditNoteFormHeaderFields.js
@@ -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={}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
+ form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -116,8 +122,8 @@ function CreditNoteFormHeaderFields({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js b/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
index 9fb49b2cc..384428860 100644
--- a/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
+++ b/src/containers/Sales/CreditNotes/CreditNoteForm/utils.js
@@ -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]);
-};
\ No newline at end of file
+};
diff --git a/src/containers/Sales/Estimates/EstimateForm/EstimateForm.schema.js b/src/containers/Sales/Estimates/EstimateForm/EstimateForm.schema.js
index fa45846f1..46bd23f5f 100644
--- a/src/containers/Sales/Estimates/EstimateForm/EstimateForm.schema.js
+++ b/src/containers/Sales/Estimates/EstimateForm/EstimateForm.schema.js
@@ -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()
diff --git a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
index 871b731ec..fd36a2015 100644
--- a/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
+++ b/src/containers/Sales/Estimates/EstimateForm/EstimateFormHeaderFields.js
@@ -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={}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
+ form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -109,8 +115,8 @@ function EstimateFormHeader({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Sales/Estimates/EstimateForm/utils.js b/src/containers/Sales/Estimates/EstimateForm/utils.js
index 04416c67f..2245064a6 100644
--- a/src/containers/Sales/Estimates/EstimateForm/utils.js
+++ b/src/containers/Sales/Estimates/EstimateForm/utils.js
@@ -39,6 +39,7 @@ export const defaultEstimate = {
terms_conditions: '',
branch_id: '',
warehouse_id: '',
+ exchange_rate: '',
entries: [...repeatValue(defaultEstimateEntry, MIN_LINES_NUMBER)],
};
diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
index 245fa2afc..a83a1a219 100644
--- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
+++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormHeaderFields.js
@@ -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={}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
+ form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -124,8 +130,8 @@ function InvoiceFormHeaderFields({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
index 163caf897..ded42d067 100644
--- a/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
+++ b/src/containers/Sales/Invoices/InvoiceForm/InvoiceFormProvider.js
@@ -100,6 +100,7 @@ function InvoiceFormProvider({ invoiceId, baseCurrency, ...props }) {
invoiceId,
submitPayload,
selectCustomer,
+ baseCurrency,
branches,
warehouses,
diff --git a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveForm.schema.js b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveForm.schema.js
index c684c2f1e..9d85feef6 100644
--- a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveForm.schema.js
+++ b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveForm.schema.js
@@ -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(),
diff --git a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
index d7aff974d..61583145d 100644
--- a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
+++ b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/PaymentReceiveHeaderFields.js
@@ -73,6 +73,7 @@ function PaymentReceiveHeaderFields({
isNewMode,
isForeignCustomer,
baseCurrency,
+ selectCustomer,
setSelectCustomer,
} = usePaymentReceiveFormContext();
@@ -170,8 +171,8 @@ function PaymentReceiveHeaderFields({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/utils.js b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/utils.js
index 84d2dcb76..c1c715af2 100644
--- a/src/containers/Sales/PaymentReceives/PaymentReceiveForm/utils.js
+++ b/src/containers/Sales/PaymentReceives/PaymentReceiveForm/utils.js
@@ -34,6 +34,7 @@ export const defaultPaymentReceive = {
full_amount: '',
currency_code: '',
branch_id: '',
+ exchange_rate:'',
entries: [],
};
diff --git a/src/containers/Sales/Receipts/ReceiptForm/ReceiptForm.schema.js b/src/containers/Sales/Receipts/ReceiptForm/ReceiptForm.schema.js
index 514ed6abe..be3180d8c 100644
--- a/src/containers/Sales/Receipts/ReceiptForm/ReceiptForm.schema.js
+++ b/src/containers/Sales/Receipts/ReceiptForm/ReceiptForm.schema.js
@@ -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()
diff --git a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
index c8308142b..03836f441 100644
--- a/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
+++ b/src/containers/Sales/Receipts/ReceiptForm/ReceiptFormHeaderFields.js
@@ -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={}
onContactSelected={(customer) => {
form.setFieldValue('customer_id', customer.id);
+ form.setFieldValue('exchange_rate', '');
setSelectCustomer(customer);
}}
popoverFill={true}
@@ -115,8 +122,8 @@ function ReceiptFormHeader({
{/* ----------- Exchange rate ----------- */}
diff --git a/src/containers/Sales/Receipts/ReceiptForm/utils.js b/src/containers/Sales/Receipts/ReceiptForm/utils.js
index 6168e76f6..7ad3b69de 100644
--- a/src/containers/Sales/Receipts/ReceiptForm/utils.js
+++ b/src/containers/Sales/Receipts/ReceiptForm/utils.js
@@ -39,6 +39,7 @@ export const defaultReceipt = {
closed: '',
branch_id: '',
warehouse_id: '',
+ exchange_rate: '',
entries: [...repeatValue(defaultReceiptEntry, MIN_LINES_NUMBER)],
};