正航批號管理功能 Plus(加增儲位版)

版本定位:在原本「依批號查庫存」基礎上,加上「儲位管理」與「異動總帳」
資料源:正航 ERP(MSSQL) + 本地儲位資料庫(SQLite)


一、系統目標


二、系統架構

1) 後端

2) 前端頁面(Jinja2 模板)


三、資料表(SQLite)

1) batch_locations

欄位 型別 說明
id INTEGER PK 儲位記錄主鍵
prod_id TEXT SKU(對應正航 ProdID
batch_id TEXT 批號(對應正航 BatchID
location TEXT 儲位(例:A20-1-1)
quantity INTEGER 此儲位現有量(可為空)
remark TEXT 備註
created_at TIMESTAMP 建立時間(預設 NOW)

外鍵FOREIGN KEY(location_id) REFERENCES batch_locations(id) ON DELETE CASCADE


四、主要業務規則

  1. ERP 查詢條件

    • 只抓 庫存 > 0(BCQty > 0 的批號

    • 排除倉庫 BWareID <> 'B'

    • 只顯示欄位:SKU(ProdID)、品名規格(ProdName)、批號(BatchID)、倉庫(WareID)、數量(BCQty)、製造日期(ProduceDate)、有效期限(ValidDate)

  2. 儲位管理

    • 新增儲位:若同 SKU+批號+儲位 不存在,建立記錄;若有初始量會同時寫入總帳(INITIAL_STOCK)。

    • 編輯儲位:若數量變動,寫入總帳(MANUAL_EDIT)。

    • 刪除儲位:僅允許庫存=0 時刪除,否則阻擋。

  3. 異動單(Transfer Slip)

    • 可從搜尋結果將儲位加入「待處理異動」。

    • 執行異動時,每筆會:

      • 驗證目前量是否足夠扣減

      • 更新儲位量、寫入總帳(TRANSFER_DEDUCTION

      • 產生參考單號:MV-YYYYMMDDHHMMSS

  4. 總帳(Ledger)

    • 任何造成儲位量變化的操作都寫入此表。

    • 可於 /history 依時間序檢視。


Revision #1
Created 19 August 2025 07:00:22 by Wayne
Updated 19 August 2025 07:01:31 by Wayne