feat(cardex): enhance stock movement retrieval with additional fields and optimized mapping

refactor(migration): update Stock_Movements table to include counterInventoryId and customerId, add foreign key constraints, and implement triggers for inventory management
This commit is contained in:
2025-12-23 20:35:44 +03:30
parent c6a86719dd
commit 89c57a69c1
10 changed files with 1366 additions and 143 deletions
+21 -23
View File
@@ -26,31 +26,29 @@ export class CardexService {
const items = await this.prisma.stockMovement.findMany({
where,
include: { product: true, inventory: true },
include: {
product: { select: { id: true, name: true, sku: true } },
inventory: { select: { id: true, name: true } },
counterInventory: {
select: { id: true, name: true },
},
supplier: {
select: { id: true, firstName: true, lastName: true },
},
customer: {
select: { id: true, firstName: true, lastName: true },
},
},
omit: {
productId: true,
inventoryId: true,
counterInventoryId: true,
supplierId: true,
customerId: true,
},
orderBy: { createdAt: 'desc' },
})
const mapped = items.map(i => ({
id: i.id,
type: i.type,
quantity: Number(i.quantity),
fee: Number(i.fee),
totalCost: Number(i.totalCost),
referenceType: i.referenceType,
referenceId: i.referenceId,
createdAt: i.createdAt,
avgCost: Number(i.avgCost),
product: {
name: i.product.name,
sku: i.product.sku,
id: i.productId,
},
inventory: {
name: i.inventory.name,
id: i.inventoryId,
},
}))
return ResponseMapper.list(mapped)
return ResponseMapper.list(items)
}
}