程式資訊
- 程式 ID:
TRRAFEEPRIME - 所屬子系統:G.採購付款
- 狀態:stable
進貨費用攤計(Prime)¶
功能簡介¶
「進貨費用攤計(Prime)」是一張進口進貨的費用歸集與成本攤計單,提供給有海運/空運進口、需要把報關、運費、保險等雜支併入存貨成本的進口商使用。它把一張進貨(收料)所衍生的各項進口費用——報關(含關稅)、保險、海運、拖運、碼頭費、報關處理費、認證費,外加 4 個可自訂費用欄位——集中登錄在表頭,並依貨櫃(Container)與品項(SKU)兩層明細逐層展開,最後算出每個品項的到岸成本(Landed Cost)與漲幅百分比(Container Value)。
這支單在採購到進貨成本的流程中位於後段:先有進貨(暫收/進貨單)取得 FOB 原始金額,再用本單把進口雜費攤進去,得到真正進帳的存貨成本。表頭並提供 查詢費用 A/P 的延伸功能,可回頭查出每一項費用對應的應付帳款(A/P)單號。
Prime 客製版本
本表單為 Prime 客製版(程式名稱 TRRAFEEPRIME),畫面標籤目前以英文呈現(Receiveing#、Broker Co.、Landed Cost 等)。其資料結構與一般進貨費用單同源,但攤計邏輯與表頭欄位是依該客戶的進口作業量身設計,欄位與下方說明以實際程式為準。
前置需求¶
- 權限:G.採購 →
進貨費用攤計(Prime)的新增/修改/刪除/瀏覽權限。 - 基礎資料:下列主檔/單據會直接影響本單能否正確帶值與攤計——
| 資料 | 影響的結果 |
|---|---|
| 進貨/暫收單(同收料單號 Receiveing#) | 表頭與品項明細(detail2)的來源;FOB 金額、品項清單由此而來 |
| 廠商主檔(報關行/保險/運送/拖運/其他廠商) | 表頭各家承運廠商欄(Broker Co.~Trucking Co.、MISC、Additional2~4)的代號查找 |
| 應付帳款(A/P)單據 | 查詢費用 A/P 能否查到對應的付款單號 |
需先有對應的暫收/進貨資料
存檔時系統會以收料單號(Trno)回查暫存進貨檔。若該單號在系統中查不到對應的暫收/進貨資料,會擋下存檔(詳見常見問題)。請先完成進貨,再以同一單號開立費用攤計單。
操作步驟¶
新增一張費用攤計單¶
- 在工具列按
新增。系統建立一張空白表頭。 - 於 Receiveing#(收料單號)輸入要攤計費用的進貨單號——這是本單的主鍵。
- 填入表頭基本資料:Tr Date(交易日期)、Invoice No(發票號)、Registration#(報單號)、Bill Of Lading#(提單號)。
- 在中段的廠商區,依各項費用的承辦廠商,於
Broker Co./Insurance Co./Freight Co./Trucking Co./MISC/Additional2~4以廠商查找選入廠商代號;右側對應欄位填入各家的 Inv#(發票號)與 $(金額)。 - 在貨櫃明細(上方格線)逐櫃登錄 Container#/Container Size 與該櫃的各項費用(海運、關稅、處理費、碼頭費、拖運、保險、Additional Fee 1~4 等)。
- 在品項明細(下方格線)登錄各 SKU 的數量、FOB 單價、重量、材積、稅率等資料。
- 確認表頭下方的彙總欄(Original Cost(A)/C.O.G.S.(B)/Container Value)後,按
存檔。存檔前系統會自動完成攤計與檢核(見欄位連動與附加功能)。
彙總三欄是唯讀的
Original Cost(A)、C.O.G.S.(B)、Container Value 三欄為唯讀,由系統依明細計算後帶出,不需也不能手動輸入。
修改 / 刪除¶
- 以
查詢或瀏覽定位到要處理的單據(用 Receiveing# 查找)。 - 按
修改後調整貨櫃或品項明細的費用,再按存檔;系統會重新攤計一次。 - 確認整張單可作廢時按
刪除。
查詢對應的應付帳款¶
- 開啟(或定位)任一張已存檔的費用攤計單。
- 按延伸功能
查詢費用 A/P(ExtendedFunction1)。系統會列出本單各項費用金額與其對應的 A/P 單號清單;尚未產生 A/P 的費用以-----------顯示。詳見欄位連動與附加功能。
欄位說明¶
表頭欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Receiveing#(收料單號 Trno) | ✔ | 本單主鍵;存檔時必填,且需對應到系統中既有的進貨資料 |
| Tr Date(交易日期) | — | 短日期格式 |
| Invoice No(發票號) | — | 進貨發票號 |
| Registration#(報單號) | — | 進口報單號 |
| Bill Of Lading#(提單號) | — | 海運提單號 |
| Broker Co./Insurance Co./Freight Co./Trucking Co.(報關/保險/運送/拖運廠商) | — | 以廠商查找選入代號 |
| MISC/Additional2~4(其他廠商) | — | 4 個額外承運廠商欄位 |
| Inv#(各廠商發票號) | — | 對應每家廠商的發票號 |
| Broker$/Insurance$/Freight$/Trucking$/Additional Fee 1~4(各費用金額) | — | 本幣金額;存檔時會由明細彙總覆寫(見下節) |
| Notes/Notes-Out(內部/對外備註) | — | 文字備註 |
| Original Cost(A) | 唯讀 | =品項明細 FOB 金額合計 |
| C.O.G.S.(B) | 唯讀 | =品項明細到岸成本(Landed Cost)合計 |
| Container Value | 唯讀 | =(B−A)/A × 100,四捨五入 2 位;A 為 0 時為 0 |
貨櫃明細(上方格線)¶
| 欄位 | 說明 |
|---|---|
| Line#/Container#/Container Size | 行號、貨櫃號、櫃型 |
| Ocean Frt(海運)/Duty(關稅)/Proc. Fee(處理費)/Harbor Fee(碼頭費) | 該櫃各項費用 |
| Truck Fee(拖運)/Insurance(保險)/Additional Fee 1~4 | 該櫃其餘費用 |
| FOBAmt(FOB 金額) | 該櫃 FOB 金額;存檔時由所屬品項彙總帶入 |
| Landed Cost(到岸成本) | =海運+關稅+處理費+碼頭費+雜費+FOB+拖運+Additional Fee 1~4(存檔時計算) |
| %Container Value(漲幅) | =(到岸成本−FOB)/FOB,四捨五入 2 位 |
品項明細(下方格線)¶
| 欄位 | 說明 |
|---|---|
| Line No/Container No/SKU/SKUDescription | 行號、所屬貨櫃、品號、品名 |
| Carton Total/HTSCode | 箱數、HTS 稅則號 |
| Net/Gross Weight KGS/LBS/Cubic Meter/Cubic Feet | 淨重、毛重、磅、材積 |
| Certification Fee(認證費)/Duty Rate(關稅率)/Duty(關稅) | 各品項費用與稅率 |
| Quantity(數量)/FOBUnit Price(FOB 單價)/FOBAmount(FOB 金額) | 數量與 FOB 金額 |
| CIFUnit Price(CIF 單價) | 存檔時 =該品項分攤後的到岸成本 ÷ 數量 |
| Landed Cost(到岸成本) | 存檔時依貨櫃到岸成本按 FOB 比例分攤而得 |
欄位連動與附加功能¶
本單最核心的價值在「存檔當下的逐層攤計」。以下把實際程式(VM 的 AfterAddNew、Save BLL 的 HandleDataBeforeEndEdit、明細 Source 的 SetLandedCost/SetContainerValue、SqlQuery BLL 的費用查詢)轉成使用者看得懂的「當你⋯,系統會⋯」。
新增後的彙總¶
- 當你按
新增(AfterAddNew),系統會立刻把表頭三欄算好:- Original Cost(A) = 品項明細所有 FOBAmount 加總。
- C.O.G.S.(B) = 品項明細所有 Landed Cost 加總。
- Container Value = A 為 0 時顯示 0;否則 = (B−A) / A × 100,四捨五入 2 位(代表這批貨因進口雜費而比 FOB 漲了百分之幾)。
存檔時的逐層攤計(HandleDataBeforeEndEdit)¶
存檔前,系統會以「貨櫃號(Container#)」把品項明細與貨櫃明細對應起來,逐筆貨櫃明細依序做下面幾件事:
- 當貨櫃明細沒填貨櫃號時,該貨櫃列會被標記為刪除(不納入計算)。
- 當貨櫃明細有貨櫃號時,系統先把同一櫃所有品項的 Duty(關稅) 與 FOBAmount 加總,回寫到該櫃(貨櫃明細)的對應欄位。
- 系統重算該櫃的到岸成本與漲幅(
SetLandedCost/SetContainerValue):- 貨櫃 Landed Cost = 海運+關稅+處理費+碼頭費+雜費+FOB+拖運+Additional Fee 1~4。
- 貨櫃 %Container Value = FOB 不為 0 時 = (到岸成本−FOB)/FOB,四捨五入 2 位。
- 把貨櫃到岸成本按 FOB 比例分攤回該櫃每個品項:
- 品項 Landed Cost = 貨櫃到岸成本 × (品項 FOBAmount ÷ 貨櫃 FOBAmount),四捨五入 4 位(FOB 為 0 時為 0)。
- 品項 CIFUnit Price = 品項到岸成本 ÷ 數量,四捨五入 4 位(數量為 0 時為 0)。
- 尾差自動歸位:若同櫃各品項分攤後的到岸成本加總和該櫃總到岸成本有差,系統會把差額補到該櫃到岸成本最高的那一筆品項上,確保櫃內加總精確相符。
存檔時的表頭費用回寫¶
- 當你存檔時,系統會用未被刪除的貨櫃明細,把各類費用彙總後覆寫表頭金額:
- Broker$ = 各櫃 (關稅+處理費+碼頭費+雜費) 之和。
- Insurance$ = 各櫃保險之和。
- Freight$ = 各櫃海運之和。
- Trucking$ = 各櫃拖運之和。
- Additional Fee 1~4 = 各櫃對應 Additional Fee 之和。
表頭金額以明細為準
因為表頭費用金額在存檔當下會被明細彙總覆寫,請以貨櫃明細為主要登錄入口;直接改表頭金額而沒有相應的明細,存檔後會被蓋回。
存檔檢核¶
- 當收料單號(Receiveing#)空白時,存檔被擋下,並提示請輸入收料單號。
- 當收料單號在系統中查不到對應的(暫存)進貨資料時,存檔被擋下並提示
Trno not exists。換言之,本單必須掛在一張真實存在的進貨之上。
延伸功能:查詢費用對應的應付帳款¶
- 當你按
查詢費用 A/P(ExtendedFunction1),系統以本單的收料單號呼叫查詢,逐項列出 8 類費用(Broker、Insurance、Freight、Truck、Additional Fee 1~4)的金額及其對應的 A/P 單號;該費用尚未轉出應付的,單號以-----------顯示。執行後畫面會重新整理。 - 這讓你不必離開本單,就能對照「這筆進口費用到底開到哪幾張付款/應付單」。
延伸功能 2 為保留
工具列的延伸功能 2(ExtendedFunction2)目前在程式中為保留(內容已註解、尚未啟用),按下後僅重新整理畫面,不會有額外動作。
常見問題¶
按存檔時跳出「請輸入收料單號」或無法存檔?
收料單號(Receiveing#/Trno)是本單主鍵,必填。請先在表頭填入要攤計費用的進貨單號再存檔。
存檔時提示「Trno not exists」?
系統會用收料單號回查暫存進貨檔,找不到對應進貨資料就會擋存。請確認該單號確實有一張已存在的暫收/進貨單,再以同一單號開立費用攤計。
Landed Cost(到岸成本)/CIF 單價一直是 0?
到岸成本是存檔當下才依貨櫃與品項做攤計的。常見原因:貨櫃明細沒填貨櫃號(該貨櫃列會被當作刪除列略過,掛在其下的品項自然算不到費用)、或該貨櫃彙總後 FOBAmount 為 0(把貨櫃到岸成本按品項 FOB 比例分攤時分母為 0,分攤值為 0)。請先補齊貨櫃號與品項 FOB 金額再存檔。
我直接改了表頭的 Broker$/Freight$ 等金額,存檔後又變回去?
這是正常的。表頭各類費用金額在存檔時會由貨櫃明細彙總覆寫。請改在貨櫃明細登錄費用,表頭金額會自動帶出。詳見欄位連動與附加功能。
Container Value(漲幅)為什麼是 0 或很奇怪的數字?
Container Value = (C.O.G.S.−Original Cost)/Original Cost × 100。當 Original Cost(A) 為 0(品項 FOB 金額尚未填或全為 0)時,系統直接顯示 0。請確認品項明細已輸入 FOB 數量與單價。
「查詢費用 A/P」列出的單號都是虛線(-----------)?
虛線代表該項費用尚未產生對應的應付帳款(A/P)單據。待相關付款/應付流程建立後,再次查詢即會帶出單號。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/G-Purchasing/images/):
trrafeeprime-step1.png— 表頭整體(收料單號、各承運廠商與費用區、彙總三欄)trrafeeprime-step2.png— 貨櫃明細格線(含各項費用與 Landed Cost)trrafeeprime-step3.png— 品項明細格線(SKU、FOB、攤計後的 Landed Cost/CIF 單價)trrafeeprime-step4.png—查詢費用 A/P彈出的費用與 A/P 單號對照訊息