程式資訊
- 程式 ID:
SALEMA - 所屬子系統:E.營業收款
- 狀態:stable
出貨通知單¶
功能簡介¶
「出貨通知單」是銷售出貨流程的核心單據,用來記錄「要出哪個客戶、哪些品號、各出多少」的出貨明細。它通常不是人工逐筆敲進去的——而是由業務或出貨人員從未交完的銷售訂單一次帶入,再列印給倉庫備貨、給客戶當送貨依據。
在整個流程中,它位於銷售訂單之後、開立發票(商業發票 CI/裝箱單 PK)之前:
- 接單 → 維護銷售訂單。
- 出貨 → 由訂單轉入本「出貨通知單」(記錄實際出貨數量),並更新訂單的累計出貨數。
- 開單 → 由本單往後轉開商業發票/裝箱單。
主檔記錄客戶、交易日期、倉儲、幣別匯率、稅別、送貨地址與正嘜(嘜頭);明細逐列記錄品號、數量、單價、預訂交期與對應的訂單序號。
前置需求¶
- 權限:E.銷售訂單 →
E-070 出貨通知單的瀏覽/修改權限(見上方 frontmatterpermissions)。 - 基礎資料:本單大量依賴主檔帶值,下列資料若未維護會造成欄位帶不出來——
| 資料 | 影響什麼 |
|---|---|
| 客戶主檔(客戶基本資料) | 輸入客戶代號後自動帶出客戶簡稱、稅別、送貨地址、運送方式碼 |
| 品號主檔(品號資料) | 明細輸入SKU 後帶出品名、中文描述、單位 |
| 客戶品號對照 | 明細帶出該客戶對應的客戶品號 |
| 幣別/匯率資料 | 幣別控件依交易日期帶當日賣出匯率 |
| 稅別代碼 | 稅別描述顯示 |
| 運送方式代碼(C201) | 運送方式碼下拉與描述 |
| 銷售訂單(未結案、未交完) | 從訂單轉入 時的可轉來源;轉入後寫入訂單pkid對應原訂單明細 |
操作步驟¶
一、直接新增(手動建立)¶
- 從主選單開啟 E 銷售訂單 → 出貨通知單。
- 點選
新增。單號由系統自動產生(唯讀,不需輸入)。 - 輸入主檔欄位:
- 交易日期(必填)。
- 客戶代號(必填):輸入後系統自動帶出客戶簡稱、稅別、送貨地址、運送方式碼(詳見欄位連動與附加功能)。
- 視需要調整倉儲代號、幣別/匯率、稅別、送貨地址、正嘜、其他摘要。
- 在下方明細格線逐列輸入:SKU、數量、單價、箱數、預訂交期等。輸入 SKU 後自動帶出品名/單位/客戶品號;輸入數量或單價後自動算出金額。
-
點選
儲存。小技巧
可用 Ctrl+S 快速儲存。
二、從訂單轉入(最常用)¶
比起逐筆手敲,實務上多半用工具列的延伸功能,從未交完的訂單一次帶入:
- 在瀏覽狀態下,按工具列的
從訂單轉入(延伸功能一)。 - 系統開啟轉入視窗,輸入客戶代號與查詢條件(依預訂交期或訂單號碼),按
查詢列出該客戶尚未交完的訂單明細。 - 視需要調整各列的出貨數量(預設帶入未交數量;可用
全選/全不選一次設定)。 - 確認後存檔,系統自動產生一張新的出貨通知單,並把選取的訂單明細逐列寫入。
詳細的轉入規則(庫存檢查、鎖定明細、排序)見欄位連動與附加功能。
三、修改¶
- 瀏覽到要修改的單據,按
修改。 -
調整主檔或明細欄位後
儲存。已轉出者不可修改
若本單已被往後轉開其他單據(轉出備註有值),系統會發出提示音並擋下修改,訊息為「已轉至其他單據,不可修改」。此時請先處理下游單據。
四、刪除¶
- 瀏覽到該單,按
刪除,確認後移除整張單。 - 明細列若品號為空、或數量與其他金額皆為 0,存檔時會被視為無效列自動清除(不需手動刪)。
五、列印¶
- 瀏覽到要列印的單據,按
列印,選擇出貨通知單格式即可輸出給倉庫/客戶。
欄位說明¶
主檔¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 單號 | 系統 | 自動產生、唯讀 |
| 交易日期 | 是 | yyyy/MM/dd;幣別匯率以此日為基準 |
| 倉儲代號 | — | 出貨倉,可用搜尋帶入 |
| 客戶代號 | 是 | 搜尋帶入;連動帶出稅別/送貨地址/運送方式(見下節) |
| 客戶簡稱/名稱 | 系統 | 依客戶代號帶出 |
| 稅別 | — | 預設帶客戶主檔稅別 |
| 幣別 | — | 搭配交易日期帶當日賣出匯率 |
| 匯率 | — | 由幣別控件依交易日期自動帶入,可手調 |
| 運送方式碼 | — | 下拉(代碼表 C201) |
| 送貨地址 | — | 預設帶客戶主檔送貨地點,可改 |
| 正嘜 | — | 嘜頭/Shipping Mark,多行文字 |
| 其他摘要 | — | 單據備註 |
| 轉入備註 | 系統 | 由上游單據轉入時系統填,唯讀 |
| 轉出備註 | 系統 | 已往後轉出時系統填,唯讀;有值即鎖修改 |
| 總數量/總金額 | 系統 | 由明細加總,唯讀(見下節) |
明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 序號(Line No) | 系統 | 自動編號 |
| SKU(品號) | 是 | 搜尋帶入;連動帶出品名/單位/客戶品號 |
| SKUDescription/LocalDescription | 系統 | 品名/中文描述,唯讀 |
| 客戶品號 | — | 依客戶+品號帶出 |
| 單位(UOM) | — | 下拉,預設帶品號主檔單位 |
| 數量 | 是 | 變動時重算金額與總計 |
| 單價 | — | 變動時重算金額 |
| 其他金額 | — | 加入金額計算 |
| 金額 | 系統 | =四捨五入(數量×單價+其他金額, 2 位) |
| 累計出貨數 | 系統 | 唯讀,參考用 |
| 箱數/包裝量/標籤數 | — | 出貨包裝資訊 |
| 預訂交期(ETA) | — | yyyy/MM/dd |
| Request No(reqno) | 系統 | 來源請求單號 |
| 交貨地點 | — | 明細層送貨地點 |
| 訂單pkid | 系統 | 對應來源訂單明細,唯讀 |
| 是否結案 | — | 勾選表示該訂單明細已結案 |
| 結關日期/調撥數量 | — | 出口結關/調撥資訊 |
欄位連動與附加功能¶
本節彙整「輸入某欄位後系統會做什麼」「按某按鈕會做什麼」,全部來自實際程式碼。
主檔欄位連動¶
- 當你輸入「客戶代號」時,系統會查客戶主檔並自動帶入:稅別(同時更新稅別描述)、送貨地址(帶客戶送貨地點)、運送方式碼。同時把這個客戶代號同步寫進每一筆明細列的客戶代號,作為後續帶「客戶品號」的依據。
- 當你輸入或改變「交易日期/幣別」時,幣別控件會以該日期查當日賣出匯率,自動帶入匯率欄;匯率仍可手動覆寫。
明細欄位連動¶
- 當你輸入「SKU(品號)」時,系統查品號主檔自動帶出:品名(SKUDescription)、中文描述(LocalDescription)、單位;並依「客戶代號+品號」帶出客戶品號。
- 當你輸入「數量」「單價」或「其他金額」任一欄時,系統立即重算該列金額:金額 = 四捨五入(數量 × 單價 + 其他金額, 2 位)。
- 當數量或金額變動、或換筆瀏覽、或新增單據後,系統重算主檔右下角的總數量與總金額(只加總「未刪除且品號非空」的明細列;換筆時若不重算會殘留前一張單的合計,故換筆也會重新加總)。
工具列延伸功能¶
按鈕名稱以系統設定為準
下列兩個延伸功能對應 VFP 舊版的「從訂單轉入」與出貨相關自訂鈕;實際顯示的按鈕文字由系統參數設定,可能依公司略有不同。
從訂單轉入(延伸功能一):開啟「訂單轉出貨通知」視窗。輸入客戶代號後,依預訂交期(ETA)或訂單號碼查出該客戶未結案、未交完(數量 > 已交數量)的訂單明細,並一併撈出對應庫存供參考;可逐列調整出貨數量(或全選/全不選),確認後新建一張出貨通知單並寫入選取明細。轉入完成後畫面自動定位到新產生的單號。補轉入(延伸功能三):在「已開啟的某張出貨通知單」上,把更多訂單明細追加進同一張單。系統會核對輸入的客戶代號與本單客戶是否一致(不一致會擋下),依現有最大序號往下接續編號後寫入新明細,完成後重新整理畫面。
轉入時的檢查與排序¶
由訂單轉入時(兩個延伸功能共用邏輯)系統會:
- 庫存/鎖定檢查:撈出對應的庫存資料;若部分明細被其他作業鎖定,會列在「鎖定明細」清單,未被鎖定者才進入可出貨清單。
- 存檔前驗證:至少要有一列出貨數量 > 0 才能存,否則提示輸入出貨數量。
- 明細排序:依「出貨方式(依品號/依訂單號/依交期)」決定序號排列順序——例如依品號時會按倉別→客戶→品號→訂單號→交期排序後重新編號。
儲存與編輯限制¶
- 存檔驗證(SalemaSave):客戶代號與交易日期為必填,缺一不可存。
- 編輯鎖定(SalemaEdit):若轉出備註有值(代表已往後轉出),按修改會被擋下並提示「已轉至其他單據,不可修改」。
請款/出貨收件人地址欄位畫面未開放輸入
主檔另有「請款/出貨收件人地址(出貨ID、出貨名稱、出貨地址、城市、州、郵遞號、國家,以及對應的請款ID/名稱/地址等)」一整組欄位。這些欄位在新版 Source 仍保留,且由訂單轉入時會自動從來源訂單的收件人(ShipTo)/請款人(BillTo)資料帶入;但本單畫面目前未提供這些欄位的輸入區,無法手動編修。若需手動記錄出貨地址,請改用主檔的送貨地址欄位。
常見問題¶
輸入客戶代號後,稅別/送貨地址沒有自動帶出來?
這些值來自客戶主檔。請先到客戶基本資料確認該客戶有設定稅別、送貨地點與運送方式碼;資料不存在時就帶不出來。另外客戶代號欄是「失焦(LostFocus)」才觸發帶值,輸入後請按 Tab 或點到別的欄位。
明細的金額一直是 0?
金額 = 數量 × 單價 + 其他金額。若單價為 0(例如品號沒有報價、或這張單只記出貨數量不記金額),金額自然是 0。需要金額時請手動填入單價。
按「修改」沒反應、或跳出「已轉至其他單據,不可修改」?
代表這張出貨通知單已經被往後轉開其他單據,轉出備註已有值而被鎖定。請先處理或退回下游單據後再修改本單。
從訂單轉入時查不到任何明細?
轉入只會列出該客戶未結案(ORDERCLOSE ≠ Y)、明細未結案、且數量 > 已交數量的訂單。若訂單已全數出貨或已結案就不會出現;也請確認查詢條件(客戶代號、預訂交期上限或訂單號碼)正確。
存檔時提示要輸入客戶代號/交易日期?
這兩個是必填主檔欄位(SalemaSave 驗證)。請補齊後再存。
明細列刪不掉,或存檔後不見了?
明細若品號為空、或數量與其他金額皆為 0,存檔時會被當成無效空列自動清除,不需手動刪。若是要保留的列,請確認至少填了品號與數量。
相關功能¶
- 銷售訂單:本單的上游來源,
從訂單轉入即取自此。 - 商業發票 CI:本單之後的開單對象之一。
- 裝箱單 PK:出貨包裝/嘜頭資訊延續本單。
- 客戶基本資料:客戶代號連動帶值的來源主檔。
- 品號資料:SKU 連動帶值的來源主檔。
- 預示單 preord:銷售前段需求單據。
- 生產計劃查詢:出貨/訂單需求的彙整查詢。
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/E-SalesOrder/images/):
salema-step1.png— 出貨通知單主畫面(主檔+明細格線全貌)salema-step2.png—從訂單轉入視窗(含查詢條件與出貨數量調整)salema-step3.png— 已轉入後的明細列(含訂單pkid/預訂交期)