import { Inject, Service } from 'typedi'; import { SalesTaxLiabilitySummaryQuery } from '@/interfaces/SalesTaxLiabilitySummary'; import { SalesTaxLiabilitySummaryTableInjectable } from './SalesTaxLiabilitySummaryTableInjectable'; import { SalesTaxLiabilitySummaryExportInjectable } from './SalesTaxLiabilitySummaryExportInjectable'; import { SalesTaxLiabilitySummaryService } from './SalesTaxLiabilitySummaryService'; import { SalesTaxLiabiltiySummaryPdf } from './SalesTaxLiabiltiySummaryPdf'; @Service() export class SalesTaxLiabilitySummaryApplication { @Inject() private salesTaxLiabilitySheet: SalesTaxLiabilitySummaryService; @Inject() private salesTaxLiabilityExport: SalesTaxLiabilitySummaryExportInjectable; @Inject() private salesTaxLiabilityTable: SalesTaxLiabilitySummaryTableInjectable; @Inject() private salesTaxLiabiltiyPdf: SalesTaxLiabiltiySummaryPdf; /** * Retrieves the sales tax liability summary in json format. * @param {number} tenantId * @param {SalesTaxLiabilitySummaryQuery} query * @returns {Promise} */ public sheet(tenantId: number, query: SalesTaxLiabilitySummaryQuery) { return this.salesTaxLiabilitySheet.salesTaxLiability(tenantId, query); } /** * Retrieves the sales tax liability summary in table format. * @param {number} tenantId * @param {SalesTaxLiabilitySummaryQuery} query * @return {Promise} */ public table(tenantId: number, query: SalesTaxLiabilitySummaryQuery) { return this.salesTaxLiabilityTable.table(tenantId, query); } /** * Retrieves the sales tax liability summary in XLSX format. * @param {number} tenantId * @param {SalesTaxLiabilitySummaryQuery} query * @returns {Promise} */ public xlsx( tenantId: number, query: SalesTaxLiabilitySummaryQuery ): Promise { return this.salesTaxLiabilityExport.xlsx(tenantId, query); } /** * Retrieves the sales tax liability summary in CSV format. * @param {number} tenantId * @param {SalesTaxLiabilitySummaryQuery} query * @returns {Promise} */ public csv( tenantId: number, query: SalesTaxLiabilitySummaryQuery ): Promise { return this.salesTaxLiabilityExport.csv(tenantId, query); } /** * Retrieves the sales tax liability summary in PDF format. * @param {number} tenantId * @param {SalesTaxLiabilitySummaryQuery} query * @returns {Promise} */ public pdf( tenantId: number, query: SalesTaxLiabilitySummaryQuery ): Promise { return this.salesTaxLiabiltiyPdf.pdf(tenantId, query); } }