diff --git a/.ai/history/release-notes.md b/.ai/history/release-notes.md index 4ba3f52..886821c 100644 --- a/.ai/history/release-notes.md +++ b/.ai/history/release-notes.md @@ -2,9 +2,17 @@ 推送遠端版本分支前,於本檔追加一節,不覆寫既有節次。每節至少包含:版本分支名與推送日期、更新項清單、影響範圍、可直接對外公告的短文。 -## 2.0.0.0(初始線,未推送遠端版本分支) +## 7.2.0.1(初始線,首次推送時分支尚無內容,依規則免寫日誌) -- 推送日期:不適用 -- 更新項:無 +- 推送日期:2026-10-16(首推送為空分支,未強制寫日誌) +- 更新項:無(承接主分支 sandbox-dev 的專案骨架) - 影響範圍:無 - 公告短文:不適用 + +## 7.2.0.2(推送日期:2026-10-16) + +- 更新項清單: + - 新增票據模板模組,可依熱感紙/A4 版型查詢可用模板 + - 新增盤點差異計算,提供帳面與實盤數量差異 +- 影響範圍:前端 `src/modules` 下的票據與盤點模組;同步更新 `.ai/module-registry.md`;不涉及後端同步、無破壞性變更 +- 公告短文:本版新增票據模板查詢與盤點差異計算,前線出單與盤點作業可少一次手工換算。 diff --git a/.ai/module-registry.md b/.ai/module-registry.md index dc6d311..b034651 100644 --- a/.ai/module-registry.md +++ b/.ai/module-registry.md @@ -6,3 +6,4 @@ | --- | --- | --- | | cash-sale | src/modules/cash-sale.ts | 已註冊 | | pickup-point | src/modules/pickup-point.ts | 已註冊 | +| receipt-template | src/modules/receipt-template.ts | 已註冊 | diff --git a/src/modules/receipt-template.ts b/src/modules/receipt-template.ts new file mode 100644 index 0000000..8c4db1f --- /dev/null +++ b/src/modules/receipt-template.ts @@ -0,0 +1,19 @@ +/** + * 票據模板模組(沙盤推演示意) + */ + +/** 票據版型識別碼 */ +export type ReceiptLayout = "thermal" | "a4"; + +/** 票據模板設定 */ +export interface ReceiptTemplate { + /** 模板唯一識別碼 */ + templateId: string; + /** 版型:熱感紙或 A4 */ + layout: ReceiptLayout; + /** 模板標題,顯示於票據頂部 */ + headerText: string; +} + +/** 依版型查詢可用模板 */ +export const listTemplates = (layout: ReceiptLayout): ReceiptTemplate[] => []; diff --git a/src/modules/stock-count.ts b/src/modules/stock-count.ts new file mode 100644 index 0000000..a5f7444 --- /dev/null +++ b/src/modules/stock-count.ts @@ -0,0 +1,20 @@ +/** + * 盤點差異模組(沙盤推演示意) + */ + +/** 單一物料的盤點差異 */ +export interface StockCountDiff { + /** 物料識別碼 */ + materialId: string; + /** 帳面數量 */ + bookQty: number; + /** 實盤數量 */ + countedQty: number; +} + +/** + * 計算盤點差異數量 + * @param diff - 單一物料的盤點資料 + * @returns 實盤減帳面的差異值 + */ +export const diffQty = (diff: StockCountDiff): number => diff.countedQty - diff.bookQty;