跳轉到

程式資訊

  • 程式 IDAccnp
  • 所屬子系統: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# 現行佔位畫面並無這些控件(無借方/貸方頁籤、無「僅顯示差異者」核取方塊、無列印鈕)。待功能補完後再依實際畫面修訂。

查詢

  1. 開啟「應付票據對帳查詢」。VFP 原系統自動帶入預設查詢區間:
    • 起始日期:今天往前 30 天(DATE()-30)。
    • 截止日期:今天(DATE())。
  2. 視需要修改起訖日期(輸入遮罩 9999/99/99)。
  3. 查詢。系統會同時計算借方貸方兩份對帳清單,並各自在最後補上一列合計
  4. 切換上方的 借方 / 貸方 兩個頁籤檢視結果。

只看有差異的資料

  1. 在任一頁籤勾選 僅顯示差異者
  2. 清單會即時過濾成只顯示差異不為零的列(差異=0 的已對平資料會被隱藏)。
  3. 取消勾選即還原顯示全部。

列印 / 匯出 Excel

  1. 在欲輸出的頁籤(借方或貸方)按下方的列印鈕。
    • 借方頁列印報表 ACCNP1,貸方頁列印報表 ACCNP2
  2. 需要 Excel 檔時,使用該頁籤的 Excel 匯出功能;借方匯出檔名為「應收票據借方查帳」、貸方為「應收票據貸方查帳」。

小技巧

改了起訖日期後直接再按一次 查詢 即可重算兩個頁籤,不必分頁分別操作。

欄位說明

以下欄位為 VFP 原系統規格

描述 VFP 原系統 ACCNP 的條件與結果欄位。C# 現行佔位畫面並無這些欄位。

查詢條件

欄位 必填 說明/格式/預設
起始日期 遮罩 9999/99/99;VFP 預設為今天 − 30 天。貸方比對票據付款日期,借方比對票據兌現日期
截止日期 遮罩 9999/99/99;VFP 預設為今天
僅顯示差異者 核取方塊;預設不勾選(顯示全部)。勾選後僅留下差異≠0 的列

結果欄位(借方頁籤 / 貸方頁籤)

兩個頁籤欄位結構相同(皆 6 欄),差別只在第三欄是借方金額或貸方金額:

欄位 說明
日期 配對後的對帳日期。票據面有資料時取票據的交易日期(兌現/付款日);票據面無資料、只有傳票時取傳票日期
總帳票號 傳票分錄的票號(票據面對應票據號碼)
借方金額 / 貸方金額 傳票面金額。借方頁顯示傳票借方金額,貸方頁顯示傳票貸方金額
票據號碼 應付票據主檔的票據號碼
票據金額 應付票據主檔的票面金額
差異 傳票金額 − 票據金額(借方頁=借方金額−票據金額;貸方頁=貸方金額−票據金額)。為 0 表示已對平
(合計列) 清單最後一列,日期欄顯示「合計: 」,金額欄彙總該頁全部的傳票金額、票據金額與差異

金額格式

三個金額欄(借/貸方金額、票據金額、差異)在 VFP 原系統以 KZ(千分位)格式顯示。

欄位連動與附加功能

以下連動為 VFP 原系統行為(規劃中)

描述 VFP 原系統 ACCNP 在使用者操作後的系統動作,作為移植規格。C# 現行佔位畫面尚未實作下列任何一項

  1. 開窗時自動帶預設區間:載入畫面時,VFP 在 Init起始日期設為 DATE()-30截止日期設為 DATE(),使用者不必每次手動輸入即可直接查最近一個月。(C# 現況:VM 只有單一 Date,預設今天,且用於匯率查詢。)

  2. 查詢 → 一次算出兩份對帳清單:VFP 一次查詢會同時計算借方與貸方兩個頁籤,並各自重新整理。每次查詢前會先 ZAP 清空兩個 cursor、並把兩頁的 僅顯示差異者 核取方塊重置為未勾選(Check1.VALUE=0)。

  3. 貸方查帳的配對與算法(貸方頁籤):

    • 票據面:抓應付票據付款日期落在起訖區間、且票別不是信用卡的票據(查詢別 3)。
    • 傳票面:抓傳票中票據科目、傳票日期落在起訖區間、且貸方金額≠0的分錄(查詢別 4)。
    • 配對:以「票據交易日期=傳票日期」且「票據號碼=總帳票號」做全外部結合(FULL OUTER JOIN)——票據面有、傳票面沒有,或反過來,都會各自獨立成一列,方便看出哪邊漏單。
    • 日期欄:票據面有交易日期就用它(NOT EMPTY(交易日期)),否則退而用傳票日期。
    • 差異欄=貸方金額 − 票據金額
  4. 借方查帳的配對與算法(借方頁籤):邏輯與貸方相同,差別在改用票據的兌現日期(查詢別 5)對應傳票分錄(查詢別 6);差異借方金額 − 票據金額。VFP 原始碼註記「先用兌現日期,將來再考慮作廢、退票…」,亦即借方角度先以兌現日期入帳,作廢、退票等情形原系統尚未細分。

  5. 合計列:每個頁籤計算完成後,VFP 以 SUM 加總金額欄並 INSERT 一列合計到清單尾端,日期欄顯示「合計: 」、總帳票號與票據號碼留白。

  6. 勾選 僅顯示差異者 → 即時過濾:VFP 在 Check1.InteractiveChange 對 cursor 設 SET FILT TO 差異<>0(取消勾選則 SET FILT TO),屬純前端過濾,不重新查資料庫。

  7. 列印:兩個頁籤各自對應一張報表——借方頁印 ACCNP1、貸方頁印 ACCNP2

  8. 匯出 Excel:兩個頁籤各自提供 Excel 匯出,VFP 設定的匯出檔名為借方「應收票據借方查帳」、貸方「應收票據貸方查帳」(沿用「應收」字樣,見下方常見問題)。

本頁不異動任何資料

對帳查詢只讀取應付票據與傳票來比對,不會修改、過帳或沖銷任何單據。發現差異後,需回到對應的票據作業或總帳傳票去更正。

常見問題

為什麼開啟後看到的是簽核畫面 / 匯率?跟說明不一樣?

本功能尚未完成移植。目前掛在 ProgramClass.ACCNP 之下的是佔位畫面(簽核格線+匯率查詢),對帳邏輯尚未實作。本頁的對帳說明描述的是 VFP 原系統與移植目標,待 C# 端補完後會更新為實際畫面。

查不到任何資料?(VFP 原系統行為)

請確認:(1) 起訖日期區間內確實有付款日期(貸方)或兌現日期(借方)落在區間內的應付票據;(2) 該區間內票據科目有對應的傳票分錄。完全沒有任何票據與傳票的區間會回空清單。另外,純信用卡票別的資料一律被排除,不會出現。

某筆票據只出現在一邊(票據面有、傳票面空白,或相反)?

這正是對帳要抓的狀況。配對採全外部結合:當票據主檔有票、但總帳沒有對應分錄(或反之)時,會各自獨立成一列,且差異欄會等於單邊金額。代表該票可能漏過帳、過到錯誤科目,或日期/票號與傳票對不上。

差異欄不是 0,代表什麼?

差異=傳票金額 − 票據金額。不為 0 表示兩邊金額沒對平:可能是票面金額與過帳金額不符、配對到的是不同筆,或某一邊缺漏。可勾選 僅顯示差異者 快速列出全部待釐清的票據。

日期欄顯示的是哪個日期?跟我輸入的票據日期不一樣?

當票據面有資料時,日期取票據的交易日期(貸方為付款日、借方為兌現日);若該列只有傳票面、沒有對應票據,則改顯示傳票日期。因此單邊資料會以傳票日期呈現。

報表 / Excel 標題寫「應收票據」,但這是應付票據查詢?

這是沿用 VFP 原系統的既有報表(ACCNP1ACCNP2)與匯出檔名,標題文字未更動。實際查詢來源為應付票據主檔。

相關功能


需補截圖清單

本功能完成移植、runtime 驗收後再補拍(放 docs/O-Check/images/)。以下為對帳功能補完後的目標畫面:

  1. accnp-step1.png — 查詢條件面板(起訖日期+查詢鈕,含預設帶入的日期)
  2. accnp-step2.png — 借方頁籤查詢結果(含合計列)
  3. accnp-step3.png — 貸方頁籤查詢結果,並示範勾選「僅顯示差異者」過濾後的畫面