fix: the currency code of transaction tax rate entry

This commit is contained in:
Ahmed Bouhuolia
2023-12-17 17:51:17 +02:00
parent fe043eb594
commit d0126ffc2c
3 changed files with 28 additions and 23 deletions

View File

@@ -284,26 +284,31 @@ export const useComposeRowsOnRemoveTableRow = () => {
/** /**
* Retrieves the aggregate tax rates from the given item entries. * Retrieves the aggregate tax rates from the given item entries.
* @param {string} currencyCode -
* @param {any} taxRates -
* @param {any} entries -
*/ */
export const aggregateItemEntriesTaxRates = R.curry((taxRates, entries) => { export const aggregateItemEntriesTaxRates = R.curry(
const taxRatesById = keyBy(taxRates, 'id'); (currencyCode, taxRates, entries) => {
const taxRatesById = keyBy(taxRates, 'id');
// Calculate the total tax amount of invoice entries. // Calculate the total tax amount of invoice entries.
const filteredEntries = entries.filter((e) => e.tax_rate_id); const filteredEntries = entries.filter((e) => e.tax_rate_id);
const groupedTaxRates = groupBy(filteredEntries, 'tax_rate_id'); const groupedTaxRates = groupBy(filteredEntries, 'tax_rate_id');
return Object.keys(groupedTaxRates).map((taxRateId) => { return Object.keys(groupedTaxRates).map((taxRateId) => {
const taxRate = taxRatesById[taxRateId]; const taxRate = taxRatesById[taxRateId];
const taxRates = groupedTaxRates[taxRateId]; const taxRates = groupedTaxRates[taxRateId];
const totalTaxAmount = sumBy(taxRates, 'tax_amount'); const totalTaxAmount = sumBy(taxRates, 'tax_amount');
const taxAmountFormatted = formattedAmount(totalTaxAmount, 'USD'); const taxAmountFormatted = formattedAmount(totalTaxAmount, currencyCode);
return { return {
taxRateId, taxRateId,
taxRate: taxRate.rate, taxRate: taxRate.rate,
label: `${taxRate.name} [${taxRate.rate}%]`, label: `${taxRate.name} [${taxRate.rate}%]`,
taxAmount: totalTaxAmount, taxAmount: totalTaxAmount,
taxAmountFormatted, taxAmountFormatted,
}; };
}); });
}); },
);

View File

@@ -322,8 +322,8 @@ export const useBillAggregatedTaxRates = () => {
const { taxRates } = useBillFormContext(); const { taxRates } = useBillFormContext();
const aggregateTaxRates = React.useMemo( const aggregateTaxRates = React.useMemo(
() => aggregateItemEntriesTaxRates(taxRates), () => aggregateItemEntriesTaxRates(values.currency_code, taxRates),
[taxRates], [values.currency_code, taxRates],
); );
// Calculate the total tax amount of bill entries. // Calculate the total tax amount of bill entries.
return React.useMemo(() => { return React.useMemo(() => {

View File

@@ -333,8 +333,8 @@ export const useInvoiceAggregatedTaxRates = () => {
const { taxRates } = useInvoiceFormContext(); const { taxRates } = useInvoiceFormContext();
const aggregateTaxRates = React.useMemo( const aggregateTaxRates = React.useMemo(
() => aggregateItemEntriesTaxRates(taxRates), () => aggregateItemEntriesTaxRates(values.currency_code, taxRates),
[taxRates], [values.currency_code, taxRates],
); );
// Calculate the total tax amount of invoice entries. // Calculate the total tax amount of invoice entries.
return React.useMemo(() => { return React.useMemo(() => {