跳轉到

程式資訊

  • 程式 ID:PDTINF_1
  • 所屬子系統:F.生產管理
  • 狀態:stable

銷售訂單轉製令(拆併單)

功能簡介

「銷售訂單轉製令」是 製令/製通單 表單上的延伸視窗,用來把尚未轉製令的銷售訂單明細一次轉成製通單(製單別=訂單)。它最大的特色是支援拆單與併單:

  • 併單:同一品號(SKU)散落在多張訂單的需求,可以合併成一張製令一起生產。
  • 拆單:同一張訂單明細的數量太大,可拆成多筆製令分批生產(每筆會在製通單明細各佔一列)。

使用者通常是生管人員。在製通單主檔按下「其他功能一」(轉製令)按鈕後,本視窗以模態彈窗開啟;確認轉檔成功後,主檔會自動跳到剛產生的那張製通單。它在流程上承接「業務已下單」、產出「待生產的製通單」,再由製通單流向領料、製程與報工。

與製通單手動新增的差異

製通單也可以手動新增(手動新增時製單別預設為備料),本視窗則是從既有銷售訂單批次帶出,並自動回填客戶、品號、數量、出貨日期與各階段預訂日,省去逐筆key單。轉出的製通單製單別固定為訂單。

前置需求

  • 權限:F.生產 → 製令(PDTINF) 的瀏覽與新增權限。本視窗沒有獨立選單,是透過製通單的延伸功能進入,因此沿用製通單的權限。
  • 基礎資料:待轉資料與回填欄位的完整度,取決於下列來源——
資料 影響的結果
銷售訂單(含明細交期、未轉製令的明細) 本視窗清單的來源;沒有未轉製令的訂單就查不到資料
客戶主檔 帶出客戶代號/客戶簡稱
品號主檔、製程/前置天數(Leadtime) 費用品號(含 -)自動回推出貨日/備料完成日/預訂生產日/預訂完工日
工作日曆 回推日期時跳過非工作日
BOM 製令成立後才展開用料;本視窗本身不依賴 BOM 資料

操作步驟

開啟視窗

  1. 進入 製令/製通單 表單。
  2. 按工具列的 其他功能一(轉製令)。系統以模態視窗開啟「Sales Order To Production」。

步驟① 查詢待轉訂單

  1. 按視窗下方的 查詢。系統呼叫轉檔查詢,把目前尚未轉製令的銷售訂單明細載入上方資料表格(候選清單)。
  2. 同時下方第二個頁籤 Locked Source(鎖定中) 會列出正被其他使用者編輯中的來源,標籤旁顯示鎖定筆數。這些資料你無法同時操作,待對方存檔或取消後重查即可。

查不到資料時

若查詢結果為空,系統會提示「無資料」。代表查詢區間內沒有「未轉製令」的訂單明細,或全部被其他人鎖定。

步驟② 指定要轉的列(拆單/併單)

候選清單每一列最左邊有一個 Combine(合併)按鈕,左鍵與右鍵行為不同:

  1. 左鍵點 Combine → 把這一列加入「轉出清單」並嘗試併單:
    • 系統會找出同品號(SKU)且已被選取的列,若已有同品號的合併目標,就把本列數量累加進去(多張訂單併成一張製令)。
    • 若同品號還沒有合併目標,則以本列複製出一筆新的「合併單」。
    • 被選取的列會標上一個流水狀態碼(Status Code),代表它屬於哪一組合併。
  2. 右鍵點 Combine → 把這一列當作單獨一筆轉出(不與任何人合併),狀態碼標為 -1。
  3. 再次點按已選的列可以取消:左鍵取消合併(數量從合併單扣回,合併組空了就移除),右鍵取消單獨轉出。

每按一次,下方第二資料表格「轉出清單(TmpUpload)」即時反映目前要轉出的製令內容,可隨時檢視合併後的數量。

怎麼判斷品號是否重複

同一品號的最後一筆的 SKU 欄會以紫色標示(提醒同品號還有多筆可一起併單),方便快速找出可併單的群組。

步驟③ 存檔轉出

  1. 確認轉出清單無誤後,按 儲存。
  2. 存檔成功後,系統會依設定自動關閉本視窗,並讓製通單主檔跳到剛產生的那張製令(透過 PKID 導頁)。

存檔前的兩道檢查

  1. 不可有未指定的列:轉出清單中若還有狀態碼為 0 的資料(既沒併也沒單獨選),會擋下存檔。
  2. 單一訂單明細拆單上限 30 筆:同一張「訂單編號+訂單項次」被拆成超過 30 筆時會擋存,並提示該筆訂單編號與項次。

欄位說明

候選清單與轉出清單的欄位相同,皆由銷售訂單帶出、唯讀為主(數量與部分日期可改):

欄位 可編輯 說明/格式/預設
Status Code(狀態碼) — 拆併分組代碼。0=未選取;>0=合併組序號;-1=單獨轉出
Split Or Combine Quantity(拆併數量) — 拆單/併單後的數量
Customer Code/Name(客戶代號/簡稱) — 由訂單帶出
Sales Order No(訂單編號) — 來源訂單編號
Sales Order Line No(訂單項次) — 來源訂單項次
SKU(品號) — 同品號最後一列以紫色標示
SKUDescription(品名) — 品號說明
Schedule Notes(計畫備註) — 帶入製通單的計畫備註
Quantity(數量) ✔ 要生產的數量;併單時各列數量會累加成合併單數量
Shipping Date(出貨日期) — 由訂單交期帶出;費用品號自動回推
Estimated Completion Date(預訂完工日) ✔ 預計完工日
Preparation Completed Date(備料完成日) ✔ 預計備料完成日
Estimated Manufacture Date(預訂生產日) ✔ 預計開工日
Production Lot(生產批) — 生產批量參考
Production Ratio(生產比例) — 生產比例參考
Weeks(週數) — 交期週數參考

Locked Source(鎖定中) 頁籤多出 Editing User(編輯者)、Actual Completion Date(實際完工日)、Actual Manufacture Date(實際生產日),用來辨識是誰在編輯該筆來源。

日期格式

各日期欄位以 YYYYMMDD 字串儲存與比較,畫面上以該格式顯示。

欄位連動與附加功能

這一節把「按某按鈕/點某列會發生什麼」「某種品號存檔時系統怎麼算」完整列出,全部來自實際程式行為。

查詢與鎖定來源

  • 當你按 查詢,系統會:
    1. 重置合併計數器,呼叫轉檔查詢(後端 TWORK_TUR_PDTINF),把候選清單載入上方資料表格、鎖定中的來源載入第二頁籤。
    2. 對候選清單依品號建立索引(lookup),供後續併單時快速找到同品號的列。
    3. 把每個品號分組後的最後一筆設為 ColorSKU=1,畫面上以紫色標示,提醒同品號還有多筆可併單。
  • 第二頁籤 Locked Source 的標題會即時顯示鎖定筆數(LockedCount)。這些是被其他使用者「進入編輯」而鎖住的來源,你這次無法轉出。

費用品號(SKU 含 -)的日期自動回推

  • 當某列品號含有 -(代表是費用項目)時,查詢載入後系統會自動依預訂交期(ETA)與備料前置天數(Leadtimest)回推下列日期。各日期都是從 ETA 各自往前推算(不是逐階相接),設備料前置天數為 day:
    • 出貨日期 = ETA 往前推 day 個工作日。
    • 備料完成日 = ETA 往前推 day + 4 個工作日。
    • 預訂生產日 = ETA 往前推 day + 3 個工作日。
    • 預訂完工日 = ETA 往前推 day + 2 個工作日。
  • 回推時使用工作日曆(會跳過非工作日)。其中備料完成日/預訂生產日/預訂完工日若回推結果早於今天會改成今天;出貨日期不套用此「不早於今天」的保護。

一般品號(不含 -)

一般品號的各階段日期沿用訂單原本帶出的值,不做上述自動回推。日期欄位仍可在資料表格中手動調整。

併單(左鍵 Combine)

當你左鍵點某列的 Combine:

  • 若該列狀態碼為 0(尚未選)→ 計數器 +1 設為新狀態碼,接著找同品號中已選(狀態碼 > 0)的列:
    • 找到 → 沿用該組的合併單,把本列數量加進合併單數量,並把本列登記到該合併單底下的明細清單。
    • 沒找到 → 以本列複製出一筆新的合併單,加入轉出清單。
  • 若該列已被選(狀態碼 > 0)→ 視為取消併單:從合併單數量扣回本列數量、把本列從該組明細移除;若該組已無明細則移除整張合併單,狀態碼歸 0。

單獨轉出(右鍵 Combine)

當你右鍵點某列的 Combine:

  • 狀態碼為 0 → 標為 -1,以本列複製出一筆單獨的轉出單加入清單。
  • 狀態碼為 -1(已單獨選)→ 取消:從轉出清單移除,狀態碼歸 0。
  • 狀態碼 > 0(原本在某合併組)→ 先把它從合併組移除,再改為單獨轉出。

右鍵以 code-behind 處理

資料表格儲存格內的滑鼠事件綁定不穩定,因此 Combine 的右鍵改由視窗的 code-behind 攔截後再呼叫單選邏輯。功能上等同上述「單獨轉出」。

欄位標色含義

  • 紫色(SKU 欄):同品號分組中的最後一列,提示該品號還有多筆可一併合併。對應 ColorSKU=1。
  • 候選清單其餘儲存格維持一般底色;目前版本沒有依狀態碼(已選/未選)變更整列底色。

存檔(轉出製令)時的處理

按 儲存 時,系統依序執行:

  1. 拆單上限檢查:同一「訂單編號+訂單項次」被拆成超過 30 筆 → 擋存並提示該訂單編號與項次。
  2. 未指定檢查:轉出清單中仍有狀態碼 0 的列 → 擋存(提示 Status Code is zero)。
  3. 組製通單資料:對每一筆轉出單,組出製通單主檔(製單別=訂單、製單來源別=訂單、辨識號為新產生的轉檔批號),並依是合併單或單獨單,把對應的訂單明細逐筆寫成製通單明細(明細序號 001、002…)。
  4. 寫回資料庫:透過轉檔機制寫入製通單主檔與明細檢視表(Twork_pdt_vw_pdtinfma / pdtinfde)。
  5. 產生工作底稿:存檔成功後自動觸發 Updt_wkpaper(依辨識號)產生對應的工作底稿。
  6. 失敗自動回收:若工作底稿產生失敗,系統會依辨識號刪除剛剛寫入的製通單資料並提示錯誤,避免留下半套資料。

存檔後導頁

  • 存檔成功會記下新製令的 PKID。視窗關閉後,呼叫端(製通單主檔)會自動以該 PKID 導頁,讓你直接看到剛轉出的製通單。

離開

  • 按 離開/Exit 直接關閉視窗,不影響已存檔的資料。離開鈕在存檔流程進行中會被暫時停用,避免中途關閉。

常見問題

按了查詢卻顯示「無資料」?

本視窗只列出尚未轉製令的銷售訂單明細。若該區間的訂單都已轉過製令,或全部被其他使用者鎖定(會出現在「Locked Source」頁籤),就會查不到。請確認確實有未轉製令的訂單。

存檔時跳出 Status Code is zero(狀態碼為 0)?

代表轉出清單裡還有「既沒併單、也沒單獨選」的列。請把每一筆要轉的列都用左鍵(併單)或右鍵(單獨)指定後再存檔。不要轉的列不需處理。

存檔被擋,說某訂單拆超過 30 筆?

同一張「訂單編號+訂單項次」最多只能拆成 30 筆製令。請減少該筆訂單的拆單數量,或合併其中幾筆後再存檔。

費用品號的出貨日/完工日為什麼自動變了?

品號含 - 視為費用項目,系統會依預訂交期(ETA)與備料前置天數從 ETA 各自往前回推出貨日、備料完成日、預訂生產日、預訂完工日。其中備料完成日、預訂生產日、預訂完工日若回推結果早於今天會改成今天(出貨日不套用此保護)。這是刻意的設計,可在資料表格中再手動微調可編輯的日期欄。

為什麼有些列點不動、出現在「Locked Source」?

那些來源正被其他使用者編輯而鎖定,標籤旁會顯示鎖定筆數。待對方存檔或取消後重新查詢即可操作。

存檔成功了,但工作底稿好像沒出來?

存檔後系統會自動產生工作底稿;若這一步失敗,系統會刪掉剛存的製通單並提示錯誤,避免留下不完整資料。請依錯誤訊息排除後重做轉出。

相關功能


需補截圖清單

以下截圖待功能 runtime 驗收後補拍(放 docs/F-Production/images/):

  1. pdtinf_1-step1.png — 從製通單按「其他功能一」開啟本視窗、按查詢後的候選清單全貌
  2. pdtinf_1-step2.png — 併單/單獨轉出操作(含紫色同品號末列、Combine 按鈕)
  3. pdtinf_1-step3.png — 下方轉出清單(TmpUpload)合併後的結果
  4. pdtinf_1-locked.png — 「Locked Source(鎖定中)」頁籤