跳轉到

程式資訊

  • 程式 IDPaymnt
  • 所屬子系統:I.帳款管理
  • 狀態:stable

應付帳款(立帳)

功能簡介

「應付帳款」是 AR/AP 模組中建立應付立帳單的核心交易表單,由帳務/採購會計使用。它記錄「我們欠廠商多少錢」——可以手動建立一張應付(例如費用、退貨應付、損害賠償),也可以由 進貨單 透過 進貨轉入 把驗收完成的進貨直接帶成應付。每一張應付立帳之後,會接到下游三個動作:

  1. 沖帳:由 付款單/沖款 把這筆應付沖掉,回填沖帳原幣/沖帳本幣未沖金額
  2. 轉傳票:按 轉傳票 把這張應付過到 總帳傳票,回填傳票號碼
  3. 帳齡與報表:進到 應付帳齡 與各式應付報表。

表單上半部是主檔(廠商、日期、發票、金額、付款條件),下半部格線是明細(品號、數量、單價、各種未稅/含稅金額)。主檔金額(原幣應收付/本幣應收付)由系統依明細與稅額算出,不直接輸入。

與付款單的差別

本表單是「立帳」——產生一筆未沖的應付。實際付錢、沖掉這筆應付是在 付款單 做的。本頁的沖帳原幣/沖帳本幣/未沖金額只是把付款單沖帳的結果顯示出來,不能在這裡直接付款。

前置需求

  • 權限:I.AR/AP → I-010 應付帳款 對應的 新增 / 修改 / 刪除 / 列印 權限;轉傳票進貨轉入暫估轉AP特殊修改 另有各自的延伸功能權限(對應 VFP 的「可其他 1~6」)。
  • 基礎資料:欄位帶值與金額計算依賴下列主檔,缺資料會造成欄位空白或金額為 0——
資料 影響什麼
廠商資料(廠商主檔 輸入付款廠商後自動帶幣別/帳款起始日/關係人/統一編號/付款條件/付款方式;查無代號會跳「查無此廠商代號」
付款條件(PAYTERM) 帶入後依帳款起始日/交易日期/發票日期推算收付款日到期日
稅別(TAXTYPE) 提供稅率,存檔時明細稅額重算靠它
幣別與匯率 非本位幣時 TsCurrency 控件依交易日期自動帶當日賣出匯率;匯率錯誤會擋存檔
品號主檔(INVENTTL) 明細輸入品號後帶品名/單位/科目代號,並判定交易別碼
財務單據別(RPDEF) 財務類別(單據別前置碼,如退貨應付、折讓)控制檢核與自動算稅的開關

操作步驟

新增一張應付立帳

  1. 按工具列 新增。系統帶出一張新主檔,預設值見欄位說明幣別=本位幣、匯率=1、帳款期別=本年月、進銷分類=1.內採、立帳日期/交易日期=今天
  2. 財務類別(必填,限應付類單據別,前置碼 P)。
  3. 輸入付款廠商代號(必填)。輸入後系統自動帶幣別、帳款起始日、關係人、統一編號、付款條件、付款方式,並把同代號補進廠商資料欄。詳見欄位連動與附加功能
  4. 視需要調整立帳日期/交易日期(兩者連動帳款期別)。
  5. 發票號碼/發票日期/統一編號/稅別/發票金額/稅額發票小計=發票金額+稅額,由系統即時顯示(稅額需自行輸入,主檔不會自動算稅;明細存檔時才依稅別重算)。
  6. 在下方明細格線逐列輸入品號/數量/單價/代工單價/其他金額,系統即時算出該列原幣未稅/本幣未稅
  7. 確認主檔原幣應收付/本幣應收付正確後,按 儲存。存檔檢核見常見問題

修改

  1. 定位到要改的單據,按 修改
  2. 改完按 儲存
  3. 下列情形系統會擋修改(對應 VFP allowedit):轉入備註含「舊資料」、已沖帳(沖帳原幣≠0)、已轉傳票(有傳票號碼)、財務類別為 55(成本分攤/進貨費用,須改去刪來源進貨單)、由別處轉入(轉入備註有值)。

刪除

  1. 定位到要刪的單據,按 刪除,確認後送出。
  2. 刪除同樣受上述「擋修改」規則限制(已沖帳、已轉傳票、轉入資料不可刪)。

列印

  1. 定位到單據後按 列印,開啟 應付帳款列印 條件頁。
  2. 系統會把目前單據的財務單號帶為列印起訖、帳款期別帶入、日期預設為當月月初到今天、廠商起訖為全部。可再調整條件後輸出。

進貨轉入(由進貨單帶成應付)

  1. 按工具列 進貨轉入,開啟「進貨轉 AP」視窗(PAYPDT)。
  2. 設定條件、勾選要轉的進貨/加工驗收資料並執行轉入。
  3. 視窗關閉後若成功產生應付,本表單會自動定位到新建的那張單。

暫估轉AP(暫估沖回轉應付)

  1. 按工具列 暫估轉AP,開啟暫估轉 AP 視窗(PAYPDT2,預設查詢近 30 天)。
  2. 選取暫估資料轉成正式應付,完成後同樣自動定位到新單。

轉傳票

  1. 定位到要過帳的應付,按 轉傳票,開啟「轉總帳」視窗。
  2. 系統以本單財務單號建立應付轉傳票的依據(含回沖 / 反轉判斷),執行後到 總帳傳票 產生傳票並回填傳票號碼
  3. 完成後本表單自動重新整理。

小技巧

已轉傳票的單據,傳票號碼欄是可點的連結(VFP 雙擊傳票號碼可跳到對應傳票)。要修改已轉傳票的應付,必須先在總帳端反轉該傳票。

特殊修改

  1. 特殊修改(對應 VFP else4click,VM ExtendedFunction4AdeViewModel.SpecialEdit)進入特殊修改模式,可在不重新整單的情況下修改部分平常鎖定的主檔欄位(標記 CanSpecialEdit 的欄位,如付款廠商、帳款期別、發票號碼、發票日期、付款日、到期日、備註)。
  2. 此模式下系統會把 NeedUpdateCustVendCode 關掉,避免改廠商時又覆蓋客廠部代號。明細格線的金額欄仍為唯讀(ForceReadOnly),特殊修改不會解鎖。

欄位說明

主檔(左區:單據與廠商)

欄位 必填 說明 / 格式 / 預設
財務單號 系統 唯一鍵,存檔後由系統編號(新增時顯示 +++),唯讀
財務類別 應付單據別,前置碼固定 P;空白擋存檔
進銷分類 1.內採2.外採3.預付費用,新增預設 1.內採
付款廠商 收付對象廠商代號;空白擋存檔。輸入後帶一連串廠商資訊(見下節)
廠商資料 立帳對象廠商(客廠部代號);通常與付款廠商相同
立帳日期 預設今天;連動帳款期別
交易日期 預設今天;TsCurrency 以此日期查匯率;連動帳款期別
帳款期別 YYYY/MM,預設本年月;空白擋存檔
帳款起始日 計算到期日用的「起算日」(日),由廠商帶入
幣別 新增預設本位幣;改幣別會自動帶匯率並連動明細
匯率 新增預設 1;非本位幣由 TsCurrency 自動帶;≤0 擋存檔
進貨單號 來源進貨/相關單號
參考單號 自由輸入參考單號
關係人 是/否,由廠商帶入(影響關係人交易揭露)

主檔(右區:發票、付款條件與金額)

欄位 必填 說明 / 格式 / 預設
發票號碼 最長 20 碼,套用 APInvoiceValidate 發票格式驗證
發票日期 發票開立日
統一編號 由廠商帶入,可改
稅別 視單別 存檔時明細算稅用的稅率來源;財務類別非 5B/66/67 時空白擋存檔
發票金額 發票金額,直接輸入(主檔不自動算稅額)
稅額 直接輸入;存檔時部分單別會被重算或回寫
發票小計 系統 =發票金額+稅額,唯讀計算欄
付款方式碼 由廠商帶入,可改
付款日 由付款條件推算
付款條件 由廠商帶入;帶入後推算收付款日與到期日
到期日 由付款條件+起始日/日期推算
備註 多行,最長 999 字
轉入備註 系統 由轉入功能寫入,唯讀(系統色)
原幣應收付/本幣應收付 系統 應付金額,由明細/稅額算出,唯讀(系統色)
沖帳原幣/沖帳本幣 系統 已被付款單沖掉的金額,唯讀(系統色)
未沖金額 系統 =本幣應收付-沖帳本幣,唯讀(系統色)

明細格線

欄位 可編輯 說明
序號 自動行號
倉單號 / 單號 / 交易別碼 / 單號pkid 來源單據資訊,唯讀
品號 帶品名/單位/科目代號/交易別碼
摘要(品名) 由品號帶,唯讀
廠商品號 客廠品號
單位 ✔(新增) 僅新增/修改時可改
數量/單價/代工單價/其他金額 任一變動即重算未稅金額
原幣未稅/本幣未稅/原幣含稅/本幣含稅 系統算出,恆唯讀(ForceReadOnly,特殊修改不解鎖)
微調本幣含稅 尾差微調後的本幣含稅,唯讀
摘要 明細摘要文字

欄位連動與附加功能

這一節列出「輸入某欄位/按某按鈕後系統會做什麼」,全部來自實際程式碼(C# 與 VFP paymnt)。

新增時的預設值

當你按 新增,系統(AfterAddNew + Source 建構式)會:

  • 幣別設成本位幣匯率設成 1(對應 VFP addagain:幣別=指定幣別、匯率=1)。
  • 帳款期別設成「本年/本月」(YYYY/MM)。
  • 進銷分類設成 1.內採(若空白)。
  • 財務單號顯示為 +++立帳日期/交易日期設成今天、發票金額/稅額歸 0。

輸入「付款廠商」後(最重要的連動)

當你在付款廠商輸入代號並離開欄位,系統執行 SetTransactionCustVendDept

  • 以代號查廠商主檔,帶出廠商簡稱填到旁邊唯讀欄。
  • 自動帶入廠商的統一編號、帳款起始日、關係人、付款條件、付款方式碼
  • 廠商有設幣別時帶入幣別(TsCurrency 控件偵測到幣別變更會自動依交易日期帶當日匯率);廠商沒設幣別則維持目前的本位幣。
  • 付款條件時刻意排在帳款起始日之後設定,SetDueDate 才會用新的起始日推算收付款日/到期日
  • 廠商資料(客廠部代號)為空,會把付款廠商代號一併補進去(對應 VFP sqlnm_sp1.代號.LostFocus:收付客廠號空白時補成客廠部代號)。

查無廠商

VFP 原版在查無廠商代號時會跳「查無此廠商代號」並清掉幣別與付款條件。新版以廠商主檔查詢為準,查不到就不帶值。

立帳日期 / 交易日期 → 帳款期別

  • 輸入立帳日期交易日期且長度足夠時,系統把帳款期別設為日期的前 7 碼(YYYY/MM),對應 VFP 立帳日期.LostFocus
  • 交易日期 同時是 TsCurrency 查匯率的基準日。

幣別 / 匯率 → 明細連動

  • 幣別:透過 listener,主檔幣別變更會把每一列明細的幣別同步成主檔幣別(VFP 幣別.LostFocus 重帶匯率,新版交給 TsCurrency)。
  • 匯率:每一列明細呼叫 CalculateAmount(主檔幣別, 主檔匯率),依新匯率重算該列本幣金額。

發票金額 / 稅額 / 發票小計

  • 發票金額稅額 都是主檔可直接輸入的欄位;新版主檔不會在離開發票金額欄時自動算稅額(與 VFP 發票金額.LostFocus 不同),需自行填入稅額。
  • 發票小計 是唯讀計算欄,永遠=發票金額+稅額,隨兩者即時更新。
  • 退貨應付/DM 折讓/損害賠償(財務類別 5B/66/67)與 59存檔時會把發票金額+稅額回寫原幣應收付/本幣應收付PaymntSave.HandleDataBeforeEndEdit,對應 VFP 稅額.Validallowsave)。
  • 一般單別的稅額分攤則在存檔時TaxCalculator 依明細與稅別重算(見存檔時的處理)。

付款條件 → 收付款日 / 到期日

  • 帶入或改付款條件後,SetDueDate帳款起始日、交易日期、發票日期用付款條件公式(PayTermDate)算出到期日收付款日(對應 VFP 收付條件.代號.LostFocusU_PAYTERMDATE)。

明細:品號 → 帶值

當你在明細輸入品號

  • 品名/單位/科目代號(對應 VFP sql_mno1.ValidSK_INVENTTL 帶)。
  • 依品號的庫存管制設定決定交易別碼(管制品 RA,非管制品為 RA-)。

明細:數量 / 單價 / 代工單價 / 其他金額 → 重算金額

  • 上述任一欄變動,呼叫 TaxCalculator.SetDetail,即時重算該列原幣未稅/本幣未稅(對應 VFP 各欄 LostFocus 呼叫 計算未稅:原幣未稅=數量×(單價+代工單價)+其他金額,本幣=原幣×匯率)。

存檔時的處理(allowsave)

儲存 時,系統(對應 VFP allowsave,實作於 PaymntSave)會:

  • 檢核必填:財務類別/交易日期/立帳日期/帳款期別/廠商資料(客廠部代號)/幣別任一空白即擋;稅別必填(財務類別非 5B/66/67 時);匯率>0。
  • 修改既有單據時,財務類別不可改成與單號前置碼不符的別(會擋)。
  • 程式類別 設為 P收付客廠號 空白時補成客廠部代號。
  • 轉入備註空白且財務類別非 5B/59/66/67,依明細自動重算稅額並把含稅金額分攤回主檔(TaxCalculator,不會跳「是否計算」確認框)。
  • 財務類別 5B/66/67(退貨應付/DM 折讓/損害賠償)與 59原幣應收付/本幣應收付直接由發票金額+稅額帶出。
  • 把明細中「原幣未稅=0 且 數量=0」的列標記刪除。
  • 透過 SetDueAmount本幣應收付重算成原幣應收付×匯率。

工具列延伸功能對照

按鈕 程式對應 行為
進貨轉入 ExtendedFunction1 → PaypdtViewModel 開「進貨轉 AP」視窗,把進貨/加工驗收轉成應付,成功後定位新單
暫估轉AP ExtendedFunction2 → Paypdt2ViewModel 開暫估轉 AP 視窗(預設近 30 天),把暫估轉正式應付
轉傳票 ExtendedFunction3 → ApToGl / ToGeneralLedger 把本單轉總帳傳票(支援回沖判斷),回填傳票號碼
特殊修改 ExtendedFunction4 → SpecialEdit 解鎖部分平常鎖定的主檔欄位(標 CanSpecialEdit 者);明細金額欄仍唯讀

尚未提供的延伸功能

VFP 原版工具列另有「發票統計」(else5click,叫 RP_S 報表)與「更新進出貨發票號碼、日期」(else6click,叫 _CHANGENO)。新版 ExtendedFunction5(單筆直接轉傳票)目前在程式中被註解保留、尚未啟用,請改用 轉傳票。這些功能規劃中,畫面上若未出現屬正常。

常見問題

輸入付款廠商後,幣別/到期日沒有自動帶?

這些值來自廠商主檔。若廠商沒設幣別,系統會保留目前的本位幣不動;到期日要等付款條件帶入(也來自廠商)後才會由 SetDueDate 推算。請先確認該廠商在廠商主檔有維護幣別與收付條件。

稅額一直是 0?

本表單主檔的稅額是手動輸入欄,不會在輸入發票金額時自動帶出,請直接填入正確稅額。明細層的稅額(原幣/本幣含稅)則在存檔時由系統依稅別重算,請確認該稅別在稅別主檔有設稅率。

原幣應收付/本幣應收付是 0 或不對?

主檔金額由明細稅額算出,不是手動輸入。存檔時系統會依明細自動重算(財務類別非 5B/59/66/67 且轉入備註空白時);請確認明細有正確的數量、單價與稅別。本幣金額=原幣×匯率,匯率錯誤也會讓本幣不對。退貨應付/DM 折讓/損害賠償(5B/66/67)的金額則直接取發票金額+稅額

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

符合下列任一情形就會被擋(對應 VFP allowedit):已沖帳(沖帳原幣≠0)、已轉傳票(有傳票號碼)、轉入備註含「舊資料」、財務類別為 55(成本分攤/進貨費用,要去刪對應的來源進貨單)、或由別處轉入(轉入備註有值)。已轉傳票者要先在總帳反轉傳票。

明細的原幣未稅/本幣含稅欄改不動?

這些金額欄是系統計算欄,永遠唯讀,無法手動編輯(含 特殊修改 模式)。要改金額請修改數量/單價/代工單價/其他金額,系統會即時重算未稅,存檔時再連動含稅與主檔合計。

匯率為什麼擋我存檔?

存檔檢核要求匯率>0。新增本位幣單據時匯率預設 1;換成外幣時若 TsCurrency 沒帶到匯率(例如該幣別當日無匯率資料),請手動補一個正確匯率再存。

相關功能


需補截圖清單

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

  1. paymnt-step1.png — 新增應付的主檔上半部(廠商、日期、發票、付款條件)
  2. paymnt-step2.png — 明細格線(品號、數量、單價、未稅/含稅金額)
  3. paymnt-step3.png進貨轉入 視窗(PAYPDT)
  4. paymnt-step4.png轉傳票 轉總帳視窗