feat(pos): update createOrder method to accept posId and retrieve inventoryId
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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!)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user