跳轉到

程式資訊

  • 程式 IDPurama_E
  • 所屬子系統:J.品質管理
  • 狀態:stable

採購單轉入暫收(Purchasing to Temp Receiving)

功能簡介

「採購單轉入暫收」是一個共用彈出視窗(視窗抬頭 Purchasing to Temp Receiving),介面為英文版。它不是獨立的主選單功能,而是由進貨暫收驗收單(Purama)、製程品質(Twrama)、工作品質(Wkrama)、客訴管理(Complain)維修作業(Repair)這幾張單據透過工具列的 其他1 按鈕開啟。

它的作用是:依廠商 + 倉庫 + 預訂交期把尚未交清的採購單明細撈出來,讓使用者勾選並輸入「在途/暫收數量」,按下儲存後直接產生一張新的進貨暫收單,再把該暫收單的 Pkid 回傳給呼叫端,讓主畫面自動切換(navigate)到剛建立的那筆暫收單。

簡單說,它把「人工逐筆新增暫收單明細」的動作,換成「從採購單批次帶料、自動建單」,是進料暫收流程的快速入口。品管/倉管人員在收到一批採購到貨時,用它一次把整批採購明細轉成暫收單。

與 Purama 的關係

本視窗有自己的程式代號 PURAMA_E 與獨立的 ViewModel/BLL,但沒有獨立的主選單入口,必須從上述單據的 其他1 進入。產生的暫收單則歸屬於 PURAMA(進貨暫收單),儲存與上傳都走 Purama 的資料表。

前置需求

  • 權限:開啟本視窗的來源單據(如 J-010 進貨暫收單)的瀏覽權限即可;本視窗本身無獨立選單權限。
  • 基礎資料:能不能撈到可轉入的採購明細,取決於下列資料——
資料 影響的結果
採購單(含明細、預訂交期) 可轉入的明細清單;只撈未結案、未交清的明細
廠商主檔(VendorCode 查詢的必要條件;對應採購單的廠商代號
倉儲主檔(Warehouse 查詢的必要條件;對應採購單表頭的倉儲代號
採購單表頭「是否暫收」設為 Y 採購單須允許暫收,否則該採購單不會出現
系統參數 U_Prgpar 3017 進入視窗時帶入的預設倉庫
允收上限(ReceivingLimits 暫收數量可超收的百分比上限,超過會擋存檔

注意

查詢條件中廠商代號、暫收日期、ETA 三項皆為必填,缺一不可查詢。倉庫雖也是查詢條件之一,但程式未強制檢核(檢核碼已被註解保留)。

操作步驟

  1. 在主畫面(Purama/Twrama/Wkrama/Complain/Repair)按工具列的 其他1 開啟本視窗。
  2. 設定查詢條件(位於畫面上方):
    1. VendorCode:輸入或搜尋廠商代號(必填)。
    2. ETA:預訂交期上限,預設為今天 +30 天;只撈預訂交期早於(含)此日的明細(必填)。
    3. Warehouse:倉庫代號,進入時預設帶入參數 3017 的倉庫。
    4. TempReceivingDate:暫收日期,預設為今天(必填)。
  3. 查詢(Query)載入符合條件的採購明細,結果顯示在 Purchase Order To Temp Receiving 分頁的格線。
  4. 對要轉入的每一列,在 In Transit Quantity(暫收數量)欄輸入要暫收的數量;
    • 或直接按該列的 Select 按鈕,系統會自動把該列填成「可暫收的剩餘量」(再按一次則歸零)。
  5. 畫面右側的 Subtotal(合計)會隨輸入即時加總所有列的暫收數量。
  6. 確認無誤後按工具列的儲存(SqlEditTurn 的存檔),系統建立一張新的進貨暫收單;
    • 存檔成功後視窗回傳新暫收單的 Pkid,主畫面自動 navigate 到該筆暫收單。
  7. Exit 關閉視窗。

小技巧

Select 按鈕是一個切換鈕:第一次按填滿「剩餘可暫收量」,第二次按清為 0。適合要全量轉入時免去逐欄打字。只想部分轉入時,直接在 In Transit Quantity 欄輸入數量即可。

Locked Source 分頁

若查詢時發現有採購明細正被其他使用者鎖定編輯,這些明細會列在 Locked Source 分頁(分頁標題會顯示被鎖定的筆數)。此分頁僅供檢視,列出鎖定者(Editing User)與該明細資訊,無法在此分頁轉入。

欄位說明

查詢條件

欄位 必填 說明/格式/預設
VendorCode 廠商代號,可用搜尋鈕帶出;對應採購單廠商代號
ETA 預訂交期上限(短日期);預設今天 +30 天;只撈預訂交期 ≤ 此日的明細
Warehouse 倉庫代號(搜尋);預設取參數 U_Prgpar 3017;查詢條件之一但未強制檢核
TempReceivingDate 暫收日期(短日期);預設今天;存檔時寫入暫收單表頭
Subtotal 唯讀 所有列暫收數量的即時加總;系統自動計算,不可輸入

採購明細格線(Purchase Order To Temp Receiving)

欄位 可編輯 說明
Purchase Order No 採購單號
Vendor 廠商代號
ETA 該明細的預訂交期
Line No 採購單明細序號
SKU/SKUDescription 品號/品名
UOM 單位
Quantity 採購數量
Received Quantity 已交數量
Select 按鈕欄;切換填滿/歸零暫收量(見欄位連動與附加功能
In Transit Quantity 本次要暫收(在途)的數量,預設 0;轉入的主欄位
Remark 備註,會帶入產生的暫收單明細
Vendor SKU 廠商品號
Warehouse Code 倉庫代號

Locked Source 格線

欄位 說明
Editing User 正在鎖定/編輯這筆採購明細的使用者
Purchase Order No/Line No/SKU/… 被鎖定明細的基本資料(唯讀檢視)

欄位連動與附加功能

這一節說明「輸入或按下某欄位後系統會做什麼」,全部依實際程式碼整理。

  • 進入視窗時帶預設值:開窗時 TempReceivingDate 帶今天、ETA 帶今天 +30 天、Warehouse 帶系統參數 U_Prgpar("3017") 的倉庫。可在查詢前自行修改。

  • 查詢(Query)

    • 先檢核 VendorCodeTempReceivingDateETA 三欄不可空白,任一為空會跳提示並中止。
    • 通過後以「廠商代號 = VendorCode、倉儲代號 = Warehouse、預訂交期 ≤ ETA」為條件撈採購明細,並且只取未交清且超出已暫收量採購單與明細皆未結案、且採購單表頭「是否暫收 = Y」的明細。
    • 撈回的明細,每列的 In Transit Quantity 一律重設為 0(需自行填數量)。
    • 同時把被他人鎖定的明細放到 Locked Source 分頁,並更新分頁上的鎖定筆數。
  • 按某列 Select 按鈕:呼叫該列的「填滿/歸零」切換邏輯(SetTempReceivedQuantity)——

    • 若目前 In Transit Quantity 不等於「剩餘可暫收量(Quantity − Received Quantity)」,就把它一鍵填成剩餘可暫收量;
    • 若已等於剩餘量(代表已全量),再按一次則歸零。
  • 輸入 / 改變 In Transit Quantity 時的即時連動

    • 視窗監聽每一列的 TempReceivedQuantity(In Transit Quantity) 變化(透過 PropertyChangedEventManager 弱事件),任一列改值就重新加總所有列,更新右上角 Subtotal。此重算僅在單據處於編輯(非 Normal)狀態時生效。
    • 同一列只要暫收量 > 0,該列自動標記為「已選取」(IsSelected)。
    • 若暫收量超過「剩餘可暫收量 ×(1 + 允收上限 %)」,該列 NeedDelete 會成立而被判定為超收,存檔時會擋下。
  • 按儲存(建立暫收單):存檔前 BLL 會檢核——

    • 至少要有一列 In Transit Quantity > 0,否則提示「請選擇一筆資料」並中止。
    • 不可有任一列超收(超過允收上限),否則提示「暫收數量超過剩餘數量」並中止。
    • 通過後,系統用查詢條件組出一張新的進貨暫收單:表頭帶公司別、倉庫(Warehouse)、暫收日期(TempReceivingDate)、生產部門=廠商代號、採購別=採購、幣別=本位幣、單號前置碼自動取號;明細逐列帶入品號、品名、廠商品號、單位、暫收數量、單價、金額(未稅)、幣別、預訂交期、來源採購單號與採購單明細 pkid 等。
    • 沒有品檢日期的明細,其「暫收批數」會被設為 0。
  • 存檔成功後回傳 Pkid 並切換畫面:存檔完成後,視窗把新建暫收單的 Pkid 記下並關閉;呼叫端(Purama/Twrama/Wkrama/Complain/Repair 的 其他1)偵測到 Pkid 後,自動 navigate 到該筆新暫收單,使用者回到主畫面時即停在剛轉入的單據上繼續作業。

  • Exit 按鈕:直接關閉視窗,不做任何資料異動。

外幣與單價

產生的暫收單明細,單價、未稅金額、幣別都直接沿用採購明細上的值;表頭幣別則固定帶本位幣。本視窗不重算匯率或稅額。

常見問題

按了「其他1」但查不到任何採購明細?

請依序確認:(1) VendorCodeETATempReceivingDate 三項必填都已輸入;(2) 該廠商在指定倉庫確有採購單;(3) 採購明細尚未交清(採購數量 − 已交數量 > 暫收數量 − NG 數量);(4) 採購單與明細都未結案;(5) 採購單表頭「是否暫收」設為 Y;(6) 明細的預訂交期早於或等於你輸入的 ETA

Subtotal 一直是 0,或沒有隨輸入變動?

Subtotal 是所有列 In Transit Quantity 的即時加總。若維持 0,表示尚未在任何一列輸入暫收量。請在要轉入的列輸入數量,或按該列 Select 鈕一鍵帶入剩餘量。

按儲存卻擋下,說「暫收數量超過剩餘數量」?

代表有某列的 In Transit Quantity 超過了「剩餘可暫收量 ×(1 + 允收上限 %)」。允收上限取自品號/採購設定(ReceivingLimits)。請把該列的暫收量調回容許範圍內再存檔。

想轉入的採購明細出現在「Locked Source」分頁,不能勾?

該明細正被其他使用者鎖定編輯(分頁會顯示鎖定者帳號)。請待對方結束編輯後重新 查詢,明細才會回到可轉入的清單。

存檔後主畫面沒有跳到新暫收單?

本視窗存檔成功才會回傳 Pkid 讓主畫面切換。若沒有任何列暫收量 > 0、或被超收檢核擋下,就不會建立暫收單,也不會切換畫面。請確認存檔有實際成功。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/J-Quality/images/):

  1. purama_e-step1.png — 從主畫面 其他1 開啟視窗的入口
  2. purama_e-step2.png — 查詢條件面板(VendorCode/ETA/Warehouse/TempReceivingDate)
  3. purama_e-step3.png — 採購明細格線(含 Select 按鈕與 In Transit Quantity 欄、Subtotal 合計)
  4. purama_e-step4.png — Locked Source 分頁(被鎖定明細與鎖定者)