跳轉到

程式資訊

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

費用申請

功能簡介

「費用申請」是應收應付(I 模組)的費用立帳單據,供各部門申請日常費用、預付款、攤提與零用金的支付。一張費用申請單由主檔(廠商、幣別、金額、付款條件、申請人/部門)與明細(逐筆費用:費用歸屬部門、科目、費用群組、稅別、發票、金額)組成。送出後可走工作流程簽核、快速審核,並在確認後以 轉傳票 過帳到總帳傳票。它是費用類應付帳款進入帳務的起點,常見使用者為各部門申請人與會計人員。

主檔上方以進銷分類(費用支出/各項攤提/零用金 A/零用金 B/直接沖帳…)決定這張單的性質與驗證寬鬆度;金額相關的原幣應收付/本幣應收付/沖帳原幣/沖帳本幣/稅額全部由明細加總後系統自動算出,使用者不直接輸入。

與其他應收付單據的關係

費用申請與付款單 (PAYMNT)收款單 (RECEIVE) 共用同一組 rp_m / rp_d 資料結構與 staging 表(各表單映射到自己的本機表,互不踩線)。差別在於本表以「費用申請」的欄位連動(申請日期帶使用期間、明細以摘要判刪列)為主。

前置需求

  • 權限:I.應收應付 → I-030 費用申請 的瀏覽/修改權限。
  • 基礎資料:下列主檔需先維護,否則欄位帶不出值或存檔被擋——
資料 影響什麼
廠商主檔(客廠資料) 輸入廠商代號時自動帶統一編號/帳款起始日/幣別/付款條件號/付款方式/受款人
員工/人事主檔 申請人帶出申請人姓名/申請部門/部門簡稱
部門主檔 申請部門、明細費用歸屬(部門) 的簡稱
付款條件主檔 付款條件帶出到期日/付款日
稅別(稅率)主檔 明細稅別決定稅率,連動稅額/含稅金額計算
科目主檔(會計科目) 明細科目代號科目名稱轉傳票 過帳依此
費用群組主檔 明細費用群組群組說明
匯率資料 外幣單據的匯率幣別 控件依交易日期自動帶出
財務類別(RPDEF) 財務類別必填,決定金額試算方式(含稅/未稅口徑)

操作步驟

新增一張費用申請單

  1. 從主選單開啟 I.應收應付 → 費用申請
  2. 點工具列 新增。系統自動帶出多個預設值(見欄位連動與附加功能):進銷分類沿用上一筆(無則「費用支出」)、申請人/申請部門帶目前登入者、申請日期/立帳日期為今天、使用日期/使用截止日為當月起訖、帳款期別為當月、月結廠商=Y、幣別為本位幣。
  3. 在主檔填寫:
    • 財務類別(必填)。
    • 廠商代號:輸入後自動帶統編、付款條件、幣別、受款人等。
    • 視需要調整付款條件/付款日/到期日/幣別/匯率
  4. 在下方明細格線逐列輸入費用:
    • 費用歸屬(部門)科目代號費用群組摘要(用途及摘要)。
    • 稅別:自下拉選擇,決定稅率。
    • 原幣未稅:輸入金額後系統即時算出原幣稅額/原幣含稅/本幣未稅/本幣含稅,並把主檔合計同步加總。
    • 視需要填發票號碼/發票日期/統一編號/單據張數/廠商資料/採購單號/品號
  5. 必要時按 計算稅額(依未稅算稅)或 反推未稅(依含稅反推未稅)整批重算明細稅額。
  6. 點工具列 儲存

    小技巧

    可用 Ctrl+S 快速儲存。

修改/刪除

  1. 用工具列上一筆/下一筆或 查詢 定位到要處理的單。
  2. 修改 進入編輯,調整主檔或明細後 儲存
  3. 刪除整列明細:把該列摘要清空(本表以摘要是否空白判定刪列,見下節)。

列印

  1. 在要列印的單上按工具列 列印,開啟列印條件頁。
  2. 系統預設帶入目前這張單的起訖財務單號部門/廠商全範圍起日為當月 1 日、迄日為今天帳款期別。可再調整範圍。
  3. 確認後輸出(對應報表程式 PAYAPPLY_P / SCX_ARPP)。

轉傳票(過帳到總帳)

  1. 在已確認的單上按工具列 轉傳票
  2. 系統帶出該單的財務單號(沖銷單號)/廠商代號/立帳日期,開啟費用申請轉傳票視窗。
  3. 設定傳票過帳日期後按轉入,產生對應的總帳傳票;如需回退可在該視窗按復原(Undo),移除已轉入的傳票資料。

簽核與快速審核

  1. 按工具列 工作流程 進入「費用申請單流程」簽核。
  2. 快速審核 對單據做即時審核。

附件(CSV 上傳)規劃中

程式內保留了把費用明細「匯入 CSV 並轉成附件」的機制(山隆加油站對帳檔),但目前匯入按鈕與匯入解析在新版皆為停用狀態(程式碼整段註解),實務上尚未提供。請改用手動輸入明細。

欄位說明

主檔欄位

欄位 必填 說明/格式/預設
財務單號 系統自動產生,唯讀
財務類別 費用立帳的財務類別(RPDEF);空白會擋存檔
進銷分類 0.預付設備1.費用支出2.代付款3.各項攤提4.零用金A5.零用金B6.直接沖帳;新增時沿用上一筆,無則「費用支出」
申請日期 yyyy/MM/dd;預設今天;空白會擋存檔
立帳日期 yyyy/MM/dd;預設今天
申請人 預設目前登入者;帶出申請人姓名
申請部門 由申請人帶出,可改;空白會擋存檔
帳款期別 yyyy/MM;由申請日期/立帳日期前 7 碼帶入,預設當月
使用日期~使用截止日 預設當月 1 日~當月底
廠商代號 視分類 零用金 A/B 以外的分類必填;帶出統編、條件、幣別、受款人等
統一編號 由廠商帶入,可改;存檔時依長度檢核(見下節)
帳款起始日 由廠商帶入,供算到期日
受款人 由廠商簡稱帶入,可改
月結廠商 唯讀,預設 Y;存檔時空白補 Y
付款方式 由廠商帶入(C203 代碼)
付款條件 由廠商帶入;變更後重算到期日/付款日
付款日 yyyy/MM/dd;由付款條件算出,可改;存檔時空白補到期日
到期日 yyyy/MM/dd;由付款條件算出;空白會擋存檔
幣別 預設本位幣;由廠商或手動指定
匯率 由幣別+交易日期自動帶;必須大於 0,否則擋存檔
事由 / 備註 自由文字(備註亦作「預付費用名稱」)
原幣應收付/本幣應收付/沖帳原幣/沖帳本幣/稅額 唯讀,由明細加總自動算出

明細欄位

欄位 必填 說明/格式/預設
序號 系統產生,唯讀
費用歸屬(部門) 該筆費用歸屬部門
分類索引1 依「索引別=1」查分類索引
科目代號 帶出科目名稱;供轉傳票
費用群組 帶出群組說明
摘要 ✔(判刪列) 用途及摘要;本表以摘要空白判定刪列
稅別 下拉選擇;決定稅率
單據張數 視稅別 稅別為 T251/T261/T271 時,財務類別 83 須輸入張數
統一編號 存檔時檢核(A 開頭豁免、8 碼驗檢查碼、10 碼放行)
發票號碼/發票日期 財務類別 83 會檢核發票號碼格式
原幣未稅 ✔(輸入金額) 使用者輸入;連動算稅額、含稅與主檔合計
原幣稅額/原幣含稅/本幣未稅/本幣含稅 唯讀,由原幣未稅+稅別+匯率算出
廠商資料/廠商簡稱 該列對應廠商
採購單號 對應「缺件說明」欄
品號/品名 品號帶品名;MISC 時品名可手填

欄位連動與附加功能

本節整理「輸入某欄位或按某按鈕後系統做什麼」,全部來自實際程式碼(Payapply_kcViewModelTwork_arp_vw_rp_mSourceTwork_arp_vw_rp_dSourcePayapplySave 及 VFP payapply_kc)。

新增單據時的預設值(按 新增

當你按 新增,系統會:

  1. 進銷分類沿用你「上一筆瀏覽到的單」的分類;若沒有上一筆,預設為「1.費用支出」(對應 VFP addagain)。
  2. 申請人帶目前登入者,並帶出申請人姓名;同時由人事資料切出申請部門/部門簡稱
  3. 申請日期=今天;交易日期同步設成申請日期(作為匯率查詢日與付款條件計算的基準日)。
  4. 使用日期=當月 1 日、使用截止日=當月最後一天、帳款期別=當月(yyyy/MM)。
  5. 月結廠商=Y。
  6. 幣別若空白帶本位幣
  7. 明細列的內部 pkid 重新編號。

主檔欄位連動

當你輸入廠商代號收付客廠號BindingSetTransactionCustVendDept),系統會一次帶出:

  • 受款人/客廠簡稱=廠商簡稱。
  • 統一編號/帳款起始日/關係人=廠商主檔值。
  • 幣別=廠商幣別(廠商無幣別則維持原本位幣);幣別一變,幣別 控件會依交易日期自動帶匯率
  • 付款條件號=廠商收付條件(設定在帳款起始日之後,確保用新起始日算到期日);連帶重算到期日/付款日
  • 付款方式碼=廠商付款方式。

當你輸入申請日期申請日期Binding),系統會:

  • 交易日期同步成申請日期(VFP 中付款條件與匯率皆以申請日期為基準)。
  • 重設帳款期別=申請日期前 7 碼;使用日期/使用截止日若為空,補成當月 1 日~當月底(SetUsagePeriod)。

當你輸入立帳日期立帳日期PayapplyBinding):同樣觸發 SetUsagePeriod,帶帳款期別與使用期間。

當你修改申請部門/申請人:申請人改變會重帶姓名與部門;部門以 DeptSearch 帶簡稱。

當你修改付款條件收付條件號BindingSetDueDate):依付款條件主檔重新計算到期日付款日,並帶條件說明。

當你修改幣別:透過 WeakEvent 監聽,主檔幣別一變,所有明細列的幣別會同步成主檔幣別。

當你修改匯率:透過 WeakEvent 監聽,主檔匯率一變,每一列明細呼叫 CalculateTax 用新匯率重算本幣金額與稅額。

明細欄位連動

當你輸入明細「原幣未稅」原幣未稅PayapplyBinding),系統會:

  1. 先把這列舊金額(原幣未稅/含稅/稅額/本幣未稅/本幣含稅/稅額)從主檔合計扣回
  2. 寫入新的原幣未稅,呼叫 CalculateTax(幣別, 匯率)
    • 本幣未稅=原幣未稅 × 匯率(依本幣小數位四捨五入)。
    • 稅率 > 0 時:稅額=本幣未稅 × 稅率;原幣稅額=稅額 ÷ 匯率;原幣含稅=原幣未稅+原幣稅額。
    • 稅率=0 時:稅額=0、原幣含稅=原幣未稅。
    • 本幣含稅=本幣未稅+稅額。
  3. 把這列新金額加回主檔的總原幣未稅/原幣應收付/原幣稅額/總本幣未稅/本幣應收付/稅額——所以主檔上方幾個金額欄都是即時加總、唯讀。

當你選擇明細「稅別」TaxItem):自動把該列稅率設成稅別對應稅率(稅率 ÷ 100),供後續稅額計算。

當你輸入明細「品號」品號PayapplyBinding):

  • 自動帶品名SetISKU)。
  • 品號為 MISC 時,品名變成可編輯(讓你手填雜項名稱);其他品號品名唯讀。
  • 單位空白,補「個」。

逐列補值(接續輸入省力):在編輯狀態下逐列輸入時,系統記住上一列的發票號碼/發票日期/品號/稅別/日期/單位,新一列這些欄若留空,會自動沿用上一列的值(VM 的 GetRowDataSetRowData,於切換明細列時觸發)。

工具列按鈕與延伸功能

  • 計算稅額 按鈕:對全部明細以主檔幣別/匯率呼叫 CalculateTax(依未稅算稅)。僅在新增/修改狀態可用。
  • 反推未稅 按鈕:對全部明細呼叫 反推未稅——把輸入值視為含稅,反推未稅與稅額(本幣含稅 ÷(1+稅率),對齊 VFP 含稅反推口徑)。僅在新增/修改狀態可用。
  • 轉傳票(延伸功能 1 / VFP CMDELSE3):帶出本單財務單號、廠商代號、立帳日期,開啟費用申請轉傳票視窗,設定過帳日期後產生總帳傳票;可在該視窗復原已轉入的傳票。轉完會重整導覽資料。
  • 特殊修改(延伸功能 2 / VFP CMDELSE4):進入 SpecialEdit 對已存檔資料做受控的特殊欄位修改。
  • 工作流程(VFP CMDELSE1):進入「費用申請單流程」簽核。
  • 快速審核(VFP CMDELSE2):對單據做即時審核。
  • 列印:開啟 PayapplyPrintViewModel,預設帶本單財務單號、當月起訖日與帳款期別。

存檔時的檢核與自動處理(PayapplySave

儲存 時,系統依序檢查(任一不過就擋存並提示):

  1. 財務類別不可空白。
  2. 申請日期不可空白。
  3. 申請部門不可空白。
  4. 到期日不可空白。
  5. 匯率必須大於 0。
  6. 進銷分類非零用金 A/B 時,廠商代號必填;是零用金 A/B 時,自動把客廠部代號設成收付客廠號。
  7. 主檔統一編號:非 00000000 時——8 碼走統編檢查碼驗證、10 碼視為身分證放行、其餘長度視為錯誤。
  8. 明細統一編號A 開頭(人事轉入)豁免、8 碼驗檢查碼、10 碼放行、其餘長度錯誤。
  9. 財務類別=83 且該明細有金額時:非台電/台水廠商會檢核發票號碼格式;稅別為 T251/T261/T271 時單據張數需大於 0,否則張數歸 0。

存檔前(HandleDataBeforeEndEdit)系統還會自動:

  • 付款日空白補成到期日;月結廠商空白補 Y。
  • 把「原幣未稅=0 且稅額=0 且摘要空白」的明細列標記為刪除。
  • 財務類別=84 時走 TaxCalculator 整批重算;其他類別則逐列重算本幣未稅/稅額並把主檔的原幣稅額/稅額/原幣應收付/本幣應收付/總原幣未稅/總本幣未稅同步成明細加總;發票金額為 0 時補成本幣應收付(84 補總本幣未稅)。
  • 客廠部代號設成收付客廠號。

Share/附件匯入目前停用

VM 內保留 ShareCommand(從外部來源帶費用明細)與 ImportCommand(CSV 匯入並上傳成附件)的程式骨架,但對應的 XAML 按鈕與 PayapplyBll.Import 解析皆為註解狀態,目前不可用

常見問題

明細輸入金額後,主檔的「本幣應收付/稅額」沒變?

這些是由明細加總而來的唯讀欄。請確認金額是輸入在明細的原幣未稅欄(輸入它才會觸發稅額計算與主檔加總)。若改了匯率,主檔會逐列重算;若直接改了稅別卻沒重算,可按 計算稅額 整批重算。

金額算出來稅額是 0?

稅額取決於明細稅別對應的稅率。若稅別的稅率為 0(免稅/零稅率),稅額本來就是 0;原幣含稅會等於原幣未稅。請確認稅別主檔有設定正確稅率。

存檔時被擋,提示要輸入廠商/到期日/匯率?

存檔檢核要求:財務類別/申請日期/申請部門/到期日不可空白、匯率須大於 0;且進銷分類非零用金 A/B 時廠商代號必填。到期日/付款日是由付款條件算出的,沒帶廠商或沒設付款條件就可能空白。匯率由幣別+交易日期自動帶,若帶不到(缺匯率資料)會是 0 而擋存。

統一編號存檔報錯?

主檔統編非 00000000 時:8 碼會驗統編檢查碼、10 碼當身分證放行、其他長度視為錯誤。明細統編 A 開頭(人事轉入)會豁免。請確認輸入長度正確、檢查碼無誤。

刪不掉某一列明細?

本表以摘要是否空白判定刪列——把該列的摘要清空即會在存檔時被標記刪除(同時要求原幣未稅與稅額皆為 0)。若摘要還有字,系統會視為有效列保留。

新增時進銷分類為什麼自動帶「費用支出」或上一筆的值?

這是刻意的沿用設計(對應 VFP addagain):系統記住你上一筆瀏覽到的進銷分類供新增沿用,沒有上一筆時預設「1.費用支出」。需要其他分類時直接改下拉即可。

按了「修改」卻被擋住、不得修改?

符合下列任一狀態的單據會被擋下(對應 VFP allowedit):已沖帳(沖帳原幣不為 0,已被付款沖過)、已轉資料(相關單號有值)、已轉傳票(傳票號碼有值,需先到傳票端還原)、由別處轉入(轉入備註有值)。請先解除對應狀態(例如先反沖、先還原傳票)再修改。

相關功能


需補截圖清單

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

  1. payapply-step1.png — 費用申請主畫面(主檔+明細格線全貌)
  2. payapply-step2.png — 明細輸入原幣未稅後系統算出稅額/含稅與主檔合計
  3. payapply-step3.png轉傳票 視窗(過帳日期與轉入/復原)
  4. payapply-step4.png — 列印條件頁(預設帶本單財務單號與當月起訖)