跳轉到

程式資訊

  • 程式 IDPSHEET_1
  • 所屬子系統:Other
  • 狀態:stable

批次付款沖帳產生分錄(票據/電匯)

功能簡介

本表單是付款單(psheet)的子彈窗,用來把一批應付帳款一次沖掉並產生對應的傳票分錄與付款明細。它從付款單的延伸功能叫起,依條件把指定區間、指定廠商的未沖應付(rp_m)撈出來,讓使用者逐廠商勾選要沖多少、用哪個銀行帳戶付款,最後按 產生分錄 自動帶出傳票借貸方與票據/電匯明細,存檔後回寫成一張付款單。

同一支程式有兩種型態,由付款單叫起時決定:

  • 票據(Check):產生票據明細(支票/本票),畫面顯示「票據」明細格線。
  • 電匯(Wire Transfer / Cash):產生電匯(TT)明細,畫面顯示「電匯」明細格線。

從哪裡進來

本表單沒有自己的主選單入口,是在 付款單 中按延伸功能(票據批次付款)開啟的模態視窗。關閉後系統會把游標導向剛產生的付款單號。

適合會計/出納在批次付款時使用:先一次撈出多家廠商的待沖應付,集中沖帳、集中產生傳票,省去逐張付款單手動沖帳的工。

前置需求

  • 權限:本程式 ProgramClass 為 PSHEET_1,由付款單(PSHEET)延伸功能呼叫;需具備付款單的新增權限才能執行沖帳產生分錄並存檔。
  • 基礎資料:沖帳與分錄結果的正確度取決於下列資料——
資料 影響的結果
應付帳款主檔(rp_m,已立帳未沖) 查詢出的待沖清單、原幣/本幣應收付、已沖金額
銀行帳戶主檔(含幣別、銀行科目) 帳戶代號 帶出的付款帳戶、沖帳匯率、電匯明細的帳戶與幣別
廠商主檔 起訖廠商、廠商簡稱
財務類別定義(rpdef,含匯兌損益正負值科目 A3/A4、預付科目 A2) 產生分錄 帶出的傳票科目、匯兌損益分錄
當日匯率 外幣銀行帳戶的沖帳匯率預設值
程式參數 _prgpar(2040 票據是否直接轉現金科目、2200 到期日調整) 電匯型態產生分錄時的科目來源與到期日推算

操作步驟

整個流程是「查詢待沖 → 逐廠商沖帳 → 產生分錄 → 存檔回寫付款單」。

步驟① 設定查詢條件

  1. 輸入起訖廠商:用廠商查詢控件選起始/截止廠商。預設起始為空、截止為 zzzz(代表全部)。輸入起始廠商時,截止廠商會自動同步成相同值(方便只查一家)。
  2. 輸入帳戶代號(必填):選擇本批付款要用的銀行帳戶。系統會依此帳戶的幣別帶出沖帳匯率
  3. 選擇查詢基準(四選一單選鈕):
    • 立帳月份(預設):以立帳日期 ≦ 帳款期別月底為條件。
    • 帳款期別:以帳款期別 ≦ 指定期別為條件。
    • 付款日:以收付款日落在起訖日期之間為條件。
    • 到期日:以到期日落在起訖日期之間為條件。
  4. 依基準填入對應日期欄位:
    • 立帳月份帳款期別 時,帳款期別欄(YYYYMM)啟用、起訖日期欄停用。
    • 付款日到期日 時,起訖日期欄啟用、帳款期別欄停用。
  5. 輸入沖帳日期:本批沖帳的帳務日期,預設今天。
  6. 查詢

查詢會自動排除的資料

查詢條件已內建排除「暫估不沖帳」的財務類別,且只撈原幣應收付 ≠ 已沖原幣(尚有未沖餘額)的資料。完全沖完的單據不會出現。

步驟② 逐廠商檢視待沖明細並沖帳

查詢成功後,畫面分成三層:

  1. 上方主檔格線:依廠商彙整,一列一家廠商(含收付款日期、廠商代號/簡稱、收付款別)。點選某廠商,會連動載入下方該廠商的待沖明細。
  2. 中間待沖明細格線:列出該廠商所有未沖的應付(財務單號、財務類別、交易日期、發票號碼、幣別、原幣應收付、已沖原幣、到期日…)。
    • 本次沖原幣 欄手動輸入要沖的原幣金額;或
    • 按該列的 沖帳 按鈕:若目前為 0,會一次帶入「原幣應收付 − 已沖原幣」的全額;再按一次則歸 0(切換沖/不沖)。
    • 輸入後系統即時算出該列匯兌損益與下方總金額(所有列本次沖原幣金額加總)。
  3. 下方票據/電匯明細:依型態顯示票據明細或電匯(TT)明細,供調整票別、帳戶、票據金額/電匯金額、到期日等。

步驟③ 產生分錄

  1. 確認上方主檔選到要處理的廠商。
  2. (選用)調整左下角的沖帳匯率日沖帳匯率
  3. 產生分錄:系統會就目前選取的廠商,把本次沖帳金額彙整成傳票分錄(填入下方傳票明細格線的科目、借貸方),並依型態帶出票據或電匯明細;同時更新該廠商的沖帳備註(記下操作者、日期、「批次付款」)。
  4. 畫面下方的本幣借方/本幣貸方會重新加總目前傳票分錄的本幣金額,供你檢查借貸是否平衡。
  5. 逐一對每家要付款的廠商重複步驟②~③。

步驟④ 存檔

按下方工具列的存檔。存檔前系統會檢核(見欄位連動與附加功能),通過後寫入付款單主檔(rpsht_m)與各層明細,並把控制權交回付款單;付款單會自動導向剛產生的單號,並跳出「起始付款單號」提示。

鎖住的資料無法處理

若某些應付資料正被別人編輯(鎖住),會列在「鎖住資料」頁籤,且 Header 會顯示鎖住筆數。這些資料本批不會沖帳,請待對方釋放後再查詢。

欄位說明

查詢條件區

欄位 必填 說明/格式/預設
起始廠商/截止廠商 廠商代號區間;預設起始=空、截止=zzzz。輸入起始時截止自動同步
帳戶代號 本批付款的銀行帳戶;決定沖帳匯率與付款幣別
查詢基準 單選:立帳月份(預設)/帳款期別付款日到期日
帳款期別 視基準 YYYYMM;基準為立帳月份或帳款期別時必填,預設當月
起訖日期 視基準 基準為付款日或到期日時必填;截止日期預設今天
沖帳日期 本批沖帳帳務日,預設今天
沖帳匯率日 取沖帳匯率的基準日,預設今天
沖帳匯率 外幣帳戶換算本幣的匯率,預設 1;本幣帳戶恆為 1

待沖明細格線(中間)

欄位 可編輯 說明
財務單號/財務類別/參考單號 來源應付資料識別
交易日期/到期日/收付款日 來源單據日期
幣別/匯率 原始幣別與立帳匯率
原幣應收付/本幣應收付 應付總額
沖帳原幣 已沖金額
本次沖原幣 本批要沖的原幣金額;可手動輸入或按 沖帳 帶全額
匯兌損益 系統算 依沖帳匯率與立帳匯率差額自動計算

票據明細(票據型態)

欄位 說明
票別/抬頭名稱/帳戶代號/票據號碼 開票資訊
幣別/匯率/票據金額 票面資訊
到期日/預兌日/票據備註/禁止轉讓/平行線 票據條件

電匯明細(電匯型態)

欄位 說明/預設
序號 預設先建 1~10 列空白序號
票別 類別預設 TT(電匯)
帳戶代號/帳戶簡稱 預設帶查詢時選的付款帳戶
幣別/匯率 預設帶帳戶幣別與沖帳匯率
票據金額 產生分錄時依本次沖帳本幣金額 ÷ 沖帳匯率帶入
到期日/票據備註 可調整

傳票分錄明細(下方)

欄位 可編輯 說明
序號 產生分錄後依借貸方重新排序編號
科目代號/科目名稱 產生分錄自動帶;可手動調整
摘要 自動帶廠商簡稱、到期日、發票號等
幣別/匯率 預設本位幣、匯率 1
原幣借方/原幣貸方 手動或自動帶入
本幣借方/本幣貸方 系統算 依原幣 × 匯率
客廠代號/部門/經辦/分類索引1~4/專案代號 分錄附屬維度

欄位連動與附加功能

這一節把「輸入某欄位 / 按某按鈕後系統會做什麼」逐條列出,全部來源為實際程式碼。

條件輸入連動

  • 輸入起始廠商:系統會把截止廠商自動設成同一值(並帶出截止廠商名稱),方便只查單一廠商;要查區間時再手動把截止廠商改大。
  • 切換查詢基準單選鈕
    • 立帳月份帳款期別帳款期別欄啟用、起訖日期欄停用。
    • 付款日到期日起訖日期欄啟用、帳款期別欄停用。
  • 選擇帳戶代號 + 按查詢:查詢時系統依該銀行帳戶的幣別決定沖帳匯率——帳戶幣別=本位幣時固定 1;為外幣時,從查詢回傳的匯率表帶出當日匯率與匯率日。每筆待沖資料若幣別與帳戶幣別相同則套用沖帳匯率,否則匯率為 1。

沖帳列連動

  • 按某列的 沖帳 按鈕:在「全額」與「0」之間切換——若該列本次沖原幣為 0,帶入「原幣應收付 − 已沖原幣」;否則歸 0。
  • 改變「本次沖原幣」金額(手動或經沖帳鈕):透過弱事件即時觸發兩件事——
    1. 重算該列匯兌損益CalculateExchangeGainOrLoss):以本次沖帳原幣 × 立帳匯率得「原始本幣金額」、× 沖帳匯率得「本次本幣金額」,兩者差額即匯兌損益;應付加項與應收減項取正差、其餘取負差。同時算出本次沖帳本幣金額與含正負號的已用金額。
    2. 重算下方總金額=所有待沖列「本次沖帳原幣金額」之總和。

產生分錄 按鈕(StrikeAndEntry)

按下時針對目前選取的廠商主檔列執行:

  1. 若該廠商先前已沖過(已有沖帳備註),先清掉舊的票據/電匯資料再重算。
  2. 檢查該廠商是否有「本次沖帳本幣金額 ≠ 0」的待沖列:
    • 有 → 設定沖帳備註為「使用者,日期,批次付款」並標記為已選取。
    • 沒有 → 清空沖帳備註、取消選取。
  3. 產生傳票分錄(AddEntry / StrikeEntryHelper):依財務類別定義把沖帳金額拆成借貸方科目,填入下方傳票明細格線。
  4. 電匯型態另外帶電匯明細與對方傳票分錄:金額=本次沖帳本幣金額 ÷ 沖帳匯率,並依程式參數 2040(票據是否直接轉現金科目)決定科目來源——
    • 2040 = Y → 用銀行帳戶對應的銀行科目。
    • 否則 → 用財務類別 A2(預付)正值科目。
  5. 重新排序該廠商的傳票明細序號(有金額/借方在前),並把下方本幣借方/本幣貸方重新加總顯示,供借貸平衡檢查。

匯兌損益分錄為規劃中

程式內已備有把匯兌損益自動帶入傳票科目(A3 正值/A4 負值科目)的邏輯,但目前在 產生分錄 流程中未啟用(呼叫被註解)。實際存檔的分錄不含自動匯兌損益科目列;如需入帳請於傳票明細手動補列。

存檔前檢核(AllowSave)

按存檔時系統會逐項檢查,未過不予存檔:

  • 至少要有一筆傳票分錄(科目代號非空);否則提示「請先輸入傳票分錄」。
  • 逐廠商檢查傳票:本幣借方或本幣貸方為 0 → 該列標示「借貸方不可為 0」;借方 ≠ 貸方 → 標示「借貸不平衡不可存檔」。任何主檔列被標示錯誤訊息即中止存檔。
  • 通過後系統會自動清掉空白列:傳票明細移除無科目或借貸皆 0 的列、票據明細移除金額 0 且無備註的列、電匯明細移除金額 0 的列。
  • 只把有沖帳備註(代表已沖)的廠商主檔列寫入付款單。

查詢條件驗證(Validate)

查詢 前會檢核:帳戶代號必填;基準為到期日/付款日時截止日期必填,基準為帳款期別/立帳月份時帳款期別必填;沖帳日期必填。任一缺漏即跳訊息不查詢。

鎖住資料頁籤

查詢後若有資料正被他人鎖定,會放入「鎖住資料」頁籤,Header 顯示鎖住筆數(>0 才顯示),列出修改人員、財務單號、客廠部代號、帳款期別、立帳日期、金額等,供你得知哪些單本批被略過。

取消

按工具列取消會清空主檔、各層明細與本幣借貸方合計,回到查詢前狀態。

常見問題

按了查詢卻跳「請輸入帳戶代號」?

帳戶代號是必填,它決定付款銀行帳戶與沖帳匯率。請先在條件區選好帳戶代號再查詢。另外依查詢基準不同,帳款期別(立帳月份/帳款期別)或截止日期(付款日/到期日),以及沖帳日期也都必填。

查詢結果是空的,廠商明明有未付帳款?

查詢只撈尚有未沖餘額(原幣應收付 ≠ 已沖原幣)且非「暫估不沖帳」財務類別的資料,並受起訖廠商與日期/期別條件限制。請確認:條件區間涵蓋該筆、廠商代號落在起訖範圍內、該應付確實尚未沖完。被他人鎖定的資料會改列在「鎖住資料」頁籤而不在主清單。

按了「產生分錄」但下方傳票借貸不平衡,存不了檔?

存檔會逐廠商檢查傳票借方=貸方且不可為 0。若不平衡,對應主檔列會被標上錯誤訊息。請檢查該廠商的本次沖帳金額與自動帶出的科目分錄,必要時於傳票明細手動補列或調整金額使借貸相等。匯兌損益科目目前不會自動帶入(見欄位連動與附加功能的規劃中說明),有差額時需手動處理。

外幣帳戶的沖帳匯率怎麼帶出來的?可以改嗎?

查詢時系統依帳戶幣別自動帶:本位幣帳戶固定 1,外幣帳戶取當日匯率與匯率日。你可在左下角手動調整沖帳匯率日/沖帳匯率後再按 產生分錄 重算。

為什麼有些廠商沒被寫進付款單?

只有已按 產生分錄、產生了沖帳備註的廠商才會寫入。若某廠商沒有任何「本次沖原幣 ≠ 0」的列,產生分錄時其沖帳備註會被清空、不列入存檔。

票據型態和電匯型態怎麼決定?

付款單叫起本表單時決定:票據批次付款開的是票據型態(顯示票據明細),電匯則開電匯(TT)型態。兩者共用同一支程式(ProgramClass PSHEET_1),差別在明細格線與產生分錄時帶的科目來源。

相關功能


需補截圖清單

以下截圖待 runtime 驗收後補拍(放 docs/Other/images/):

  1. psheet_1-step1.png — 查詢條件區(起訖廠商、帳戶代號、四種基準單選鈕、日期欄)
  2. psheet_1-step2.png — 三層格線(主檔廠商列 / 待沖明細含本次沖原幣 / 票據或電匯明細)
  3. psheet_1-step3.png — 按下「產生分錄」後的傳票分錄與本幣借貸方合計
  4. psheet_1-step4.png — 「鎖住資料」頁籤(含 Header 鎖住筆數)