/** * 盤點差異模組(沙盤推演示意) */ /** 單一物料的盤點差異 */ export interface StockCountDiff { /** 物料識別碼 */ materialId: string; /** 帳面數量 */ bookQty: number; /** 實盤數量 */ countedQty: number; } /** * 計算盤點差異數量 * @param diff - 單一物料的盤點資料 * @returns 實盤減帳面的差異值 */ export const diffQty = (diff: StockCountDiff): number => diff.countedQty - diff.bookQty; /** 盤點差異報表列 */ export interface StockCountReportRow { /** 物料識別碼 */ materialId: string; /** 該物料的差異量 */ diff: number; } /** * 依盤點資料彙整差異報表 * @param diffs - 盤點差異清單 * @returns 逐物料的差異報表列 */ export const buildReport = (diffs: StockCountDiff[]): StockCountReportRow[] => diffs.map((diff) => ({ materialId: diff.materialId, diff: diffQty(diff) }));