跳轉到

程式資訊

  • 程式 IDORMASTTOPP
  • 所屬子系統:G.採購付款
  • 狀態:stable

訂單轉請購

功能簡介

「訂單轉請購」把未結案、尚有未請購數量的銷售訂單明細整批帶進來,依「廠商代號」分組後一次轉成多張請購單(PPURCH)。它是給採購人員用的轉單視窗:當業務已經接了訂單、需要向外部廠商採購對應的料件時,不必逐筆手 key 請購單,從這裡指定客戶、補上每列的廠商代號,按 儲存 就能自動建立請購單。

這支視窗不是獨立選單程式,而是從請購單畫面的延伸功能叫出來的;轉單存檔後會回填請購單主檔的 pkid,讓請購單畫面自動跳到剛建立的那張單。

與「暫收單轉採購」的差異

本頁是「銷售訂單 → 請購單」。另有請購轉採購DI 訂單轉請購等其他轉單入口,來源單據與目的單據都不同,請勿混淆。

前置需求

  • 權限:採購模組底下「請購單(PPURCH)」的新增權限——本視窗實際寫入的是請購單,存檔走 ProgramClass.PPURCH
  • 基礎資料:轉單結果的完整度取決於下列資料的維護狀況——
資料 影響的結果
銷售訂單([ORMAST],未結案且明細有未請購數量) 查詢出來的可轉明細;查無資料時清單為空
客戶主檔 透過客戶代號篩選訂單;客戶代號是查詢的必要條件
廠商主檔([SPDATA]) 每列補上廠商代號後帶出廠商簡稱、稅別;轉單依廠商分組
廠商報價(已於報價單/採購單建立) 自動帶出該料件對該廠商的最新單價(見欄位連動與附加功能
使用者參數 6009(請購部門) 轉出的請購單主檔「請購部門」預設值
幣別匯率資料 請購單主檔的匯率(訂單頭匯率 ≤ 0 時退回 1)

操作步驟

本視窗有兩個頁籤:訂單轉請購單(主畫面)與鎖住資料(別人正在編輯、暫時無法轉的訂單)。

步驟一 查詢可轉訂單

  1. 在上方客戶代號欄輸入或查詢客戶(右側唯讀框會顯示客戶簡稱)。
  2. 查詢。系統呼叫 DARB_TUR_ODTOPP,撈出該客戶未結案、且明細「數量 − 請購數量 > 0」、明細未結案的訂單。
  3. 結果分兩處顯示:
    • 訂單轉請購單頁籤:上半部格線是可轉的訂單(一張訂單一列),下半部格線是選取訂單的明細列。
    • 鎖住資料頁籤:別人正在改、目前無法取得放行碼的訂單,僅供唯讀檢視(頁籤標題會顯示筆數)。

為什麼有些訂單在「鎖住資料」

轉單採用放行碼(鎖定)機制避免兩人同時轉同一張訂單。若某訂單正被他人開啟編輯,系統取不到放行碼,就把它列在「鎖住資料」頁籤、不放進可轉清單。等對方放開後重新查詢即可。

步驟二 勾選訂單、補廠商代號

  1. 在上半部訂單清單,逐列勾選 Selected 核取方塊;或用畫面左下角的 全選全不選 一次處理。
  2. 點選某張訂單後,下半部會顯示該訂單的明細列。逐列在 VendorCode(廠商代號) 欄輸入或查詢廠商。
    • 廠商代號是轉單的關鍵:沒有廠商代號的明細列不會被轉出
    • 輸入廠商代號後,系統會自動帶出單價(詳見欄位連動與附加功能)。
  3. 其餘欄位(品號、品名、數量、單位、訂單單價、預定交期等)均為唯讀,沿用訂單明細的內容。

步驟三 儲存(轉單)

  1. 確認勾選與廠商代號都填妥後,按右下角 儲存
  2. 存檔前系統會逐列檢視被勾選訂單的明細:凡廠商代號空白者,跳出提示「序號:N,沒有輸入廠商代號」。此提示僅作提醒——它不會中止存檔,沒填廠商代號的明細列會在轉單時被自動略過、不轉出。
  3. 接著系統依「同一張訂單內 × 同一廠商代號」分組,一組產生一張請購單
    • 請購單主檔帶入:請購日期=今天、請購人員=目前登入者、請購部門=參數 6009、倉儲/幣別/匯率取自訂單頭、廠商代號=該組廠商、稅別取自廠商主檔、轉入備註=「<訂單編號> 之訂單」。
    • 明細逐列帶入品號、品名、數量、單位、單價、廠商品號、預訂交期,並自動算匯率與金額。
  4. 存檔成功後,視窗關閉,請購單畫面會自動導向剛建立的那張請購單。

列印

列印請購單尚未提供

VFP 舊版在存檔成功後會詢問「是否列印請購單」,可直接預覽列印剛轉出的請購單。新版 C# 目前尚未實作這段轉單後即時列印;如需列印,請改到請購單列印以轉入備註或單號查詢後列印。

欄位說明

查詢條件

欄位 必填 說明/格式/預設
客戶代號 篩選要轉單的客戶;可用查詢鈕選取,右側顯示客戶簡稱(唯讀)

訂單清單(上半部格線,皆唯讀)

欄位 說明
Selected 核取方塊;勾選代表此訂單要轉單
訂單編號 銷售訂單單號
受訂日期 訂單日期
客戶代號/客戶簡稱 該訂單客戶
客戶訂單號 客戶端的訂單號
Warehouse(倉庫代號) 訂單頭倉儲,轉入請購單主檔
幣別/匯率 訂單頭幣別與匯率,轉入請購單主檔

訂單明細(下半部格線)

欄位 可編輯 說明/格式/預設
序號 訂單明細序號
VendorCode(廠商代號) 轉單依此分組;空白者不轉出。輸入後自動帶單價
客戶品號 帶入請購單明細的廠商品號欄
品號/品名 來自訂單明細
數量 待請購數量(來自訂單明細)
單位 料件單位
單價 採購單價,由廠商代號自動帶出(可為 0)
訂單單價 原銷售訂單單價,僅供參考
原幣金額/本幣金額 畫面上的金額欄;金額實際是在按儲存轉單時才於請購單明細上算出(SetAmount()),本視窗明細列本身不即時計算
預定出貨日(ETD) 轉入請購單明細的「預訂交期」
預定交期(ETA) 訂單明細交期,僅供參考

鎖住資料頁籤

欄位 說明
修改人員 目前正在編輯該訂單、導致無法放行的使用者
請購單號/請購人員/倉庫代號 該筆鎖住來源的相關資訊(唯讀)

欄位連動與附加功能

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

輸入客戶代號後按「查詢」

  • 系統以客戶代號為條件呼叫轉單查詢預存程序 DARB_TUR_ODTOPP,查詢條件固定為:該客戶、訂單未結案、明細數量 − 請購數量 > 0、明細未結案
  • 回傳兩個結果集:第一個是無法取得放行碼的訂單(放進「鎖住資料」頁籤、唯讀),第二個是可轉的訂單明細(放進主畫面)。
  • 主畫面把可轉明細去重成「訂單頭」清單(上半部)並建立「訂單編號 → 明細」對照,點不同訂單即切換下半部明細。
  • 查詢完成後,若有可轉訂單,預設選取第一張並顯示其明細。

在明細列輸入「廠商代號(VendorCode)」後

  • 系統立即以該料件品號+輸入的廠商代號,呼叫報價查詢(DARB_BIZ_SPPDT,同時看採購單與報價單),抓該廠商對該料件的最新報價
  • 比對規則:在符合「廠商代號相同、且該列數量 ≥ 報價的最低採購量」的報價中,取最大的「最低採購量」那筆(量越大的階梯價通常越便宜),把它的單價自動填進該列單價
  • 若報價回傳的廠商代號與你輸入的略有不同(例如系統正規化後的代號),會以報價回傳的廠商代號回寫該列。
  • 找不到符合的報價時,單價維持 0,不會報錯(可手動處理或先轉單後到請購單調整)。

為什麼補了廠商代號單價還是 0?

代表這個「品號+廠商」沒有日期符合、且最低採購量 ≤ 本列數量的報價。請先到廠商報價維護報價,或轉單後到請購單手動填單價。

全選/全不選按鈕

  • 全選:把上半部訂單清單所有列的 Selected 設為勾選。
  • 全不選:把所有列的 Selected 取消。
  • 兩者只影響「要不要轉這張訂單」,不影響明細層的廠商代號。

按「儲存」時的檢核與轉單邏輯

  1. 缺廠商提醒(不擋存檔):逐一檢視被勾選訂單的明細,凡廠商代號空白者跳出提示「序號:N,沒有輸入廠商代號」。程式內部 AllowSave 顯示完提示後一律回傳 true,所以這個訊息只是提醒、不會中止存檔
  2. 分組產生請購單:把每張勾選訂單的明細,剔除無廠商代號者NeedDelete=廠商代號空白)後,依「廠商代號」分組,一組對應一張請購單主檔(PPURMA)+其明細(PPURDE)。
  3. 主檔欄位帶值:公司代碼=1、請購日期=今天、請購人員=登入者、請購部門=參數 6009、倉儲/幣別取自訂單頭(幣別空白時退回本位幣)、匯率=訂單頭匯率(≤ 0 時退回 1)、廠商代號=該組廠商、稅別取自廠商主檔、轉入備註=「<訂單編號> 之訂單」。
  4. 明細欄位帶值與金額計算:序號自動補 3 位流水號、品號/品名/數量/單位/單價沿用、廠商品號取自客戶品號、預訂交期取自 ETD;之後呼叫 SetFxRate() 設匯率、SetAmount() 算原幣/本幣金額。

存檔後回填請購單畫面

  • 轉單成功後,本視窗把新建立的請購單主檔 pkid 記下來。
  • 呼叫端(請購單畫面的延伸功能)讀到這個 pkid 後,會自動把請購單畫面導向剛轉出的那張單,方便立即檢視或續編。

VFP 與新版差異(製程別篩選)

VFP 舊版查詢面板有起始/截止訂單編號製程別條件,並只撈該製程別的明細。新版改以客戶代號為主要查詢條件、不分製程別。對照舊系統時,這是刻意的查詢條件差異,不是缺漏。

常見問題

輸入客戶代號按查詢後,清單是空的?

請確認該客戶有未結案的訂單,且訂單明細還有未請購數量(數量 − 請購數量 > 0)、明細也未結案。已全數請購或已結案的訂單不會出現。另外若訂單正被他人編輯,會被歸到「鎖住資料」頁籤而非可轉清單。

按儲存時跳「沒有輸入廠商代號」是擋住了嗎?

沒有。這個提示不會中止存檔,只是告訴你哪幾列因為沒填廠商代號而會被略過。沒填廠商代號的明細列不會被轉出;若整張訂單都沒填,這張訂單等於沒有可轉內容(不會產生請購單)。要把這些列也轉出去,請在下半部明細逐列補上 VendorCode 後再存檔。

補了廠商代號,單價卻是 0?

單價來自廠商報價。系統只會帶「該品號+該廠商、且報價最低採購量 ≤ 本列數量」的最新報價。若該組合沒有報價,單價維持 0。請先到廠商報價建立報價,或先轉單、再到請購單手動填單價。詳見欄位連動與附加功能

為什麼一張訂單轉出來變成好幾張請購單?

這是設計。轉單依「廠商代號」分組,同一張訂單若明細指定了不同廠商,就會各自成一張請購單(向不同廠商各下一張)。同廠商的多筆明細則合併在同一張請購單。

轉完想列印剛建立的請購單?

新版尚未提供「轉單後即時列印」。請到請購單列印,以轉入備註(「<訂單編號> 之訂單」)或請購單號查詢後列印。

某張訂單一直卡在「鎖住資料」?

代表該訂單正被「修改人員」欄顯示的使用者開啟編輯,系統取不到放行碼。請對方關閉後,重新按 查詢 即可。

相關功能


需補截圖清單

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

  1. ormasttopp-step1.png — 主畫面:上半部訂單清單+下半部明細+客戶代號查詢列
  2. ormasttopp-step2.png — 明細列填入廠商代號、自動帶出單價的狀態
  3. ormasttopp-step3.png — 「鎖住資料」頁籤(顯示無法取得放行碼的訂單)