跳轉到

程式資訊

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

應收帳款轉銷貨退回及折讓

功能簡介

「應收帳款轉銷貨退回及折讓」是一個轉單工具視窗:它把指定所屬年月的應收帳款(AR)退回/折讓資料,一次轉成銷項退回(TICKSR)的主檔與明細,省去逐筆手動登錄退回憑證的工夫。主要由會計/開立發票人員,在做當期銷項 401 申報、整理銷貨退回折讓時使用。

這支表單不是從主選單獨立開啟,而是在銷項退回主畫面按工具列的 轉入(其他 3)功能時,以獨立彈出視窗呈現。你只需指定公司代碼所屬年月,按 儲存,系統就會去撈該期符合條件的應收退回/折讓帳款,依憑證類別分組產生銷項退回單,寫回資料庫;關閉視窗後,銷項退回主畫面會自動 Renew 重新整理,剛轉出的單據即會出現在清單中。

與其他兩支轉單的關係

本系統的進銷項憑證轉單共有三支,介面與操作邏輯相近,但來源與目的單據不同:

前置需求

  • 權限:本視窗由銷項退回轉入 功能(VFP 對應「其他 3」權限)開啟。沒有該權限時,銷項退回會先提示「無此轉單權限」,根本不會打開本視窗。
  • 基礎資料:要能轉出正確的退回明細,下列資料必須先在應收帳款端維護妥當——
資料 影響的內容
應收帳款(退回/折讓帳款,含立帳日期、稅別、財務類別) 轉單來源;沒有符合條件的帳款就轉不出資料
應收帳款的稅別(須為 T33_A/T33_B/T34_A/T34_B) 是否被本轉單撈進來的判斷依據
應收帳款的財務類別(須為 21/22/26) 同上,決定哪些帳款屬於退回/折讓
客戶/廠商部門主檔(部門代號、統一編號) 轉出明細的部門代號/簡稱/統一編號
公司資料(公司代碼) 視窗上的公司下拉

轉出後仍是「銷項退回」一張單

本視窗只是「產生資料」的入口,轉出的結果就是一張銷項退回單據,後續的修改、編冊造號(編號)、列印都回到銷項退回主畫面操作。

操作步驟

  1. 銷項退回主畫面,按工具列的 轉入(其他 3),開啟本視窗。
  2. 確認或選擇公司代碼:預設為 1,右側會顯示公司簡稱。
  3. 輸入所屬年月:預設帶當期發票申報年月(見欄位連動與附加功能)。格式為 InvoiceYearMonth(民國年月期別遮罩),輸入後 LostFocus 觸發檢核。
  4. 儲存。系統會依序:
    1. 檢查所屬年月不得空白且格式正確,否則跳訊息擋下。
    2. 依所屬年月撈出符合條件的應收退回/折讓帳款。撈不到資料時提示「無資料!!!」並停止。
    3. 檢查該所屬年月+憑證類別的發票鍵值是否已存在;若已存在,提示「發票鍵值已存在:xx,請刪除後再轉單!!!」並停止(避免重複轉單)。
    4. 通過後依憑證類別分組產生銷項退回主檔+明細,寫回資料庫。
  5. 轉檔成功後視窗自動關閉(DialogResult = true)。回到銷項退回主畫面,系統會自動 Renew 重新整理,剛轉出的單據即會出現在清單中(請自行於清單中找出該期主檔)。
  6. 若不想轉,直接按 取消/關閉視窗即可,不會寫入任何資料。

轉單視窗

小技巧

轉完後請回銷項退回主畫面核對筆數與金額;轉進來的明細冊號/編號預設為 999,正式申報前要在銷項退回用工具列的 編號 功能編冊造號。

欄位說明

本視窗欄位很精簡,只有兩個輸入欄與兩顆按鈕。

欄位 / 按鈕 必填 說明 / 格式 / 預設
公司代碼 公司下拉(顯示代碼),右側唯讀顯示公司簡稱。預設 1
所屬年月 發票申報年月,遮罩 InvoiceYearMonth。預設=當期發票年月(GetInvoiceYearMonth)。空白或格式錯誤會擋存檔
儲存 執行轉單(撈 AR 退回折讓 → 產生銷項退回)
取消 關閉視窗,不寫入資料

轉出後的銷項退回欄位

轉出的銷項退回單欄位(憑證類別、課稅別、銷售金額、稅額、合計金額、部門、統編、冊號/編號等)由系統依來源帳款自動帶入,詳見欄位連動與附加功能。這些欄位後續可在銷項退回主畫面檢視與調整。

欄位連動與附加功能

這一節把「輸入某欄位後系統會做什麼」「按 儲存 時系統實際做了哪些事」整理出來,全部依現行程式碼說明。

所屬年月預設值(GetInvoiceYearMonth

開啟視窗時,所屬年月自動帶入「當期發票年月」。系統依現在月份推算發票期別:偶數月會自動退回到前一個奇數月(發票以兩個月為一期申報),例如 6 月會帶 5 月期、8 月帶 7 月期;推算結果若小於等於 0 則補成 1。公司代碼同時預設為 1

儲存:撈取應收退回/折讓帳款

儲存 後,系統用所屬年月組出本期的年月字串,向應收帳款資料查詢「退回/折讓」性質的帳款,篩選條件為:

  • 財務類別 等於 212226,且
  • 稅別T33_AT33_BT34_AT34_B 之一,且
  • 立帳日期 落在所屬年月(含期別內各月份)。

撈出的資料先依憑證類別、再依發票號碼排序。撈不到任何資料時會提示「無資料!!!」並中止。

儲存:發票鍵值重複檢查(擋重複轉單)

在真正寫入前,系統把來源資料的每個憑證類別取出,組出 所屬年月+憑證類別 當「發票鍵值」,逐一回查銷項退回資料是否已有同鍵值。只要有一個鍵值已存在,就提示「發票鍵值已存在:xx,請刪除後再轉單!!!」並整批中止——必須先到銷項退回把該筆刪掉,才能重新轉單。

儲存:依憑證類別分組產生銷項退回單

通過檢查後,系統把來源帳款依憑證類別分組,每一個憑證類別產生一張銷項退回主檔,組內每一筆帳款轉成一筆明細:

  • 主檔帶入:發票鍵值(=所屬年月+憑證類別)、所屬年月、公司代碼 1、憑證類別,並寫入轉入備註(使用者代號+備註字串)。
  • 明細依來源帳款逐筆帶入下列欄位(金額一律取絕對值):
銷項退回明細欄位 來源 / 預設
發票號碼 來源帳款發票號碼
發票日期 由來源交易日期擷取「月日」組成
序號 組內流水號,5 碼補零(00001 起)
部門代號 / 部門簡稱 / 統一編號 來源帳款的客廠部資料
銷售金額 來源帳款的發票金額
課稅別 由來源課稅別代碼轉成 1.應稅2.零稅3.免稅課稅別轉換
稅額 來源稅額的絕對值
合計金額 來源應付/應收金額的絕對值
傳票號碼 / 自訂欄位 / 轉入備註 來源帳款的傳票號碼、財務單號
科目代號 固定帶 4181
冊號 / 編號 固定帶 999(待事後用銷項退回的 編號 編冊造號)
輸入日期 轉檔當下的系統時間

海關代徵(憑證類別 28 開頭)的特別處理

當來源帳款的憑證類別以 28 開頭(海關代徵)時,系統會:

  • 把發票號碼搬到其他憑證欄,
  • 清空發票號碼統一編號

這樣海關代徵憑證在銷項退回裡會以「其他憑證」呈現,而非一般發票號碼。

自動編冊造號(轉檔時的 編號

寫入前,系統會先呼叫共用的發票編號邏輯:把同一張主檔(同 linkid)的明細逐筆編冊造號,冊號 3 碼、編號 2 碼,每滿 100 筆換下一冊。轉出當下即先填好一組冊號/編號;若你在銷項退回有特殊編冊需求,仍可用該畫面的 編號 功能重編。

寫入與回傳(上傳到銷項退回)

最後系統以銷項退回(TICKSR)的資料表組合上傳主檔與明細。成功時:

  • 視窗 DialogResult = true 並關閉;
  • 回到銷項退回主畫面後會自動 Renew 重新整理,剛轉出的單據即會出現在清單中。

失敗時會以錯誤訊息框顯示原因,資料不會寫入。

目前不會自動跳到新單

程式雖會從回傳訊息解析出新建主檔的 pkid(存於 TkturnsrViewModel.Pkid),但目前銷項退回轉入 流程只呼叫 Renew() 重新整理清單,並未用該 pkid 自動定位到剛轉出的那筆主檔(VFP 舊版會 MOVEREC 跳過去,新版尚未接上)。轉完請自行在清單中找出該期主檔核對。

轉入備註文字

轉出明細寫入的「轉入備註」字串目前沿用「轉進貨發票」字樣(與進貨單轉進項發票共用同一段樣板)。它只是備註文字,不影響金額與申報;若覺得字樣不符可在銷項退回手動調整。

常見問題

按了儲存卻跳「無資料!!!」?

代表該所屬年月底下沒有符合條件的應收退回/折讓帳款。本轉單只撈財務類別為 21/22/26、稅別為 T33_A/T33_B/T34_A/T34_B、且立帳日期落在該期別的帳款。請確認:所屬年月填對、應收端確實有當期的退回/折讓帳款、稅別與財務類別設定正確。

出現「發票鍵值已存在:xx,請刪除後再轉單!!!」怎麼辦?

表示該「所屬年月+憑證類別」已經有一張銷項退回單存在(可能先前已轉過或手動建過)。為避免重複,系統不允許再轉。請先到銷項退回把該筆主檔刪除,再回來重轉;或確認本來就不需重轉。

所屬年月為什麼預設不是這個月?

發票以兩個月為一期申報,系統把偶數月自動退回到前一個奇數月當期別(例如 6 月帶 5 月、8 月帶 7 月)。這是預設值,可手動改成你要轉的期別。

轉進來的退回單,冊號/編號都是 999?

這是設計上的暫值——轉檔時會先用內建邏輯編一組冊號/編號,但正式申報前建議到銷項退回用工具列的 編號(編冊造號)功能重新編冊,確保冊號/編號與申報順序一致。

找不到「應收帳款轉銷貨退回及折讓」這支程式?

它不是主選單上的獨立功能,而是銷項退回工具列 轉入(其他 3)按下後彈出的視窗。請先開啟銷項退回,再按 轉入

海關代徵的憑證轉進來後發票號碼空白、統編也不見了?

這是正常處理。憑證類別以 28 開頭(海關代徵)者,系統會把號碼改填到其他憑證欄,並清空發票號碼與統一編號,以符合海關代徵憑證的申報格式。

相關功能


需補截圖清單

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

  1. tkturnsr-step1.png — 轉單視窗全貌(公司代碼+所屬年月+儲存/取消按鈕)
  2. tkturnsr-step2.png — 從銷項退回工具列 轉入 開啟本視窗的入口
  3. tkturnsr-step3.png — 轉出成功後,回到銷項退回主畫面 Renew 重新整理、新轉出單據出現在清單中的結果