程式資訊
- 程式 ID:
WKRAMA - 所屬子系統:J.品質管理
- 狀態:stable
成品暫收單¶
功能簡介¶
「成品暫收單」用來把自製品(成品/半成品)從生產現場轉入暫收倉並進行製程品檢(IPQC)的單據。生產日報完工後、正式入庫前,品保人員在此登錄每筆成品的檢驗結果(合格/特採/退貨)、NG 與抽檢數量,作為後續入庫與品質追溯的依據。
它與進貨暫收單(PURAMA,J-010,登錄外購進貨)是同一個資料表家族(共用 Twork_jqc_vw_purama / Twork_jqc_vw_purade 檢視表):差別在於進貨暫收處理向廠商買進的料、成品暫收處理自家生產線做出來的成品。明細中的 生產單號、派工單號 等工單欄位即是成品暫收特有的生產追溯資訊。
資料層與 PURAMA 共用
本表單的 Master/Detail 與 PURAMA 使用同一組 Source 與資料表。新版程式的 WkramaViewModel 目前回傳的 ProgramClass 為 PURAMA(與 PURAMA 共用權限與單號流水),與選單登錄的 WKRAMA(J-030)並不一致。實務操作不受影響,但設定權限時請留意這項共用關係。
前置需求¶
- 權限:J.品保 →
J-030 成品暫收單的新增/修改/刪除/瀏覽/列印權限。 - 基礎資料:下列主檔須先維護,否則對應欄位會帶不出值或無法存檔——
| 資料 | 影響什麼 |
|---|---|
| 倉庫主檔 | 倉儲代號 的下拉查詢與倉庫簡稱;預設倉庫取自參數 6008 |
| 部門/廠商主檔 | 生產部門 的查詢與 客廠部簡稱 帶值 |
| 品號主檔 | 明細 SKU 查詢、自動帶 品名 與 單位 |
| 生產日報(WKPAPER)與派工單 | 成品暫收轉入 的來源資料(須完工且工單註記「轉成品」) |
| 幣別/匯率主檔 | 新增時帶入的本位幣別 |
參數 6008(預設倉庫)
新增時系統會以使用者參數 6008 自動帶入預設倉儲代號。若新單的倉庫永遠空白,請先確認該參數已設定。
操作步驟¶
新增成品暫收單¶
- 開啟「成品暫收單」進入主畫面。
- 按工具列
新增。系統自動帶入:本位幣別、預設倉儲代號(參數 6008)、公司代碼、建檔日期=今日、暫收日期=今日。 - 在 生產部門 欄輸入或查詢代號,系統帶出 客廠部簡稱。
- 視需要調整 倉儲代號(暫收入庫的倉庫)。
- 以下兩種方式建立明細:
- 手動逐筆:在明細格線輸入 SKU(自動帶品名/單位)、Quantity、NGQuantity、Accept On Division Quantity(特採數量)、Sample Quantity(抽檢數量)、Unit Price、InspectionResult(檢驗結果)。
- 由生產日報轉入:按
其他1開啟成品暫收轉入視窗,依生產部門與日期把完工的生產日報批次帶進明細(詳見欄位連動與附加功能)。
- 全部檢驗完成後,把 檢驗完畢 設為
是。 - 按
儲存。存檔前系統會檢核 暫收日期 不可空白,並自動為主檔補上序號前置碼TW。
金額自動算
明細的 Currency Amount Without Tax(金額)為唯讀,會在你改 Quantity 或 Unit Price 時自動重算(金額=數量 × 單價,四捨五入至 2 位)。
修改與刪除¶
- 用工具列的查詢/前後筆(
第一筆/上一筆/下一筆/最後一筆)切換到要處理的單據。 - 修改後按
儲存。 - 刪除整張單據按
刪除。- 已由採購單帶入的明細列(採購單 Pkid 大於 0)不可編輯(該列
CanEdit為 false),只有手動/日報轉入、未綁採購單的列才能改。
- 已由採購單帶入的明細列(採購單 Pkid 大於 0)不可編輯(該列
切換單據後倉庫簡稱
換筆顯示時系統會依 倉儲代號 重新帶出倉庫簡稱(AfterMoverRecord)。若簡稱欄空白,多半是該倉庫已從倉庫主檔停用或刪除。
列印¶
- 按工具列
列印。系統開啟暫收單列印視窗(PuramaPrint),並以目前單據的 生產部門 與 暫收日期 預先帶入查詢起訖。 - 確認條件後輸出報表。
列印報表規劃中
列印視窗(PURAMAPRINT)目前僅帶入查詢條件,實際報表來源(Crystal/FastReport 取數)在新版程式中尚以註解保留、未啟用。完整暫收單明細報表為規劃中功能。
欄位說明¶
主檔(Master)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 暫收單號 | 系統產生 | 唯讀;存檔時依前置碼 TW 自動編號 |
| 暫收日期 | ✔ | 預設今日(YYYY/MM/DD);空白時擋存檔 |
| 生產部門 | — | 以廠商/部門查詢風格輸入代號,帶出 客廠部簡稱 |
| 倉儲代號 | ✔ | 暫收入庫倉;新增預設參數 6008,帶出倉庫簡稱 |
| 檢驗完畢 | — | 是/否;全部明細檢驗完成後設為 是 |
| CreatedDate(建檔日期) | — | 新增/複製時自動帶今日 |
| 暫收備註 | — | 文字備註(上限 80 字) |
明細(Detail)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Line No(序號) | 系統 | 唯讀流水序號 |
| SKU(品號) | ✔ | 輸入後自動帶 品名 與 單位 |
| SKUDescription(品名) | 系統 | 由品號帶出,唯讀 |
| Quantity(數量) | ✔ | 暫收數量;改值即重算金額 |
| Inspection Date(檢驗日期) | — | 唯讀,由系統/品檢流程帶入 |
| NGQuantity(NG 數量) | — | 不良數量 |
| Accept On Division Quantity(特採數量) | — | 特採(讓步接收)數量 |
| Sample Quantity(抽檢數量) | — | 抽檢數量 |
| UOM(單位) | — | 下拉,預設取自品號單位 |
| Unit Price(單價) | — | 改值即重算金額 |
| Currency Amount Without Tax(金額) | 系統 | 唯讀=數量 × 單價(四捨五入 2 位) |
| Remark(備註) | — | 明細備註 |
| ETA(預訂交期) | — | 唯讀 |
| InspectionResult(檢驗結果) | — | 下拉:1.特採/2.允收/3.退貨/4.其他 |
| Warehouse In Quantity(入庫數量) | 系統 | 唯讀,後續入庫帶入 |
| Warehouse In Date(入庫日期) | 系統 | 唯讀 |
| Closed(是否結案) | — | 勾選結案;亦會依數量自動判定 |
| Work Daily Document No(生產單號) | 系統 | 由日報轉入帶入,成品追溯用 |
| Work Daily Report Pkid(生產單 Pkid) | 系統 | 來源生產日報主鍵 |
| Work Order No(派工單號) | 系統 | 派工單追溯 |
| Purchase Order No/Pkid(採購單號/Pkid) | 系統 | 唯讀;有值代表該列由採購單帶入,不可編輯 |
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某按鈕後,系統會做什麼」,全部來自實際程式碼(WkramaViewModel、WkramaSave、Twork_jqc_vw_purama/purade Source、Wkrama_EBll)。
新增時的預設帶值(AfterAddNew)¶
當你按 新增,系統會自動:
- 把主檔 幣別 設為本位幣(
Context.Env.LocalCurrency)。 - 把 倉儲代號 設為使用者參數
6008的值,並依此帶出倉庫簡稱。 - 設定公司代碼為 1。
- 把 建檔日期 設為現在時間、暫收日期 設為今日。
SKU 連動(SKUBinding)¶
當你在明細輸入或查 SKU,系統會透過 DescriptionHelper.SetISKU 自動帶出該品號的 品名 與相關屬性。若品號空白,該列在存檔時會被視為待刪除列(NeedDeleteFunction)。
金額自動重算(QuantityBinding/UnitPriceBinding/SetAmount)¶
當你修改明細的 Quantity 或 Unit Price,系統立即重算 金額=數量 × 單價(四捨五入至 2 位)。金額 欄唯讀,不能直接打。
結案自動判定(SetIsClosed)¶
明細提供結案判定:當「數量 − 入庫數量 − NG 數量 ≤ 0」時,是否結案 設為 Y,否則清空。格線上的 Closed 核取方塊也可手動勾選。
採購單來源列不可編輯(CanEdit)¶
明細列若 採購單 Pkid 大於 0(代表由採購/進貨流程帶入),整列 CanEdit 為 false,欄位鎖定唯讀;只有手動或由生產日報轉入、未綁採購單的列才能編輯。
其他1:由生產日報轉入成品(ExtendedFunction1)¶
按主畫面 其他1 會開啟暫收轉入視窗,把已完工的來源批次帶進明細:
- 設計上應由 成品暫收轉入(
Wkrama_E) 視窗,依下列條件抓生產日報(wkpapera):- 生產部門 = 主檔的生產部門。
- 生產日期 介於「暫收日期往前 100 天」到暫收日期之間。
- 該日報的 生產數量 > 已暫收數量(還有未轉入的量)。
- 對應派工單註記 轉成品 = Y(
TransferToFinishedGoods)。
- 你在轉入視窗逐筆填要暫收的數量(不可超過剩餘量,否則擋存)。
- 帶回後系統自動建立明細列,填入 SKU/品名/單位/數量 與來源 生產單 Pkid(不帶單價,金額先為 0,待品檢時再補單價重算);主檔同時帶入生產部門、暫收日期、倉庫、本位幣與前置碼。
目前 其他1 路由到進貨暫收轉入
新版 WkramaViewModel.ExtendedFunction1 目前開的是 進貨暫收轉入(Purama_E) 視窗,而非成品專用的 Wkrama_E。成品轉入的後端邏輯(Wkrama_EBll,掛 ProgramClass.WKRAMA)已存在,但主畫面按鈕尚未接到它。若你在此處看到的是「採購/進貨」的轉入清單而非生產日報清單,即為此已知差異;正式接線前,成品轉入請以實際出現的視窗為準。
存檔檢核與前置處理(WkramaSave)¶
按 儲存 時:
- 先跑共用存檔檢核(
AllowSave)。 - 額外檢核主檔 暫收日期 不可空白,空白時提示輸入並擋存。
- 存檔前(
HandleDataBeforeEndEdit)把主檔 序號前置碼 設為TW;若為新增/複製狀態,補上 建檔日期 =現在時間。
列印帶值(GetPrintViewModel)¶
按 列印 會建立 PuramaPrintViewModel,並用目前單據的 生產部門(起=迄)與 暫收日期(起=迄)預填查詢條件。報表實際取數邏輯為規劃中(見操作步驟 → 列印)。
常見問題¶
新增後倉庫永遠空白?
新增的預設倉儲代號取自使用者參數 6008。若該參數未設定,新單倉庫就會空白。請先在系統參數維護好 6008,或新增後手動選倉庫。
明細金額一直是 0?
金額 是唯讀、由系統算的(數量 × 單價)。請確認你有填 Quantity 與 Unit Price——只填數量、沒填單價時金額自然是 0。直接改金額欄是無效的。
某些明細列灰掉不能改?
該列的 採購單 Pkid 大於 0,代表是由採購/進貨流程帶進來的,整列鎖唯讀。只有手動輸入或由生產日報轉入、未綁採購單的列才能編輯。
按 其他1 跑出來的清單不是生產日報,而是進貨資料?
這是目前已知的接線差異:主畫面 其他1 暫時路由到進貨暫收轉入(Purama_E)。成品轉入邏輯(依生產部門、近 100 天、轉成品=Y 的生產日報)已實作於 Wkrama_E,但主按鈕尚未接上。詳見欄位連動與附加功能。
存檔時被擋,提示要輸入暫收日期?
暫收日期 為必填,空白會擋存。新增時系統本會帶今日,若被清空請補回日期再存。
成品轉入清單抓不到某張生產日報?
轉入只抓符合全部條件的日報:生產部門相符、生產日期在暫收日期往前 100 天內、生產數量 > 已暫收數量、且派工單註記 轉成品=Y。任一條件不符就不會出現——常見是日期超過 100 天、已全部暫收完,或工單未勾「轉成品」。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/J-Quality/images/):
wkrama-step1.png— 主畫面新增後的空白單(含預設倉庫/暫收日期)wkrama-step2.png— 明細格線(SKU、數量、NG/特採/抽檢、檢驗結果下拉)wkrama-step3.png—其他1開啟的暫收轉入視窗(標註目前路由到 Purama_E 的情形)wkrama-step4.png— 列印條件視窗