跳轉到

程式資訊

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

應收帳款轉銷項發票

功能簡介

「應收帳款轉銷項發票」是銷項發票轉入 按鈕背後的彈出視窗。它把應收帳款已經開立發票號碼的應收明細(系統控制類別=AR+),依照你指定的發票字軌+起訖號碼,一次整批產生成當期的銷項發票主檔與明細,讓會計/開立發票人員不必逐本手動登錄。

它的核心動作是「依號碼補本」:在你給的起訖號碼之間,每 50 聯為一本展開,能對應到 AR 發票資料的聯帶入金額、課稅別、統一編號、部門等;對應不到的聯預設為 4.作廢,整本都沒資料的書尾自動帶「以下空白」。轉完之後,這些資料就跟手動登錄的銷項發票一樣,是日後 401 申報 的來源。

這是一個對話視窗,不是獨立單據表單

本頁描述的是一個整批轉換的彈出視窗,只有「儲存(執行轉換)」與「離開」兩個動作,沒有自己的瀏覽、修改、刪除、列印。轉出來的發票要事後檢視或修改,請回到銷項發票表單操作。退項(銷退、折讓)對應的是另一支應收帳款轉銷貨退回及折讓

前置需求

  • 權限:P.發票 → 銷項發票 的瀏覽權限,並具「轉單」權限才能在 瀏覽 模式下按 轉入 開啟本視窗。
  • 基礎資料/參數
資料 影響的結果
應收帳款已開立發票(系統控制類別 AR+,且已填發票號碼) 轉入的唯一資料來源;沒有此資料會出現「無資料」
公司主檔 視窗上方公司代碼下拉與其簡稱顯示
發票字軌設定(你手上的當期空白發票本) 視窗要填的電子/三聯式/二聯式字軌與起訖號碼
作廢發票檔(Twork_inv_vw_ticka_m,課稅別=4.作廢 轉入時用來保留既有作廢號碼,避免被覆蓋成空白

操作步驟

本視窗從銷項發票表單在 瀏覽 模式下按 轉入 開啟。

應收帳款轉銷項發票視窗

  1. 確認公司代碼(預設帶 1,右側顯示公司簡稱)。
  2. 確認或修改所屬年月:預設自動帶入「目前的雙月申報期」(見所屬年月預設值)。格式錯誤或空白都會被擋下。
  3. 依手上的空白發票本,填入要轉的各類發票區間:
    • 電子發票:字軌(2 碼)、起始發票號碼、截止發票號碼。
    • 手寫三聯式:字軌、起始、截止號碼。
    • 手寫二聯式:字軌、起始、截止號碼。
    • 三類不一定都要填;沒有的那一類字軌/號碼留空即可,系統會自動略過。
  4. 儲存 執行轉換。系統會先逐項檢核(末兩碼、號碼區間、是否重複),通過後在畫面下方顯示「處理銷項發票,⋯」的進度訊息,整批寫入後關閉視窗並回到銷項發票主畫面、定位到轉入的第一本發票。
  5. 若不轉換,按 離開 直接關閉視窗。

起訖號碼一次別開太大

每一類發票的「截止號碼 − 起始號碼」不可超過 1000,否則會被擋下要求縮小區間。請分批轉,避免一次產生大量空白/作廢聯。

欄位說明

欄位 必填 說明/格式/預設
公司代碼 下拉(公司主檔),預設 1;右側唯讀框顯示該公司簡稱
所屬年月 申報期別,格式遮罩 InvoiceYearMonth;預設=目前雙月申報期
電子發票字軌 2 碼英數,對應憑證類別 35(電子發票)
電子發票起始號碼/截止號碼 8 碼數字;末兩碼須為 0050
三聯式發票字軌 2 碼,對應憑證類別 31(手寫三聯式)
三聯式發票起始號碼/截止號碼 8 碼數字;末兩碼須為 0050
二聯式發票字軌 2 碼,對應憑證類別 32(手寫二聯式)
二聯式發票起始號碼/截止號碼 8 碼數字;末兩碼須為 0050
訊息列(畫面下方) 系統 轉換進度文字,例如「處理銷項發票,⋯」

字軌+號碼=完整發票號碼

系統把字軌(2 碼)+號碼(8 碼) 組成 10 碼的完整發票號碼來比對與寫入。三類發票各自獨立,可只填其中一兩類。

欄位連動與附加功能

這一節說明「填了什麼/按了 儲存 之後,系統會做什麼」,全部依實際程式行為整理。

開窗時的預設值

  • 開窗時系統自動帶入公司代碼=1,並由公司主檔載入公司下拉清單。
  • 所屬年月自動帶入「目前的雙月申報期」,推算規則為:取今天的年、月,若月份是偶數就退一個月變成單數月,組成「年-單數起始月-偶數結束月」。例如今天在 6 月,會帶 2026-05-06;在 5 月也帶 2026-05-06。多數情況不必再改。

儲存 時的逐項檢核(任何一項不過就停在視窗)

  1. 所屬年月不得空白:空白或遮罩殘留值(- -)會被擋。
  2. 所屬年月格式檢核:不符發票年月格式會以對應訊息擋下。
  3. 末兩碼須為 00 或 50:六個號碼欄(三類各起訖)的末兩碼只要不是 0050,就跳出「起始號碼及截止號碼 末兩碼 需為00或50 !!!」。(每 50 聯為一本,故號碼必須落在本的開頭。)
  4. 截止號碼勿超過 1000:任一類的「截止 − 起始」大於 1000,跳「請縮小截止號碼勿超過1000 !!!」。
  5. 發票號碼不可重複:系統逐本(每次 +50)比對該號碼是否已存在於銷項發票,若有,跳「發票號碼重複:⋯,請刪除再轉單」,要先把重複的本刪掉再轉。

抓取應收帳款來源資料

  • 通過檢核後,系統用三類發票的字軌+起訖號碼組成查詢區間,呼叫 TWORK_TUR_TICK 取出應收帳款中:
    • 系統控制類別=AR+
    • 發票號碼非空、
    • 發票日期(或無發票日期時的立帳日期)落在所屬年月對應月份、
    • 發票號碼落在你給的任一字軌區間內

的明細。同一張發票(憑證類別+發票號碼)的多筆明細會彙總:銷售金額、稅額各自加總,合計金額=銷售金額+稅額。 - 若這段抓不到任何資料,跳「無資料!!!」並停止——通常代表 AR 端該區間還沒開立發票,或字軌/年月填錯。

整本展開與課稅別判定(核心邏輯)

儲存 後,系統對電子(35)→三聯(31)→二聯(32)依序處理,每一類:

  1. 從起始號碼到截止號碼,每次 +50 產生一本發票主檔(發票鍵值=所屬年月+憑證類別+發票號碼)。
  2. 每本展開成 50 聯明細(序號 00495099,視該本是上半本或下半本)。每一聯預設課稅別=4.作廢
  3. 能對應到 AR 來源(發票鍵值+序號相符)的聯,帶入該聯的發票日期、部門代號/簡稱、統一編號、銷售金額、課稅別、稅額、合計金額、單號
  4. 同一字軌的整段處理完後,系統判斷「以下空白」:
    • 整本都沒有非作廢聯(最後幾本常見)→ 整本課稅別改成空白,第一聯備註標「以下空白」。
    • 本內有資料的,從尾端往前找到第一個銷售金額為 0、且不是已作廢的聯,改成空白並在序號落在 0050 處標「以下空白」。
  5. 轉入備註自動寫入「使用者帳號,轉發票」。

保留既有作廢發票

  • 轉入前系統會另抓作廢發票檔(課稅別=4.作廢、發票日期在同月份)。展開判定「以下空白」時,已在作廢檔的號碼會被保留為作廢,不會被覆蓋成空白,避免把先前作廢的號碼洗掉。

整批寫入與回主畫面

  • 全部本展開完成後,系統以銷項發票TICKS)的資料表,透過整批上傳一次新增所有主檔與明細。
  • 成功後解析回傳的主檔 PKID,把銷項發票主畫面定位到轉入的第一本發票;失敗則跳出錯誤訊息、停在視窗。

沒有手動逐聯編輯

本視窗是「依號碼整批補本」,不提供逐聯輸入金額。轉完後若某些聯要校正課稅別、金額,回銷項發票表單修改即可。

常見問題

儲存 後一直跳「末兩碼 需為00或50」?

每本發票固定 50 聯,所以起始與截止號碼的末兩碼必須是 00(上半本)或 50(下半本)。請對齊你手上空白發票本的起號,例如 ...00...50,不要填中間的號碼。

顯示「無資料!!!」轉不出東西?

來源是應收帳款系統控制類別=AR+、已填發票號碼、且發票(或立帳)日期落在所屬年月、號碼落在你給字軌區間內的明細。請確認:AR 端該期已開立發票、字軌與起訖號碼正確、所屬年月對應到正確月份。

跳「發票號碼重複:⋯,請刪除再轉單」?

你要轉的號碼區間裡,已經有相同號碼的銷項發票存在了。請先到銷項發票把那幾本重複的發票刪掉,再重新執行轉入。

為什麼轉出來一堆「作廢」「以下空白」的聯?

這是正常的。系統會把整段號碼區間每 50 聯補滿,對應不到 AR 資料的聯預設為 4.作廢,整本沒資料的書尾標「以下空白」。若作廢/空白太多,多半是起訖區間開得比實際開立的發票大很多——可把區間縮小、分批轉(單類一次不可超過 1000)。

所屬年月預設的月份對嗎?怎麼算的?

預設帶「目前的雙月申報期」:取今天年月,月份為偶數就退一個月,組成「年-單數起始月-偶數結束月」。例如 5 月或 6 月都會得到 2026-05-06。若你要轉的是其他期別,直接改這個欄位即可。

電子、三聯式、二聯式一定要三類都填嗎?

不用。沒有的那一類把字軌/號碼留空,系統會自動略過該類;只填你這次實際要轉的發票本即可。

相關功能


需補截圖清單

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

  1. tkturns-step1.png — 「應收帳款轉銷項發票」視窗全貌(含公司代碼、所屬年月、三類發票字軌與起訖號碼)