跳轉到

程式資訊

  • 程式 IDTICK3
  • 所屬子系統:P.發票管理
  • 狀態:stable

零稅率主檔

功能簡介

「零稅率主檔」用來建立並維護零稅率(外銷/出口)銷售憑證的每月清單,是營業稅 401 申報中「零稅率銷售額」的明細來源。每一筆代表一張零稅率發票或一筆外銷銷貨,記錄字軌號碼、客戶、品名、數量、金額、外銷方式,以及是否經海關出口、出口報單號等通關資訊。

使用者主要是會計/稅務人員。實務上有兩種建檔方式:

  1. 由出貨單轉入:透過工具列的 轉入 功能,從本期出貨資料(出貨單 Trsama)中自動抓出零稅率(稅別 T31_BT32_B)的銷貨,整批帶入本檔(最常用)。
  2. 手動新增:直接逐筆 新增 一張零稅率憑證。

建檔後,本檔資料供零稅率/免稅銷售匯出401 銷項申報彙整,並可用列印頁輸出「零稅率銷售額清單」報送國稅局。

與「三聯式發票」無關

本表單程式代號雖列在 P-Invoice 模組,但程式真實用途為零稅率主檔(VFP 原始類別 tick3alias_r0 = "零稅率主檔"ProgramClass.TICK3),並非一般三聯式發票開立。早期 stub 標題「三聯式發票」為誤植,本頁以程式碼為準。

前置需求

  • 權限:P.發票 → P-010 零稅率主檔 的瀏覽/新增/修改/刪除/列印權限;轉入 另需該表單的「其他1(轉入)」權限(IsOther1,VFP 為 IS_可其他1)。
  • 基礎資料:下列主檔/參數會影響本表單的帶值與驗證——
資料 影響什麼
客戶主檔(含統一編號) 輸入客戶代號透過客戶查詢控件自動帶客戶簡稱轉入 帶客戶資料
出貨單(Trsama,稅別 T31_B/T32_B) 轉入 的資料來源;無零稅率出貨則轉入查無資料
憑證類別代碼(C2142) 憑證類別下拉清單(CMB_C2142)與右側說明
外銷方式代碼(C225) 外銷方式下拉清單與說明
發票字軌字頭規則 轉入 判定哪些字軌號碼屬於零稅率(見轉入字頭篩選

操作步驟

一、手動新增一筆零稅率憑證

  1. 按工具列 新增。系統自動帶入(AfterAddNew):
    • 公司代碼 = 1
    • 所屬年月 = 目前發票所屬年月(DateTimeWrapper.GetInvoiceYearMonth()
  2. 選擇憑證類別(下拉,右側自動顯示該代碼的說明文字)。
  3. 輸入發票日期(4 碼月日,格式 MMDD)與字軌號碼
    • 憑證類別為 36 時可不填字軌號碼;其餘類別字軌號碼為必填。
  4. 輸入客戶代號(具客戶查詢功能),系統自動帶出客戶簡稱。視需要補填統一編號
  5. 填寫品名數量金額外銷方式
  6. 設定經海關YN),並依值填寫通關欄位:
    • 經海關 Y:填報單類別出口報單號
    • 經海關 N:填其他證件其他證件號(如「扣抵聯」「國際快遞」)。
  7. 輸入輸出日期備註
  8. 儲存。系統依存檔檢核逐項驗證後寫入。

二、由出貨單批次轉入(建議做法)

  1. 按工具列 轉入,開啟「零稅率轉入」視窗(Ticka_e2)。
  2. 輸入或確認所屬年月(預設本期 GetInvoiceYearMonth),執行查詢。系統從本期出貨單抓出零稅率銷貨,依字軌字頭篩掉非零稅率者後列出可轉清單。
  3. 在清單中勾選要轉入的列(字軌號碼不可為空白)。
  4. 按確定,系統將勾選列整批寫回零稅率主檔:已存在相同字軌號碼者更新(SysRowStatus = E),不存在者新增並自動產生鍵值,並在轉入備註寫入「轉入日期,使用者」。
  5. 視窗關閉後回到本表單,系統自動把剛轉入的那筆定位顯示出來(NavigateAsync(Pkid)),必要時再 修改 補欄位。

轉入後再補資料

轉入只帶入出貨單已有的欄位(字軌、客戶、數量、金額、外銷方式、通關資訊等)。品名等若需補充,可在轉入後用 修改 編輯。

三、修改 / 刪除

  1. 用工具列上一筆/下一筆或查詢定位到目標資料。
  2. 修改 編輯欄位,或按 刪除 移除整筆。
  3. 鍵值Key ID(pkid)轉入備註為系統產生欄位,唯讀不可改。

四、列印

  1. 列印,開啟零稅率清單列印頁Tick3PrintViewModel)。
  2. 確認所屬年月(自動帶入目前主檔的所屬年月)與受文者(預設「財政部臺灣省北區國稅局中壢分局(稽徵所)」,可改)。
  3. 執行列印。

列印明細取數尚在整備

列印頁目前已可帶入所屬年月與受文者並開啟表單,但實際明細的取數(TWORK_RPT_TICK3)與報表版型在新版 C# 中仍以註解保留、尚未啟用(HaveReportData 只檢查所屬年月)。完整清單列印請以實機驗收為準。

欄位說明

欄位 必填 說明/格式/預設
鍵值 系統 唯讀(紅字);最長 22 碼;手動新增由系統產生,轉入時依「發票年度+月+日+3 碼流水」自動編
公司代碼 新增時預設 1;存檔時不可為 0
所屬年月 發票所屬年月(InvoiceYearMonth 遮罩);新增預設目前所屬年月
憑證類別 下拉(代碼 C2142 / CMB_C2142),右側顯示說明
發票日期 4 碼月日(MMDDMaxLength=4
字軌號碼 條件 憑證類別 36 以外為必填;轉入時檢查不得空白
客戶代號 具客戶查詢功能;帶出客戶簡稱
客戶簡稱 由客戶代號帶入,可手改
統一編號 8 碼;存檔時做統編檢核(CheckTaxID(InvoiceArea.T)
品名 最長 120 字
數量 數值;PlaceEnum=Zero(顯示為整數、不帶小數位)
外銷方式 建議 下拉(代碼 C225);轉入時依稅別自動帶(見下節)。VFP 原版列為必填,新版存檔未強制擋(見存檔檢核
經海關 YNYesNoComboBox);連動通關欄位的填寫(VFP 自動鎖定,新版未鎖,見下節)
報單類別 條件 經海關 = Y 時必填;最長 2 碼
出口報單號 條件 經海關 = Y 時必填;最長 18 碼
其他證件 經海關 = N 時填(如「扣抵聯」「國際快遞」);最長 24 字
其他證件號 經海關 = N 時填;最長 14 字
金額 本幣整數(PlaceEnum=Local);不得為 0
輸出日期 日期(ShortDateyyyy/MM/dd
備註 最長 50 字
轉入備註 系統 唯讀(系統色);轉入時自動寫「轉入日期,使用者」

欄位連動與附加功能

【本節整理本表單所有「輸入某欄位/按某按鈕後系統會做什麼」,皆取自實際程式碼(Tick3ViewModelTick3SaveTicka_e2BllTmpTick3)與 VFP 原版 tick3.prg。】

新增時的預設值(AfterAddNew

當你按 新增,系統自動帶入:

  • 公司代碼 = 1
  • 所屬年月 = 目前發票所屬年月(DateTimeWrapper.GetInvoiceYearMonth()

其餘欄位維持空白/0,由你逐項填寫。

憑證類別 → 右側帶出說明文字

當你在憑證類別下拉選擇代碼,右側唯讀文字框會即時顯示對應的說明(綁定下拉 SelectedItem.Description,來源代碼表 C2142)。

輸入客戶代號 → 自動帶客戶簡稱

客戶代號使用客戶查詢控件(TsSearchTextBoxCustomerSearch 樣式)。當你輸入或從查詢選定客戶代號,系統會把該客戶的客戶簡稱帶入(控件 Description 綁定 客戶簡稱)。

VFP 版另會帶統一編號/反查客戶,新版未移植

VFP 原版 客戶代號.LostFocus 會同時用 U_SEEKNM('SK_CUDATA',…) 帶出客戶簡稱與統一編號統一編號.LostFocus 會在客戶簡稱空白時,用統編反查客廠部資料帶回客戶代號/簡稱。新版 C# 只在客戶查詢控件帶客戶簡稱不會自動帶或反查統一編號——統編需手動輸入。若需此邏輯請以實機為準。

統一編號檢核

  • 新版(存檔時):按 儲存 時呼叫 Util2017.CheckTaxID(InvoiceArea.T, 統一編號) 做統編合法性檢核,不合法擋存。
  • VFP 版(欄位 Valid):原版另在 統一編號.Valid 即時以 U_CHKID(value,'T1') 檢核。新版改為集中在存檔時檢核,輸入當下不即時擋。

經海關(Y/N)→ 通關欄位

  • VFP 原版:切換經海關經海關.LostFocuschangeopmode)時會自動鎖定欄位——選 Y 解鎖報單類別/出口報單號、鎖定其他證件/其他證件號;選 N 則相反;非編輯狀態四欄全鎖。
  • 新版 C#/XAML:目前未移植此自動鎖定邏輯(Tick3.xaml 無對應 code-behind、VM 也無此事件)。四個通關欄位在新增/修改狀態下皆可輸入,由使用者依經海關值自行填寫正確欄位。存檔時仍會檢核「經海關 = Y 時報單類別與出口報單號不可空白」(見下)。

通關欄位請對應經海關值填寫

新版不會幫你鎖欄位,請依經海關值正確填寫:Y 填報單類別/出口報單號、N 填其他證件/其他證件號,避免填錯欄位導致 401 申報資料不符。

存檔檢核(Tick3Save.AllowSave

儲存 時,系統在通用檢核(base.AllowSave)通過後,再依序檢查下列項目,任一不過即擋存並提示對應欄位:

  1. 公司代碼 不可為 0。
  2. 統一編號 須通過統編檢核(CheckTaxID,T 區)。
  3. 所屬年月 不可空白,且須為合法的發票所屬年月(CheckInvoiceYearMonth)。
  4. 憑證類別 不可空白。
  5. 字軌號碼:當憑證類別 不等於 36 時不可空白(類別 36 可免填)。
  6. 經海關 = Y 時,報單類別出口報單號 皆不可空白。
  7. 金額 不可為 0。
  8. 輸出日期 不可空白。

與 VFP 原版的差異

VFP 原版 allowsave 另有一條「外銷方式不可空白」檢核,新版 Tick3Save.AllowSave 未移植此項,故新版存檔不會因外銷方式空白而被擋。實務上仍建議填寫。

轉入(ExtendedFunction1 → 零稅率轉入視窗 Ticka_e2)

轉入ExtendedFunction1)會開啟零稅率轉入視窗WindowName.Ticka_e2),完成後自動把新轉入的資料定位顯示出來(NavigateAsync(Pkid))。轉入邏輯(Ticka_e2Bll)如下:

  • 資料來源:呼叫 TWORK_TUR_TICK3,從出貨單(Trsama)抓稅別為 T31_BT32_B 的銷貨。交易日期比對本期、本期另一日段與「上一個月」三段(年度月份年度月份1前年度月份),以涵蓋跨月發票。
  • 零稅率字頭篩選TmpTick3.Is零稅率):取字軌號碼第 3 碼起的子字串,若其中含有 KC/OD/KS/中/聯/金/眾/鴻/即/經/光/亞/直/達/貿 任一字頭,視為非零稅率而排除;其餘才列入可轉清單(字軌號碼空白者亦排除)。
  • 依稅別自動帶欄位TmpTick3 建構):
    • 稅別 T31_B → 外銷方式 = 4、其他證件 =「扣抵聯」、其他證件號 = 發票號、合併辨識 4
    • 稅別 T32_B
      • 有出口報單號(提單號 BillOfLadingNo)→ 外銷方式 = 1、經海關 = Y、報單類別 = G5、合併辨識 1Y
      • 有快遞追蹤號(TrackingNo)→ 外銷方式 = 1、經海關 = N、其他證件 =「國際快遞」、其他證件號 = 追蹤號、合併辨識 1N
    • 銷貨對象為個人(Category = C)且外銷方式非 4 → 清空統一編號。
  • 字軌前綴決定憑證類別:字軌號碼前兩碼非 CI → 憑證類別 31;前兩碼為 CI(海運提單)→ 憑證類別 36,原字軌寫入備註、字軌號碼取第 4 碼起。
  • 合併/去重
    • 合併辨識 1Y(依出口報單號)/1N(依其他證件號):同一鍵的多筆會彙總數量與金額成一筆。
    • 合併辨識 4(依字軌號碼):逐筆帶入、不彙總金額,僅將同字軌號碼者去重一次。
    • 三種情況皆排除已存在於本期者(_tmp字軌號碼)。
  • 金額:有發票號取發票金額(InvoiceAmount),否則取未稅金額(AmountWithoutTax),皆取整數。
  • 寫回SetUpdateSource):勾選列整批寫回零稅率主檔;同字軌號碼已存在於本期 → 更新(SysRowStatus = E、沿用原 pkid/鍵值),否則新增並產生鍵值(MAX(鍵值)+1 流水),並把轉入備註設為「轉入日期,使用者」。
  • 整批完成提示:若本期出貨皆已轉過(原稿有資料但無新可轉列),系統提示「當期資料皆已轉至零稅率」並取消。

轉入前的檢核

轉入時系統會檢查:所屬年月不可空白且須為合法發票年月、至少需勾選一筆、勾選列的字軌號碼不得為空白,任一不過即提示並中止。

列印(GetPrintViewModel → Tick3PrintViewModel)

列印 會建立列印頁並把目前主檔的所屬年月帶過去;列印頁另有受文者欄位,預設「財政部臺灣省北區國稅局中壢分局(稽徵所)」,可改(明細取數尚在整備,見操作步驟四)。

常見問題

按了「轉入」卻查不到任何資料?

轉入 只抓本期出貨單稅別為 T31_BT32_B(零稅率) 的銷貨,且字軌號碼字頭不在排除清單(KC/OD/KS/中/聯/金/…)者。若本期沒有零稅率出貨,或資料都已轉過(系統提示「當期資料皆已轉至零稅率」),就會查無可轉資料。請也確認所屬年月有正確輸入。

字軌號碼可以空白嗎?

憑證類別而定:類別等於 36 時可免填字軌號碼;其餘類別字軌號碼為必填,空白會擋存。透過 轉入 帶入的資料則一律檢查字軌號碼不得空白。

選了「經海關 = Y」,可是報單類別/出口報單號沒有自動解鎖?

新版未移植 VFP 的自動鎖定邏輯,四個通關欄位(報單類別/出口報單號/其他證件/其他證件號)在編輯狀態下都可輸入,不會隨經海關值自動鎖。請依經海關值自行填正確欄位:Y 填報單類別/出口報單號、N 填其他證件/其他證件號。存檔時會檢核經海關 = Y 時報單類別與出口報單號不可空白。

統一編號打了卻沒帶出客戶?

新版客戶查詢只在輸入客戶代號時帶出客戶簡稱,不會用統一編號反查客戶(此為 VFP 原版行為,新版未移植)。請改由客戶代號欄位查詢選定客戶。

存檔時一直被擋,提示要輸入某欄位?

存檔會逐項檢核:公司代碼不可為 0、統一編號須合法、所屬年月須為合法發票年月、憑證類別必填、(類別非 36 時)字軌號碼必填、經海關為 Y 時報單類別與出口報單號必填、金額不可為 0、輸出日期必填。完整清單見存檔檢核

為什麼按列印產不出明細清單?

列印頁目前的明細取數(TWORK_RPT_TICK3)與報表版型在新版仍以註解保留、尚未啟用,HaveReportData 只會檢查所屬年月是否有值。完整清單列印請以實機驗收為準(見操作步驟四)。

相關功能


需補截圖清單

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

  1. tick3-step1.png — 零稅率主檔主畫面(新增狀態,含經海關/報單類別/其他證件欄位區)
  2. tick3-step2.png — 「轉入」視窗(勾選可轉清單)
  3. tick3-step3.png — 列印頁(所屬年月/受文者)