程式資訊
- 程式 ID:
PSHEET_1 - 所屬子系統:Other
- 狀態:stable
批次付款沖帳產生分錄(票據/電匯)¶
功能簡介¶
本表單是付款單(psheet)的子彈窗,用來把一批應付帳款一次沖掉並產生對應的傳票分錄與付款明細。它從付款單的延伸功能叫起,依條件把指定區間、指定廠商的未沖應付(rp_m)撈出來,讓使用者逐廠商勾選要沖多少、用哪個銀行帳戶付款,最後按 產生分錄 自動帶出傳票借貸方與票據/電匯明細,存檔後回寫成一張付款單。
同一支程式有兩種型態,由付款單叫起時決定:
- 票據(Check):產生票據明細(支票/本票),畫面顯示「票據」明細格線。
- 電匯(Wire Transfer / Cash):產生電匯(TT)明細,畫面顯示「電匯」明細格線。
從哪裡進來
本表單沒有自己的主選單入口,是在 付款單 中按延伸功能(票據批次付款)開啟的模態視窗。關閉後系統會把游標導向剛產生的付款單號。
適合會計/出納在批次付款時使用:先一次撈出多家廠商的待沖應付,集中沖帳、集中產生傳票,省去逐張付款單手動沖帳的工。
前置需求¶
- 權限:本程式 ProgramClass 為
PSHEET_1,由付款單(PSHEET)延伸功能呼叫;需具備付款單的新增權限才能執行沖帳產生分錄並存檔。 - 基礎資料:沖帳與分錄結果的正確度取決於下列資料——
| 資料 | 影響的結果 |
|---|---|
應付帳款主檔(rp_m,已立帳未沖) |
查詢出的待沖清單、原幣/本幣應收付、已沖金額 |
| 銀行帳戶主檔(含幣別、銀行科目) | 帳戶代號 帶出的付款帳戶、沖帳匯率、電匯明細的帳戶與幣別 |
| 廠商主檔 | 起訖廠商、廠商簡稱 |
| 財務類別定義(rpdef,含匯兌損益正負值科目 A3/A4、預付科目 A2) | 產生分錄 帶出的傳票科目、匯兌損益分錄 |
| 當日匯率 | 外幣銀行帳戶的沖帳匯率預設值 |
程式參數 _prgpar(2040 票據是否直接轉現金科目、2200 到期日調整) |
電匯型態產生分錄時的科目來源與到期日推算 |
操作步驟¶
整個流程是「查詢待沖 → 逐廠商沖帳 → 產生分錄 → 存檔回寫付款單」。
步驟① 設定查詢條件¶
- 輸入起訖廠商:用廠商查詢控件選起始/截止廠商。預設起始為空、截止為
zzzz(代表全部)。輸入起始廠商時,截止廠商會自動同步成相同值(方便只查一家)。 - 輸入帳戶代號(必填):選擇本批付款要用的銀行帳戶。系統會依此帳戶的幣別帶出沖帳匯率。
- 選擇查詢基準(四選一單選鈕):
立帳月份(預設):以立帳日期 ≦ 帳款期別月底為條件。帳款期別:以帳款期別 ≦ 指定期別為條件。付款日:以收付款日落在起訖日期之間為條件。到期日:以到期日落在起訖日期之間為條件。
- 依基準填入對應日期欄位:
- 選
立帳月份或帳款期別時,帳款期別欄(YYYYMM)啟用、起訖日期欄停用。 - 選
付款日或到期日時,起訖日期欄啟用、帳款期別欄停用。
- 選
- 輸入沖帳日期:本批沖帳的帳務日期,預設今天。
- 按
查詢。
查詢會自動排除的資料
查詢條件已內建排除「暫估不沖帳」的財務類別,且只撈原幣應收付 ≠ 已沖原幣(尚有未沖餘額)的資料。完全沖完的單據不會出現。
步驟② 逐廠商檢視待沖明細並沖帳¶
查詢成功後,畫面分成三層:
- 上方主檔格線:依廠商彙整,一列一家廠商(含收付款日期、廠商代號/簡稱、收付款別)。點選某廠商,會連動載入下方該廠商的待沖明細。
- 中間待沖明細格線:列出該廠商所有未沖的應付(財務單號、財務類別、交易日期、發票號碼、幣別、原幣應收付、已沖原幣、到期日…)。
- 在 本次沖原幣 欄手動輸入要沖的原幣金額;或
- 按該列的
沖帳按鈕:若目前為 0,會一次帶入「原幣應收付 − 已沖原幣」的全額;再按一次則歸 0(切換沖/不沖)。 - 輸入後系統即時算出該列匯兌損益與下方總金額(所有列本次沖原幣金額加總)。
- 下方票據/電匯明細:依型態顯示票據明細或電匯(TT)明細,供調整票別、帳戶、票據金額/電匯金額、到期日等。
步驟③ 產生分錄¶
- 確認上方主檔選到要處理的廠商。
- (選用)調整左下角的沖帳匯率日與沖帳匯率。
- 按
產生分錄:系統會就目前選取的廠商,把本次沖帳金額彙整成傳票分錄(填入下方傳票明細格線的科目、借貸方),並依型態帶出票據或電匯明細;同時更新該廠商的沖帳備註(記下操作者、日期、「批次付款」)。 - 畫面下方的本幣借方/本幣貸方會重新加總目前傳票分錄的本幣金額,供你檢查借貸是否平衡。
- 逐一對每家要付款的廠商重複步驟②~③。
步驟④ 存檔¶
按下方工具列的存檔。存檔前系統會檢核(見欄位連動與附加功能),通過後寫入付款單主檔(rpsht_m)與各層明細,並把控制權交回付款單;付款單會自動導向剛產生的單號,並跳出「起始付款單號」提示。
鎖住的資料無法處理
若某些應付資料正被別人編輯(鎖住),會列在「鎖住資料」頁籤,且 Header 會顯示鎖住筆數。這些資料本批不會沖帳,請待對方釋放後再查詢。
欄位說明¶
查詢條件區¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 起始廠商/截止廠商 | — | 廠商代號區間;預設起始=空、截止=zzzz。輸入起始時截止自動同步 |
| 帳戶代號 | ✔ | 本批付款的銀行帳戶;決定沖帳匯率與付款幣別 |
| 查詢基準 | ✔ | 單選:立帳月份(預設)/帳款期別/付款日/到期日 |
| 帳款期別 | 視基準 | YYYYMM;基準為立帳月份或帳款期別時必填,預設當月 |
| 起訖日期 | 視基準 | 基準為付款日或到期日時必填;截止日期預設今天 |
| 沖帳日期 | ✔ | 本批沖帳帳務日,預設今天 |
| 沖帳匯率日 | — | 取沖帳匯率的基準日,預設今天 |
| 沖帳匯率 | — | 外幣帳戶換算本幣的匯率,預設 1;本幣帳戶恆為 1 |
待沖明細格線(中間)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 財務單號/財務類別/參考單號 | — | 來源應付資料識別 |
| 交易日期/到期日/收付款日 | — | 來源單據日期 |
| 幣別/匯率 | — | 原始幣別與立帳匯率 |
| 原幣應收付/本幣應收付 | — | 應付總額 |
| 沖帳原幣 | — | 已沖金額 |
| 本次沖原幣 | ✔ | 本批要沖的原幣金額;可手動輸入或按 沖帳 帶全額 |
| 匯兌損益 | 系統算 | 依沖帳匯率與立帳匯率差額自動計算 |
票據明細(票據型態)¶
| 欄位 | 說明 |
|---|---|
| 票別/抬頭名稱/帳戶代號/票據號碼 | 開票資訊 |
| 幣別/匯率/票據金額 | 票面資訊 |
| 到期日/預兌日/票據備註/禁止轉讓/平行線 | 票據條件 |
電匯明細(電匯型態)¶
| 欄位 | 說明/預設 |
|---|---|
| 序號 | 預設先建 1~10 列空白序號 |
| 票別 | 類別預設 TT(電匯) |
| 帳戶代號/帳戶簡稱 | 預設帶查詢時選的付款帳戶 |
| 幣別/匯率 | 預設帶帳戶幣別與沖帳匯率 |
| 票據金額 | 產生分錄時依本次沖帳本幣金額 ÷ 沖帳匯率帶入 |
| 到期日/票據備註 | 可調整 |
傳票分錄明細(下方)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 序號 | — | 產生分錄後依借貸方重新排序編號 |
| 科目代號/科目名稱 | ✔ | 產生分錄自動帶;可手動調整 |
| 摘要 | ✔ | 自動帶廠商簡稱、到期日、發票號等 |
| 幣別/匯率 | ✔ | 預設本位幣、匯率 1 |
| 原幣借方/原幣貸方 | ✔ | 手動或自動帶入 |
| 本幣借方/本幣貸方 | 系統算 | 依原幣 × 匯率 |
| 客廠代號/部門/經辦/分類索引1~4/專案代號 | ✔ | 分錄附屬維度 |
欄位連動與附加功能¶
這一節把「輸入某欄位 / 按某按鈕後系統會做什麼」逐條列出,全部來源為實際程式碼。
條件輸入連動¶
- 輸入起始廠商:系統會把截止廠商自動設成同一值(並帶出截止廠商名稱),方便只查單一廠商;要查區間時再手動把截止廠商改大。
- 切換查詢基準單選鈕:
- 選
立帳月份或帳款期別→ 帳款期別欄啟用、起訖日期欄停用。 - 選
付款日或到期日→ 起訖日期欄啟用、帳款期別欄停用。
- 選
- 選擇帳戶代號 + 按查詢:查詢時系統依該銀行帳戶的幣別決定沖帳匯率——帳戶幣別=本位幣時固定 1;為外幣時,從查詢回傳的匯率表帶出當日匯率與匯率日。每筆待沖資料若幣別與帳戶幣別相同則套用沖帳匯率,否則匯率為 1。
沖帳列連動¶
- 按某列的
沖帳按鈕:在「全額」與「0」之間切換——若該列本次沖原幣為 0,帶入「原幣應收付 − 已沖原幣」;否則歸 0。 - 改變「本次沖原幣」金額(手動或經沖帳鈕):透過弱事件即時觸發兩件事——
- 重算該列匯兌損益(
CalculateExchangeGainOrLoss):以本次沖帳原幣 × 立帳匯率得「原始本幣金額」、× 沖帳匯率得「本次本幣金額」,兩者差額即匯兌損益;應付加項與應收減項取正差、其餘取負差。同時算出本次沖帳本幣金額與含正負號的已用金額。 - 重算下方總金額=所有待沖列「本次沖帳原幣金額」之總和。
- 重算該列匯兌損益(
產生分錄 按鈕(StrikeAndEntry)¶
按下時針對目前選取的廠商主檔列執行:
- 若該廠商先前已沖過(已有沖帳備註),先清掉舊的票據/電匯資料再重算。
- 檢查該廠商是否有「本次沖帳本幣金額 ≠ 0」的待沖列:
- 有 → 設定沖帳備註為「使用者,日期,批次付款」並標記為已選取。
- 沒有 → 清空沖帳備註、取消選取。
- 產生傳票分錄(
AddEntry/StrikeEntryHelper):依財務類別定義把沖帳金額拆成借貸方科目,填入下方傳票明細格線。 - 電匯型態另外帶電匯明細與對方傳票分錄:金額=本次沖帳本幣金額 ÷ 沖帳匯率,並依程式參數
2040(票據是否直接轉現金科目)決定科目來源——2040 = Y→ 用銀行帳戶對應的銀行科目。- 否則 → 用財務類別 A2(預付)正值科目。
- 重新排序該廠商的傳票明細序號(有金額/借方在前),並把下方本幣借方/本幣貸方重新加總顯示,供借貸平衡檢查。
匯兌損益分錄為規劃中
程式內已備有把匯兌損益自動帶入傳票科目(A3 正值/A4 負值科目)的邏輯,但目前在 產生分錄 流程中未啟用(呼叫被註解)。實際存檔的分錄不含自動匯兌損益科目列;如需入帳請於傳票明細手動補列。
存檔前檢核(AllowSave)¶
按存檔時系統會逐項檢查,未過不予存檔:
- 至少要有一筆傳票分錄(科目代號非空);否則提示「請先輸入傳票分錄」。
- 逐廠商檢查傳票:本幣借方或本幣貸方為 0 → 該列標示「借貸方不可為 0」;借方 ≠ 貸方 → 標示「借貸不平衡不可存檔」。任何主檔列被標示錯誤訊息即中止存檔。
- 通過後系統會自動清掉空白列:傳票明細移除無科目或借貸皆 0 的列、票據明細移除金額 0 且無備註的列、電匯明細移除金額 0 的列。
- 只把有沖帳備註(代表已沖)的廠商主檔列寫入付款單。
查詢條件驗證(Validate)¶
按 查詢 前會檢核:帳戶代號必填;基準為到期日/付款日時截止日期必填,基準為帳款期別/立帳月份時帳款期別必填;沖帳日期必填。任一缺漏即跳訊息不查詢。
鎖住資料頁籤¶
查詢後若有資料正被他人鎖定,會放入「鎖住資料」頁籤,Header 顯示鎖住筆數(>0 才顯示),列出修改人員、財務單號、客廠部代號、帳款期別、立帳日期、金額等,供你得知哪些單本批被略過。
取消¶
按工具列取消會清空主檔、各層明細與本幣借貸方合計,回到查詢前狀態。
常見問題¶
按了查詢卻跳「請輸入帳戶代號」?
帳戶代號是必填,它決定付款銀行帳戶與沖帳匯率。請先在條件區選好帳戶代號再查詢。另外依查詢基準不同,帳款期別(立帳月份/帳款期別)或截止日期(付款日/到期日),以及沖帳日期也都必填。
查詢結果是空的,廠商明明有未付帳款?
查詢只撈尚有未沖餘額(原幣應收付 ≠ 已沖原幣)且非「暫估不沖帳」財務類別的資料,並受起訖廠商與日期/期別條件限制。請確認:條件區間涵蓋該筆、廠商代號落在起訖範圍內、該應付確實尚未沖完。被他人鎖定的資料會改列在「鎖住資料」頁籤而不在主清單。
按了「產生分錄」但下方傳票借貸不平衡,存不了檔?
存檔會逐廠商檢查傳票借方=貸方且不可為 0。若不平衡,對應主檔列會被標上錯誤訊息。請檢查該廠商的本次沖帳金額與自動帶出的科目分錄,必要時於傳票明細手動補列或調整金額使借貸相等。匯兌損益科目目前不會自動帶入(見欄位連動與附加功能的規劃中說明),有差額時需手動處理。
外幣帳戶的沖帳匯率怎麼帶出來的?可以改嗎?
查詢時系統依帳戶幣別自動帶:本位幣帳戶固定 1,外幣帳戶取當日匯率與匯率日。你可在左下角手動調整沖帳匯率日/沖帳匯率後再按 產生分錄 重算。
為什麼有些廠商沒被寫進付款單?
只有已按 產生分錄、產生了沖帳備註的廠商才會寫入。若某廠商沒有任何「本次沖原幣 ≠ 0」的列,產生分錄時其沖帳備註會被清空、不列入存檔。
票據型態和電匯型態怎麼決定?
由付款單叫起本表單時決定:票據批次付款開的是票據型態(顯示票據明細),電匯則開電匯(TT)型態。兩者共用同一支程式(ProgramClass PSHEET_1),差別在明細格線與產生分錄時帶的科目來源。
相關功能¶
- 付款單 — 本表單的母程式(由其延伸功能叫起)
- 進貨轉應付帳款
- 收付沖帳產生分錄(RPF 歸零)
- 批次修改付款日期
- 應付沖帳(CHECKAPGO)
- 傳票(總帳)
- 頁內:操作步驟|欄位連動與附加功能
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/Other/images/):
psheet_1-step1.png— 查詢條件區(起訖廠商、帳戶代號、四種基準單選鈕、日期欄)psheet_1-step2.png— 三層格線(主檔廠商列 / 待沖明細含本次沖原幣 / 票據或電匯明細)psheet_1-step3.png— 按下「產生分錄」後的傳票分錄與本幣借貸方合計psheet_1-step4.png— 「鎖住資料」頁籤(含 Header 鎖住筆數)