程式資訊
- 程式 ID:
PSHEET_2 - 所屬子系統:Other
- 狀態:stable
批次修改付款日期¶
功能簡介¶
「批次修改付款日期」是一支轉檔型批次工具,用來把一批已開立但尚未沖帳的付款單(PSHEET,收付款別=付款)的收付款日期一次改成同一個新日期。它的母體單據是付款單;當付款單因為實際付款日延後、或要把同一批款項統一歸到某一天時,不必逐張打開付款單修改,改用本工具勾選後一次套用。
改日期不只是改一個欄位——付款單的明細是會計分錄(借貸方),改了付款日期會牽動外幣分錄的匯率與匯兌損益分錄,所以本工具在套用新日期的同時會重新抓匯率、重算本幣金額、重算匯兌損益,並在存檔前檢查每張單的借貸是否平衡。適合財會/出納人員在月底結帳前批次調整付款日。
只處理付款單
程式視窗標題雖然是「批次改日期」,但查詢條件固定鎖在 收付款別=P(付款),因此只會撈出付款單。財務傳票的整批改日期請改用同系列的 批次改財傳單日期 Fsheet_1(鎖在收付款別=F)。
前置需求¶
- 權限:本程式(
PSHEET_2)的瀏覽與修改權限。 - 基礎資料:批次改日與後續分錄重算會用到下列資料,請先維護妥當——
| 資料 | 影響什麼 |
|---|---|
| 付款單(PSHEET,付款單) | 查詢來源;只撈尚未沖帳、未審核的付款單 |
| 匯率表(牌告匯率/匯率維護) | 外幣借方分錄改日後採用的會計匯率 |
| 銀行日報表/付款銀行匯率(銀行帳戶/付款匯率) | 外幣貸方分錄改日後採用的帳戶匯率 |
| 匯兌損益科目設定(A3 匯兌收益/A4 匯兌損失) | 重算後產生/調整匯兌損益分錄的科目 |
只能改未沖帳、未審核的單
本工具的查詢條件固定為「沖帳傳票號為空」且「已審核不等於 X」。已經沖帳產生傳票、或已審核的付款單不會出現在清單裡,也就無法用本工具改日期——這是為了避免動到已過帳的會計資料。
操作步驟¶
本工具的工具列只有 查詢、存檔、離開 三顆按鈕(位於畫面下方的轉檔工具列),整體流程是「查詢 → 勾選 → 設新日期 → 存檔」。
- 在畫面左上角的 新日期 欄輸入要套用的目標付款日期。預設值是今天(系統開窗時自動帶入當天日期)。
- 按工具列
查詢。系統撈出所有「未沖帳、未審核」的付款單,列在「資料」頁的上方主檔格線。- 撈出後,每張單會立即依新日期重新計算外幣匯率與匯兌損益,結果放在下方的「修改後資料」格線。
- 逐列勾選最左邊的 選擇 欄,挑出這次要改日期的付款單(可複選)。
- 點選任一張主檔,下方會同步顯示該單的兩份分錄:
- 原始資料:付款單目前的原始借貸分錄(唯讀,供對照)。
- 修改後資料:套用新日期、重算匯率與匯兌損益後的分錄。其中只有匯率欄可手動微調,改了匯率本幣金額會跟著重算。
- 確認無誤後按
存檔。系統會把所有勾選的付款單的收付款日期改為新日期,連同重算後的分錄一起寫回,並驗證每張單借貸平衡。 - 存檔成功會跳出成功訊息;依系統參數設定,視窗可能在存檔後自動關閉。若要放棄,按
離開。
鎖住資料頁
若查詢時有付款單正被其他使用者鎖定(佔用中),這些單會被列在「鎖住資料」頁,頁籤標題會顯示被鎖筆數。被鎖住的單不會進入可改清單,請等對方離開後再查一次。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明 / 預設 |
|---|---|---|
| 新日期 | ✔ | 要套用到所有勾選付款單的目標收付款日期;預設帶入今天(系統日期,格式 YYYY/MM/DD) |
主檔格線(資料頁上方)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 選擇 | ✔ | 勾選代表這張單要套用新日期(存檔時只處理勾選的單) |
| 收付款單號 | — | 付款單號 |
| 收付款日期 | — | 目前的付款日期(存檔後會被改成「新日期」) |
| 收付款別 | — | 固定為付款 |
| 廠商代號/客戶代號 | — | 付款對象 |
| 業務員編號 | — | 承辦業務員 |
| 沖帳備註/沖帳方式 | — | 沖帳相關資訊 |
| 出納傳票號/沖帳傳票號 | — | 對應傳票號(沖帳傳票號為空才會被撈出) |
修改後資料格線(資料頁下方,會計分錄)¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 序號 | — | 分錄序號 |
| 科目代號/科目名稱 | — | 會計科目(科目名稱由系統依科目代號帶出) |
| 摘要 | — | 分錄摘要 |
| 幣別 | — | 原幣別 |
| 匯率 | ✔ | 套用新日期後重抓的匯率;可手動微調,改了會重算本幣金額 |
| 原借方金額/原貸方金額 | — | 原幣借貸金額(唯讀) |
| 本借方金額/本貸方金額 | — | 本幣借貸金額(=原幣 × 匯率,重算結果) |
| 客廠代號/客廠簡稱 | — | 對象代號與簡稱 |
| 部門代號/員工編號/項目編號/專案代號/分類索引1~4 | — | 分錄輔助欄位 |
「原始資料」與「修改後資料」的差別
「原始資料」是付款單目前存檔的分錄,完全唯讀,純粹用來對照;「修改後資料」才是存檔時實際寫回的內容。兩者並排,方便你確認改日期後匯率、本幣金額、匯兌損益的變化。
欄位連動與附加功能¶
這一節把「輸入某欄位 / 按某按鈕後,系統會做什麼」整理出來,全部依實際程式碼描述。
開窗時:新日期預設今天¶
開窗時 ViewModel 會把 新日期 預設為系統當天日期(DateTime.Now,格式 YYYY/MM/DD)。你可以直接改成想要的目標付款日。
按「查詢」:撈未沖帳付款單並就地重算¶
當你按 查詢,系統會:
- 以固定條件呼叫轉檔 SP(
DARB_TUR_PSHEET_2)撈資料,條件是:收付款別=付款、沖帳傳票號為空、且未審核(已審核 ≠ X)。 - 撈回主檔(付款單)、原始分錄、被鎖住的單三類資料,並把分錄的科目名稱依科目代號補上。
- 立即執行一次匯率重算(見下一段),把結果放進「修改後資料」。
- 主檔列入「資料」頁,被鎖住的單列入「鎖住資料」頁;若完全沒撈到資料,會跳「無資料」提示。
- 查詢完成後自動選取第一張單,下方分錄隨之顯示。
按「查詢」後的匯率重算(核心連動)¶
撈回資料後,系統對「修改後資料」每一筆分錄依幣別與借貸方向重抓匯率:
- 幣別=本位幣:匯率直接設為
1。 - 外幣、且為借方分錄(原借方金額 > 0):採用匯率表中該幣別「使用日期」的匯率。
- 外幣、且為貸方分錄:採用銀行日報表(付款銀行匯率)中該帳戶的匯率。
匯率一變動,該筆的本借方/本貸方金額會以「原幣金額 × 匯率」就地重算(依幣別小數位數四捨五入)。
匯兌損益自動產生/調整¶
匯率重算完,系統會對每一張付款單(依 linkid 分群)呼叫匯兌損益計算:
- 統計該單所有「非匯兌調整列」的本幣借方合計與貸方合計。
- 本幣借方 > 本幣貸方 → 產生(或更新)一筆匯兌收益分錄(科目取自 A3 匯兌收益設定),把差額補到貸方。
- 本幣貸方 > 本幣借方 → 產生(或更新)一筆匯兌損失分錄(科目取自 A4 匯兌損失設定),把差額補到借方。
- 借貸已相等 → 若原本有匯兌調整列,標記為刪除。
也就是說:改了付款日 → 匯率變 → 本幣金額變 → 借貸可能不平 → 系統自動補一筆匯兌損益把它補平。這一切在你按下「查詢」當下就算好,呈現在「修改後資料」。
手動微調「匯率」欄¶
「修改後資料」格線裡唯一可編輯的是 匯率 欄。當你手動改某筆分錄的匯率,系統會即時用「原幣金額 × 新匯率」重算該筆的本借方/本貸方本幣金額(依該幣別的小數位數四捨五入)。
手動改匯率不會自動重算整單匯兌損益
匯兌損益是在「查詢」當下對整單算好的;手動微調單筆匯率只會重算那一筆的本幣金額,不會自動再跑一次整單匯兌損益。若需要,請以「查詢」重新觸發一次完整重算。
按「存檔」:驗證並寫回¶
按 存檔 時,系統會:
- 檢查是否至少勾選一張單;都沒勾會擋下並提示「無資料」。
- 把每張勾選單的收付款日期設成 新日期,並標記為「修改」。
- 取出這些單對應的「修改後資料」分錄,逐單檢查本幣借方合計 = 本幣貸方合計;只要有一張不平衡,就擋下存檔並提示「借貸不平衡,無法存檔」。
- 通過後,把主檔與分錄一起透過轉檔機制寫回資料庫。
- 存檔成功跳出成功訊息;依系統參數(
U_Prgpar("24"))決定視窗是否自動關閉。
按「離開」與取消後的清空¶
- 按
離開直接關閉本工具視窗。 - 若取消(轉檔工具列的取消流程觸發
AfterCancel),系統會把主檔、各層分錄與鎖住清單全部清空,回到查詢前的空白狀態。
常見問題¶
按了查詢卻一張單都撈不到?
本工具只撈「未沖帳(沖帳傳票號為空)、未審核(已審核 ≠ X)、收付款別=付款」的付款單。如果你的付款單已經沖帳產生傳票、或已經審核,就不會出現在清單。請確認該批付款單確實還在未沖帳、未審核狀態。
存檔被擋,提示「借貸不平衡」?
改了付款日期會重抓匯率、重算本幣金額,理論上系統會自動補一筆匯兌損益把借貸補平。若仍提示不平衡,通常是因為你手動改過某筆「匯率」欄導致整單借貸不再相等(手動改匯率不會自動重跑整單匯兌損益)。請重按一次 查詢 讓系統重新完整重算,或還原手動改動的匯率。
外幣分錄的本幣金額為 0 或匯率帶不出來?
匯率重算需要對應的匯率資料:外幣借方抓匯率表該日匯率、外幣貸方抓銀行日報表(付款帳戶)匯率。若該幣別/該帳戶當日沒有匯率資料,匯率會抓不到、本幣金額算不出。請先到匯率表與銀行日報表補齊對應資料再查詢。
有些付款單跑到「鎖住資料」頁,不能改?
那些單正被其他使用者佔用(鎖定中)。本工具不會去動被鎖住的單,只會把它們列在「鎖住資料」頁供你知道。請等對方離開該單後,再重新查詢。
標題寫「批次改日期」,可以拿來改收款單或財務傳票嗎?
不行。雖然標題泛稱「批次改日期」,但查詢條件固定鎖在付款單(收付款別=P),只會撈付款單。財務傳票(收付款別=F)的批次改日請改用同系列的批次改財傳單日期 Fsheet_1。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/Other/images/):
psheet_2-step1.png— 工具全貌(左上「新日期」+ 工具列查詢/存檔/離開)psheet_2-step2.png— 「資料」頁:上方主檔格線含「選擇」勾選欄、下方「原始資料/修改後資料」兩份分錄對照psheet_2-step3.png— 「鎖住資料」頁(含被鎖筆數頁籤標題)