diff --git a/src/components/DetailExchangeRate.js b/src/components/DetailExchangeRate.js new file mode 100644 index 000000000..2b7399e99 --- /dev/null +++ b/src/components/DetailExchangeRate.js @@ -0,0 +1,33 @@ +import React from 'react'; +import { DetailItem } from 'components'; +import intl from 'react-intl-universal'; + +import { useSelector } from 'react-redux'; +import { createSelector } from 'reselect'; +import { isEqual } from 'lodash'; + +const organizationBaseCurrecy = createSelector( + (state) => { + const tenantId = state.authentication.tenantId; + return state.organizations.data[tenantId]; + }, + (organization) => organization?.base_currency, +); + +export function ExchangeRateDetailItem({ + // #ownProps + exchangeRate, + toCurrency, +}) { + const fromCurrency = useSelector(organizationBaseCurrecy); + + if (isEqual(fromCurrency, toCurrency)) { + return null; + } + + return ( + + 1 {fromCurrency} = {exchangeRate} {toCurrency} + + ); +} diff --git a/src/components/index.js b/src/components/index.js index ffc51e6d2..642e27e4c 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -55,6 +55,7 @@ import AvaterCell from './AvaterCell'; import { ItemsMultiSelect } from './Items'; import MoreMenuItems from './MoreMenutItems'; import CustomSelectList from './CustomSelectList'; +import { ExchangeRateDetailItem } from './DetailExchangeRate'; export * from './Dialog'; export * from './Menu'; @@ -169,4 +170,5 @@ export { AvaterCell, MoreMenuItems, CustomSelectList, + ExchangeRateDetailItem, }; diff --git a/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.js b/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.js index 144dab077..2d4f76a36 100644 --- a/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.js +++ b/src/containers/Drawers/InvoiceDetailDrawer/InvoiceDetailHeader.js @@ -13,6 +13,8 @@ import { CommercialDocHeader, CommercialDocTopHeader, CustomerDrawerLink, + // DetailExchangeRate, + ExchangeRateDetailItem, } from 'components'; import { useInvoiceDetailDrawerContext } from './InvoiceDetailDrawerProvider'; import { InvoiceDetailsStatus } from './utils'; @@ -59,6 +61,10 @@ export default function InvoiceDetailHeader() { {invoice.invoice_no} + diff --git a/src/lang/en/index.json b/src/lang/en/index.json index 1bd878cda..d80b28b0c 100644 --- a/src/lang/en/index.json +++ b/src/lang/en/index.json @@ -1222,6 +1222,7 @@ "invoice.details.payment_amount": "Payment amount", "invoice.details.invoice_message": "Invoice Message", "invoice.details.invoice_no": "Invoice #", + "invoice.details.exchange_rate": "Exchange rate", "bill.drawer.title": "Bill details {number}", "bill.details.reference": "Reference #", "bill.details.bill_number": "Bill #",