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

@@ -72,5 +72,6 @@ export class VendorBalanceSummaryApplication {
*/
public pdf(tenantId: number, query: IVendorBalanceSummaryQuery) {
return this.vendorBalanceSummaryPdf.pdf(tenantId, query);
}
}

View File

@@ -0,0 +1,32 @@
import moment from 'moment';
import { Inject, Service } from 'typedi';
import { FinancialSheetMeta } from '../FinancialSheetMeta';
import {
IVendorBalanceSummaryMeta,
IVendorBalanceSummaryQuery,
} from '@/interfaces';
@Service()
export class VendorBalanceSummaryMeta {
@Inject()
private financialSheetMeta: FinancialSheetMeta;
/**
* Retrieves the vendor balance summary meta.
* @param {number} tenantId -
* @returns {IBalanceSheetMeta}
*/
public async meta(
tenantId: number,
query: IVendorBalanceSummaryQuery
): Promise<IVendorBalanceSummaryMeta> {
const commonMeta = await this.financialSheetMeta.meta(tenantId);
const formattedAsDate = moment(query.asDate).format('YYYY/MM/DD');
return {
...commonMeta,
sheetName: 'Vendor Balance Summary',
formattedAsDate,
};
}
}

View File

@@ -22,13 +22,13 @@ export class VendorBalanceSummaryPdf {
query: IVendorBalanceSummaryQuery
): Promise<Buffer> {
const table = await this.vendorBalanceSummaryTable.table(tenantId, query);
const sheetName = 'Sales By Items';
return this.tableSheetPdf.convertToPdf(
tenantId,
table.table,
sheetName,
table.meta.baseCurrency
table.meta.sheetName,
table.meta.formattedAsDate
);
}
}

View File

@@ -12,15 +12,21 @@ import { VendorBalanceSummaryReport } from './VendorBalanceSummary';
import Ledger from '@/services/Accounting/Ledger';
import VendorBalanceSummaryRepository from './VendorBalanceSummaryRepository';
import { Tenant } from '@/system/models';
import { JournalSheetMeta } from '../JournalSheet/JournalSheetMeta';
import { VendorBalanceSummaryMeta } from './VendorBalanceSummaryMeta';
export class VendorBalanceSummaryService
implements IVendorBalanceSummaryService
{
@Inject()
tenancy: TenancyService;
private tenancy: TenancyService;
@Inject()
reportRepo: VendorBalanceSummaryRepository;
private reportRepo: VendorBalanceSummaryRepository;
@Inject()
private vendorBalanceSummaryMeta: VendorBalanceSummaryMeta;
/**
* Defaults balance sheet filter query.
@@ -43,6 +49,7 @@ export class VendorBalanceSummaryService
}
/**
*
* Retrieve the vendors ledger entrjes.
* @param {number} tenantId -
* @param {Date|string} date -
@@ -97,11 +104,13 @@ export class VendorBalanceSummaryService
filter,
tenant.metadata.baseCurrency
);
// Retrieve the vendor balance summary meta.
const meta = await this.vendorBalanceSummaryMeta.meta(tenantId, filter);
return {
data: reportInstance.reportData(),
query: filter,
meta: {}
meta
};
}
}

View File

@@ -29,6 +29,7 @@ export class VendorBalanceSummaryTableInjectable {
const { data, meta } =
await this.vendorBalanceSummarySheet.vendorBalanceSummary(
tenantId,
query
);