程式資訊
- 程式 ID:
TRLOST - 所屬子系統:H.庫存管理
- 狀態:stable
耗料單¶
功能簡介¶
「耗料單」是庫存異動交易單據,用來記錄生產或倉儲過程中料件的耗用、報廢、異常領料、不良品處理與儲位調撥,並據以增減各倉儲(料位)的庫存。它與加工單共用同一套主/明細交易引擎(trwkma / trwkde 視圖),差別在於本單聚焦在「料件損耗與不良處理」這一類異動,每筆明細可記錄不良類別、不良原因、處理方式、異常原因等品管資訊。
實際的單據行為由主檔的 序號前置碼(單據前置碼)決定,常見為:
PC 異常領料:生產線臨時、超耗的異常領料,須填寫不良原因碼。BT 儲位調撥:同一倉庫內料位之間的調撥(轉出倉儲 → 轉入倉儲)。MP 生產領退單:由生產領退轉入的耗料異動。
主要使用者為生管、倉管與品管人員:在領料、報廢或盤點調整時開立耗料單,讓帳上庫存與實際用料一致,並把不良/異常資訊留存供後續分析與成本歸屬。
本單與『耗料轉生產(Trlost_A)』的關係
工具列的延伸功能可開啟 耗料轉生產 視窗(程式 Trlost_A,標題 Consumption Order To Production),把生產領退單的備料區異動轉成耗料單。Trlost_A 是獨立的轉單視窗,詳見欄位連動與附加功能。
前置需求¶
- 權限:H.庫存管理 →
H-020 耗料單的瀏覽 / 修改 / 列印權限。 - 基礎資料:下列主檔與參數會直接影響欄位帶值與存檔檢核——
| 資料 | 影響什麼 |
|---|---|
| 倉庫主檔 | 主檔 隸屬倉庫 的搜尋與帶值;明細 轉出倉儲 / 轉入倉儲 的料位過濾(依隸屬倉庫過濾) |
| 品號主檔 | 明細 品號 輸入後帶出 品名 / 單位;庫存查詢 |
| 客戶 / 廠商 / 部門主檔 | 主檔 交易部門(客廠部)的搜尋與簡稱顯示 |
| 幣別與匯率資料 | 主檔 幣別 / 匯率 預設值(本位幣、匯率 1),明細金額換算 |
單據前置碼設定(TRLOST) |
主檔 序號前置碼 可選清單;決定單號自動編碼與存檔檢核規則 |
| 交易別代碼(依前置碼) | 明細 交易別碼 下拉清單(依主檔序號前置碼動態載入) |
| 不良類別 / 不良原因 / 處理方式 / 異常原因代碼(C218 / C219 / C220 / C221) | 明細各品管下拉欄位的可選值 |
| 關帳日期設定 | 交易日期早於關帳日期時擋下存檔(透過轉單視窗檢核) |
操作步驟¶
新增耗料單¶
- 從主選單開啟 H 庫存管理 → 耗料單。
- 點選工具列
新增。系統自動帶入預設值(公司代碼、今天的交易日期、本位幣、匯率 1,詳見欄位說明)。 - 在主檔區輸入:
- 隸屬倉庫:以搜尋框選擇倉庫。若序號前置碼為
BT 儲位調撥,系統會自動把 交易部門 帶成隸屬倉庫。 - 序號前置碼(Preifix):選擇單據類型(如
PC 異常領料、BT 儲位調撥)。 - 交易日期:預設今天,可修改。
- 交易部門:以搜尋框選擇客戶 / 廠商 / 部門,旁邊唯讀欄會顯示其簡稱。
- 視需要調整 幣別 / 匯率(外幣時匯率由幣別控件自動帶當日賣出匯率)。
- 隸屬倉庫:以搜尋框選擇倉庫。若序號前置碼為
- 在下方明細格輸入料件:
- 選 交易別碼(下拉,依序號前置碼載入),帶出唯讀的 交易說明。
- 輸入 品號(SKU 欄可搜尋),系統自動帶出 品名 / 單位。
- 輸入 數量、選 轉出倉儲 / 轉入倉儲(料位,依隸屬倉庫過濾)。
- 視需要輸入 材料單價 / 代工單價,系統自動加總成 單價 並算出 原幣未稅 / 本幣未稅。
- 若為不良 / 異常處理,填寫 不良類別碼 / 不良原因碼 / 處理方式碼 / 異常原因碼 與 備註。
-
點選
儲存。小技巧
儲存前可在明細列按
單價查詢按鈕,叫出該品號的歷史進貨單價(見欄位連動與附加功能)。 -
存檔成功後系統產生 單號 / 倉單號(皆為唯讀、系統自動編碼)。
修改¶
- 以查詢或上 / 下一筆移動到目標單據。
- 點選
修改,調整欄位後儲存。
可修改的限制
下列情況系統會擋下修改:
- 本單由其他單據轉入(主檔 轉入備註 有值)→ 顯示「由其他單據轉入不可修改」。
- 任一明細已 轉帳款(轉帳款數量 ≠ 0)→ 顯示「已轉立帳款不可修改」。
刪除¶
- 移動到目標單據,點選
刪除,確認後即整單刪除。 - 明細列若 品號為空,視為空白列,不會列入需刪除的明細(系統自動忽略)。
列印¶
移動到目標單據後,點選工具列 列印 / 預覽,依報表範本輸出耗料單。
查詢¶
使用工具列查詢、上一筆 / 下一筆,或條件查詢面板定位單據。明細選取後,右側支援面板可切到 庫存查詢 頁查該品號的即時庫存。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 倉單號 | — | 系統自動產生,唯讀 |
| 單號 | — | 系統自動產生,唯讀 |
| 隸屬倉庫 | ✔ | 搜尋框選擇;影響明細料位過濾。BT 前置碼時自動帶入交易部門 |
| 序號前置碼(Preifix) | ✔ | 單據類型(PC/BT/MP 等);對應 ProgramClass=TRLOST 的前置碼清單 |
| 交易日期 | ✔ | yyyy/MM/dd,新增時預設今天 |
| 交易部門 | ✔ | 客戶 / 廠商 / 部門搜尋;右側唯讀欄顯示 客廠部簡稱 |
| 幣別 | — | 新增時預設本位幣(Context.Env.LocalCurrency) |
| 匯率 | — | 新增時預設 1;外幣時由幣別控件帶當日賣出匯率 |
| 關聯單號 | — | 來源單據號,唯讀(由轉單帶入) |
| 交易備註 | — | 文字,100 字 |
| 其他摘要(Notes) | — | 多行文字,999 字 |
已隱藏的舊欄位
XAML 中 發票日期 / 發票號碼 / 發票金額 / 稅額 等控件為舊英文 schema 殘留,目前在版面上已註解隱藏,不需填寫;另有 專案代號(ProjectCode) 控件因主檔視圖已無對應欄位而整個移除。
明細欄位¶
| 欄位 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 序號(Line No) | — | 系統產生 |
| 交易別碼 | ✔ | 下拉,依主檔序號前置碼載入;選後帶出唯讀 交易說明 |
| 品號(SKU) | ✔ | 搜尋框;帶出 品名 / 單位 |
| 數量 | ✔ | 數值;變動時重算金額 |
| 單位(UOM) | — | 帶自品號,可改(下拉) |
| 轉出倉儲 / 轉入倉儲 | 視前置碼 | 料位搜尋,依隸屬倉庫過濾(BT 調撥時兩者並用) |
| 材料單價 / 代工單價 | — | 數值;兩者相加自動帶入 單價 |
| 單價 | — | =材料單價+代工單價;變動時重算金額 |
| 其他金額 | — | 數值;併入未稅金額計算 |
| 原幣未稅 | — | =(數量×單價+其他金額),依幣別小數位四捨五入 |
| 本幣未稅 | — | =原幣未稅×匯率,依本位幣小數位四捨五入 |
| 不良類別碼 / 不良原因碼 | 視前置碼 | 下拉(C218 / C219);PC 異常領料 時 不良原因碼 為必填 |
| 處理方式碼 | — | 下拉(C220) |
| 異常原因碼 | — | 下拉(C221) |
| 備註 / 備註1 | 視原因 | 文字 120 字;不良原因碼=7 時 備註 為必填 |
| 途程序號 / 工程代號 / 批號別 / 批號 | — | 唯讀,由來源(派工單 / 零件表)帶入 |
| 派工單號 / 零件表號 / 申請單號 / 暫收單號 | — | 唯讀來源追溯欄位 |
欄位連動與附加功能¶
這一節整理「輸入某欄位 / 按某按鈕後系統會做什麼」,皆來自實際程式碼(TrlostViewModel、Twork_stk_vw_trwkdeSource、TrlostSave / TrlostEdit)。
主檔欄位連動¶
- 新增單據時(
AfterAddNew):系統自動把每筆主檔設成——公司代碼1、交易日期=今天、匯率1、幣別=本位幣、隸屬倉庫帶入。若序號前置碼為BT 儲位調撥,交易部門 自動帶成隸屬倉庫。同時把右側支援面板切到 庫存查詢 頁。 - 改隸屬倉庫:明細列的料位過濾(
WarehouseFilter)會跟著更新,轉出 / 轉入倉儲 的搜尋只會列出該隸屬倉庫下的料位。 - 改幣別:所有明細的換算幣別同步更新並重算金額(原幣未稅 依新幣別小數位四捨五入、本幣未稅 連動重算)。
- 改匯率:所有明細的換算匯率同步更新並重算 本幣未稅。
- 改序號前置碼:系統重新載入明細 交易別碼 的下拉清單(依新前置碼對應的交易別代碼)。
明細欄位連動¶
- 輸入品號:自動帶出 品名 / 單位(透過
DescriptionHelper),並觸發該列的單價查詢(叫出歷史進貨單價,見下)。 - 輸入數量 / 單價 / 其他金額:立即重算金額——
- 原幣未稅 = (數量 × 單價 + 其他金額),依幣別小數位四捨五入。
- 本幣未稅 = 原幣未稅 × 匯率,依本位幣小數位四捨五入。
- 輸入材料單價或代工單價:兩者相加自動寫回 單價,再連動重算上述金額(
SetUnitPrice)。 - 選交易別碼 / 不良原因 / 處理方式 / 不良類別 / 異常原因:各下拉選取後帶出對應的中文說明(唯讀欄位)。
單價查詢(明細工具列按鈕 Price Query)¶
每一明細列都有一個 單價查詢 按鈕。按下後(或輸入品號自動觸發)系統會用主檔的 交易日期 與 交易部門(廠商) 去查該品號的歷史進貨單價,結果顯示在右側支援面板的 單價查詢 頁。
需有檢視單價權限
單價查詢只有在使用者具備「檢視單價」權限(AllowViewPrice)時才會作用。
存檔檢核(TrlostSave)¶
存檔時除一般庫存單據檢核外,針對 PC 異常領料 前置碼還會逐筆檢查明細:
- 有填品號但 不良原因碼=0(未選) → 擋下,提示請輸入不良原因碼。
- 不良原因碼=7 且 備註空白 → 擋下,提示請輸入備註。
延伸功能(工具列 / 其他功能)¶
本單在工具列「其他功能」提供 6 個轉單入口,分別開啟對應的轉單視窗;轉單完成後回傳新單 Pkid,畫面自動定位到新產生的耗料單:
| 入口 | 開啟視窗 | 用途 |
|---|---|---|
| 其他功能 1 | Wktomp(Work Order Picking) |
派工單領料轉耗料 |
| 其他功能 2 | Wktomp1(Material Should Return Picking) |
應退料領退轉耗料 |
| 其他功能 3 | Trlost_A(Consumption Order To Production) |
耗料轉生產(備料區異動轉耗料,見下) |
| 其他功能 4 | Tptowk(Inspection to Inventory) |
檢驗入庫轉耗料 |
| 其他功能 5 | Ngtrna(NG to Inventory) |
不良品(NG)入庫轉耗料 |
| 其他功能 6 | Wktoin(Production to Inventory) |
生產入庫轉耗料 |
耗料轉生產(Trlost_A)¶
Trlost_A 是獨立的轉單視窗(程式 Trlost_A),把生產領退單的備料區異動整理成耗料單:
- 輸入 生產部門(Production Department),按
查詢(撈最近 100 天、序號前置碼為MP 生產領退單且轉入 / 轉出倉儲為「備料區」的資料)。 - 上方清單列出可轉的耗料單(主檔),下方顯示其明細;勾選要轉的列。
- 設定 交易日期;系統會以該部門的 關帳日期(Closed Date) 檢核——交易日期須晚於關帳日期,否則擋下「已關帳」。
- 按存檔,系統把備料區的轉出 / 轉入料位還原成真實料位(待轉入倉 / 待轉出倉),完成轉單。
- 若來源資料被其他人鎖定(編輯中),會列在 Locked Source 頁,顯示鎖定人員與筆數。
轉單僅限可轉日期的資料
清單中交易日期早於關帳日期的列會標記備註「小於關帳日期」且不可勾選。
常見問題¶
明細的金額(原幣未稅 / 本幣未稅)一直是 0?
金額是由 數量 × 單價(+其他金額) 自動算出的。請確認該列已輸入 數量 且 單價 不為 0。單價可直接輸入,或由 材料單價+代工單價 自動加總而來。本幣未稅還會再乘上主檔 匯率,本位幣時匯率為 1。
存檔時提示要輸入「不良原因碼」或「備註」?
這是 PC 異常領料 前置碼的存檔檢核:有填品號的明細必須選 不良原因碼;若不良原因碼選的是第 7 項,則 備註 也必填。請補齊後再存檔。
按了修改卻被擋下,說「不可修改」?
兩種情況會擋修改:① 這張單是由其他單據轉入的(主檔 轉入備註 有值);② 明細已經 轉帳款(轉帳款數量 ≠ 0)。已立帳或來自轉單的單據不允許直接修改,需循原流程處理。
輸入品號後沒有帶出品名 / 單位?
品名與單位由品號主檔帶出。請確認該品號存在於品號主檔且未停用;若品號輸入錯誤或主檔缺資料,描述欄會留空。
轉出 / 轉入倉儲(料位)搜尋不到想要的料位?
料位下拉會依主檔 隸屬倉庫 過濾,只列出該倉庫底下的料位。請先確認主檔的隸屬倉庫選對,再選料位。
「耗料轉生產」查不到任何可轉資料?
該功能只撈最近 100 天、序號前置碼為 MP 生產領退單、且轉入或轉出倉儲為「備料區」、生產部門符合輸入值的資料。請確認區間內有符合條件的生產領退單,且該部門的交易日期晚於關帳日期。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/H-Inventory/images/):
trlost-step1.png— 耗料單主畫面(主檔區 + 明細格)trlost-step2.png— 明細列輸入(品號帶值 + 金額自動計算 + 不良 / 異常下拉)trlost-step3.png— 單價查詢支援面板trlost-step4.png— 耗料轉生產(Trlost_A)轉單視窗(含 Locked Source 頁)