mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 14:50:32 +00:00
fix(server): [Sales Tax Liability Report] filter non-transactions tax rates
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
import * as R from 'ramda';
|
||||||
|
import { isEmpty, sumBy } from 'lodash';
|
||||||
import { ITaxRate } from '@/interfaces';
|
import { ITaxRate } from '@/interfaces';
|
||||||
import {
|
import {
|
||||||
SalesTaxLiabilitySummaryPayableById,
|
SalesTaxLiabilitySummaryPayableById,
|
||||||
@@ -7,7 +9,6 @@ import {
|
|||||||
SalesTaxLiabilitySummarySalesById,
|
SalesTaxLiabilitySummarySalesById,
|
||||||
SalesTaxLiabilitySummaryTotal,
|
SalesTaxLiabilitySummaryTotal,
|
||||||
} from '@/interfaces/SalesTaxLiabilitySummary';
|
} from '@/interfaces/SalesTaxLiabilitySummary';
|
||||||
import { sumBy } from 'lodash';
|
|
||||||
import FinancialSheet from '../FinancialSheet';
|
import FinancialSheet from '../FinancialSheet';
|
||||||
|
|
||||||
export class SalesTaxLiabilitySummary extends FinancialSheet {
|
export class SalesTaxLiabilitySummary extends FinancialSheet {
|
||||||
@@ -61,6 +62,7 @@ export class SalesTaxLiabilitySummary extends FinancialSheet {
|
|||||||
const collectedTaxAmount = payableTax ? payableTax.debit : 0;
|
const collectedTaxAmount = payableTax ? payableTax.debit : 0;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
id: taxRate.id,
|
||||||
taxName: `${taxRate.name} (${taxRate.rate}%)`,
|
taxName: `${taxRate.name} (${taxRate.rate}%)`,
|
||||||
taxableAmount: this.getAmountMeta(salesTaxAmount),
|
taxableAmount: this.getAmountMeta(salesTaxAmount),
|
||||||
taxAmount: this.getAmountMeta(payableTaxAmount),
|
taxAmount: this.getAmountMeta(payableTaxAmount),
|
||||||
@@ -69,12 +71,31 @@ export class SalesTaxLiabilitySummary extends FinancialSheet {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters the non-transactions tax rates.
|
||||||
|
* @param {SalesTaxLiabilitySummaryRate[]} nodes
|
||||||
|
* @returns {SalesTaxLiabilitySummaryRate[]}
|
||||||
|
*/
|
||||||
|
private filterNonTransactionsTaxRates = (
|
||||||
|
nodes: SalesTaxLiabilitySummaryRate[]
|
||||||
|
): SalesTaxLiabilitySummaryRate[] => {
|
||||||
|
return nodes.filter((node) => {
|
||||||
|
const salesTrxs = this.salesTaxesById[node.id];
|
||||||
|
const payableTrxs = this.payableTaxesById[node.id];
|
||||||
|
|
||||||
|
return !isEmpty(salesTrxs) || !isEmpty(payableTrxs);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the tax rates liability nodes.
|
* Retrieves the tax rates liability nodes.
|
||||||
* @returns {SalesTaxLiabilitySummaryRate[]}
|
* @returns {SalesTaxLiabilitySummaryRate[]}
|
||||||
*/
|
*/
|
||||||
private taxRatesLiability = (): SalesTaxLiabilitySummaryRate[] => {
|
private taxRatesLiability = (): SalesTaxLiabilitySummaryRate[] => {
|
||||||
return this.taxRates.map(this.taxRateLiability);
|
return R.compose(
|
||||||
|
this.filterNonTransactionsTaxRates,
|
||||||
|
R.map(this.taxRateLiability)
|
||||||
|
)(this.taxRates);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user