程式資訊
- 程式 ID:
GTRSAMA - 所屬子系統:C.總務管理
- 狀態:stable
G出貨單¶
功能簡介¶
「G出貨單」是總務庫(General 庫)的出貨/出庫單據(單據別 3),用來登錄一般物料、雜項銷貨或非正規業務的出庫,並即時扣減總務庫的庫存。它和正規業務的銷貨出貨(H 庫的出貨單)走不同的庫位與單據體系,主要由總務、倉管或一般物料管理人員使用。
一張單由主檔(一筆:客戶、幣別、稅別、發票、傳票等表頭資料)加上多筆明細(品號、數量、單價、轉出倉儲、批號等)組成。存檔時系統依明細逐列動總務庫的庫存帳,並可帶出原幣/本幣金額與稅額供後續轉應收、轉傳票使用。
與相近單據的差異
前置需求¶
- 權限:C.總務 →
C-090 G出貨單的瀏覽/修改權限。- 倉庫權限另受限:作業中的隸屬倉庫必須落在你權限備註涵蓋的倉庫範圍內,或備註含
ALL,否則新增/修改/存檔會被擋。
- 倉庫權限另受限:作業中的隸屬倉庫必須落在你權限備註涵蓋的倉庫範圍內,或備註含
- 基礎資料:下列主檔需先維護,否則對應欄位會帶不出值或存檔被擋——
| 資料 | 影響什麼 |
|---|---|
| 倉庫(G倉儲基本資料) | 隸屬倉庫 必須是已建立的總務倉,否則存檔擋「請輸入正確的倉儲代號」;倉庫的「倉同儲」「批號管制」設定會決定倉儲與批號的填寫規則 |
| 倉儲位置(G倉儲位置) | 明細的轉入倉儲/轉出倉儲只能填屬於該倉庫的儲位 |
| 序號前置碼(依 ProgramClass=GTRSAMA 設定) | 單號編碼、預設交易別碼;前置碼空白存檔會被擋 |
| 客戶主檔 | 輸入客戶代號後自動帶幣別/稅別/運送方式/業務員 |
| 幣別與匯率 | 幣別 變更時帶當日「買」匯率;本幣金額換算依此 |
| 稅別主檔 | 稅別 決定稅率,存檔時推算稅額 |
| 交易別主檔(lcl_tritem1) | 明細交易別碼下拉清單,決定該列動哪個方向的庫存 |
操作步驟¶
新增一張出貨單¶
- 從主選單開啟 C.總務 → G出貨單。
- 點工具列
新增。系統會自動帶入預設值(見欄位說明)並切換到右側的庫存查詢頁籤,方便邊查庫存邊填明細。 - 填寫主檔表頭:
- 隸屬倉庫:輸入或查詢出貨的總務倉。
- 前置碼:選單據前置碼(決定編碼與預設交易別)。
- 交易日期:預設今天,可改。
- 幣別/匯率:預設本位幣、匯率 1;改幣別會自動帶當日匯率。
- 客戶代號:輸入後自動帶客戶簡稱、幣別、稅別、運送方式、業務員。
- 視需要填發票、稅別、收付條件、帳款期別、付款方式、備註、摘要等。
- 在下方明細格線逐列填寫出貨內容:
- 品號:輸入或查詢;帶出品名與單位,並可在右側庫存查詢頁籤查現有庫存。
- 數量/單價/其他金額:輸入後即時重算該列原幣未稅/本幣未稅,表頭合計同步更新。
- 轉出倉儲:填出庫的來源儲位(依倉庫「倉同儲」設定,部分情況系統會自動帶)。
- 視需要填批號別/批號(倉庫有批號管制時為必填)、交易別碼、預訂交期、備註等。
-
點工具列
儲存。系統執行存檔前檢核(見欄位連動與附加功能)通過後寫入並動庫存。小技巧
可用 Ctrl+S 快速儲存。明細若整列品號留空,存檔時會自動視為刪除、不寫入該列。
修改與刪除¶
- 在資料列表選到要處理的單據。
- 點
修改或刪除。系統會先檢核是否允許異動(見下方擋修改/刪除的條件),通過才進入編輯或執行刪除。
查詢庫存¶
- 明細選取某一列後,右側庫存查詢面板會依該列的品號/倉庫顯示現有庫存,協助判斷可出貨量。此面板隨選取列即時連動(對應 VFP
sql_gmno1.LostFocus查庫存)。
列印 / 報表規劃中
VFP 原版的出貨單列印程式(GTRSAMA_P / DARB_RPT_GTRSAMA)尚未移植到新版。目前畫面僅提供建檔、查詢與庫存查詢,列印功能規劃中、尚未提供。
欄位說明¶
主檔(表頭)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 倉單號 | — | 系統自動編號(唯讀),存檔後產生 |
| 單號 | — | 第二組編號(唯讀,雙編碼) |
| 隸屬倉庫 | 是 | 出貨的總務倉;必須是已建立的倉庫 |
| 前置碼 | 是 | 單據前置碼,決定編碼與預設交易別 |
| 交易日期 | 是 | yyyy/MM/dd,預設今天 |
| 公司代碼 | 是 | 預設 1 |
| 單據別 | 是 | 固定 3(總務出貨),新增時自動帶入 |
| 幣別 | — | 預設本位幣;改幣別自動帶匯率 |
| 匯率 | — | 預設 1;幣別變更時帶當日「買」匯率 |
| 客戶代號 | 是 | 輸入後帶客戶簡稱/幣別/稅別/運送方式/業務員 |
| 業務員 | — | 由客戶帶入,可改;帶出姓名 |
| 運送方式/出貨分類 | — | 運送方式由客戶帶入(C201 對照),出貨分類為數字 |
| 類別/性質 | — | 單一字元自填 |
| 發票號碼/發票日期/發票金額 | — | 發票資訊;金額欄受檢視價格權限控制 |
| 稅別/稅額 | — | 稅別決定稅率;稅額由系統依稅率推算(受檢視價格權限控制) |
| 帳款期別 | — | 自填 |
| 付款方式 | — | C203 對照下拉 |
| 收付條件 | — | 查詢帶出說明 |
| 交易備註 | — | 最長 60 字 |
| 其他摘要 | — | 多行文字,最長 999 字 |
| 傳票號碼 | — | 轉傳票後回填 |
| 轉入備註/轉出備註 | — | 系統產生(唯讀);轉出備註有值代表已轉應收,會鎖單 |
| 原幣/本國幣(合計) | — | 唯讀;Σ明細原幣未稅、本幣未稅,受檢視價格權限控制 |
明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 序號 | — | 自動產生(唯讀) |
| 客廠品號 | — | 客戶/廠商料號 |
| 品號 | 是 | 輸入帶出品名/單位並可查庫存;空白列存檔時視為刪除 |
| 品名 | — | 由品號帶入,可覆寫 |
| 數量 | — | 輸入後即時重算金額(系統未強制 > 0,但通常須填) |
| 單位 | — | 由品號帶入,可從下拉改 |
| 單價 | — | 受檢視價格權限控制;輸入後即時重算金額 |
| 其他金額 | — | 計入原幣未稅;受檢視價格權限控制 |
| 原幣未稅/本幣未稅 | — | 唯讀;系統重算 |
| 轉出倉儲/轉入倉儲 | 視倉庫設定 | 只能填屬於該倉庫的儲位;部分情況系統自動帶 |
| 批號別/批號 | 視倉庫設定 | 倉庫有批號管制時必填 |
| 交易別碼 | 是(有品號時) | 下拉選交易別;空白時帶前置碼的預設交易別;決定動庫存方向 |
| 預訂交期 | — | 日期 |
| 單位成本/成本 | — | 唯讀,系統計算 |
| 轉帳款數量/已交數量 | — | 唯讀;>0 時該列鎖定不可改 |
欄位連動與附加功能¶
這一節把「輸入某欄位/按某動作後系統會做什麼」全部列出,皆來自實際程式碼(ViewModel/Source/Save/Edit)與其對應的 VFP 行為。
新增時的預設值(AfterAddNew)¶
當你按 新增,系統會自動:
- 帶 公司代碼 = 1、單據別 =
3(總務出貨)、交易日期 = 今天。 - 帶 幣別 = 本位幣、匯率 = 1。
- 自動切換到右側「庫存查詢」頁籤,對應 VFP「一新增就準備查庫存填品號」的操作習慣。
主檔欄位連動¶
- 輸入客戶代號:系統 SEEK 客戶主檔,找到時自動帶客戶簡稱,並(在客戶有設定時)覆寫幣別、稅別、運送方式碼、業務員編號;同時把客戶代號寫進底層的「交易部門」欄。對應 VFP
sqlnm_cu1.代號.Valid。 - 變更幣別:
TsCurrency控件依交易日期自動帶出該幣別的「買」匯率寫回匯率欄(對應 VFP幣別.LostFocus呼叫U_BLRATE)。 - 變更幣別 / 匯率(主檔):系統會把新的幣別、匯率廣播到所有明細列,逐列以新幣別、新匯率重算金額(ViewModel 的弱事件監聽
隸屬倉庫/幣別/匯率)。 - 變更隸屬倉庫(主檔):同步更新各明細列的「所屬倉庫」資訊,連帶影響明細轉入/轉出倉儲的可選範圍(儲位查詢會過濾成該倉庫的儲位)。
明細欄位連動¶
- 輸入品號:自動帶出品名、單位等品號資料(
SetISKU),並可在右側庫存查詢面板看到該品號的現有庫存(對應 VFPsql_gmno1)。 - 輸入數量 / 單價 / 其他金額:任一改動都會即時呼叫稅額計算器重算該列原幣未稅、本幣未稅,並讓表頭的原幣合計、本國幣合計同步更新(對應 VFP 明細
Valid與表頭sum加總)。 - 交易別碼:只有在新增/修改/複製狀態下可改(下拉 lcl_tritem1)。它決定該列動庫存的方向(轉入或轉出部門別),存檔時系統據此自動帶轉入/轉出倉儲。
- 明細列鎖定:若某明細列的轉帳款數量 > 0 或已交數量 > 0,該列視為已被後續流程引用,不可再編輯(Source 的
CanEdit)。 - 轉入/轉出倉儲查詢:儲位查詢自動加上「= 主檔隸屬倉庫」的過濾條件,避免選到別的倉庫的儲位。
存檔前的處理與檢核(GtrsamaSave + GinventorySave)¶
按 儲存 時,系統依序執行:
- 品號空白的明細列自動標記刪除,不寫入。
- 補預設交易別:明細有品號但交易別碼空白時,自動帶入前置碼設定的預設交易別。
- 倉儲自動帶值/檢核:依交易別碼對應的轉入/轉出部門別與倉庫「倉同儲」設定,自動帶倉儲,或要求你自行填入正確的轉入/轉出儲位;填錯倉庫會擋「請輸入正確的儲位」。不可填到「收料虛擬儲位」(系統參數 3023)。
- 匯率補算:主檔匯率 ≤ 0 時,依幣別與交易日期重新抓「買」匯率(
U_BLRATE)。 - 金額鏈重算:逐列
原幣未稅 = ROUND(數量 × 單價, 幣別小數位) + 其他金額;表頭金額總額=Σ各列原幣未稅,本國幣總額=ROUND(總額 × 匯率, 幣別小數位);稅額由稅額計算器依稅別稅率推得。 - 主檔必填檢核:隸屬倉庫、交易部門、幣別、前置碼、交易日期任一空白都會擋;倉庫不存在、無倉庫權限、
IA成本調整單前置碼、落在關帳日(含)以前,皆擋存。 - 批號檢核:倉庫設定批號管制(LotCodeControl=Y)時,每列必須有批號別與批號(>0);未管制時系統會清空批號欄。
擋修改/刪除的條件(GtrsamaEdit + GinventoryEdit)¶
按 修改 或 刪除 時,下列任一成立即擋下:
- 前置碼為
IA(成本調整單) → 不可修改或刪除。 - 無此倉庫的權限(權限備註未含該倉庫且不含
ALL)。 - 交易日期落在關帳日(含)以前。
- 轉出備註有值 → 該單已轉應收帳款,鎖單。
- 耗料單號有值 → 該單已轉耗料單,鎖單。
檢視價格權限(AllowViewPrice)¶
主檔的稅額、發票金額、合計區,以及明細的單價、其他金額、原幣/本幣未稅、單位成本、成本、其他分攤等價格相關欄位,會依使用者的「可檢視價格」權限決定是否顯示。無此權限者畫面上看不到金額欄位。
工作流程/簽核改為集中式
VFP 原版表頭有「工作流程」「快速審核」「流程樣板號」與審核三欄。新版這些審核相關欄位仍保留在資料結構中,但簽核行為改走新版集中式 workflow,不在本表單內另做按鈕,故畫面上不提供獨立的審核操作。
常見問題¶
金額、合計都是 0,或根本看不到金額欄位?
兩種可能:(1)你沒有「檢視價格」權限——此時單價、金額、合計欄位會整批隱藏;請洽系統管理員調整權限。(2)明細數量或單價還沒填——金額是輸入數量/單價後才即時重算的,先確認明細已填好數量。
存檔時出現「請輸入正確的儲位/倉儲代號」?
代表轉出倉儲(或轉入倉儲)不屬於目前的隸屬倉庫,或隸屬倉庫根本不存在。請確認:隸屬倉庫是已建立的總務倉、明細填的儲位屬於該倉庫,且未誤填到收料虛擬儲位。詳見存檔前的處理與檢核。
為什麼某張單不能修改或刪除?
符合下列任一情況就會被鎖:前置碼是 IA 成本調整單、你沒有該倉庫的權限、交易日期落在關帳日(含)以前、轉出備註有值(已轉應收)、或耗料單號有值(已轉耗料)。
改了幣別,明細金額沒跟著變?
主檔幣別/匯率變更會自動廣播到所有明細重算。若仍未更新,請確認此時是在編輯狀態(新增/修改),瀏覽狀態下不會觸發重算;必要時改一下任一明細數量讓系統重新計算。
找不到列印按鈕?
出貨單列印(VFP GTRSAMA_P)尚未移植到新版,目前不提供列印;此為已知缺口、規劃中。
新增時幣別預設是什麼?匯率為何是 1?
新增預設帶本位幣 + 匯率 1。改成外幣時系統會依交易日期自動帶當日「買」匯率;若仍為 1,請確認該幣別當日有匯率資料,否則存檔時系統會再嘗試補抓一次。
相關功能¶
- 雜項進貨入庫(相對方向的進貨入庫)
- 領料/倉庫異動單(領料出庫與倉庫異動)
- G倉儲位置(明細儲位來源)
- G倉儲基本資料(倉庫與倉同儲設定)
- G庫存查詢(查現有庫存)
- 採購模組
- 庫存模組
- AR/AP(應收應付)模組
- 總帳模組
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
gtrsama-step1.png— 主檔表頭(倉庫/前置碼/客戶/幣別匯率區)gtrsama-step2.png— 明細格線(品號/數量/單價/轉出倉儲)與右側庫存查詢面板gtrsama-step3.png— 表頭原幣/本國幣合計區