跳轉到

程式資訊

  • 程式 IDORSSMA
  • 所屬子系統:E.營業收款
  • 狀態:stable

調撥指示單

功能簡介

「調撥指示單」(程式內部又稱調撥通知)是銷售模組裡的一種特殊訂單,用來開立「訂單別=2(調撥指示)」的單據——它的單頭、明細結構與銷售訂單幾乎相同,但專門用於倉庫之間調撥、補貨或集團內公司互轉等不走一般正常出貨流程的需求。建立後可送工作流程簽核,並由後續的出貨/請購/製通單作業承接。

主要使用者是業務或生管人員。在流程中的位置是「需求來源端」:開立調撥指示單後,明細的已交數量/出通單數量/請購數量會由下游出貨、出貨通知單、請購等作業回填,作為調撥進度的依據。

雙名說明

本程式在系統內同時出現「調撥指示單」與「調撥通知」兩種稱呼——前者是新版選單與畫面標題用名,後者是舊 VFP 版的資料表別名(調撥通知主檔/調撥通知明細)。兩者指的是同一支程式(ProgramClass.ORSSMA),文件統一以調撥指示單稱之。

前置需求

  • 權限:E.銷售訂單 → E-080 調撥指示單 的瀏覽/修改權限。其中「工作流程」送審與「快速審核」另受工作流程權限控管(無權審核時系統會擋)。
  • 基礎資料:下列主檔的維護狀況會直接影響本單能否正確帶值與存檔——
資料 影響什麼
客戶主檔(含交易預設) 輸入客戶代號時自動帶出交易方式、業務員、收付條件、幣別、交易條件、運送方式、交易類別、港口、稅別
品號主檔(vw_invent,含平均成本/標準成本) 明細輸入品號時帶出品名、中文描述、單位,並以平均成本÷匯率自動帶單價
該客戶的歷史調撥單明細 明細品號帶出該客戶慣用的客戶品號/單位/製程別(抓該客戶最近一張調撥指示單明細,非讀客戶品號對照主檔)
匯率資料 幣別+受訂日期自動帶「買入」匯率;本位幣固定匯率 1
稅別主檔 決定稅率,計算明細含稅單價、原幣含稅與主檔總額
業務員/收付條件/港口/運送方式/交易條件等代碼 主檔對應欄位的下拉與簡稱顯示

操作步驟

新增

  1. 從主選單開啟 銷售訂單 → 調撥指示單
  2. 點工具列 新增。系統自動帶入預設:訂單別=2受訂日期=今天、幣別=本位幣、匯率=1,明細列出貨別=1(正常)
  3. 在單頭輸入 客戶代號(必填)。輸入後系統會自動帶出該客戶的交易方式、業務員、收付條件、幣別、交易條件、運送方式、交易類別、港口與稅別(詳見欄位連動與附加功能)。
  4. 確認 受訂日期(必填)、幣別/匯率稅別等單頭欄位。
  5. 在明細格線輸入 品號

    1. 系統檢查品號是否存在、是否停用,帶出品名/中文描述/單位
    2. 自動以平均成本÷匯率(無平均成本改用標準成本)帶入單價
    3. 帶出該客戶的客戶品號/製程別
  6. 輸入 訂單數量,系統即時計算該列金額(原幣未稅)並更新單頭總數量/原幣總金額

  7. 視需要逐列補 客戶交期/預訂交期/回覆日期/製程別/訂單分類/廠商代號 等欄位。
  8. 儲存

    小技巧

    可用 Ctrl+S 快速儲存。

修改

  1. 用工具列的查詢(Seek)定位單據:輸入訂單編號(前置碼 KU)或 . 加流水號(依 PKID)定位,與其他單據作業相同。
  2. 修改,調整單頭或明細欄位。
  3. 匯率或稅別 會觸發全部明細金額重算(見欄位連動與附加功能)。
  4. 儲存

刪除

  1. 定位到要刪除的單據,點 刪除
  2. 系統檢查:若任一明細列的已交數量 > 0出通單數量 > 0(代表已轉出貨/已開出貨通知),則不可刪除並提示。

列印尚未提供

本版尚未移植調撥指示單報表(VFP 對應 ORSSMA_P / SCX_ORDP),畫面上沒有列印功能(ViewModel 未實作列印介面)。需要紙本時請暫以其他方式輸出,待報表移植後再補。

工作流程簽核

  1. 點工具列 工作流程,系統將本單以「訂單送審」事由送出(對應 VFP WKFLOW_ADD),進入集中式工作流程。
  2. 有審核權限者點 快速審核(集中式審核鈕)完成核可;無權限時系統提示「無權快速審核」。
  3. 審核結果反映在單頭的 已審核/審核人員/審核日期 欄位(唯讀,由系統回填)。

工作流程採集中式機制

本單的送審與審核走系統共用的工作流程頁籤+審核鈕,不是表單自帶的獨立按鈕。畫面右側的工作流程/聯絡單ID欄位為唯讀顯示,由工作流程作業回填。

欄位說明

單頭

欄位 必填 說明/格式/預設
訂單編號 系統自動產生(唯讀),前置碼 KU
訂單別 固定 2(調撥指示),唯讀,新增時自動帶入
受訂日期 格式 yyyy/MM/dd,新增預設今天;未輸入不可存檔
客戶代號 未輸入不可存檔;輸入後帶出整組客戶交易預設
客戶訂單號 文字 30 字;離開欄位時回填到尚空白的明細列
公司代碼 下拉(C101),新增預設 1
幣別/匯率 幣別空白時帶本位幣+匯率 1;改幣別+受訂日期由匯率控件自動帶「買入」匯率
交易方式/交易條件/運送方式/交易類別 由客戶代號帶出;交易類別限 D(直接外銷)/I(貿易商)/L(內銷)
港口代碼 由客戶代號帶出,右側顯示港口簡稱
業務員編號/收付條件/稅別 由客戶代號帶出;稅別決定稅率
轉出倉庫(倉儲代號)/轉入倉庫(轉入倉儲) 倉庫搜尋;本版不強制輸入(沿襲 VFP 鈞寶設定)
舊單號 文字 20 字,自由輸入
總數量(數量總額) 系統加總明細數量(唯讀)
原幣總金額(總原幣未稅) 系統加總明細原幣未稅(唯讀)
結案 勾選表示結案(Y/N)
已審核/審核人員/審核日期 唯讀,由工作流程回填
訂單備註/注意事項 自由輸入

明細

欄位 必填 說明/格式/預設
序號 系統產生(唯讀),5 位流水號
出貨別 1 正常 / 2 補貨;新增預設 1;存檔限 1 或 2
客訂單序號 文字
品號 空白或數量 0 的列存檔時視為刪除;輸入後帶品名/單位/單價
品名/中文描述 由品號帶出(唯讀)
客戶品號 由品號+客戶帶出,可改
顏色 自由輸入
訂單數量 為 0 的列存檔視為刪除;變更時重算金額與總額
單位 下拉(單位清單);優先採用客戶歷史單位
單價 由平均成本÷匯率自動帶(受看價權限控管才顯示)
金額(原幣未稅) =數量×單價(唯讀,受看價權限控管)
客戶交期/預訂交期/回覆日期 yyyy/MM/dd;回覆日期填入且預訂交期空白時自動帶入預訂交期
已交數量/請購數量/出通單數量 唯讀,由下游作業回填,用於判斷可否刪除
製程別 下拉 1 內製 / 2 外購 / 3 觀瀾
訂單分類 A,B,C,D,E(可空白)
廠商代號 廠商搜尋
採購別/備註/交期變更/營業確認 自由輸入
建議採購量/建議交期/建議售價 自由輸入(建議售價受看價權限控管)
是否採購/是否核發/是否結案 唯讀狀態欄位
製通單號 唯讀,由製通單作業回填
包裝量/標籤數/交貨地點/客戶訂單號/Reqno/合併單號/結關日期 自由輸入或由下游回填

欄位連動與附加功能

這一節把「輸入某欄位/按某按鈕後系統會做什麼」逐項列出,全部來源是 ViewModel、Source、SaveBll、DeleteBll 與 VFP orssma class 的實際程式碼。

新增時的預設值(AfterAddNew

當你按 新增

  • 單頭自動設定公司代碼=1、訂單別=2(調撥指示)、序號前置碼=KU、受訂日期=今天
  • 幣別若空白,帶入本位幣並把匯率設為 1
  • 數量總額歸 0。
  • 所有明細列若出貨別空白,補上 1(正常)。

以新增明細鈕加入的每一列,也會套用同樣的明細預設(出貨別=1,並掛上主檔參照供計稅)。

輸入「客戶代號」→ 帶出整組交易預設(SetCustomerData

當你在單頭輸入客戶代號並離開欄位,系統以 DARB_QRY_ORSSMA 查詢別 3(vw_cudata 客戶預設)抓資料,一次帶出:

  • 交易方式、業務員編號、收付條件號、幣別、交易條件碼、運送方式碼、交易類別、港口代碼、稅別
  • 同步顯示客戶簡稱、業務員姓名、收付條件說明、港口簡稱
  • 帶出的稅別會連動更新稅率與稅別名稱。
  • 若帶回的幣別為空,補本位幣+匯率 1。
  • 查無客戶代號時跳「查無客戶代號」訊息並清空客戶簡稱。

匯率怎麼來

匯率不是由客戶帶出,而是由畫面上的幣別控件依幣別+受訂日期自動查「買入(Buy)」匯率(對應 VFP U_BLRATE … '買')。本位幣固定為 1。

輸入「客戶訂單號」→ 回填空白明細列

當你修改單頭客戶訂單號,系統會把這個值回填到所有客戶訂單號仍為空白的明細列(對應 VFP 客戶訂單號.LostFocus)。已填過的明細列不會被覆蓋。

修改「匯率」或「稅別」→ 全部明細重算(ReceiveWeakEvent

在編輯狀態下變更單頭匯率稅別,系統會:

  1. 依新稅別重抓稅率
  2. 重算每一列的含稅單價、原幣含稅、本幣未稅、本幣含稅,以及單頭的總原幣未稅/含稅、總本幣未稅/含稅(對應 VFP「計算金額(2)」)。

明細輸入「品號」→ 驗證並帶值帶價(SetSkuData

當你在明細輸入品號

  1. 先檢查單頭匯率是否大於 0,否則提示「請先輸入正確的匯率」並中止。
  2. 查 vw_invent:查無品號提示「查無品號」並清空品名/中文描述;品號停用則提示「品號停用」中止。
  3. 帶出品名、中文描述、單位
  4. DARB_QRY_ORSSMA 查詢別 4 抓該客戶最近一張調撥通知,帶出客戶品號、單位(優先採用歷史單位)、製程別
  5. 自動帶單價:有平均成本時=ROUND(平均成本÷計價匯率, 5);否則用標準成本÷匯率;都沒有則 0。

    為什麼用平均成本而非售價

    VFP 2014/06/25 起改抓平均成本當單價,因為調撥屬內部移轉,用售價會被課過多稅。

  6. 帶完值後立即依數量×單價計算該列金額。

明細輸入「訂單數量」或「單價」→ 即時算金額(SetTaxPrice

變更明細數量單價時,系統依稅別/匯率重算該列稅額與金額(TaxCalculator.SetDetail),並更新單頭數量總額(對應 VFP「計算金額(1)」與「sum加總」)。被標記刪除(增刪修=D)或品號空白的列不列入加總。

明細「回覆日期」→ 自動補預訂交期(回覆日期Binding

當你在明細填回覆日期預訂交期為空時,系統自動把回覆日期帶入預訂交期(對應 VFP col回覆日期 sqltext1.Valid)。

「複製明細」按鈕(CopyDetailCommand

單頭右下方的 複製明細 鈕:把目前選取的明細列整列複製到第一筆空白列(沒有空白列就新增一列並給新序號)。複製的是品號、數量、單價、各金額、交期、廠商、製程別、備註等內容欄位,但不複製製通單號、已交數量、出通單數量、請購數量、回覆日期、生產回覆等狀態欄位(這些維持空白/0,對應 VFP 複製鈕.Clicksql_mno1.GotFocus 的排除清單)。複製後重算金額與總額。

「查庫存」按鈕(StockQueryCommand

明細每列的 查庫存 鈕:以該列品號切換到右側的庫存查詢頁籤,查看該品號的庫存狀況。

與 VFP 的差異

VFP 原版的查庫存鈕(cmdbtn11)會在單頭下方顯示庫存量/採購未入/訂單未交/小計四個數字與一個進出明細小表。新版改用系統共用的庫存查詢頁籤呈現,單頭不再放這四個合計欄位。

存檔檢查(OrssmaSave.AllowSave

儲存 時系統依序檢查:

  1. 受訂日期未輸入 → 擋存並提示。
  2. 客戶代號未輸入 → 擋存並提示。
  3. 交易類別若有值但不在 D/I/L → 擋存。
  4. 逐列明細:品號空白或數量為 0 的列自動標記為刪除(不報錯);出貨別有值但不是 1/2 → 擋存並指出序號;訂單分類有值但不在 A~E → 擋存並指出序號。

通過後在存檔前(HandleDataBeforeEndEdit)補預設(幣別空白補本位幣、訂單別補 2)並執行完整稅額計算;因 orssde 無微調欄位,尾差會併入對應明細列的金額。

刪除檢查(OrssmaDelete.CheckDataCanDelete

刪除 時,只要任一明細列已交數量 > 0出通單數量 > 0(代表已轉出貨/已開出貨通知),即不可刪除並提示「已轉出貨」。

常見問題

存檔時提示「受訂日期未輸入」或「客戶代號未輸入」?

這兩個是單頭必填欄位。受訂日期新增時預設今天,若被清空需重填;客戶代號務必輸入有效代號(輸入後系統才會帶出交易方式、幣別、稅別等預設)。

明細輸入品號後跳「請先輸入正確的匯率」?

系統用「平均成本÷匯率」算單價,所以匯率必須先大於 0。請先在單頭確認幣別與匯率(本位幣匯率為 1),再回明細輸入品號。

明細單價或金額是 0?

單價來自品號的平均成本(無平均成本改用標準成本)。若該品號兩者都沒有,單價會帶 0、金額也為 0。請先在品號主檔維護成本,或手動輸入單價。另外,若您沒有看價權限,單價/金額/建議售價欄位會被隱藏。

改了匯率或稅別,金額沒跟著變?

編輯狀態下改匯率或稅別才會即時重算全部明細與總額;瀏覽狀態不會重算。若仍未更新,存檔時也會做一次完整稅額計算。

這張單刪不掉,提示「已轉出貨」?

只要任一明細的已交數量出通單數量大於 0,代表已被下游出貨/出貨通知承接,系統禁止刪除。需先處理(沖銷)下游單據後才能刪。

按了「快速審核」卻提示無權?

工作流程的送審與審核走集中式機制並受權限控管。沒有審核權限時系統會擋並提示「無權快速審核」,請洽系統管理員開通工作流程審核權限。

相關功能


需補截圖清單

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

  1. orssma-step1.png — 新增畫面(單頭預設值:訂單別 2、受訂日期今天、本位幣匯率 1)
  2. orssma-step2.png — 輸入客戶代號後自動帶出交易預設的單頭全貌
  3. orssma-step3.png — 明細格線(含品號帶價、複製明細鈕、查庫存鈕)
  4. orssma-step4.png — 工作流程送審/快速審核後的已審核欄位狀態