程式資訊
- 程式 ID:
GTRRAMA - 所屬子系統:C.總務管理
- 狀態:stable
雜項進貨入庫¶
功能簡介¶
「雜項進貨入庫」(GTRRAMA)用來登錄廠商交貨的進貨入庫單:在主檔記錄廠商、發票、報關(提單/報單)與付款條件等表頭資訊,在進貨明細逐列輸入品號、數量、單價與來源/目的儲位完成入庫,並在進口費用明細輸入關稅、運費等進口成本,由系統依各明細金額自動分攤回每一列、算出單位成本與進貨成本。
這支表單是總務(非生產)採購流程裡「收貨入帳」的關鍵環節,主要由總務/倉管人員使用。它可以手動新增,也可以從 採購轉進貨(Gputora) 一次把未進貨的採購明細帶進來。入庫後的成本會反映到庫存與應付帳款;本單也提供應付帳款查詢側欄,直接查出本單已產生的應付資料。
與生產採購進貨的區別
本單屬於 C 總務管理模組,處理公司內部非生產性物資的進貨入庫。生產用採購進貨請見 G 採購付款。
前置需求¶
- 權限:C.總務管理 →
C-070 雜項進貨入庫的新增/修改/刪除/瀏覽權限;列印與查看金額另受權限旗標AllowViewPrice控制(見欄位連動與附加功能)。 - 基礎資料:下列主檔/參數會直接影響本單可否正確輸入與計算——
| 資料 | 影響的結果 |
|---|---|
| 倉庫主檔、儲位主檔 | 隸屬倉庫、明細的 Source Bin/Destination Bin 來源;儲位下拉只列出本單倉庫下的儲位 |
| 廠商主檔 | 廠商代號/簡稱、預設帶入的交易部門 |
| 品號主檔 | 明細 品號 帶出品名、單位、庫存管制等 |
| 幣別與匯率資料 | 幣別/匯率;未填匯率時自動抓交易日期的關稅賣出匯率 |
| 稅別主檔 | 稅別 決定稅率,連動稅額、含稅金額計算 |
| 付款方式(C203)、運送方式(C201)、收付條件 | 對應下拉與帶值 |
| 進口費用代碼參數(Cmb_C222) | Get Fee 一鍵帶出的費用清單與其預設科目、客廠部、是否為成本 |
| GL 科目主檔 | 進口費用明細的 科目代號/名稱 |
操作步驟¶
新增進貨入庫單¶
- 按工具列
新增。系統自動帶入預設值:公司代碼=1、交易日期=今天、幣別=本位幣、匯率=1(詳見欄位說明)。 - 輸入表頭:選 Warehouse(隸屬倉庫) 與 Prefix(序號前置碼),再依序填 Transaction Date(交易日期)、Vendor Code(廠商代號)、Currency(幣別)/FX Rate(匯率)、Payment Method(付款方式)、Payment Term(收付條件)。
- 填發票/報關資料:Invoice No/Date/Amount(發票號碼/日期/金額)、Tax Code(稅別)/Tax Amount(稅額)、Bill Of Lading No(提單號碼)、Declaration No(報單號碼)、Shipping Method(運送方式) 等。
-
在進貨明細(中間格線)逐列輸入:
- 品號:輸入或查詢後自動帶出品名、單位等。
- 數量/單價/其他金額:任一改動即重算該列原幣未稅與稅額。
- Source Bin(轉出倉儲)/Destination Bin(轉入倉儲):下拉僅列出本單倉庫下的儲位。
- 視需要填 關稅稅率、預訂交期、備註 等。
-
在進口費用明細(最下方格線)輸入進口成本:可直接逐列輸入,或按
Get Fee一鍵帶出 C222 設定的費用清單,再填各列本幣未稅金額。 - 按工具列
儲存。儲存前系統會做費用分攤與多項平衡檢核(見欄位連動與附加功能),通過後才寫入。
金額/成本相關欄位看不到?
主檔右側價格區、明細的單價/成本欄、以及整個進口費用明細格線,都受權限旗標 AllowViewPrice 控制。沒有檢視價格權限的使用者只會看到入庫的數量與品項,看不到金額。
修改 / 刪除¶
- 用工具列的瀏覽(上一筆/下一筆/查詢)切換到要處理的單據。
- 按
修改進入編輯,調整欄位後儲存;或按刪除整單刪除。 - 已轉帳款或已交貨的明細列不可再編輯:當某列 轉帳款數量 > 0 或 已交數量 > 0 時,該列會被鎖定(
CanEdit為 false)。已有轉出備註的進口費用列同樣鎖定,代表已被後續單據引用。
列印¶
切換到要列印的單據後,使用工具列的列印功能輸出進貨入庫單。列印同樣受 AllowViewPrice 影響,無檢視價格權限時金額欄不會輸出。
從採購轉進貨帶入¶
- 在本單按延伸功能(
ExtendedFunction1),開啟 採購轉進貨(Gputora) 視窗。 - 在該視窗依廠商/倉庫條件挑選未進貨的採購明細並產生進貨單。
- 關閉視窗後,若 Gputora 有產生新單據,本單會以該單 pkid 自動定位(Navigate)過去,明細與費用已帶入,接著確認金額後
儲存即可。
查詢本單應付帳款¶
主檔切換單據後,右側 AP Query(應付帳款查詢) 側欄會自動以本單倉單號查出已產生的應付帳款資料(透過 SP TWORK_QRY_TRRAMAAPQUERY)。可用來確認本單是否已轉入應付。
欄位說明¶
主檔(表頭)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| WHTransaction No(倉單號) | — | 系統產生,唯讀。本單主鍵代號,AP 查詢即以此為條件 |
| TransactionNo(單號) | — | 系統產生,唯讀 |
| Warehouse(隸屬倉庫) | ✔ | 入庫倉庫;連動明細儲位的可選範圍 |
| Prefix(序號前置碼) | ✔ | 單據前置碼,依 ProgramClass=GTRRAMA 取號 |
| Transaction Date(交易日期) | ✔ | 預設今天;作為幣別匯率查詢的基準日 |
| Vendor Code(廠商代號) | ✔ | 輸入後帶出廠商簡稱,並把交易部門設為同值 |
| Currency(幣別)/FX Rate(匯率) | ✔ | 預設本位幣+匯率 1;改幣別會連動明細與費用重算 |
| Payment Method(付款方式) | — | 下拉,來源代碼表 C203 |
| Payment Term(收付條件) | — | 收付條件號,帶出說明 |
| Invoice No/Date/Amount(發票號碼/日期/金額) | — | 發票資訊 |
| Tax Code(稅別)/Tax Amount(稅額) | — | 稅別決定稅率,連動含稅金額;稅額亦顯示於右側價格區 |
| Bill Of Lading No(提單號碼)/Declaration No(報單號碼) | — | 進口報關資訊 |
| Fee Allocation(分攤費用) | — | 進口費用合計(關稅+其他成本費用),儲存時與明細分攤總額互相檢核 |
| Shipping Method(運送方式) | — | 下拉,來源代碼表 C201 |
| Remark(交易備註) | — | 自由輸入 |
| Turn In Note(轉入備註)/Turn Out Note(轉出備註) | — | 系統產生,唯讀;標示本單與其他單據的轉入/轉出關係 |
| Fee(總費用) | — | 唯讀,進口費用明細本幣未稅合計 |
| 價格區(Currency/Amount/Duty/Other/稅額/含稅本幣) | — | 全部唯讀,受 AllowViewPrice 控制;分別對應總原幣未稅、總本幣未稅、總關稅分攤、總其他分攤、稅額、本幣應收付 |
進貨明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Line No(序號) | — | 系統產生,唯讀;補零位數為 4 |
| 品號 | ✔ | 查詢帶出品名、單位、庫存管制等 |
| 品名 | — | 由品號帶出,唯讀 |
| 客廠品號 | — | 廠商端品號 |
| 交易別碼 | — | 唯讀;RA/RB/RC/RD 等,決定該列是否計入成本與稅額計算 |
| Source Bin(轉出倉儲)/Destination Bin(轉入倉儲) | — | 儲位下拉,僅列本單倉庫下儲位 |
| 數量 | ✔ | 改動即重算原幣未稅與稅額 |
| 單位 | — | 下拉,UOM 清單 |
| 單價/其他金額 | — | 改動即重算金額;受 AllowViewPrice 控制 |
| 原幣未稅 | — | 系統算出=數量×單價+其他金額(依幣別小數位四捨五入) |
| 關稅稅率 | — | 進口關稅率(%),參與關稅分攤;填關稅費用時此欄不可全為 0 |
| 關稅分攤/其他分攤 | — | 系統依費用明細自動分攤回各列,唯讀結果 |
| 本幣未稅/單位成本/成本/微調本幣 | — | 系統算出;單位成本=(本幣未稅+分攤費用)÷數量 |
| 預訂交期/備註 | — | 可輸入 |
| 採購單pkid/採購單號/轉入單pkid/訂單pkid | — | 來源單據關聯,唯讀 |
| 轉帳款數量 | — | 唯讀;> 0 時該列鎖定不可編輯 |
進口費用明細¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Line No(序號) | — | 補零 3 位 |
| 費用代碼 | — | 來源 C222;Get Fee 帶入時自動帶費用說明、科目、客廠部 |
| 費用說明 | — | 唯讀;含「關稅/CUSTOMS/DUTY」字樣者視為關稅費用 |
| 科目代號/名稱 | — | GL 科目,新增時可由費用代碼帶入 |
| 客廠部代號/簡稱 | — | 由費用代碼帶入或自行輸入 |
| 幣別/匯率 | — | Get Fee 帶入時預設本位幣+匯率 1 |
| 原幣未稅/本幣未稅 | — | 輸入本幣未稅時自動把幣別設本位幣、匯率 1、原幣未稅=本幣未稅 |
| 是否為成本 | — | 預設 Y;只有為成本(且非關稅)的費用才併入「其他分攤」 |
| 費用備註/轉出備註 | — | 轉出備註唯讀,有值代表已被後續單據引用、該列鎖定 |
欄位連動與附加功能¶
這一節把「輸入某欄位/按某按鈕後系統會做什麼」逐項列出,全部來自實際程式碼。
新增時的預設值¶
- 按
新增後(AfterAddNew),主檔自動帶:公司代碼=1、交易日期=今天(短日期格式)、匯率=1、幣別=本位幣,並清空進口費用明細。 - 新增一列進口費用(
SetNewData)時,是否為成本 預設Y。 - 新增一列進貨明細時,系統把該列的
MasterInventory指向主檔,使儲位篩選(只列本倉庫儲位)與後續計算能取到表頭資訊。
幣別/匯率連動(表頭 → 明細)¶
- 當你改主檔 幣別,系統會把每一列進貨明細的幣別同步成新幣別並重算金額。
- 當你改主檔 匯率,系統會把每一列進貨明細的匯率同步成新值並重算。
- 新增進貨明細列時,會自動把該列的幣別、匯率設成目前主檔的幣別與匯率(
OnAddListener),確保新列與表頭一致。
廠商代號帶值¶
- 輸入 Vendor Code(廠商代號) 時(
廠商代號Binding),系統除了設定廠商代號,也會把 交易部門 設為同一值。廠商簡稱由查詢控件帶出。
明細金額即時重算¶
- 進貨明細的 數量/單價/其他金額 任一改變,立即呼叫稅額計算(
CalculateAmount→TaxCalculator),重算該列原幣未稅、含稅與稅額。 - 品號 輸入後(
品號Binding)由DescriptionHelper.SetISKU帶出品名、單位等品號相關資訊。 - 進口費用明細輸入 本幣未稅 時,自動把幣別設本位幣、匯率設 1、原幣未稅=本幣未稅。
Get Fee(一鍵帶入進口費用,ToolTip:C222)¶
按主檔的 Get Fee 按鈕(GetFeeCommand):
- 比對目前進口費用明細已有哪些費用代碼,把 C222 參數表裡還沒出現的費用代碼逐一補成新列。
- 每補一列帶入:費用代碼、費用說明、預設科目、客廠部、是否為成本,幣別=本位幣、匯率=1。
- 重新給所有費用列編序號(3 位補零)。
此按鈕只有在新增/修改/特殊編輯狀態下可按;且整個按鈕受 AllowViewPrice 權限控制,無檢視價格權限時隱藏。
費用分攤與成本計算(儲存時自動執行)¶
儲存時(GtrramaSave → GtrramaBll.ExpenseAllocation)系統做進口成本分攤:
- 先清空各明細的關稅分攤、其他分攤、進貨倍數。
- 把進口費用分成兩桶:關稅費用(費用說明含「關稅/CUSTOMS/DUTY」)累加成
customs;其餘標記為成本(是否為成本=Y) 的累加成「其他成本」。 - 依各進貨明細的原幣未稅占比,把「其他成本」分攤成各列其他分攤;依各列換算後關稅額占比,把關稅費用分攤成各列關稅分攤。
- 分攤產生的尾差(湊整誤差)補到金額最大的那一列,確保分攤總額與費用總額完全相等。
- 算出各列單位成本=(本幣未稅+其他分攤+關稅分攤)÷數量、成本=數量×單位成本,並把含稅單價、原幣/本幣含稅依稅率算出;同樣把湊整尾差補回成本最大列。
- 算出進貨倍數=成本÷本幣未稅(給後續成本回算用)。
儲存前的檢核(擋存檔條件)¶
GtrramaSave.AllowSave 會在下列情況擋下儲存:
- 進口費用裡有關稅費用(本幣未稅 > 0)但明細沒有任何一列填關稅稅率 → 提示要輸入關稅稅率。
- 主檔匯率 ≤ 0 時,系統自動抓交易日期的關稅賣出匯率補上(非錯誤,是自動補值)。
- 費用合計 ≠ 明細分攤合計(分攤費用、關稅費用對關稅分攤、成本費用對其他分攤任一不符)→ 提示費用與分攤金額不一致。
- 進貨金額(總原幣未稅×匯率)+分攤費用 ≠ 總成本 → 提示進貨金額與成本不符。
稅額計算(編輯結束前)¶
儲存前(HandleDataBeforeEndEdit → TaxCalculate)系統依主檔稅別取稅率,對交易別碼為 RA/RB 的明細統一重算稅額與含稅金額,再寫回主檔的稅額、本幣應收付等彙總欄位。
延伸功能:採購轉進貨(ExtendedFunction1)¶
按延伸功能開啟 採購轉進貨(Gputora) 視窗,由該視窗依條件挑未進貨的採購明細產生進貨單;視窗關閉後若有新產生的單據(pkid 不為 -1),本單自動定位過去。
切換單據時的彙總重算(AfterMoverRecord)¶
每次瀏覽切換到另一張單據時,系統會:
- 重新加總明細的總關稅分攤=各列關稅分攤合計、總其他分攤=各列其他分攤合計、總費用=進口費用各列本幣未稅合計(右側價格區與 Fee 欄即由這三個彙總值顯示)。
- 把每一列進貨明細的
MasterInventory指回主檔,使瀏覽時儲位欄的倉庫篩選仍正確。 - 把 AP Query 側欄的查詢條件設成本單倉單號。
側欄查詢¶
- AP Query(應付帳款查詢):主檔切換單據後自動以本單倉單號呼叫 SP
TWORK_QRY_TRRAMAAPQUERY查出已產生的應付帳款資料(回傳的是應付主檔rp_m資料)。 - Allocation(分攤查詢):選取明細列時會把該列 pkid 傳入並觸發查詢命令。
Allocation 分攤查詢目前未啟用
程式中 Allocation 側欄的實際查詢邏輯目前為停用(程式碼註解未啟用),切換明細列不會帶出資料。此為已知未提供之功能,非操作問題。
常見問題¶
為什麼存檔被擋,說「費用與分攤金額不一致」?
進口費用明細的合計必須等於分攤到各進貨明細的金額:關稅費用要等於各列關稅分攤合計、成本費用要等於各列其他分攤合計、表頭分攤費用要等於兩者之和。請確認費用都已正確分類(是否為成本、是否關稅),數量/單價輸入完整後再存一次;分攤是在存檔當下自動算的。
填了關稅費用卻不能存?
當進口費用裡有關稅費用(本幣未稅 > 0),明細至少要有一列填關稅稅率,系統才知道怎麼把關稅分攤回去。請在相關進貨明細列補上關稅稅率(%)。
明細的單價、成本、整個進口費用格線都看不到?
這些欄位受權限旗標 AllowViewPrice 控制。沒有檢視價格權限的帳號只會看到入庫品項與數量,看不到金額、成本與費用明細,列印也不含金額。請洽系統管理員調整權限。
某列明細無法編輯?
當該列 轉帳款數量 > 0 或 已交數量 > 0(已被後續轉帳款/出貨引用)時會鎖定不可改;進口費用列有 轉出備註 也會鎖定。請改在來源/後續單據處理。
改了幣別或匯率,金額沒跟著變?
改主檔幣別/匯率會同步明細幣別/匯率並重算,但最終的成本分攤是在儲存時才完整重算。若只是逐欄檢視,請存檔後再看成本與分攤欄。
新增的進口費用列幣別、匯率怎麼自動是本位幣、1?
用 Get Fee 帶入或輸入本幣未稅時,系統預設幣別=本位幣、匯率=1、原幣未稅=本幣未稅。若該費用是外幣支付,請手動改幣別與匯率後重填原幣未稅。
相關功能¶
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/C-GeneralAffair/images/):
gtrrama-step1.png— 主檔表頭(廠商/發票/報關區)與右側價格區全貌gtrrama-step2.png— 進貨明細格線(品號、數量、儲位、分攤與成本欄)gtrrama-step3.png— 進口費用明細格線與Get Fee按鈕gtrrama-step4.png— AP Query 應付帳款查詢側欄