From a979c601438c1096af64ccd7f66cd07932948f71 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 6 Mar 2025 11:42:49 +0700 Subject: [PATCH] feat: csv sale export --- src/controllers/00-stats-controller.ts | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/controllers/00-stats-controller.ts b/src/controllers/00-stats-controller.ts index cf047d4..668f1e7 100644 --- a/src/controllers/00-stats-controller.ts +++ b/src/controllers/00-stats-controller.ts @@ -284,6 +284,47 @@ export class StatsController extends Controller { }); } + @Get("sale/by-product-group/download") + async downloadSaleByProductGroupReport( + @Request() req: RequestWithUser, + @Query() limit?: number, + @Query() startDate?: Date, + @Query() endDate?: Date, + ) { + this.setHeader("Content-Type", "text/csv"); + return json2csv( + await this.saleReport(req, limit, startDate, endDate).then((v) => v.byProductGroup), + { useDateIso8601Format: true }, + ); + } + + @Get("sale/by-sale/download") + async downloadSaleBySaleReport( + @Request() req: RequestWithUser, + @Query() limit?: number, + @Query() startDate?: Date, + @Query() endDate?: Date, + ) { + this.setHeader("Content-Type", "text/csv"); + return json2csv(await this.saleReport(req, limit, startDate, endDate).then((v) => v.bySale), { + useDateIso8601Format: true, + }); + } + + @Get("sale/by-customer/download") + async downloadSaleByCustomerReport( + @Request() req: RequestWithUser, + @Query() limit?: number, + @Query() startDate?: Date, + @Query() endDate?: Date, + ) { + this.setHeader("Content-Type", "text/csv"); + return json2csv( + await this.saleReport(req, limit, startDate, endDate).then((v) => v.byCustomer), + { useDateIso8601Format: true }, + ); + } + @Get("sale") async saleReport( @Request() req: RequestWithUser,