程式資訊
- 程式 ID:
TICKMIN - 所屬子系統:P.發票管理
- 狀態:stable
留抵稅額¶
功能簡介¶
「留抵稅額」用來逐期登錄上期結轉的累積留抵稅額:以公司代碼+所屬年月(申報期)為鍵,記錄該期可扣抵的留抵稅額金額。它本身不做任何計算,而是一張小型主檔,提供給 401 營業稅申報書 在彙算當期應實繳/應退稅額時取用——當銷項稅額不足以扣抵時,這筆留抵稅額會併入「進留小計」一起抵減。
通常由會計/稅務人員在每個申報期開始前維護一次,確保 401 申報書算出的稅額能正確銜接上一期的留抵餘額。它在發票作業流程中的位置可以這樣理解:銷項發票 與 進項發票 累積出當期的銷項、進項稅額後,由 401 營業稅申報書 彙算,而本表單就是供 401 取用的「上期留抵餘額」來源。
所屬年月是「申報期」不是單一月份
營業稅 401 申報以雙月為一期,所屬年月因此是「單數月起、接續偶數月」的格式(例如 2026-01-02 代表一、二月這一期)。詳細格式與檢核見欄位連動與附加功能。
前置需求¶
- 權限:P.發票 →
P-050 留抵稅額的新增/修改/刪除/瀏覽權限。 - 基礎資料:
| 資料 | 影響什麼 |
|---|---|
| 公司代碼(多公司環境) | 決定這筆留抵稅額屬於哪一家公司;新增時預設帶 1 |
| 上一期 401 申報結果 | 本期要登錄的留抵稅額金額來源——即上一期申報書算出並結轉下來的「本期累積留抵」 |
金額怎麼來
本期要填的留抵稅額,原則上就是上一期 401 申報書算出並結轉下來的累積留抵金額。先在 401 營業稅申報書 確認上期結轉數,再回到本表單登錄。本表單不會自動帶這個金額。
操作步驟¶
本表單是單筆主檔的維護,畫面只有三個輸入欄位(公司代碼/所屬年月/留抵稅額),沒有明細列。
新增一筆留抵稅額¶
- 按工具列的
新增。系統自動帶入預設值(見新增時自動帶值):- 公司代碼=
1。 - 所屬年月=目前所在的申報期(依今天日期推算)。
- 公司代碼=
- 確認或修改 公司代碼(多公司環境時選擇正確公司)。
- 修改 所屬年月 到要登錄的申報期。離開欄位時會即時檢核格式(見所屬年月即時格式檢核)。
- 在 留抵稅額 欄輸入金額(以千分位顯示,可含兩位小數)。
- 按
儲存。存檔前系統會再檢核所屬年月是否填寫且格式正確(見所屬年月格式檢核(存檔閘))。

修改¶
- 用工具列的上一筆/下一筆(
IMoveRecord)或查詢功能瀏覽到目標期別。 - 按
修改,更新 留抵稅額 金額後儲存。
公司代碼與所屬年月是鍵值
修改既有資料時,建議只調整 留抵稅額 金額。若要改公司或期別,等同建立另一筆資料,請以「刪除舊筆、新增正確期別」的方式處理,避免鍵值錯置。
刪除¶
- 瀏覽到要刪除的期別。
- 按
刪除並確認。
查詢/瀏覽¶
使用工具列的第一筆/上一筆/下一筆/最後一筆按鈕(IMoveRecord)在已建立的各期留抵稅額之間移動瀏覽。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 公司代碼 | ✔ | 數值(byte)。新增時預設 1;多公司環境以公司資訊控件(TsCompanyInfo)選擇所屬公司 |
| 所屬年月 | ✔ | 申報期,遮罩 InvoiceYearMonth(9999-99-99 樣式)。新增時預設帶目前申報期。為鍵值,存檔前必填且需通過格式檢核 |
| 留抵稅額 | — | 金額,最大精度 decimal(11,2)。以千分位顯示(9,999,999),可含兩位小數。未輸入時為 0(PlaceEnum="Zero") |
其餘為系統欄位
對應的 Source(Twork_inv_vw_tickrminSource)另含 CreatedDate、NotesID、WorkflowCode、Auditor、AuditDate、IsApproved 以及 SysEntryDate/SysEntryUser/SysEntryMachine 等審核/系統欄位,由系統維護,畫面上未提供輸入框。
欄位連動與附加功能¶
這一節整理「輸入某欄位或按某動作時,系統實際會做什麼」,全部對應目前程式碼(TickminViewModel、TickminSave、DateTimeWrapper)的行為。
新增時自動帶值(AfterAddNew)¶
當你按 新增,TickminViewModel.AfterAddNew 會對新建的那筆資料自動填入:
- 公司代碼 ←
1(固定預設值)。 -
所屬年月 ←
DateTimeWrapper.GetInvoiceYearMonth()算出的目前申報期。其推算規則為:- 取今天的年、月。
- 若月份是偶數,往前退一個月變成單數月(例如 4 月 → 3 月、6 月 → 5 月)。
- 組成「
年-單數起始月-下一個偶數結束月」,例如今天在 6 月時得到2026-05-06。
也就是說新增時會直接落在「當下所在的雙月申報期」,多數情況不必再手動改期別。
所屬年月即時格式檢核(欄位層)¶
所屬年月 輸入框在 XAML 以 MaskInfo="InvoiceYearMonth" 設定遮罩,系統會自動為它掛上 InvoiceYearMonthRule 驗證規則。因此:
- 當你離開(失焦)所屬年月欄位,控件會手動觸發一次來源更新並跑
DateTimeWrapper.CheckInvoiceYearMonth。 -
若格式不對(年度非數字、起始月非單數、結束月非偶數),欄位會以驗證錯誤標示(紅框),錯誤值不會寫回資料;同時
TsDateTextBoxV2會跳出一則警告訊息(內容為該驗證規則的錯誤文字,如「年度錯誤」「月份錯誤」)。這是「邊輸入邊擋」的第一道關卡,發生在按
儲存之前。
空白在欄位層不會報錯
InvoiceYearMonthRule 對 null 或空白一律放行(視為尚未輸入),所以「沒填」不會在欄位層擋下;真正攔截空白的是下面的存檔閘。
所屬年月格式檢核(存檔閘)¶
按 儲存 時,TickminSave.AllowSave 會在 base 檢核通過後,再對所屬年月做兩段把關,順序為:
- 不可空白:若所屬年月是空遮罩
- -或空字串,跳出「請輸入所屬年月」並擋存。 -
格式檢核
DateTimeWrapper.CheckInvoiceYearMonth:- 年度部分必須是合法數字,否則「年度錯誤」。
- 起始月必須是 1~12 的單數月,否則「月份錯誤」。
- 結束月必須是 1~12 的偶數月,否則「月份錯誤」。
任一條不過就擋下存檔並顯示對應訊息。這對應 VFP 原版
allowsave中「所屬年月不可空白」的檢核,新版再加上雙月期別的格式驗證。
所屬年月是鍵值,輸入要對齊申報期
所屬年月不是隨意的日期,而是 401 申報的雙月期別代碼。請務必輸入「單數月-偶數月」配對(如 2026-01-02、2026-03-04…)。輸成單一月份、起始用偶數、或結束用單數都會被擋。
提供給 401 申報書取用(跨表單連動)¶
本表單登錄的資料,會在 401 營業稅申報書 計算時被讀取:
- 401 申報以扣抵年月為條件,找出對應期別(所屬年月)的留抵稅額。
- 找到後,把該筆 留抵稅額 併入「進留小計=抵扣進稅額+留抵稅額+年底調整退稅」。
- 當銷項稅額合計大於進留小計 → 產生應實繳稅額;反之 → 產生本期留抵稅額,再依退稅限額計算本期累積留抵與應退稅額。
換句話說,這張表單填得對不對,直接影響 401 申報算出的應繳/應退金額。
本表單不做稅額運算
留抵稅額表單只是「登錄一個金額」;所有應實繳、應退、累積留抵的計算都發生在 401 申報書,本 ViewModel 沒有任何 Calculate/重算邏輯,也沒有轉傳票、簽核、附件、匯入匯出等延伸功能。
VFP 原版對照¶
VFP tickmin class 的欄位行為已對應到新版:
- 公司代碼、所屬年月、留抵稅額三個輸入欄位一致。
- VFP
allowsave的「所屬年月不可空白」檢核 → 新版TickminSave.AllowSave,並補上雙月格式檢核。 - VFP 原始碼中「所屬年月重複時擋存」那段在原版即已被註解停用(
*!*),新版同樣未強制唯一——同一公司+同一期別若重複建立,不會自動擋下,請以查詢瀏覽自行確認,避免重複登錄。
常見問題¶
新增後所屬年月為什麼不是這個月,而是某個雙月?
所屬年月是 401 申報的雙月期別,不是單一月份。系統會把目前月份對齊到「單數月起的雙月期」(偶數月會退到前一個單數月),例如 6 月新增時帶出 2026-05-06。這是正常行為,詳見新增時自動帶值。
存檔時跳「請輸入所屬年月」或「月份錯誤」?
所屬年月必填且要符合雙月格式:起始月需為 1~12 的單數月、結束月需為對應的偶數月。空白、單一月份、或單/雙數放反都會被擋。請輸入像 2026-01-02 這樣的期別。輸入時欄位也會即時以紅框提示,詳見所屬年月格式檢核(存檔閘)。
留抵稅額要填多少?金額從哪裡來?
本期留抵稅額原則上等於上一期 401 申報書結轉的累積留抵金額。請先到 401 營業稅申報書 確認上期數字,再回此表單登錄。本表單不會自動計算這個金額。
我在 401 申報書看不到留抵被扣抵?
401 是以扣抵年月去比對留抵稅額表的所屬年月。若期別代碼沒對上(例如所屬年月填錯期),就會抓不到該筆留抵。請確認本表單登錄的所屬年月與申報期一致。
同一公司、同一期可以建立兩筆嗎?
程式目前未強制唯一(VFP 的重複檢核早已停用,新版也未補回)。建議維護前先用工具列瀏覽確認該公司、該期別是否已存在,避免重複登錄造成 401 取用混淆。
相關功能¶
- 401 營業稅申報書 — 取用本表單登錄的留抵稅額
- 銷項發票 — 當期銷項稅額來源
- 進項發票 — 當期進項稅額來源
- 發票模組首頁
- 總帳模組
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/P-Invoice/images/):
tickmin-step1.png— 新增一筆留抵稅額(公司代碼/所屬年月/留抵稅額三欄的輸入畫面)tickmin-step2.png— 存檔前所屬年月格式檢核的提示訊息(「請輸入所屬年月」或「月份錯誤」)