跳轉到

程式資訊

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

委外發料單轉暫收(Outsourcing to Temp Receiving)

功能簡介

「委外發料單轉暫收」是一個轉單(Turn-in)視窗:把已經發料給委外加工廠的派工單(委外發料),依委外廠商與預訂完工日撈出尚未回廠(暫收)的料件,由使用者勾選並填入要暫收的數量,再一次性轉成一張委外暫收單(與 委外暫收驗收單 TWRAMA 同一單據體系)。

本頁是該轉單視窗的英文/外銷版(程式碼 TWRAMA_E,視窗標題 Outsourcing to Temp Receiving,畫面欄位皆為英文)。它與中文版的差異只在介面語言,底層撈料邏輯與寫入的單據完全相同。負責委外收料的品管/資材人員,在做委外回廠暫收驗收時用它把派工單的未收量帶進來,省去逐筆手key品號、數量、採購單號。

與 TWRAMA 的關係

本視窗本身不是一張可獨立維護的單據,它是「來源 → 暫收單」的轉入工具:查詢來源(委外派工單)、選量、按儲存後,系統會建立一張新的暫收單(UploadPrgClass = TWRAMA),後續的品檢、檢驗完畢、列印仍回到 委外暫收驗收單 TWRAMA 操作。

目前尚未掛在主畫面按鈕

依現行程式碼,委外暫收驗收單 TWRAMA 的「其他1(ExtendedFunction1)」開的是 採購單轉暫收 PURAMA_E,而非本視窗;WindowName 清單中也尚未登錄 Twrama_E。也就是說本視窗的程式(XAML/ViewModel/BLL)已完成,但目前沒有任何主表單的工具列按鈕會叫起它。下方操作步驟描述的是視窗被開啟後的實際行為,實際接點待主畫面補上呼叫。

前置需求

  • 權限:J.品質管理 → J-021 委外發料單轉暫收 的瀏覽/新增權限(與 委外暫收驗收單 TWRAMA 同一單據群組)。
  • 系統參數:使用者參數 U_Prgpar("30171") 會被當成預設倉儲代號帶入。若該參數未設定,倉庫欄會留空(倉庫非查詢必填)。
  • 基礎資料:能不能撈到來源、轉出後金額對不對,取決於下列資料——
資料 影響的結果
委外派工單(已發料、未全數回廠) 主畫面可撈出的未暫收明細;無發料量(PickedQuantity > 0)的單不會出現
委外廠商(生產部門)主檔 VendorCode 搜尋帶值、轉出暫收單的廠商欄
倉儲主檔 Warehouse 搜尋、暫收單的入庫倉
派工單上的採購單號/單價 轉出明細的採購單號/單價/金額(金額由系統依數量×單價重算)
本位幣設定 暫收單幣別固定帶 Context.Env.LocalCurrency(本位幣)

操作步驟

整個視窗分成兩個頁籤:主作業頁 Outsourcing To Temp Receiving 與 Locked Source(被他人鎖定的來源)。

  1. 由委外暫收相關主畫面開啟本視窗(見上方「尚未掛在主畫面按鈕」說明)。開窗時系統自動帶入:
    • TempReceivingDate(暫收日期)=今天。
    • ETA(預訂完工日上限)=今天 +30 天。
    • Warehouse(倉庫)=參數 U_Prgpar("30171")。
  2. 輸入查詢條件:
    • VendorCode:委外廠商代號(必填,可用搜尋帶值)。
    • ETA:只撈預訂完工日 ≤ 此日的派工單(必填)。
    • Warehouse:暫收入庫倉(可改、非必填)。
    • TempReceivingDate:本批暫收要記的日期(必填)。
  3. 按 Query(查詢)。系統撈出該廠商、預訂完工日在 ETA(含)以前、且尚有未暫收量(數量 > 已暫收量、已發料、未結案)的派工料件,列在主資料表格。每列的 Temp Receiving Quantity 會先歸零。
  4. 逐列決定要暫收的量,二擇一:
    • 直接在 Temp Receiving Quantity 欄輸入數字;或
    • 按該列的 Select 按鈕,系統自動把該列暫收量填成剩餘可收量(Quantity − Received Quantity);再按一次 Select 則歸零(切換)。
  5. 觀察畫面左下的 Subtotal:它是所有列暫收量的即時加總,方便核對本批總收量。
  6. 確認無誤後按 Save(儲存)。系統檢核通過後,會把有填量的明細寫成一張新的委外暫收單。
  7. 按 Cancel 放棄本次轉入,或按 Exit 關閉視窗。

Locked Source 頁籤

若查詢時部分來源正被其他使用者編輯/占用,這些列會出現在 Locked Source 頁籤(頁籤標題會顯示鎖定筆數)。被鎖定的料件這次無法轉入,待對方釋放後再查一次即可。

欄位說明

查詢條件區

欄位 必填 說明/格式/預設
VendorCode(委外廠商) ✔ 委外加工廠代號;對應派工單的「生產部門」。空白按查詢會跳輸入提示
ETA(預訂完工日上限) ✔ 短日期;只撈預訂完工日 ≤ 此日的派工單。預設=今天 +30 天
Warehouse(倉庫) — 暫收入庫倉;預設帶參數 U_Prgpar("30171"),可改可空
TempReceivingDate(暫收日期) ✔ 短日期;寫入暫收單的暫收日期。預設=今天
Subtotal(合計) — 唯讀;所有列 Temp Receiving Quantity 的即時加總,系統自動算(淺色提示欄)

主資料表格(可轉入來源)

欄位 可編輯 說明
Work Order No(派工單號) — 來源委外派工單號
Purchase Order No(採購單號) — 派工單對應的採購單號,會帶進暫收明細
Vendor(廠商) — 委外廠商
ETA — 該料件預訂完工日
SKU(品號) — 委外加工料件品號
SKUDescription(品名) — 品號說明
UOM(單位) — 計量單位
Quantity(數量) — 派工單原數量
Received Quantity(已暫收量) — 先前已暫收的累計量
Select — 按鈕;自動填入「剩餘可收量=Quantity − Received Quantity」,再按歸零
Temp Receiving Quantity(本次暫收量) ✔ 本次要暫收的量;唯一可編輯數量欄,預設 0
Remark(備註) ✔ 可填本列備註,會帶進暫收明細

Locked Source 頁籤

欄位 說明
Editing User(占用者) 正在編輯/鎖定該來源的使用者,本次無法轉入
其餘欄位 與主資料表格相同(Work Order No、SKU、Quantity… 唯讀,無 Select)

欄位連動與附加功能

這一節把「輸入某欄位 / 按某按鈕後,系統會做什麼」逐條列出,全部來自實際程式碼。

開窗時的預設值(建構式)

當你開啟視窗,系統會:

  • 把 TempReceivingDate 帶成今天(DateTimeWrapper.TodayYYYYMMDD())。
  • 把 ETA 帶成今天 +30 天。
  • 把 Warehouse 帶成使用者參數 U_Prgpar("30171") 的值。

按 Query(查詢)

當你按查詢,系統會依序:

  1. 檢核必填——若 VendorCode、TempReceivingDate 或 ETA 任一為空,跳出「請輸入○○」提示並中止(Warehouse 不檢核,可空)。
  2. 呼叫轉單查詢(TWORK_TUR_WPTOTP 預存程序),撈條件為:生產部門=你輸入的 VendorCode、預訂完工日 ≤ ETA、數量 > 已暫收量、未結案(IsClosed ≠ Y 且結案日為空)、且已發料(PickedQuantity > 0)。
  3. 把結果分流到兩個資料表格:可轉入的列進主資料表格(Master),被他人鎖定的列進 Locked Source。
  4. 主資料表格每列的 Temp Receiving Quantity 一律先歸零,等你決定要收多少。

按列上的 Select

當你按某一列的 Select 按鈕,系統會在「全收」與「歸零」之間切換:

  • 若該列目前暫收量 ≠ 剩餘可收量 → 自動填成剩餘可收量(Quantity − Received Quantity)。
  • 若已等於剩餘可收量(已全收)→ 再按一次歸零。

這是快速把一列「整批收進來」的捷徑,不用手打數量。

輸入 / 變動 Temp Receiving Quantity

當任一列的 Temp Receiving Quantity 改變,系統會即時連動:

  • 重新計算左下 Subtotal=所有列暫收量加總(透過弱事件監聽,每改一列就重算)。
  • 將該列標記為「已選取」(暫收量 > 0 時 IsSelected = true)。
  • 重新評估該列是否「超收」(暫收量 > 剩餘可收量),供儲存前檢核使用。

按 Save(儲存)——轉出成暫收單

當你按儲存,系統會先做兩道檢核,全部通過才寫入:

  1. 至少一列有量——若沒有任何一列暫收量 > 0,跳「請至少選擇一筆資料」並中止。
  2. 不可超收——若任一列暫收量 > 剩餘可收量(Quantity − Received Quantity),跳「暫收量超過剩餘量」並中止。

檢核通過後,系統把有量的列組成一張新的委外暫收單寫入(UploadPrgClass = TWRAMA),其中:

  • 暫收單主檔:公司代碼 1、倉儲=你選的 Warehouse、暫收日期=你填的 TempReceivingDate、生產部門=VendorCode、採購別=採購、幣別=本位幣、建檔日期=現在、單號前置碼依 TWRAMA 規則取得。
  • 暫收明細:逐列帶入品號、品名、單位、本次暫收量、備註、預訂交期、採購單號、單價、來源派工單 pkid;金額由系統依「數量 × 單價」重算(SetAmount)。
  • 存檔成功後記住新單的 pkid(供呼叫端帶頁定位用)。

幣別固定本位幣

轉出暫收單的幣別一律帶 Context.Env.LocalCurrency(系統本位幣),明細不另設外幣匯率。委外加工屬內部料件流,這是設計而非缺漏。

Cancel / Exit

  • Cancel:放棄本次轉入。
  • Exit:關閉視窗(在 Locked Source 頁籤儲存進行中時,Exit 鈕會被暫時停用,避免半途關閉)。

沒有列印/轉傳票

本視窗只負責「來源 → 暫收單」的轉入,不提供列印、沖帳或轉傳票。列印暫收單、品檢、檢驗完畢等動作請到 委外暫收驗收單 TWRAMA 進行。

常見問題

按查詢沒有任何資料?

請逐項確認:(1) VendorCode 是正確的委外廠商;(2) 該廠商的派工單預訂完工日落在 ETA(含)以前——ETA 預設只到今天+30天,若委外完工日較晚要把 ETA 往後調;(3) 派工單已發料(有領料量)且尚未全數回廠(數量 > 已暫收量)、未結案。完全沒符合的料件就不會出現。

想轉的料件出現在 Locked Source、轉不進來?

代表該來源正被 Editing User 欄顯示的使用者編輯/占用。被鎖定的列本次無法轉入,請待對方存檔/離開後再按一次 Query 重查。

按儲存跳「請至少選擇一筆資料」?

表示沒有任何一列填了暫收量。請在 Temp Receiving Quantity 欄輸入數字,或按該列的 Select 自動帶入剩餘可收量,再儲存。

按儲存跳「暫收量超過剩餘量」?

某列的本次暫收量大於「Quantity − Received Quantity」。系統不允許超收,請把該列暫收量調到剩餘可收量以內(按 Select 會直接帶成剛好的剩餘量)。

Warehouse 沒帶到預設值?

倉庫預設來自使用者參數 U_Prgpar("30171"),若該參數未設定就會留空。倉庫非查詢必填,可以手動用搜尋帶入或留待暫收單再補。

我在 TWRAMA 主畫面按「其他」,開出來卻是採購來源的畫面?

這是已知現象:目前 委外暫收驗收單 TWRAMA 的「其他1」開的是 採購單轉暫收 PURAMA_E,本「委外發料單轉暫收」視窗尚未接到主畫面按鈕(見頁首警告)。功能本身已完成,待主畫面補上呼叫接點。

相關功能


需補截圖清單

以下截圖待視窗實際被主畫面接上、可 runtime 操作後補拍(放 docs/J-Quality/images/):

  1. twrama_e-step1.png — 查詢條件區(VendorCode / ETA / Warehouse / TempReceivingDate 與 Query 按鈕)
  2. twrama_e-step2.png — 主資料表格查詢結果(含 Select 按鈕與 Temp Receiving Quantity 欄、Subtotal 合計)
  3. twrama_e-step3.png — Locked Source 頁籤(被他人鎖定的來源與占用者)