import { Service, Inject } from 'typedi'; import { PurchasesByItemsExport } from './PurchasesByItemsExport'; import { IPurchasesByItemsReportQuery, IPurchasesByItemsSheet, IPurchasesByItemsTable, } from '@/interfaces/PurchasesByItemsSheet'; import { PurchasesByItemsTableInjectable } from './PurchasesByItemsTableInjectable'; import { PurchasesByItemsService } from './PurchasesByItemsService'; @Service() export class PurcahsesByItemsApplication { @Inject() private purchasesByItemsSheet: PurchasesByItemsService; @Inject() private purchasesByItemsTable: PurchasesByItemsTableInjectable; @Inject() private purchasesByItemsExport: PurchasesByItemsExport; /** * Retrieves the purchases by items in json format. * @param {number} tenantId * @param {IPurchasesByItemsReportQuery} query * @returns */ public sheet( tenantId: number, query: IPurchasesByItemsReportQuery ): Promise { return this.purchasesByItemsSheet.purchasesByItems(tenantId, query); } /** * Retrieves the purchases by items in table format. * @param {number} tenantId * @param {IPurchasesByItemsReportQuery} query * @returns {Promise} */ public table( tenantId: number, query: IPurchasesByItemsReportQuery ): Promise { return this.purchasesByItemsTable.table(tenantId, query); } /** * Retrieves the purchases by items in csv format. * @param {number} tenantId * @param {IPurchasesByItemsReportQuery} query * @returns {Promise} */ public csv( tenantId: number, query: IPurchasesByItemsReportQuery ): Promise { return this.purchasesByItemsExport.csv(tenantId, query); } /** * Retrieves the purchases by items in xlsx format. * @param {number} tenantId * @param {IPurchasesByItemsReportQuery} query * @returns {Promise} */ public xlsx( tenantId: number, query: IPurchasesByItemsReportQuery ): Promise { return this.purchasesByItemsExport.xlsx(tenantId, query); } }