程式資訊
- 程式 ID:
Accnp - 所屬子系統:O.銀行票據
- 狀態:stable
應付票據對帳查詢¶
本功能尚未完成移植(佔位畫面)
程式碼現況:掛在 ProgramClass.ACCNP、標題「應付票據對帳查詢」之下的,目前是一個佔位殼,尚未實作對帳邏輯。實際開啟後看到的畫面與後端行為,跟下方「規劃中的對帳邏輯」所描述的並不一致:
- 畫面(
Accnp.xaml)目前載入的是一組簽核(WorkflowApproval)格線與簽核意見欄位,沒有起訖日期、借方/貸方頁籤、「僅顯示差異者」核取方塊或列印鈕。 - ViewModel(
AccnpViewModel)目前只有單一Date欄位(預設今天),按查詢時呼叫的是 Azure Cosmos 匯率查詢(GetFXRateFromAzureCosmos),不是票據對帳。 - 後端(
AccnpBll)會以付款日期 BETWEEN 起 AND 迄 AND 票別<>'4.信用卡'為條件呼叫預存程序DARB_QRY_ACCL(查詢別21)一次,但取回的結果未被使用(沒有借方/貸方分流、沒有差異計算、沒有合計)。
因此本頁先記錄VFP 原系統 ACCNP 的對帳設計作為移植規格,待 C# 端補完後再依實際畫面更新操作步驟與截圖。
功能簡介¶
「應付票據對帳查詢」的設計目的,是把應付票據主檔裡的票據明細,跟總帳傳票裡票據科目的分錄逐筆比對,算出兩邊金額的差異,協助財務/出納人員確認「票據作業所登錄的金額」與「過帳到總帳的金額」是否一致。它是一支純查詢、不異動資料的對帳報表,分成兩個對帳角度:
- 借方查帳:以票據的兌現日期為基準,比對票據金額與傳票的借方金額(票據兌現/沖銷的那一面)。
- 貸方查帳:以票據的付款日期為基準,比對票據金額與傳票的貸方金額(票據開立/入帳的那一面)。
當某筆票據的差異不為零,通常代表票據主檔與總帳之間漏過帳、過錯科目或金額打錯,可作為月底結帳前的勾稽工具。它在票據作業流程中的位置是「事後勾稽」——前段由 票據付款(Checkpay) 登錄應付票據、由總帳產生傳票,本頁則負責回頭比對兩者。
與 VFP 原系統的對應
本頁對應 VFP 舊系統的 ACCNP(應付票據對帳查詢視窗),查詢透過共用預存程序 DARB_QRY_ACCL 取數。原系統列印報表為 ACCNP1(借方)與 ACCNP2(貸方)。VFP 原系統以查詢別 3/4(貸方)、5/6(借方)呼叫 DARB_QRY_ACCL;新版後端目前以查詢別 21 呼叫,兩者契約是否一致仍待確認。
前置需求¶
- 權限:O.銀行票據 →
O-150 應付票據對帳查詢的瀏覽權限。 - 基礎資料:對帳結果是否能正確配對,取決於下列資料是否齊備——
| 資料 | 影響的結果 |
|---|---|
| 應付票據主檔(含票據號碼、付款日期、兌現日期、票據金額、票別) | 對帳左半邊(票據面)的明細、配對鍵(日期+票據號碼) |
| 總帳傳票(票據科目的分錄,含傳票日期、總帳票號、借/貸方金額) | 對帳右半邊(傳票面)的明細、差異計算 |
| 票據科目(總帳會計科目設定) | 決定要抓哪個科目代號的傳票分錄來比對(VFP 原取自參數 應付票據科目,新版後端目前傳空字串) |
票別排除信用卡
查詢一律排除票別=信用卡的資料(後端條件 票別<>'4.信用卡'),因此純信用卡付款不會出現在對帳清單中。此排除條件在現行 AccnpBll 中可確認存在。
操作步驟¶
以下為 VFP 原系統的操作流程(規劃中)
下列步驟描述的是 VFP 原系統 ACCNP 的對帳操作,作為移植目標記錄。C# 現行佔位畫面並無這些控件(無借方/貸方頁籤、無「僅顯示差異者」核取方塊、無列印鈕)。待功能補完後再依實際畫面修訂。
查詢¶
- 開啟「應付票據對帳查詢」。VFP 原系統自動帶入預設查詢區間:
- 起始日期:今天往前 30 天(
DATE()-30)。 - 截止日期:今天(
DATE())。
- 起始日期:今天往前 30 天(
- 視需要修改起訖日期(輸入遮罩
9999/99/99)。 - 按
查詢。系統會同時計算借方與貸方兩份對帳清單,並各自在最後補上一列合計。 - 切換上方的
借方/貸方兩個頁籤檢視結果。
只看有差異的資料¶
- 在任一頁籤勾選
僅顯示差異者。 - 清單會即時過濾成只顯示差異不為零的列(差異=0 的已對平資料會被隱藏)。
- 取消勾選即還原顯示全部。
列印 / 匯出 Excel¶
- 在欲輸出的頁籤(借方或貸方)按下方的列印鈕。
- 借方頁列印報表
ACCNP1,貸方頁列印報表ACCNP2。
- 借方頁列印報表
- 需要 Excel 檔時,使用該頁籤的 Excel 匯出功能;借方匯出檔名為「應收票據借方查帳」、貸方為「應收票據貸方查帳」。
小技巧
改了起訖日期後直接再按一次 查詢 即可重算兩個頁籤,不必分頁分別操作。
欄位說明¶
以下欄位為 VFP 原系統規格
描述 VFP 原系統 ACCNP 的條件與結果欄位。C# 現行佔位畫面並無這些欄位。
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 起始日期 | ✔ | 遮罩 9999/99/99;VFP 預設為今天 − 30 天。貸方比對票據付款日期,借方比對票據兌現日期 |
| 截止日期 | ✔ | 遮罩 9999/99/99;VFP 預設為今天 |
| 僅顯示差異者 | — | 核取方塊;預設不勾選(顯示全部)。勾選後僅留下差異≠0 的列 |
結果欄位(借方頁籤 / 貸方頁籤)¶
兩個頁籤欄位結構相同(皆 6 欄),差別只在第三欄是借方金額或貸方金額:
| 欄位 | 說明 |
|---|---|
| 日期 | 配對後的對帳日期。票據面有資料時取票據的交易日期(兌現/付款日);票據面無資料、只有傳票時取傳票日期 |
| 總帳票號 | 傳票分錄的票號(票據面對應票據號碼) |
| 借方金額 / 貸方金額 | 傳票面金額。借方頁顯示傳票借方金額,貸方頁顯示傳票貸方金額 |
| 票據號碼 | 應付票據主檔的票據號碼 |
| 票據金額 | 應付票據主檔的票面金額 |
| 差異 | 傳票金額 − 票據金額(借方頁=借方金額−票據金額;貸方頁=貸方金額−票據金額)。為 0 表示已對平 |
| (合計列) | 清單最後一列,日期欄顯示「合計: 」,金額欄彙總該頁全部的傳票金額、票據金額與差異 |
金額格式
三個金額欄(借/貸方金額、票據金額、差異)在 VFP 原系統以 KZ(千分位)格式顯示。
欄位連動與附加功能¶
以下連動為 VFP 原系統行為(規劃中)
描述 VFP 原系統 ACCNP 在使用者操作後的系統動作,作為移植規格。C# 現行佔位畫面尚未實作下列任何一項。
-
開窗時自動帶預設區間:載入畫面時,VFP 在
Init把起始日期設為DATE()-30、截止日期設為DATE(),使用者不必每次手動輸入即可直接查最近一個月。(C# 現況:VM 只有單一Date,預設今天,且用於匯率查詢。) -
按
查詢→ 一次算出兩份對帳清單:VFP 一次查詢會同時計算借方與貸方兩個頁籤,並各自重新整理。每次查詢前會先ZAP清空兩個 cursor、並把兩頁的僅顯示差異者核取方塊重置為未勾選(Check1.VALUE=0)。 -
貸方查帳的配對與算法(貸方頁籤):
- 票據面:抓應付票據中付款日期落在起訖區間、且票別不是信用卡的票據(查詢別 3)。
- 傳票面:抓傳票中票據科目、傳票日期落在起訖區間、且貸方金額≠0的分錄(查詢別 4)。
- 配對:以「票據交易日期=傳票日期」且「票據號碼=總帳票號」做全外部結合(FULL OUTER JOIN)——票據面有、傳票面沒有,或反過來,都會各自獨立成一列,方便看出哪邊漏單。
- 日期欄:票據面有交易日期就用它(
NOT EMPTY(交易日期)),否則退而用傳票日期。 - 差異欄=貸方金額 − 票據金額。
-
借方查帳的配對與算法(借方頁籤):邏輯與貸方相同,差別在改用票據的兌現日期(查詢別 5)對應傳票分錄(查詢別 6);差異=借方金額 − 票據金額。VFP 原始碼註記「先用兌現日期,將來再考慮作廢、退票…」,亦即借方角度先以兌現日期入帳,作廢、退票等情形原系統尚未細分。
-
合計列:每個頁籤計算完成後,VFP 以
SUM加總金額欄並INSERT一列合計到清單尾端,日期欄顯示「合計: 」、總帳票號與票據號碼留白。 -
勾選
僅顯示差異者→ 即時過濾:VFP 在Check1.InteractiveChange對 cursor 設SET FILT TO 差異<>0(取消勾選則SET FILT TO),屬純前端過濾,不重新查資料庫。 -
列印:兩個頁籤各自對應一張報表——借方頁印
ACCNP1、貸方頁印ACCNP2。 -
匯出 Excel:兩個頁籤各自提供 Excel 匯出,VFP 設定的匯出檔名為借方「應收票據借方查帳」、貸方「應收票據貸方查帳」(沿用「應收」字樣,見下方常見問題)。
本頁不異動任何資料
對帳查詢只讀取應付票據與傳票來比對,不會修改、過帳或沖銷任何單據。發現差異後,需回到對應的票據作業或總帳傳票去更正。
常見問題¶
為什麼開啟後看到的是簽核畫面 / 匯率?跟說明不一樣?
本功能尚未完成移植。目前掛在 ProgramClass.ACCNP 之下的是佔位畫面(簽核格線+匯率查詢),對帳邏輯尚未實作。本頁的對帳說明描述的是 VFP 原系統與移植目標,待 C# 端補完後會更新為實際畫面。
查不到任何資料?(VFP 原系統行為)
請確認:(1) 起訖日期區間內確實有付款日期(貸方)或兌現日期(借方)落在區間內的應付票據;(2) 該區間內票據科目有對應的傳票分錄。完全沒有任何票據與傳票的區間會回空清單。另外,純信用卡票別的資料一律被排除,不會出現。
某筆票據只出現在一邊(票據面有、傳票面空白,或相反)?
這正是對帳要抓的狀況。配對採全外部結合:當票據主檔有票、但總帳沒有對應分錄(或反之)時,會各自獨立成一列,且差異欄會等於單邊金額。代表該票可能漏過帳、過到錯誤科目,或日期/票號與傳票對不上。
差異欄不是 0,代表什麼?
差異=傳票金額 − 票據金額。不為 0 表示兩邊金額沒對平:可能是票面金額與過帳金額不符、配對到的是不同筆,或某一邊缺漏。可勾選 僅顯示差異者 快速列出全部待釐清的票據。
日期欄顯示的是哪個日期?跟我輸入的票據日期不一樣?
當票據面有資料時,日期取票據的交易日期(貸方為付款日、借方為兌現日);若該列只有傳票面、沒有對應票據,則改顯示傳票日期。因此單邊資料會以傳票日期呈現。
報表 / Excel 標題寫「應收票據」,但這是應付票據查詢?
這是沿用 VFP 原系統的既有報表(ACCNP1/ACCNP2)與匯出檔名,標題文字未更動。實際查詢來源為應付票據主檔。
相關功能¶
- 應付票據(Checkpay):登錄廠商應付票據,是本頁對帳的票據來源。
- 應付票據查詢(Chkpayqry):查詢應付票據狀態與票齡。
- 綜合票據查詢(CheckQry):跨帳戶票據綜合查詢。
- 財務傳票單(Fsheet):本頁對帳的傳票面來源。
- N 總帳管理:票據科目的傳票過帳。
- I 帳款管理:應付帳款與票據的連動。
需補截圖清單
本功能完成移植、runtime 驗收後再補拍(放 docs/O-Check/images/)。以下為對帳功能補完後的目標畫面:
accnp-step1.png— 查詢條件面板(起訖日期+查詢鈕,含預設帶入的日期)accnp-step2.png— 借方頁籤查詢結果(含合計列)accnp-step3.png— 貸方頁籤查詢結果,並示範勾選「僅顯示差異者」過濾後的畫面