跳轉到

程式資訊

  • 程式 IDTWRAMA_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 ReceivingLocked 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. 檢核必填——若 VendorCodeTempReceivingDateETA 任一為空,跳出「請輸入○○」提示並中止(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.pngLocked Source 頁籤(被他人鎖定的來源與占用者)