diff --git a/src/common/hooks/useExchangeCalculation/useExchangeCalculation.js b/src/common/hooks/useExchangeCalculation/useExchangeCalculation.js index f31e3c7a..ea059498 100644 --- a/src/common/hooks/useExchangeCalculation/useExchangeCalculation.js +++ b/src/common/hooks/useExchangeCalculation/useExchangeCalculation.js @@ -6,6 +6,7 @@ import { } from 'react'; import { useQuery } from 'react-query'; +import { useExchangeRateValue } from '@folio/stripes-acq-components'; import { useOkapiKy, useNamespace, @@ -20,10 +21,16 @@ export const useExchangeCalculation = ({ from, to, amount, rate }, options = {}) const ky = useOkapiKy(); const [namespace] = useNamespace({ key: 'exchange-calculation' }); + const { exchangeRate } = useExchangeRateValue( + from, + to, + rate, + ); + const [searchParams, setSearchParams] = useState({ amount, from, - rate, + rate: rate || exchangeRate, to, }); @@ -32,16 +39,16 @@ export const useExchangeCalculation = ({ from, to, amount, rate }, options = {}) setSearchParams({ amount, from, - rate, + rate: rate || exchangeRate, to, }); - }, DEBOUNCE_DELAY), [amount, from, rate, to]); + }, DEBOUNCE_DELAY), [amount, from, rate, to, exchangeRate]); useEffect(() => { debounceSetSearchParams(); return () => debounceSetSearchParams.cancel(); - }, [amount, debounceSetSearchParams, from, rate, to]); + }, [amount, debounceSetSearchParams, from, rate, to, exchangeRate]); const { amount: amountProp, diff --git a/src/invoices/InvoiceDetails/InvoiceDetails.js b/src/invoices/InvoiceDetails/InvoiceDetails.js index e7c2b9b6..d4b6575b 100644 --- a/src/invoices/InvoiceDetails/InvoiceDetails.js +++ b/src/invoices/InvoiceDetails/InvoiceDetails.js @@ -30,7 +30,6 @@ import { TagsBadge, TagsPane, useAcqRestrictions, - useExchangeRateValue, } from '@folio/stripes-acq-components'; import { PrintVoucherContainer } from '../PrintVoucher'; @@ -108,12 +107,6 @@ function InvoiceDetails({ const isVendorInactive = vendor?.status === VENDOR_STATUS.INACTIVE; const showHasPendingOrdersMessage = hasPendingOrders && !isPendingOrdersLoading; - const { exchangeRate } = useExchangeRateValue( - invoice.currency, - stripes.currency, - invoice.exchangeRate, - ); - const shortcuts = [ { name: 'new', @@ -294,7 +287,7 @@ function InvoiceDetails({ approvalDate={invoice.approvalDate} approvedBy={invoice.approvedBy} batchGroupId={invoice.batchGroupId} - exchangeRate={invoice.exchangeRate || exchangeRate} + exchangeRate={invoice.exchangeRate} fiscalYearId={invoice.fiscalYearId} invoiceDate={invoice.invoiceDate} paymentDate={invoice.paymentDate} diff --git a/src/invoices/InvoiceForm/InvoiceForm.js b/src/invoices/InvoiceForm/InvoiceForm.js index ecbefd11..e4c9156a 100644 --- a/src/invoices/InvoiceForm/InvoiceForm.js +++ b/src/invoices/InvoiceForm/InvoiceForm.js @@ -51,7 +51,6 @@ import { PAYMENT_METHOD_OPTIONS, TextField, validateRequired, - useExchangeRateValue, } from '@folio/stripes-acq-components'; import { @@ -105,8 +104,6 @@ const InvoiceForm = ({ const intl = useIntl(); const history = useHistory(); const accordionStatusRef = useRef(); - const stripes = useStripes(); - const systemCurrency = stripes.currency; const { batch, @@ -139,12 +136,6 @@ const InvoiceForm = ({ fiscalYearId, } = initialValues; - const { exchangeRate: exchangeRateValue } = useExchangeRateValue( - values.currency, - systemCurrency, - values.exchangeRate, - ); - const [selectedVendor, setSelectedVendor] = useState(); const [isLockTotalAmountEnabled, setLockTotalAmountEnabled] = useState(isNumber(lockTotal)); @@ -620,7 +611,7 @@ const InvoiceForm = ({ />