From b35a3633ed194bdeb567c478e881653edce9c4f7 Mon Sep 17 00:00:00 2001 From: ahasani194 Date: Sun, 28 Dec 2025 17:52:07 +0330 Subject: [PATCH] feat(pos): update createOrder method to accept posId and retrieve inventoryId --- src/modules/inventories/index/inventories.service.ts | 12 ++++++++++-- src/modules/pos/pos.controller.ts | 8 +++----- src/modules/pos/pos.service.ts | 8 +++++++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/modules/inventories/index/inventories.service.ts b/src/modules/inventories/index/inventories.service.ts index ee7defc..0c83831 100644 --- a/src/modules/inventories/index/inventories.service.ts +++ b/src/modules/inventories/index/inventories.service.ts @@ -63,7 +63,7 @@ export class InventoriesService { pageSize = 10, ) { const groups = await this.prisma.stockMovement.groupBy({ - by: ['referenceId'], + by: ['referenceId', 'referenceType'], where: { inventoryId, type }, _count: { id: true }, orderBy: { referenceId: 'desc' }, @@ -74,7 +74,13 @@ export class InventoriesService { const result = await Promise.all( groups.map(async group => { const movements = await this.prisma.stockMovement.findMany({ - where: { inventoryId, referenceId: group.referenceId, type }, + where: { + inventoryId, + AND: { + referenceId: group.referenceId, + AND: { referenceType: group.referenceType }, + }, + }, include: { product: true, counterInventory: { @@ -83,6 +89,8 @@ export class InventoriesService { }, }) let info = null as any + console.log(movements) + const mapped = movements.map(movement => { const { id, quantity, fee, totalCost, avgCost, product } = movement if (info === null) { diff --git a/src/modules/pos/pos.controller.ts b/src/modules/pos/pos.controller.ts index 88c872e..ba78203 100644 --- a/src/modules/pos/pos.controller.ts +++ b/src/modules/pos/pos.controller.ts @@ -33,10 +33,8 @@ export class PosController { return this.posService.getProductCategories(Number(posId)) } - @Post('/orders/create') - async createOrder(@Body() dto: CreateOrderDto) { - const inventoryId = await this.posService.getDefaultInventoryId() - - return this.posService.createOrder(dto, inventoryId!) + @Post('/:posId/orders/create') + async createOrder(@Param('posId') posId: string, @Body() dto: CreateOrderDto) { + return this.posService.createOrder(Number(posId), dto) } } diff --git a/src/modules/pos/pos.service.ts b/src/modules/pos/pos.service.ts index 6595093..08ff483 100644 --- a/src/modules/pos/pos.service.ts +++ b/src/modules/pos/pos.service.ts @@ -173,7 +173,13 @@ export class PosService { return ResponseMapper.list(categories) } - async createOrder(data: CreateOrderDto, inventoryId: number) { + async createOrder(posId: number, data: CreateOrderDto) { + const pos = await this.prisma.posAccount.findUniqueOrThrow({ + where: { id: posId }, + select: { inventoryId: true }, + }) + const inventoryId = pos.inventoryId + const { customerId, ...res } = data const preparedOrder = { ...res } as any const lastCode = await this.prisma.salesInvoice