程式資訊
- 程式 ID:
TKTURNR - 所屬子系統:P.發票管理
- 狀態:stable
進貨單轉進項發票¶
功能簡介¶
「進貨單轉進項發票」是一支整批轉檔工具:它把指定所屬年月(兩個月一期)內、已產生應付(AP)傳票且有發票號碼的進貨/費用單據,依憑證類別彙整後,一次轉成 進項發票(tickr) 的主檔與明細。
轉檔完成後,這些進項憑證即進入進項發票作業,可再做申報用的 401 進項媒體檔(tick401) 等後續處理。
此表單以對話視窗形式開啟(標題列顯示「進貨單轉進項發票」),給負責營業稅進項申報的會計/帳務人員,在每期申報前做一次性的批次轉入。
它不是維護畫面
本表單沒有資料格可逐筆編輯,畫面上只有三個條件欄位與一顆 儲存(轉檔)鈕。要逐筆查看/修改轉出後的進項發票,請到 進項發票(tickr)。
前置需求¶
- 權限:P.發票 →
進貨單轉進項發票的瀏覽權限即可開啟並執行轉檔。 - 必須先完成的前置作業:轉檔來源是已過帳的應付傳票,下列資料若缺,相關單據就不會被轉入——
| 資料 | 影響什麼 |
|---|---|
| 進貨/費用單據已轉應付傳票(系統控管類別 LIKE 'AP%' 來源) | 沒有 AP 傳票來源的單據不會被撈出 |
| 單據上的發票號碼已填 | 發票號碼空白的單據一律略過(程式以發票號碼長度 ≠ 0 為撈取條件) |
| 廠商主檔的統一編號/部門(廠商)資料 | 帶入明細的統一編號、部門代號/簡稱 |
| 稅碼對應的稅率(OpenDbf 稅率表) | 決定稅率欄與稅額異常判定;T281/T282 稅碼還會反推進項金額 |
| 憑證類別(C2141 稅別檔) | 條件面板的憑證類別下拉、轉出主檔的憑證類別分組 |
操作步驟¶
- 開啟「進貨單轉進項發票」對話視窗。
- 確認 公司代碼(預設
1)。 - 設定 所屬年月:預設帶入「當期」(系統自動把當月推成奇數月,組成
YYYY-奇月-偶月的兩個月一期,例如2026-05-06)。游標一開窗即停在此欄。 - 視需要選擇 憑證類別:
- 留白(畫面顯示「(空白為全部)」)=轉入本期所有憑證類別。
- 選一個類別=只轉該類別。
- 按
儲存執行轉檔。系統會依序:- 檢核所屬年月格式(見欄位連動與附加功能)。
- 撈取本期符合條件的進貨/費用單據;若無資料會跳「無資料!!!」。
- 檢查該期該憑證類別的發票鍵值是否已轉過,若已存在會擋下並提示先刪除。
- 彙整、產生主檔與明細,並做發票重複與稅額異常兩項檢查(有異常會跳訊息並把異常清單複製到 Excel)。
- 寫入進項發票資料表。
- 轉檔成功後視窗回傳成功(
DialogResult = true)並關閉。 - 到 進項發票(tickr) 查看/微調轉入的憑證,再接後續申報作業。
要重轉某一期某類別怎麼辦
系統以「所屬年月+憑證類別」組成的發票鍵值防止重複轉入。若要重轉,請先到 進項發票(tickr) 把該期該類別的進項發票主檔刪掉,再回本表單重轉。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 公司代碼 | ✔ | 下拉選公司;預設 1。轉出主檔/明細的公司代碼固定寫 1。 |
| 所屬年月 | ✔ | 格式 YYYY-奇月-偶月(一期兩個月,遮罩 InvoiceYearMonth)。預設為當期;起月必為奇數、迄月必為偶數,否則存檔時擋下。 |
| 憑證類別 | — | 下拉來源稅別檔(C2141);預設空白=全部。會排除以 4 開頭的憑證類別。 |
所屬年月為什麼是兩個月
台灣營業稅以「單/雙月」兩個月為一期申報,所以本表單的期別固定是「奇數月~下一個偶數月」。預設值會把當月自動往前推成奇數月再配對,例如 6 月開窗會帶 YYYY-05-06。
欄位連動與附加功能¶
這一節說明「按下 儲存 後系統實際做了什麼」,以及各欄位背後的連動規則。
開窗時的預設帶值¶
- 當你開啟視窗,系統會:
- 把 公司代碼 設為
1。 - 把 所屬年月 設為當期(
GetInvoiceYearMonth:取今年、把當月推成奇數月,組成兩個月期別)。 - 載入公司下拉清單,並把焦點停在所屬年月欄。
- 把 公司代碼 設為
按 儲存(轉檔)時的完整流程¶
-
所屬年月檢核
- 空白 → 跳「所屬年月不得空白 !!!」並中止。
- 格式錯誤 → 依錯誤回「年度錯誤」或「月份錯誤」(起月須為奇數、迄月須為偶數、月份介於 1~12),中止。
-
撈取來源單據(
lp_p1 = 12,查TWORK_TUR_TICK)- 只撈:發票號碼不為空、系統控管類別
LIKE 'AP%'(應付來源)、傳票號碼落在本期兩個月(傳票年月/傳票年月1)、憑證類別不以 4 開頭,且收付客廠號不是#PC%/DM%/DF%(排除預付沖款等內部往來)。 - 若你有選憑證類別,再加
憑證類別 = 你選的值。 - 結果依憑證類別、發票號碼排序。
- 撈不到任何資料 → 跳「無資料!!!」並中止。
- 只撈:發票號碼不為空、系統控管類別
-
發票鍵值重複檢查
- 對撈到的每個憑證類別,組成
發票鍵值 = 所屬年月 + 憑證類別,查進項發票主檔是否已存在。 - 只要有一個已存在 → 跳「發票鍵值已存在: ⟨憑證類別⟩,請刪除後再轉單 !!!」並中止整批。
- 對撈到的每個憑證類別,組成
-
彙整與產生明細(每張發票的轉換規則)
- 先依「憑證類別+發票號碼」分組加總合計金額與稅額;再依憑證類別建立進項發票主檔一筆,明細逐張發票一列。
- 每列明細的帶值:
- 發票日期/部門代號/部門簡稱/統一編號/傳票號碼/自訂欄位=取自來源進貨單據。
- 轉入備註=來源的存貨異動單號;主檔轉入備註寫「⟨使用者⟩,轉進貨發票」。
- 合計金額=該發票合計(取絕對值);稅額=該發票稅額(取絕對值);進項金額=合計 −稅額。
- 課稅別=由來源課稅別代碼轉文字(
1→應稅、2→零稅、3→免稅)。 - 類別(扣抵區分)=由來源扣抵區分轉文字(
1.進貨及費用/2.固定資產/3.不可抵進貨/4.不可抵固資/9.進項綜合,無對應預設1.進貨及費用)。 - 稅率=由來源稅碼查稅率表帶入。
- 冊號/編號先暫填
999,最後再統一重編(見下「自動編冊號」)。
-
特殊稅碼/海關代徵的調整(自動連動)
- 稅碼以 T281/T282 開頭(屬於由稅額反推金額的情形):進項金額改用
稅額 ÷ (稅率/100)反推(四捨五入;稅率為 0 時進項金額計 0)。 - 憑證類別以 28 開頭(海關代徵):把發票號碼搬到其他憑證欄、清空發票號碼與統一編號。
- 稅碼以 T281/T282 開頭(屬於由稅額反推金額的情形):進項金額改用
-
自動編冊號(
InvoiceHelper.編號)- 同一主檔下的明細,依序自 冊號 001/編號 00 起跳,編號每滿 100 進位一個冊號。你不需手動填冊號。
轉檔前的兩項異常稽核(會彈窗+匯出 Excel)¶
- 發票重複:同一批裡同一發票號碼出現一次以上,系統會跳「進項發票-重複異常」,並把重複清單自動複製到 Excel(
CopyToExcel)讓你核對。這是提醒,不會中止轉檔。 - 稅額異常:每列以
進項金額 × 稅率%算出應有稅額,若實際稅額與之相差超過 ±2 元,視為異常,跳「進項發票-稅額異常」並把異常清單複製到 Excel。同樣是提醒性質。
異常提醒不會阻擋轉檔
「發票重複」與「稅額異常」只是把可疑資料挑給你看(並丟到 Excel),轉檔仍會繼續寫入。請在 Excel 清單比對後,到 進項發票(tickr) 修正或刪除有問題的列。
寫入¶
- 彙整完成後,以新增模式寫入 進項發票(tickr) 對應的主檔(
Twork_inv_vw_tickr_m)與明細(Tickr_d)資料表。成功則回傳新主檔 pkid 並關閉視窗;失敗顯示錯誤訊息。
目前無查詢結果預覽格與列印
新版 C# 此表單為「設定條件→直接轉檔」的精簡對話框,沒有轉出前的結果預覽資料格,也沒有列印功能;轉出內容請於 tickr 檢視。
常見問題¶
按了儲存卻跳「無資料!!!」?
代表本期沒有符合條件的單據。請逐項確認:(1) 所屬年月是否選對期別;(2) 來源進貨/費用單已轉應付(AP)傳票且傳票年月落在本期;(3) 單據上發票號碼有填(空白者一律略過);(4) 若有選憑證類別,是否選得太窄(先清空改成全部試試)。另外,憑證類別 4* 開頭以及收付客廠號 #PC*/DM*/DF* 會被系統排除。
跳「發票鍵值已存在: ⟨類別⟩,請刪除後再轉單」?
這一期該憑證類別先前已經轉過。系統用「所屬年月+憑證類別」當唯一鍵防止重複轉入。若要重轉,請先到 進項發票(tickr) 把該期該類別的進項發票刪掉,再回本表單。
所屬年月一直存不下去,提示「月份錯誤」?
期別固定是「奇數月~下一個偶數月」。起月必須是奇數、迄月必須是偶數(例如 2026-05-06),且月份要在 1~12 之間。直接沿用預設值最保險。
轉出後發現某些發票的進項金額或稅額怪怪的?
轉檔時會做兩項稽核:發票號碼重複、以及「進項金額×稅率 與實際稅額相差超過 ±2 元」的稅額異常,並把清單自動匯出 Excel。請以該 Excel 為準,到 進項發票(tickr) 修正。另外,稅碼 T281/T282 與海關代徵(憑證類別 28 開頭)會走特殊計算,屬正常設計。
為什麼明細的冊號/編號我沒填,卻自動有了?
冊號/編號由系統在轉檔時自動編:每張主檔的明細自 001 冊、00 號起跳,每滿 100 號進一冊。你不需手動維護。
相關功能¶
- 進項發票(tickr) — 本表單的轉出目的地,逐筆檢視/修改進項憑證。
- 進項 401 媒體檔(tick401) — 進項申報媒體檔產製。
- 應收帳款轉銷項發票(tkturns) — 對應的銷項整批轉檔工具。
- P.發票模組首頁
- I.應收應付模組 — 轉檔來源(AP 傳票)所在模組。
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/P-Invoice/images/):
tkturnr-step1.png— 條件對話視窗全貌(公司代碼/所屬年月/憑證類別+儲存鈕)tkturnr-step2.png— 憑證類別下拉(顯示「(空白為全部)」提示)tkturnr-step3.png— 轉檔後「稅額異常/發票重複」提示訊息與匯出的 Excel 範例