feat(server): financial reports meta

This commit is contained in:
Ahmed Bouhuolia
2024-02-17 23:36:29 +02:00
parent d2e6cc0036
commit 06e78db49d
62 changed files with 726 additions and 474 deletions

View File

@@ -44,6 +44,7 @@ export class SalesTaxLiabilitySummaryApplication {
* @param {number} tenantId
* @param {SalesTaxLiabilitySummaryQuery} query
* @returns {Promise<Buffer>}
*
*/
public xlsx(
tenantId: number,

View File

@@ -0,0 +1,32 @@
import { Inject, Service } from 'typedi';
import moment from 'moment';
import { SalesTaxLiabilitySummaryQuery } from '@/interfaces/SalesTaxLiabilitySummary';
import { FinancialSheetMeta } from '../FinancialSheetMeta';
@Service()
export class SalesTaxLiabilitySummaryMeta {
@Inject()
private financialSheetMeta: FinancialSheetMeta;
/**
* Retrieves the report meta.
* @param {number} tenantId
* @param {SalesTaxLiabilitySummaryQuery} filter
*/
public async meta(tenantId: number, query: SalesTaxLiabilitySummaryQuery) {
const commonMeta = await this.financialSheetMeta.meta(tenantId);
const formattedToDate = moment(query.toDate).format('YYYY/MM/DD');
const formattedFromDate = moment(query.toDate).format('YYYY/MM/DD');
const formattedDateRange = `From ${formattedFromDate} | To ${formattedToDate}`;
const sheetName = 'Sales Tax Liability Summary';
return {
...commonMeta,
sheetName,
formattedFromDate,
formattedToDate,
formattedDateRange,
};
}
}

View File

@@ -1,11 +1,8 @@
import { Inject, Service } from 'typedi';
import { SalesTaxLiabilitySummaryRepository } from './SalesTaxLiabilitySummaryRepository';
import {
SalesTaxLiabilitySummaryMeta,
SalesTaxLiabilitySummaryQuery,
} from '@/interfaces/SalesTaxLiabilitySummary';
import { SalesTaxLiabilitySummaryQuery } from '@/interfaces/SalesTaxLiabilitySummary';
import { SalesTaxLiabilitySummary } from './SalesTaxLiabilitySummary';
import HasTenancyService from '@/services/Tenancy/TenancyService';
import { SalesTaxLiabilitySummaryMeta } from './SalesTaxLiabilitySummaryMeta';
@Service()
export class SalesTaxLiabilitySummaryService {
@@ -13,7 +10,7 @@ export class SalesTaxLiabilitySummaryService {
private repostiory: SalesTaxLiabilitySummaryRepository;
@Inject()
private tenancy: HasTenancyService;
private salesTaxLiabilityMeta: SalesTaxLiabilitySummaryMeta;
/**
* Retrieve sales tax liability summary.
@@ -39,33 +36,12 @@ export class SalesTaxLiabilitySummaryService {
payableByRateId,
salesByRateId
);
const meta = await this.salesTaxLiabilityMeta.meta(tenantId, query);
return {
data: taxLiabilitySummary.reportData(),
query,
meta: this.reportMetadata(tenantId),
};
}
/**
* Retrieve the report meta.
* @param {number} tenantId -
* @returns {IBalanceSheetMeta}
*/
private reportMetadata(tenantId: number): SalesTaxLiabilitySummaryMeta {
const settings = this.tenancy.settings(tenantId);
const organizationName = settings.get({
group: 'organization',
key: 'name',
});
const baseCurrency = settings.get({
group: 'organization',
key: 'base_currency',
});
return {
organizationName,
baseCurrency,
meta,
};
}
}

View File

@@ -22,14 +22,15 @@ export class SalesTaxLiabiltiySummaryPdf {
tenantId: number,
query: SalesTaxLiabilitySummaryQuery
): Promise<Buffer> {
const table = await this.salesTaxLiabiltiySummaryTable.table(tenantId, query);
const sheetName = 'Sales Tax Liability Summary';
const table = await this.salesTaxLiabiltiySummaryTable.table(
tenantId,
query
);
return this.tableSheetPdf.convertToPdf(
tenantId,
table.table,
sheetName,
table.meta.baseCurrency
table.meta.sheetName,
table.meta.formattedDateRange
);
}
}