10 Commits

Author SHA1 Message Date
HIsheR ddc707d5cc merge(7.2.0.4): 合併遠端第二批追加,日誌節交叉衝突逐側比對
兩人的日誌節依推送順序排列,兩節皆保留
2026-10-16 15:58:46 +08:00
HIsheR 81482928e3 docs(release): 補寫 7.2.0.4 追加需求更新日誌(交叉與依賴前置批)
本地先寫日誌,尚未推送
2026-10-16 15:57:53 +08:00
HIsheR c94a92d9c0 merge(stock-count): CSV 匯出(依賴 F1)併入版本分支 7.2.0.4 2026-10-16 15:57:24 +08:00
HIsheR 05bf7bf57f merge(stock-count): 報表彙整(前置 F1)併入版本分支 7.2.0.4 2026-10-16 15:57:24 +08:00
HIsheR fef87731bd feat(stock-count): 新增差異報表 CSV 匯出
F2 依賴前置功能分支 F1 的報表列型別
2026-10-16 15:57:17 +08:00
HIsheR 5520767f2e feat(stock-count): 新增盤點差異報表彙整
前置功能分支 F1,供後續匯出功能依賴
2026-10-16 15:56:59 +08:00
HIsheR 37a6e2dca0 merge(receipt): 標題可選併入版本分支 7.2.0.4
交叉衝突逐側比對:同時保留頁尾欄位與標題可選語意,並標註熱感紙版型仍需有值
2026-10-16 15:56:31 +08:00
HIsheR 91baf5196c merge(receipt): 頁尾文字併入版本分支 7.2.0.4 2026-10-16 15:56:14 +08:00
HIsheR 1dd7efd1b0 feat(receipt): 票據標題改為可選並帶入門店名稱
與另一功能分支同時改動同一欄位說明
2026-10-16 15:56:14 +08:00
HIsheR edf5cf6d36 feat(receipt): 票據模板新增頁尾文字欄位
同時收緊標題欄位的必填語意說明
2026-10-16 15:55:56 +08:00
3 changed files with 37 additions and 2 deletions
+11
View File
@@ -49,3 +49,14 @@
- 倉庫標籤補上預設顏色常數,未設定顏色時使用 - 倉庫標籤補上預設顏色常數,未設定顏色時使用
- 影響範圍:`src/modules/warehouse-label.ts`(原由第一開發者建立,本次由第二位開發者補強);不涉及後端同步、無破壞性變更 - 影響範圍:`src/modules/warehouse-label.ts`(原由第一開發者建立,本次由第二位開發者補強);不涉及後端同步、無破壞性變更
- 公告短文:本版補上倉庫標籤的預設顏色,未設定時不再顯示為空。 - 公告短文:本版補上倉庫標籤的預設顏色,未設定時不再顯示為空。
## 7.2.0.4 追加(交叉與依賴前置批|推送日期:2026-10-16)
- 版本分支名:7.2.0.4(沿用既有版本號;本批含交叉功能分支與依賴前置功能)
- 更新項清單:
- 票據模板新增頁尾文字欄位
- 票據標題改為可選,留空時帶入門店名稱(熱感紙版型仍需有值)
- 盤點差異報表彙整(前置功能)
- 盤點差異報表 CSV 匯出(依賴前述報表彙整)
- 影響範圍:`src/modules/receipt-template.ts`、`src/modules/stock-count.ts`;兩個票據模板功能分支交叉改動同一欄位,合併時逐側比對並折中兩側語意;CSV 匯出必須在前置報表併入版本分支後才可併入,順序顛倒會把未驗收的前置功能一併帶入;不涉及後端同步
- 公告短文:本版追加票據頁尾與標題預設規則,並提供盤點差異報表與 CSV 匯出。
+4 -2
View File
@@ -11,8 +11,10 @@ export interface ReceiptTemplate {
templateId: string; templateId: string;
/** 版型:熱感紙或 A4 */ /** 版型:熱感紙或 A4 */
layout: ReceiptLayout; layout: ReceiptLayout;
/** 模板標題,顯示於票據頂部 */ /** 模板標題,顯示於票據頂部;留空則帶入門店名稱(熱感紙版型需有值) */
headerText: string; headerText?: string;
/** 票據頁尾文字,顯示於票據底部 */
footerText: string;
} }
/** 依版型查詢可用模板 */ /** 依版型查詢可用模板 */
+22
View File
@@ -18,3 +18,25 @@ export interface StockCountDiff {
* @returns 實盤減帳面的差異值 * @returns 實盤減帳面的差異值
*/ */
export const diffQty = (diff: StockCountDiff): number => diff.countedQty - diff.bookQty; 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) }));
/**
* 將差異報表列轉為 CSV 字串(依賴 F1 的報表列型別)
* @param rows - 差異報表列
* @returns 以換行分隔的 CSV 內容
*/
export const toCsv = (rows: StockCountReportRow[]): string => rows.map((row) => `${row.materialId},${row.diff}`).join("\n");