跳轉到

程式資訊

  • 程式 IDGTRSAMA
  • 所屬子系統:C.總務管理
  • 狀態:stable

G出貨單

功能簡介

「G出貨單」是總務庫(General 庫)的出貨/出庫單據(單據別 3),用來登錄一般物料、雜項銷貨或非正規業務的出庫,並即時扣減總務庫的庫存。它和正規業務的銷貨出貨(H 庫的出貨單)走不同的庫位與單據體系,主要由總務、倉管或一般物料管理人員使用。

一張單由主檔(一筆:客戶、幣別、稅別、發票、傳票等表頭資料)加上多筆明細(品號、數量、單價、轉出倉儲、批號等)組成。存檔時系統依明細逐列動總務庫的庫存帳,並可帶出原幣/本幣金額與稅額供後續轉應收、轉傳票使用。

與相近單據的差異

  • 雜項進貨入庫(GTRRAMA,C-070)是進貨入庫;本單是相對方向的出貨/出庫。
  • 領料/倉庫異動單(GTRLIMA,C-080)是領料出庫與倉庫異動;本單偏向雜項銷貨與一般物料出庫。 三者底層共用同一套總務庫存引擎(GinventorySaveGinventoryEdit),差別在單據別前置碼所對應的交易別行為。

前置需求

  • 權限:C.總務 → C-090 G出貨單 的瀏覽/修改權限。
    • 倉庫權限另受限:作業中的隸屬倉庫必須落在你權限備註涵蓋的倉庫範圍內,或備註含 ALL,否則新增/修改/存檔會被擋。
  • 基礎資料:下列主檔需先維護,否則對應欄位會帶不出值或存檔被擋——
資料 影響什麼
倉庫(G倉儲基本資料 隸屬倉庫 必須是已建立的總務倉,否則存檔擋「請輸入正確的倉儲代號」;倉庫的「倉同儲」「批號管制」設定會決定倉儲與批號的填寫規則
倉儲位置(G倉儲位置 明細的轉入倉儲/轉出倉儲只能填屬於該倉庫的儲位
序號前置碼(依 ProgramClass=GTRSAMA 設定) 單號編碼、預設交易別碼;前置碼空白存檔會被擋
客戶主檔 輸入客戶代號後自動帶幣別/稅別/運送方式/業務員
幣別與匯率 幣別 變更時帶當日「買」匯率;本幣金額換算依此
稅別主檔 稅別 決定稅率,存檔時推算稅額
交易別主檔(lcl_tritem1) 明細交易別碼下拉清單,決定該列動哪個方向的庫存

操作步驟

新增一張出貨單

  1. 從主選單開啟 C.總務 → G出貨單
  2. 點工具列 新增。系統會自動帶入預設值(見欄位說明)並切換到右側的庫存查詢頁籤,方便邊查庫存邊填明細。
  3. 填寫主檔表頭:
    1. 隸屬倉庫:輸入或查詢出貨的總務倉。
    2. 前置碼:選單據前置碼(決定編碼與預設交易別)。
    3. 交易日期:預設今天,可改。
    4. 幣別/匯率:預設本位幣、匯率 1;改幣別會自動帶當日匯率。
    5. 客戶代號:輸入後自動帶客戶簡稱、幣別、稅別、運送方式、業務員。
    6. 視需要填發票、稅別、收付條件、帳款期別、付款方式、備註、摘要等。
  4. 在下方明細格線逐列填寫出貨內容:
    1. 品號:輸入或查詢;帶出品名與單位,並可在右側庫存查詢頁籤查現有庫存。
    2. 數量/單價/其他金額:輸入後即時重算該列原幣未稅/本幣未稅,表頭合計同步更新。
    3. 轉出倉儲:填出庫的來源儲位(依倉庫「倉同儲」設定,部分情況系統會自動帶)。
    4. 視需要填批號別/批號(倉庫有批號管制時為必填)、交易別碼、預訂交期、備註等。
  5. 點工具列 儲存。系統執行存檔前檢核(見欄位連動與附加功能)通過後寫入並動庫存。

    小技巧

    可用 Ctrl+S 快速儲存。明細若整列品號留空,存檔時會自動視為刪除、不寫入該列。

修改與刪除

  1. 在資料列表選到要處理的單據。
  2. 修改刪除。系統會先檢核是否允許異動(見下方擋修改/刪除的條件),通過才進入編輯或執行刪除。

查詢庫存

  • 明細選取某一列後,右側庫存查詢面板會依該列的品號/倉庫顯示現有庫存,協助判斷可出貨量。此面板隨選取列即時連動(對應 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. 公司代碼 = 1單據別 = 3(總務出貨)、交易日期 = 今天
  2. 幣別 = 本位幣匯率 = 1
  3. 自動切換到右側「庫存查詢」頁籤,對應 VFP「一新增就準備查庫存填品號」的操作習慣。

主檔欄位連動

  1. 輸入客戶代號:系統 SEEK 客戶主檔,找到時自動帶客戶簡稱,並(在客戶有設定時)覆寫幣別、稅別、運送方式碼、業務員編號;同時把客戶代號寫進底層的「交易部門」欄。對應 VFP sqlnm_cu1.代號.Valid
  2. 變更幣別TsCurrency 控件依交易日期自動帶出該幣別的「買」匯率寫回匯率欄(對應 VFP 幣別.LostFocus 呼叫 U_BLRATE)。
  3. 變更幣別 / 匯率(主檔):系統會把新的幣別、匯率廣播到所有明細列,逐列以新幣別、新匯率重算金額(ViewModel 的弱事件監聽 隸屬倉庫幣別匯率)。
  4. 變更隸屬倉庫(主檔):同步更新各明細列的「所屬倉庫」資訊,連帶影響明細轉入/轉出倉儲的可選範圍(儲位查詢會過濾成該倉庫的儲位)。

明細欄位連動

  1. 輸入品號:自動帶出品名、單位等品號資料(SetISKU),並可在右側庫存查詢面板看到該品號的現有庫存(對應 VFP sql_gmno1)。
  2. 輸入數量 / 單價 / 其他金額:任一改動都會即時呼叫稅額計算器重算該列原幣未稅、本幣未稅,並讓表頭的原幣合計、本國幣合計同步更新(對應 VFP 明細 Valid 與表頭 sum 加總)。
  3. 交易別碼:只有在新增/修改/複製狀態下可改(下拉 lcl_tritem1)。它決定該列動庫存的方向(轉入或轉出部門別),存檔時系統據此自動帶轉入/轉出倉儲。
  4. 明細列鎖定:若某明細列的轉帳款數量 > 0已交數量 > 0,該列視為已被後續流程引用,不可再編輯(Source 的 CanEdit)。
  5. 轉入/轉出倉儲查詢:儲位查詢自動加上「= 主檔隸屬倉庫」的過濾條件,避免選到別的倉庫的儲位。

存檔前的處理與檢核(GtrsamaSave + GinventorySave)

儲存 時,系統依序執行:

  1. 品號空白的明細列自動標記刪除,不寫入。
  2. 補預設交易別:明細有品號但交易別碼空白時,自動帶入前置碼設定的預設交易別
  3. 倉儲自動帶值/檢核:依交易別碼對應的轉入/轉出部門別與倉庫「倉同儲」設定,自動帶倉儲,或要求你自行填入正確的轉入/轉出儲位;填錯倉庫會擋「請輸入正確的儲位」。不可填到「收料虛擬儲位」(系統參數 3023)。
  4. 匯率補算:主檔匯率 ≤ 0 時,依幣別與交易日期重新抓「買」匯率(U_BLRATE)。
  5. 金額鏈重算:逐列 原幣未稅 = ROUND(數量 × 單價, 幣別小數位) + 其他金額;表頭金額總額=Σ各列原幣未稅,本國幣總額=ROUND(總額 × 匯率, 幣別小數位);稅額由稅額計算器依稅別稅率推得。
  6. 主檔必填檢核:隸屬倉庫、交易部門、幣別、前置碼、交易日期任一空白都會擋;倉庫不存在、無倉庫權限、IA 成本調整單前置碼、落在關帳日(含)以前,皆擋存。
  7. 批號檢核:倉庫設定批號管制(LotCodeControl=Y)時,每列必須有批號別批號(>0);未管制時系統會清空批號欄。

擋修改/刪除的條件(GtrsamaEdit + GinventoryEdit)

修改刪除 時,下列任一成立即擋下:

  1. 前置碼為 IA(成本調整單) → 不可修改或刪除。
  2. 無此倉庫的權限(權限備註未含該倉庫且不含 ALL)。
  3. 交易日期落在關帳日(含)以前
  4. 轉出備註有值 → 該單已轉應收帳款,鎖單。
  5. 耗料單號有值 → 該單已轉耗料單,鎖單。

檢視價格權限(AllowViewPrice)

主檔的稅額、發票金額、合計區,以及明細的單價、其他金額、原幣/本幣未稅、單位成本、成本、其他分攤等價格相關欄位,會依使用者的「可檢視價格」權限決定是否顯示。無此權限者畫面上看不到金額欄位。

工作流程/簽核改為集中式

VFP 原版表頭有「工作流程」「快速審核」「流程樣板號」與審核三欄。新版這些審核相關欄位仍保留在資料結構中,但簽核行為改走新版集中式 workflow,不在本表單內另做按鈕,故畫面上不提供獨立的審核操作。

常見問題

金額、合計都是 0,或根本看不到金額欄位?

兩種可能:(1)你沒有「檢視價格」權限——此時單價、金額、合計欄位會整批隱藏;請洽系統管理員調整權限。(2)明細數量單價還沒填——金額是輸入數量/單價後才即時重算的,先確認明細已填好數量。

存檔時出現「請輸入正確的儲位/倉儲代號」?

代表轉出倉儲(或轉入倉儲)不屬於目前的隸屬倉庫,或隸屬倉庫根本不存在。請確認:隸屬倉庫是已建立的總務倉、明細填的儲位屬於該倉庫,且未誤填到收料虛擬儲位。詳見存檔前的處理與檢核

為什麼某張單不能修改或刪除?

符合下列任一情況就會被鎖:前置碼是 IA 成本調整單、你沒有該倉庫的權限、交易日期落在關帳日(含)以前、轉出備註有值(已轉應收)、或耗料單號有值(已轉耗料)。

改了幣別,明細金額沒跟著變?

主檔幣別/匯率變更會自動廣播到所有明細重算。若仍未更新,請確認此時是在編輯狀態(新增/修改),瀏覽狀態下不會觸發重算;必要時改一下任一明細數量讓系統重新計算。

找不到列印按鈕?

出貨單列印(VFP GTRSAMA_P)尚未移植到新版,目前不提供列印;此為已知缺口、規劃中。

新增時幣別預設是什麼?匯率為何是 1?

新增預設帶本位幣 + 匯率 1。改成外幣時系統會依交易日期自動帶當日「買」匯率;若仍為 1,請確認該幣別當日有匯率資料,否則存檔時系統會再嘗試補抓一次。

相關功能


需補截圖清單

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

  1. gtrsama-step1.png — 主檔表頭(倉庫/前置碼/客戶/幣別匯率區)
  2. gtrsama-step2.png — 明細格線(品號/數量/單價/轉出倉儲)與右側庫存查詢面板
  3. gtrsama-step3.png — 表頭原幣/本國幣合計區