程式資訊
- 程式 ID:
TKTURNSR - 所屬子系統:P.發票管理
- 狀態:stable
應收帳款轉銷貨退回及折讓¶
功能簡介¶
「應收帳款轉銷貨退回及折讓」是一個轉單工具視窗:它把指定所屬年月的應收帳款(AR)退回/折讓資料,一次轉成銷項退回(TICKSR)的主檔與明細,省去逐筆手動登錄退回憑證的工夫。主要由會計/開立發票人員,在做當期銷項 401 申報、整理銷貨退回折讓時使用。
這支表單不是從主選單獨立開啟,而是在銷項退回主畫面按工具列的 轉入(其他 3)功能時,以獨立彈出視窗呈現。你只需指定公司代碼與所屬年月,按 儲存,系統就會去撈該期符合條件的應收退回/折讓帳款,依憑證類別分組產生銷項退回單,寫回資料庫;關閉視窗後,銷項退回主畫面會自動 Renew 重新整理,剛轉出的單據即會出現在清單中。
與其他兩支轉單的關係
本系統的進銷項憑證轉單共有三支,介面與操作邏輯相近,但來源與目的單據不同:
前置需求¶
- 權限:本視窗由銷項退回的
轉入功能(VFP 對應「其他 3」權限)開啟。沒有該權限時,銷項退回會先提示「無此轉單權限」,根本不會打開本視窗。 - 基礎資料:要能轉出正確的退回明細,下列資料必須先在應收帳款端維護妥當——
| 資料 | 影響的內容 |
|---|---|
| 應收帳款(退回/折讓帳款,含立帳日期、稅別、財務類別) | 轉單來源;沒有符合條件的帳款就轉不出資料 |
| 應收帳款的稅別(須為 T33_A/T33_B/T34_A/T34_B) | 是否被本轉單撈進來的判斷依據 |
| 應收帳款的財務類別(須為 21/22/26) | 同上,決定哪些帳款屬於退回/折讓 |
| 客戶/廠商部門主檔(部門代號、統一編號) | 轉出明細的部門代號/簡稱/統一編號 |
| 公司資料(公司代碼) | 視窗上的公司下拉 |
轉出後仍是「銷項退回」一張單
本視窗只是「產生資料」的入口,轉出的結果就是一張銷項退回單據,後續的修改、編冊造號(編號)、列印都回到銷項退回主畫面操作。
操作步驟¶
- 在銷項退回主畫面,按工具列的
轉入(其他 3),開啟本視窗。 - 確認或選擇公司代碼:預設為
1,右側會顯示公司簡稱。 - 輸入所屬年月:預設帶當期發票申報年月(見欄位連動與附加功能)。格式為
InvoiceYearMonth(民國年月期別遮罩),輸入後LostFocus觸發檢核。 - 按
儲存。系統會依序:- 檢查所屬年月不得空白且格式正確,否則跳訊息擋下。
- 依所屬年月撈出符合條件的應收退回/折讓帳款。撈不到資料時提示「無資料!!!」並停止。
- 檢查該所屬年月+憑證類別的發票鍵值是否已存在;若已存在,提示「發票鍵值已存在:xx,請刪除後再轉單!!!」並停止(避免重複轉單)。
- 通過後依憑證類別分組產生銷項退回主檔+明細,寫回資料庫。
- 轉檔成功後視窗自動關閉(
DialogResult = true)。回到銷項退回主畫面,系統會自動Renew重新整理,剛轉出的單據即會出現在清單中(請自行於清單中找出該期主檔)。 - 若不想轉,直接按
取消/關閉視窗即可,不會寫入任何資料。

小技巧
轉完後請回銷項退回主畫面核對筆數與金額;轉進來的明細冊號/編號預設為 999,正式申報前要在銷項退回用工具列的 編號 功能編冊造號。
欄位說明¶
本視窗欄位很精簡,只有兩個輸入欄與兩顆按鈕。
| 欄位 / 按鈕 | 必填 | 說明 / 格式 / 預設 |
|---|---|---|
| 公司代碼 | ✔ | 公司下拉(顯示代碼),右側唯讀顯示公司簡稱。預設 1 |
| 所屬年月 | ✔ | 發票申報年月,遮罩 InvoiceYearMonth。預設=當期發票年月(GetInvoiceYearMonth)。空白或格式錯誤會擋存檔 |
儲存 |
— | 執行轉單(撈 AR 退回折讓 → 產生銷項退回) |
取消 |
— | 關閉視窗,不寫入資料 |
轉出後的銷項退回欄位
轉出的銷項退回單欄位(憑證類別、課稅別、銷售金額、稅額、合計金額、部門、統編、冊號/編號等)由系統依來源帳款自動帶入,詳見欄位連動與附加功能。這些欄位後續可在銷項退回主畫面檢視與調整。
欄位連動與附加功能¶
這一節把「輸入某欄位後系統會做什麼」「按 儲存 時系統實際做了哪些事」整理出來,全部依現行程式碼說明。
所屬年月預設值(GetInvoiceYearMonth)¶
開啟視窗時,所屬年月自動帶入「當期發票年月」。系統依現在月份推算發票期別:偶數月會自動退回到前一個奇數月(發票以兩個月為一期申報),例如 6 月會帶 5 月期、8 月帶 7 月期;推算結果若小於等於 0 則補成 1。公司代碼同時預設為 1。
按 儲存:撈取應收退回/折讓帳款¶
按 儲存 後,系統用所屬年月組出本期的年月字串,向應收帳款資料查詢「退回/折讓」性質的帳款,篩選條件為:
- 財務類別 等於
21、22或26,且 - 稅別 為
T33_A、T33_B、T34_A、T34_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/):
tkturnsr-step1.png— 轉單視窗全貌(公司代碼+所屬年月+儲存/取消按鈕)tkturnsr-step2.png— 從銷項退回工具列轉入開啟本視窗的入口tkturnsr-step3.png— 轉出成功後,回到銷項退回主畫面Renew重新整理、新轉出單據出現在清單中的結果