程式資訊
- 程式 ID:
CloseBook - 所屬子系統:N.總帳管理
- 狀態:stable
關帳作業¶
功能簡介¶
「關帳作業」用來設定新的關帳日期,把該日期(含)以前的傳票鎖定起來,防止已結算期間的單據被事後新增、修改或刪除。它不是一張可獨立輸入的單據,而是一個模態設定視窗:在總帳傳票輸入按下延伸功能 關帳 時跳出,由會計、出納、倉管主管在月結或年結時操作。
視窗以三個頁籤分別管理三套帳的關帳日期,三者各自獨立、互不影響:
- 傳票(總帳)—— 控制總帳傳票的關帳日期。
- 出納 —— 控制出納帳(票據/資金)的關帳日期。
- 庫存 —— 控制庫存帳的關帳日期。
每個頁籤都只做一件事:把該帳套的關帳日期往後推到你輸入的新關帳日期。設定完成後,系統會回到傳票輸入畫面並重新整理資料。
「關帳」與「結帳」
本系統內部一律以關帳稱呼此動作(畫面標題、訊息、欄位皆為「關帳日期」)。功能本質是「把帳冊鎖定到某日」,與一般口語的「期末結帳」是同一件事。
前置需求¶
- 權限:本視窗由總帳傳票輸入(
SLIY)的延伸功能關帳開啟,因此需具備傳票輸入程式的使用權限;本功能本身沒有獨立的選單入口。 - 基礎資料/前置作業:
| 資料/作業 | 影響什麼 |
|---|---|
三套帳的現行關帳日期參數(_prgpar 項目 2001/3002/3001) |
畫面上現行關帳日期的顯示值,以及驗證新日期的下限 |
| 最低可關帳日(資產負債表審核日期) | 新關帳日期必須大於此日,否則擋存(見欄位連動與附加功能) |
| 當期傳票已輸入並完成審核 | 關帳後該期間無法再補單或改單,請先確認帳務完整 |
注意
關帳是單向動作:一旦把關帳日期往後推,該日期(含)以前的傳票即被鎖定,無法再從傳票輸入修改或刪除。執行前務必確認帳務正確。
操作步驟¶
- 進入總帳傳票輸入,於工具列或延伸功能按下
關帳,開啟「關帳作業」視窗(系統開啟時預設停在傳票頁籤)。 -
切換到要關帳的帳套頁籤:
- 傳票 —— 總帳。
- 出納 —— 出納帳。
- 庫存 —— 庫存帳。
-
確認上方唯讀的 現行關帳日期(系統目前鎖定的截止日)。
- 在 新關帳日期 欄位輸入要推進到的截止日,格式
yyyy/MM/dd(系統預設帶入今天)。 - 按
儲存。系統會逐項檢核(見下節),通過後即更新該帳套的關帳日期並關閉視窗。 - 回到傳票輸入畫面後,資料會自動重新整理;已落在新關帳日期內的傳票即被鎖定。
若不想變更,按 離開 直接關閉視窗,不會寫入任何變動。
小技巧
三套帳可在同一次開窗內分別處理:切到一個頁籤輸入日期並 儲存,再開窗切換另一頁籤即可,無須一次全做。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 頁籤(帳套) | ✔ | 傳票(總帳)/出納/庫存,決定這次關的是哪一套帳;開窗預設停在「傳票」 |
| 現行關帳日期 | — | 唯讀。各帳套目前鎖定的截止日,分別取自 _prgpar 項目 2001(傳票)/3002(出納)/3001(庫存) |
| 新關帳日期 | ✔ | 即將設定的截止日,格式 yyyy/MM/dd,預設帶入系統當日;必須大於「最低可關帳日」 |
欄位連動與附加功能¶
這一節說明每個動作背後系統實際做了什麼。
開窗時帶入的初值¶
當你開啟關帳作業視窗,系統會:
- 三個頁籤的 新關帳日期 全部預填今天(
yyyy/MM/dd)。 - 讀取
_prgpar三筆參數,把各頁籤的 現行關帳日期 顯示出來:- 傳票 ← 項目
2001 - 出納 ← 項目
3002 - 庫存 ← 項目
3001
- 傳票 ← 項目
- 透過資料庫函式取得「最低可關帳日」(程式註解標示為資產負債表審核的日期),作為後續驗證新日期的下限,存在記憶體備用。
按 儲存 時的檢核(依序)¶
當你按 儲存,系統會針對目前所在頁籤的新關帳日期逐項檢查,任一項不過就跳訊息並中止:
- 不可空白:新關帳日期若空白,跳出「請先輸入關帳日期」。
- 必須大於最低可關帳日:若新日期不大於「最低可關帳日」(資產負債表審核日期),跳出「關帳日期必須大於 〔該日期〕」。
- 日期格式要正確:若內容無法解析成日期,跳出「日期格式錯誤」。
- 三項都通過後,才呼叫關帳邏輯實際寫入。
下限為什麼是資產負債表審核日
系統把「資產負債表已審核到的日期」當成關帳日的最低門檻,避免把關帳日設得比已確認的財報還早,造成帳務基準倒退。
寫入關帳日期時系統做的事¶
驗證通過後,系統執行下列動作把新日期寫回參數:
- 依頁籤決定要更新的
_prgpar項目(傳票=2001、出納=3002、庫存=3001)。 - 再驗一次新日期是否不小於最低可關帳日(雙保險;下限值同樣透過資料庫函式取得)。
- 把該筆參數標記為「修改」(
增刪修=E)、參數欄改成新關帳日期,透過ItemsBindingManager上傳機制寫回資料庫。 - 同步更新目前登入使用者記憶體中的參數清單,讓後續操作立即吃到新的關帳日。
- 寫入成功後,視窗以「成功」結果關閉,呼叫端(傳票輸入)隨即重新整理畫面。
鎖定範圍
關帳日期一旦推進,總帳傳票輸入在該日期(含)以前就無法新增、修改或刪除傳票。若確需更正已關帳期間,請改以新期間沖銷傳票處理,或由系統管理員調整關帳日期參數後重作。
排程自動關帳(AutoPilot)¶
除了人工開窗,本功能也內建一個 AutoPilot 排程任務(任務名稱 CloseBook/顯示「關帳」),可由排程器在指定時間自動關帳:
- 預設參數為
CloseType=2001(總帳)、CloseDate=今天。 - 排程觸發時,會把
CloseDate的日期代碼換算成實際日期,再呼叫與手動相同的關帳邏輯(含「必須大於最低可關帳日」檢核)。 - 成功回報「關帳完成」,失敗則回報失敗原因。
排程關帳的帳套
排程任務以 CloseType 參數指定帳套(2001 傳票/3002 出納/3001 庫存),與手動頁籤對應同一組代碼。設定排程的細節請洽系統管理員。
常見問題¶
找不到「關帳作業」的選單?
關帳作業沒有獨立的主選單入口,它是總帳傳票輸入裡的延伸功能。請先進入傳票輸入,再按 關帳 叫出視窗。
按儲存出現「關帳日期必須大於 …」?
新關帳日期必須大於系統的「最低可關帳日」(即資產負債表已審核到的日期)。請確認你輸入的日期晚於該下限;若下限本身有誤,需先處理資產負債表的審核狀態。
按儲存出現「請先輸入關帳日期」或「日期格式錯誤」?
前者代表 新關帳日期 欄是空的;後者代表輸入的內容無法解析成日期。請以 yyyy/MM/dd 格式填入有效日期後再存。
現行關帳日期顯示空白或不是預期的值?
現行關帳日期直接取自 _prgpar 參數(傳票 2001/出納 3002/庫存 3001)。若顯示空白或異常,表示該參數尚未建立或值不正確,請洽系統管理員檢查參數設定。
三套帳的關帳日期一定要一樣嗎?
不必。傳票、出納、庫存 三套帳各自獨立,分別寫入不同的參數項目,可依各自的作業進度分別關帳。
關帳後發現傳票有誤,能改嗎?
已落在關帳日期(含)以前的傳票無法直接修改或刪除。請以新期間開立沖銷傳票更正,或請系統管理員暫時調整關帳日期參數後再處理。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/N-GeneralLedger/images/):
closebook-step1.png— 從傳票輸入按關帳叫出視窗的入口closebook-step2.png— 三個頁籤(傳票/出納/庫存)與現行關帳日期、新關帳日期欄位全貌closebook-step3.png— 輸入新關帳日期並儲存後的成功狀態