feat(pos): update createOrder method to accept posId and retrieve inventoryId

This commit is contained in:
2025-12-28 17:52:07 +03:30
parent af9695e23c
commit b35a3633ed
3 changed files with 20 additions and 8 deletions
@@ -63,7 +63,7 @@ export class InventoriesService {
pageSize = 10, pageSize = 10,
) { ) {
const groups = await this.prisma.stockMovement.groupBy({ const groups = await this.prisma.stockMovement.groupBy({
by: ['referenceId'], by: ['referenceId', 'referenceType'],
where: { inventoryId, type }, where: { inventoryId, type },
_count: { id: true }, _count: { id: true },
orderBy: { referenceId: 'desc' }, orderBy: { referenceId: 'desc' },
@@ -74,7 +74,13 @@ export class InventoriesService {
const result = await Promise.all( const result = await Promise.all(
groups.map(async group => { groups.map(async group => {
const movements = await this.prisma.stockMovement.findMany({ const movements = await this.prisma.stockMovement.findMany({
where: { inventoryId, referenceId: group.referenceId, type }, where: {
inventoryId,
AND: {
referenceId: group.referenceId,
AND: { referenceType: group.referenceType },
},
},
include: { include: {
product: true, product: true,
counterInventory: { counterInventory: {
@@ -83,6 +89,8 @@ export class InventoriesService {
}, },
}) })
let info = null as any let info = null as any
console.log(movements)
const mapped = movements.map(movement => { const mapped = movements.map(movement => {
const { id, quantity, fee, totalCost, avgCost, product } = movement const { id, quantity, fee, totalCost, avgCost, product } = movement
if (info === null) { if (info === null) {
+3 -5
View File
@@ -33,10 +33,8 @@ export class PosController {
return this.posService.getProductCategories(Number(posId)) return this.posService.getProductCategories(Number(posId))
} }
@Post('/orders/create') @Post('/:posId/orders/create')
async createOrder(@Body() dto: CreateOrderDto) { async createOrder(@Param('posId') posId: string, @Body() dto: CreateOrderDto) {
const inventoryId = await this.posService.getDefaultInventoryId() return this.posService.createOrder(Number(posId), dto)
return this.posService.createOrder(dto, inventoryId!)
} }
} }
+7 -1
View File
@@ -173,7 +173,13 @@ export class PosService {
return ResponseMapper.list(categories) 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 { customerId, ...res } = data
const preparedOrder = { ...res } as any const preparedOrder = { ...res } as any
const lastCode = await this.prisma.salesInvoice const lastCode = await this.prisma.salesInvoice