程式資訊
- 程式 ID:
TICKSR - 所屬子系統:P.發票管理
- 狀態:stable
銷項退回(暨免用統一發票)¶
功能簡介¶
「銷項退回」用來登錄銷貨退回與折讓所開立(或收受)的折讓單、退回憑證,以及部分免用統一發票之銷項憑證。資料以「所屬年月+憑證類別」為一張主檔,底下掛多筆退回明細,是 401 申報書「銷項」面減項的來源之一,主要由會計/開立發票人員使用。
主畫面上半部是主檔(公司代碼、所屬年月、憑證類別、發票/轉入/轉出備註),中間是明細格線,下半部則即時加總應稅/零稅/免稅/作廢/空白的筆數與金額。新增資料另以獨立的銷項退回暨免用統一發票新增視窗逐筆輸入。
前置需求¶
- 權限:P.進銷項憑證 →
P-040 銷項退回的對應權限。各動作分別檢查:- 新增 / 修改 / 刪除 / 列印:標準單據權限。
編號(編冊造號):對應 VFP 的「其他 1」權限。轉入(應收帳款轉入):對應 VFP 的「其他 3」權限,無權限時系統會提示「無此轉單權限」。
- 基礎資料:下列主檔/參數會影響本表單能不能正確帶值與計算——
| 資料 | 影響的內容 |
|---|---|
| 公司資料(公司代碼) | 主檔公司代碼下拉、明細歸屬公司 |
| 憑證類別代碼(C214 / C2142) | 主檔與新增視窗的憑證類別下拉;憑證類別決定稅額算法 |
| 客戶/廠商部門主檔(CUSP) | 明細輸入部門代號時自動帶部門簡稱/統一編號,輸入統一編號反查代號 |
系統參數 表定稅率(U_Prgpar("10")) |
應稅明細的稅額計算,未設定預設 5% |
系統參數 2300 |
編號 排序依據:0=依發票日期,其他值=只依發票號碼 |
操作步驟¶
查詢既有資料¶
- 用工具列的上一筆/下一筆/
Seek/Renew在主檔間移動,畫面會載入該「所屬年月+憑證類別」的全部退回明細。 - 移動到一筆主檔後,下方的應稅/零稅/免稅/作廢/空白筆數與金額會自動重算(見欄位連動與附加功能)。
新增(單筆輸入)¶
新增不在主畫面直接做,而是開獨立的銷項退回暨免用統一發票新增視窗逐筆登錄:
- 按工具列
新增,開啟新增視窗。視窗預設帶入:公司代碼=1、所屬年月=當期發票年月、憑證類別=33、課稅別=1.應稅。 - 輸入或確認公司代碼、所屬年月、憑證類別、課稅別。新增視窗的憑證類別下拉只提供代碼含
33/34/36的憑證類別(取自CMB_C214)。 - 在銷退發票號碼輸入退回憑證號碼(最多 10 碼,輸入後自動轉大寫)。若憑證類別為 33/34 且號碼為 10 碼,系統會自動回查原發票帶出部門代號/簡稱、統一編號、原始銷售金額,並算出該發票的已銷退金額(見欄位連動與附加功能)。
- 輸入客戶(部門代號)、銷售金額、視需要的統一編號/其他憑證/冊號/編號/彙加註記/備註,並勾選固定資產/土地/洋煙酒註記。
- 稅額/合計金額會依憑證類別與課稅別自動算出(合計金額唯讀)。
- 按
儲存。系統檢核所屬年月不得空白、憑證類別不得空白、合計金額不得為 0、發票日期須正確、發票號碼與其他憑證不可都空白;通過後寫入,並把畫面上的「新增筆數」加 1,可接續輸入下一筆。 - 全部輸入完按關閉視窗,主畫面會自動定位到剛新增的那筆主檔。
小技巧
新增視窗可連續登錄多筆同一張主檔(同一所屬年月+憑證類別)的退回明細;每存一筆「新增筆數」就累加,方便核對輸入張數。
修改¶
- 移動到要修改的主檔,按工具列
修改。 - 進入編輯後,明細格線中的課稅別、銷售金額、稅額、部門代號等欄位可改;視需要勾選
顯示固定資產、土地顯示並編輯這兩欄。 - 改完按
儲存。儲存前系統會把主檔的發票鍵值(=所屬年月+憑證類別)重算,並把明細的所屬年月/憑證類別/發票鍵值/公司代碼一律同步成主檔的值。
刪除¶
- 整張主檔刪除走工具列
刪除。 - 單筆明細刪除:VFP 規定憑證類別為 31/32/35 者不得刪除單筆;可刪除者標記為刪除後不列入加總。
單筆刪除限制(規劃中)
VFP 對單筆明細刪除有「31/32/35 憑證不得刪單筆」的限制。新版 C# 目前未見對應的單筆刪除攔截邏輯,此限制以實際版本為準。
列印¶
- 按工具列
列印產生銷項退回報表(VFP 報表程式TICKSR_P)。
欄位說明¶
主檔(畫面上半部)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 公司代碼 | ✔ | 公司下拉;新增預設 1,儲存時若為 0 會自動補 1 |
| 所屬年月 | ✔ | 發票申報年月,格式 InvoiceYearMonth;主畫面唯讀(由新增視窗帶入)。空白或 - - 擋存檔 |
| 憑證類別 | ✔ | C214/C2142 代碼下拉,唯讀顯示;決定稅額算法。空白擋存檔 |
| 發票鍵值 | 系統 | =所屬年月+憑證類別,存檔時自動產生,唯讀 |
| 發票備註/轉入備註/轉出備註 | — | 文字備註;轉入/轉出備註為系統轉單時帶入 |
明細格線¶
| 欄位 | 可編輯 | 說明 |
|---|---|---|
| 冊號/編號 | 系統 | 由 編號 功能編冊造號後填入(冊號 3 碼、編號 2 碼) |
| 發票號碼/其他憑證 | — | 退回憑證號碼或其他憑證 |
| 發票日期 | — | 退回憑證日期 |
| 課稅別 | ✔ | 下拉 1.應稅/2.零稅/3.免稅/4.作廢/5.空白;改值會連動稅額與備註 |
| 統一編號 | — | 客戶統編 |
| 部門代號/部門簡稱 | ✔(代號) | 輸入代號自動帶簡稱與統編 |
| 銷售金額 | ✔ | 改值依課稅別重算稅額與合計 |
| 稅額 | ✔ | 應稅可手動覆寫,連動合計 |
| 合計金額 | 系統 | =銷售金額+稅額,唯讀 |
| 備註 | 系統 | 隨課稅別自動帶(作廢/以下空白)或清空 |
| 固定資產/土地 | ✔ | 勾選欄;預設隱藏,勾 顯示固定資產、土地 才出現 |
新增視窗額外欄位¶
| 欄位 | 必填 | 說明/預設 |
|---|---|---|
| 銷退發票號碼 | ✔(或其他憑證) | 最多 10 碼,自動轉大寫;33/34 且 10 碼時回查原發票帶值 |
| 發票迄號 | — | 連號退回時的迄號 |
| 原始銷售金額/已銷退金額 | 系統 | 回查原發票與既有退回彙總帶入,唯讀,供核對 |
| 彙加註記 | — | 彙總申報註記 |
| 洋煙酒註記 | — | 勾選欄 |
欄位連動與附加功能¶
這一節把「輸入某欄位後系統會做什麼」「按某按鈕會做什麼」整理出來。
課稅別連動(明細格線)¶
當你在明細的課稅別下拉改值(LostFocus 觸發),系統會:
- 選 4.作廢:把該列備註設為「作廢」。
- 選 5.空白:把該列備註設為「以下空白」,並把這一列以下的所有明細課稅別一併設為 5.空白(連鎖填空),然後重算下方加總。
- 選 1.應稅/2.零稅/3.免稅:清空備註,並呼叫
SetAmount依課稅別重算稅額——- 應稅:稅額=銷售金額 × 表定稅率(四捨五入到整數),合計=銷售金額+稅額。
- 零稅/免稅:稅額歸 0,合計=銷售金額。
銷售金額/稅額連動(明細格線)¶
- 改銷售金額:系統依目前課稅別呼叫
SetAmount重算稅額與合計,並更新下方加總。 - 改稅額:合計金額=銷售金額+稅額 自動跟著變。
部門代號 / 統一編號互帶(明細與新增視窗)¶
- 輸入部門代號:自動帶出該客廠部的部門簡稱與統一編號(透過
DescriptionHelper.GetCusp)。 - 輸入統一編號:反查客廠部主檔,帶出對應的部門代號/簡稱。在明細格線中,統編查不到會提示「查無資料」;新增視窗則靜默不帶值。
新增視窗:銷退發票號碼回查(Get發票)¶
在新增視窗輸入銷退發票號碼(10 碼、憑證類別 33 或 34)時,系統會:
- 用發票號碼前 8 碼+序號回查原銷項發票(依憑證類別對應 31/35 或 32),帶出部門代號/簡稱、統一編號、原始銷售金額。
- 再彙總該發票已登錄的退回金額,填入已銷退金額,供你核對「這張發票還能退多少」。
稅額自動計算(新增視窗,依憑證類別)¶
新增視窗輸入銷售金額時,依憑證類別採不同算法:
- 33(外加稅):稅額=銷售金額 × 表定稅率(四捨五入到整數),合計=銷售金額+稅額。
- 34(總額含稅)+應稅:把輸入的含稅金額反推為未稅銷售額=金額 ÷(1+稅率),合計金額同步為該未稅銷售額。
- 34+非應稅:稅額 0,合計=銷售金額。
改稅額時,34 類別下會反推銷售金額=合計-稅額;其他類別則合計=銷售金額+稅額。
下方筆數與金額加總(Sum)¶
每次移動主檔、改銷售金額、或改課稅別後,系統會掃描全部「未刪除」明細,重算並顯示:
- 筆數:應稅/零稅/免稅/作廢/空白各別計數。
- 金額:應稅銷售額、應稅稅額、零稅銷售額、免稅銷售額(皆唯讀)。
顯示固定資產、土地 勾選¶
勾選主檔上方的 顯示固定資產、土地 後,明細格線會多出固定資產與土地兩個勾選欄(未勾時隱藏)。這兩欄只有在編輯狀態下可勾。
工具列延伸功能¶
| 動作 | 對應 | 系統會做什麼 |
|---|---|---|
編號(編冊造號) |
ExtensionFunction1 | 進入特殊編輯,把明細依 linkid+發票日期+發票號碼(或參數 2300≠0 時改依 linkid+發票號碼)排序,逐張編冊造號(冊號 3 碼、編號 2 碼,每冊滿 100 筆換冊),再自動存檔;存檔失敗會回復取消 |
轉入(應收帳款轉入) |
ExtensionFunction2 | 開啟應收帳款轉銷貨退回及折讓視窗,把應收帳款的退回/折讓轉成本表單明細,關閉後自動 Renew 重新整理 |
改號功能(規劃中)
VFP 原版工具列另有「改號(else2)」修改發票號碼的按鈕,相關程式碼在 VFP 中已被註解、未啟用;新版 C# 也未提供。
常見問題¶
新增時按儲存出現「合計金額 = 0」存不了?
新增視窗檢核合計金額不得為 0。請先輸入銷售金額,系統會依憑證類別與課稅別自動算出稅額與合計;若課稅別為免稅/零稅,合計=銷售金額,金額本身不可為 0。
輸入發票號碼後沒有自動帶出客戶與原始金額?
自動回查只在憑證類別為 33 或 34、且發票號碼為完整 10 碼時才執行。號碼不足 10 碼、或憑證類別非 33/34,系統不會回查原發票,需手動輸入部門代號/統一編號。
改了課稅別,下面好幾列也一起變成「5.空白」?
這是設計行為:把某一列課稅別選為 5.空白 時,系統會把該列以下所有明細一併設為 5.空白並標註「以下空白」,用於整批作廢/留白。若是誤觸,請逐列改回正確課稅別。
應稅明細的稅額算出來是 0 或不對?
稅額用表定稅率(系統參數 U_Prgpar("10"),未設定預設 5%)計算。若稅額異常,請確認該參數設定;另外課稅別若為零稅/免稅,稅額本就為 0。
按「編號」沒反應或排序怪怪的?
編號 需在有明細資料時執行,並依系統參數 2300 決定排序:0 依發票日期排、其他值只依發票號碼排。若編出來的冊號/編號順序與預期不同,請確認該參數設定。
存檔後明細的憑證類別、所屬年月被改成跟主檔一樣?
這是存檔前的同步機制:系統會把每筆明細的發票鍵值、所屬年月、憑證類別、公司代碼一律對齊主檔,確保主明細一致,屬正常行為。
相關功能¶
- 銷項發票
- 銷項退回明細新增視窗
- 應收帳款轉銷貨退回及折讓
- 進銷項憑證模組首頁
- 應收 / 應付帳款
- 加總邏輯與課稅別連動詳見 欄位連動與附加功能
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/P-Invoice/images/):
ticksr-step1.png— 主畫面全貌(主檔+明細格線+下方加總列)ticksr-step2.png— 銷項退回暨免用統一發票新增視窗ticksr-step3.png— 勾選「顯示固定資產、土地」後的明細格線ticksr-step4.png—編號(編冊造號)後冊號/編號填入結果