feat(inventory): support line-based assignments and movements
This commit is contained in:
@@ -56,8 +56,14 @@ export const ItemService = {
|
||||
assets: opts?.includeAssets
|
||||
? { select: { id: true, serialNumber: true, status: true } }
|
||||
: false,
|
||||
movements: opts?.includeMovements
|
||||
? { select: { id: true, type: true, quantity: true } }
|
||||
stockMovementLines: opts?.includeMovements
|
||||
? {
|
||||
select: {
|
||||
id: true,
|
||||
stockDelta: true,
|
||||
movement: { select: { type: true } },
|
||||
},
|
||||
}
|
||||
: false,
|
||||
},
|
||||
})
|
||||
@@ -114,13 +120,23 @@ export const ItemService = {
|
||||
findByIdWithAssetAndMovementCount: async (
|
||||
id: string,
|
||||
): Promise<ItemWithAssetAndMovementCount | null> => {
|
||||
return prisma.item.findUnique({
|
||||
const item = await prisma.item.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
category: { select: { id: true, name: true } },
|
||||
_count: { select: { assets: true, movements: true } },
|
||||
_count: { select: { assets: true, stockMovementLines: true } },
|
||||
},
|
||||
})
|
||||
|
||||
return item
|
||||
? {
|
||||
...item,
|
||||
_count: {
|
||||
assets: item._count.assets,
|
||||
movements: item._count.stockMovementLines,
|
||||
},
|
||||
}
|
||||
: null
|
||||
},
|
||||
|
||||
findByName: async (
|
||||
@@ -129,7 +145,7 @@ export const ItemService = {
|
||||
): Promise<Item | null> => {
|
||||
return db.item.findFirst({
|
||||
where: { name },
|
||||
include: { category: true, assets: true, movements: true },
|
||||
include: { category: true, assets: true, stockMovementLines: true },
|
||||
}) as Promise<Item | null>
|
||||
},
|
||||
|
||||
@@ -139,7 +155,7 @@ export const ItemService = {
|
||||
): Promise<Item | null> => {
|
||||
return db.item.findUnique({
|
||||
where: { id },
|
||||
include: { category: true, assets: true, movements: true },
|
||||
include: { category: true, assets: true, stockMovementLines: true },
|
||||
}) as Promise<Item | null>
|
||||
},
|
||||
|
||||
@@ -153,7 +169,13 @@ export const ItemService = {
|
||||
include: {
|
||||
category: true,
|
||||
assets: { select: { id: true, serialNumber: true, status: true } },
|
||||
movements: { select: { id: true, type: true, quantity: true } },
|
||||
stockMovementLines: {
|
||||
select: {
|
||||
id: true,
|
||||
stockDelta: true,
|
||||
movement: { select: { type: true } },
|
||||
},
|
||||
},
|
||||
},
|
||||
}) as Promise<Item[]>
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user