程式資訊
- 程式 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(被他人鎖定的來源)。
- 由委外暫收相關主畫面開啟本視窗(見上方「尚未掛在主畫面按鈕」說明)。開窗時系統自動帶入:
- TempReceivingDate(暫收日期)=今天。
- ETA(預訂完工日上限)=今天 +30 天。
- Warehouse(倉庫)=參數
U_Prgpar("30171")。
- 輸入查詢條件:
- VendorCode:委外廠商代號(必填,可用搜尋帶值)。
- ETA:只撈預訂完工日 ≤ 此日的派工單(必填)。
- Warehouse:暫收入庫倉(可改、非必填)。
- TempReceivingDate:本批暫收要記的日期(必填)。
- 按
Query(查詢)。系統撈出該廠商、預訂完工日在 ETA(含)以前、且尚有未暫收量(數量 > 已暫收量、已發料、未結案)的派工料件,列在主格線。每列的 Temp Receiving Quantity 會先歸零。 - 逐列決定要暫收的量,二擇一:
- 直接在 Temp Receiving Quantity 欄輸入數字;或
- 按該列的
Select按鈕,系統自動把該列暫收量填成剩餘可收量(Quantity − Received Quantity);再按一次Select則歸零(切換)。
- 觀察畫面左下的 Subtotal:它是所有列暫收量的即時加總,方便核對本批總收量。
- 確認無誤後按
Save(儲存)。系統檢核通過後,會把有填量的明細寫成一張新的委外暫收單。 - 按
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(查詢)¶
當你按查詢,系統會依序:
- 檢核必填——若 VendorCode、TempReceivingDate 或 ETA 任一為空,跳出「請輸入○○」提示並中止(Warehouse 不檢核,可空)。
- 呼叫轉單查詢(
TWORK_TUR_WPTOTP預存程序),撈條件為:生產部門=你輸入的 VendorCode、預訂完工日 ≤ ETA、數量 > 已暫收量、未結案(IsClosed ≠ Y 且結案日為空)、且已發料(PickedQuantity > 0)。 - 把結果分流到兩個格線:可轉入的列進主格線(Master),被他人鎖定的列進 Locked Source。
- 主格線每列的 Temp Receiving Quantity 一律先歸零,等你決定要收多少。
按列上的 Select¶
當你按某一列的 Select 按鈕,系統會在「全收」與「歸零」之間切換:
- 若該列目前暫收量 ≠ 剩餘可收量 → 自動填成剩餘可收量(Quantity − Received Quantity)。
- 若已等於剩餘可收量(已全收)→ 再按一次歸零。
這是快速把一列「整批收進來」的捷徑,不用手打數量。
輸入 / 變動 Temp Receiving Quantity¶
當任一列的 Temp Receiving Quantity 改變,系統會即時連動:
- 重新計算左下 Subtotal=所有列暫收量加總(透過弱事件監聽,每改一列就重算)。
- 將該列標記為「已選取」(暫收量 > 0 時 IsSelected = true)。
- 重新評估該列是否「超收」(暫收量 > 剩餘可收量),供儲存前檢核使用。
按 Save(儲存)——轉出成暫收單¶
當你按儲存,系統會先做兩道檢核,全部通過才寫入:
- 至少一列有量——若沒有任何一列暫收量 > 0,跳「請至少選擇一筆資料」並中止。
- 不可超收——若任一列暫收量 > 剩餘可收量(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,本「委外發料單轉暫收」視窗尚未接到主畫面按鈕(見頁首警告)。功能本身已完成,待主畫面補上呼叫接點。
相關功能¶
- 委外暫收驗收單 TWRAMA — 本視窗轉出的暫收單,後續品檢/列印在此進行
- 採購單轉暫收 PURAMA_E — 採購來源的同類轉入視窗(目前 TWRAMA 主畫面實際開的是這支)
- 工單作業品質轉暫收 WKRAMA_E — 工單來源的同類轉入視窗
- 品質管理模組總覽
- 生產管理模組 — 委外派工單來源
- 採購管理模組 — 委外採購單/單價來源
- 庫存管理模組 — 暫收入庫倉
需補截圖清單
以下截圖待視窗實際被主畫面接上、可 runtime 操作後補拍(放 docs/J-Quality/images/):
twrama_e-step1.png— 查詢條件區(VendorCode / ETA / Warehouse / TempReceivingDate 與 Query 按鈕)twrama_e-step2.png— 主格線查詢結果(含 Select 按鈕與 Temp Receiving Quantity 欄、Subtotal 合計)twrama_e-step3.png—Locked Source頁籤(被他人鎖定的來源與占用者)