程式資訊
- 程式 ID:
TICKSR_M - 所屬子系統:P.發票管理
- 狀態:stable
銷項退回暨免用統一發票新增¶
功能簡介¶
「銷項退回暨免用統一發票新增」是銷項退回主表單的逐筆新增視窗。在銷項退回主畫面按工具列 新增 時,系統會開啟這個獨立的模態視窗,讓使用者一張一張輸入退回/折讓憑證;每存一筆「新增筆數」就累加,可連續登錄多筆同一張主檔(同一所屬年月+憑證類別)的退回明細,全部輸入完關閉視窗即回到主畫面。
本視窗本身不顯示既有明細、不做加總,只負責單筆輸入+帶值+稅額計算+寫入。它的核心便利是:輸入銷退發票號碼後自動回查原始銷項發票,帶出客戶、統編、原始銷售金額,並算出該張發票目前的已銷退金額,方便核對「這張發票還能退多少」。主要由會計/開立發票人員使用。
本頁與「銷項退回」是同一條作業流程
本視窗是 ProgramClass.TICKSR_M、由 Ticksr_mViewModel 驅動,與銷項退回(TICKSR)共用同一組退回主檔/明細資料表。退回資料的查詢、修改、刪除、編冊造號(編號)、應收帳款轉入(轉入)、列印與下方筆數金額加總都在主表單做,請見銷項退回。本頁只說明新增這一步。
前置需求¶
- 權限:P.進銷項憑證 →
P-040 銷項退回的新增權限。本視窗由主表單的新增按鈕開啟,需先具備銷項退回的新增權限。 - 基礎資料:下列主檔/參數會影響本視窗能否正確帶值與計算——
| 資料 | 影響的內容 |
|---|---|
| 公司資料(公司代碼) | 公司代碼下拉清單(CompanyInfo),預設帶 1 |
| 憑證類別代碼(C214 / CMB_C214) | 憑證類別下拉,只取代碼含 33/34/36 者;憑證類別決定稅額算法 |
| 客戶/廠商部門主檔(CUSP) | 輸入客戶(部門代號)自動帶部門簡稱/統一編號;輸入統一編號反查代號 |
| 原始銷項發票(TICKS 明細) | 銷退發票號碼回查原發票帶出部門、統編、原始銷售金額(見欄位連動與附加功能) |
系統參數 表定稅率 |
33/34 應稅憑證的稅額計算來源(InvoiceHelper.表定稅率) |
操作步驟¶
新增不在主畫面直接做,而是在本視窗逐筆登錄:
- 在銷項退回主畫面按工具列
新增,開啟本視窗。視窗開啟時自動帶入預設值:公司代碼=1、所屬年月=當期發票年月、憑證類別=33、課稅別=1.應稅,並把游標停在所屬年月欄。 - 確認或修改公司代碼、所屬年月、憑證類別、課稅別。
- 在銷退發票號碼輸入退回憑證號碼(最多 10 碼,輸入後自動轉大寫)。若憑證類別為 33/34 且號碼為 10 碼,系統會自動回查原銷項發票,帶出部門代號/簡稱、統一編號、原始銷售金額,並彙總算出該發票的已銷退金額(見欄位連動與附加功能)。
- 視需要輸入客戶(部門代號)/統一編號/其他憑證/冊號/編號/發票迄號/彙加註記/備註,並勾選固定資產/土地/洋煙酒註記。
- 輸入銷售金額。稅額與合計金額會依憑證類別與課稅別自動算出(合計金額唯讀)。
- 按
儲存。系統檢核通過後寫入,並把畫面上的新增筆數加 1,可接續輸入下一筆。 - 全部輸入完按
取消/關閉視窗。回到銷項退回主畫面後,會自動定位到剛新增的那筆主檔(依本視窗回傳的pkid)。
小技巧
本視窗可連續登錄多筆同一所屬年月+憑證類別的退回明細:每存一筆,左上角的「新增筆數」就 +1,方便核對已輸入的張數。系統以「所屬年月+憑證類別」為發票鍵值,第一筆會建立主檔,後續同鍵值的會掛在同一張主檔下。
存檔檢核
按 儲存 時系統會依序檢查,任何一項不通過都會跳訊息並擋下:
- 所屬年月不得空白(空白或
- -視為未輸入)。 - 憑證類別不得空白。
- 合計金額不得為 0。
- 發票日期必須是可解析的日期。
- 銷退發票號碼與其他憑證不可同時空白(兩者至少要有一個)。
欄位說明¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 公司代碼 | ✔ | 公司下拉(顯示代碼,旁邊唯讀帶公司全名);預設 1 |
| 所屬年月 | ✔ | 發票申報年月,遮罩 InvoiceYearMonth;預設當期發票年月。空白擋存檔 |
| 憑證類別 | ✔ | C214 代碼下拉,只列 33/34/36;預設 33。決定稅額算法。空白擋存檔 |
| 課稅別 | ✔ | 下拉 1.應稅/2.零稅/3.免稅(進項發票課稅別);預設 1.應稅 |
| 彙加註記 | — | 彙總申報註記,單碼文字 |
| 發票日期 | ✔ | 遮罩 ShortDate;須為可解析日期,否則擋存檔 |
| 銷退發票號碼 | ✔(或其他憑證) | 退回憑證號碼,最多 10 碼,自動轉大寫;33/34 且 10 碼時回查原發票帶值 |
| 發票迄號 | — | 連號退回時的迄號 |
| 冊號/編號 | — | 冊號(3 碼)、編號(2 碼),通常留空,由主表單的 編號(編冊造號)功能填入 |
| 原始銷售金額 | 系統 | 回查原銷項發票帶入,唯讀,供核對 |
| 已銷退金額 | 系統 | 彙總該發票既有退回金額帶入,唯讀,供核對 |
| 其他憑證 | △ | 其他憑證字串;與銷退發票號碼至少要有一個 |
| 洋煙酒註記 | — | 勾選欄 |
| 統一編號 | — | 客戶統編;輸入後反查帶部門代號/簡稱 |
| 客戶(部門代號) | — | 客廠部代號(VendorSearch 可查詢);輸入後帶部門簡稱/統一編號 |
| 部門簡稱 | 系統 | 由部門代號或統一編號帶入,唯讀 |
| 銷售金額 | ✔ | 退回未稅金額;改值依憑證類別/課稅別自動算稅額與合計 |
| 稅額 | — | 應稅可手動覆寫,連動合計 |
| 合計金額 | 系統 | 由銷售金額+稅額(或含稅反推)算出,唯讀;為 0 時擋存檔 |
| 備註 | — | 文字備註 |
| 土地/固定資產 | — | 勾選欄 |
欄位連動與附加功能¶
這一節把「輸入某欄位後系統會做什麼」「按某按鈕會做什麼」整理出來,全部來自本視窗的程式碼(Ticksr_mViewModel / Ticksr_mPoco)。
銷退發票號碼回查(輸入發票號碼後自動執行)¶
當你在銷退發票號碼輸入完整 10 碼、且憑證類別為 33 或 34 時,系統會(號碼會先自動轉大寫):
- 取發票號碼前 8 碼+末 2 碼(序號),依憑證類別對應原發票類別回查原銷項發票明細——憑證類別 33 對應原發票
31/35,憑證類別 34 對應原發票32——帶出該發票的部門代號/部門簡稱、統一編號、原始銷售金額。 - 再彙總該發票號碼已登錄的所有退回明細金額(
SUM(銷售金額)),填入已銷退金額,供你核對「這張發票還能退多少」。
回查條件
回查只在號碼滿 10 碼、且憑證類別為 33/34 時才執行。號碼不足 10 碼、或憑證類別非 33/34(例如 36),系統不會回查原發票,部門代號/統一編號需自行輸入。
客戶(部門代號)/統一編號互帶¶
- 輸入客戶(部門代號):透過
DescriptionHelper.GetCusp帶出該客廠部的統一編號(並進而更新部門簡稱)。 - 輸入統一編號:反查客廠部主檔(
Vwseek_cusp),帶出對應的部門代號/部門簡稱。
稅額自動計算(輸入銷售金額後)¶
輸入銷售金額時,系統依憑證類別採不同算法:
- 33(外加稅):稅額=銷售金額 × 表定稅率(四捨五入到整數),合計金額=銷售金額+稅額。
- 34(總額含稅)+課稅別=應稅:把輸入的含稅金額反推為未稅銷售額=金額 ÷(1+稅率),合計金額同步為該未稅銷售額,稅額=合計-銷售金額。
- 34(總額含稅)+非應稅(零稅/免稅):稅額歸 0,合計金額=銷售金額。
- 其他憑證類別(如 36):輸入銷售金額不會自動算稅額或合計(程式只對 33/34 起算)。此類憑證若需要合計金額,請改由手動輸入稅額帶動(合計金額=銷售金額+稅額,見下節);否則合計金額維持 0、存檔時會被「合計金額 = 0」擋下。
稅額連動(手動改稅額後)¶
改稅額時:
- 憑證類別 34:反推銷售金額=合計金額-稅額。
- 其他憑證類別(33 等):合計金額=銷售金額+稅額。
合計金額欄位本身唯讀,永遠由上述連動算出。
新增筆數累加¶
每成功儲存一筆,新增筆數(畫面左上、以三位數顯示)即 +1,方便連續輸入時核對張數。視窗初始值為 001。
儲存(儲存 按鈕)¶
按 儲存 後系統的處理:
- 依存檔檢核逐項檢查,任一不過即跳訊息擋下。
- 以所屬年月+憑證類別為發票鍵值組出主檔;若該鍵值的主檔已存在(回查到既有發票),改以修改模式把這筆明細掛到既有主檔,否則建立新主檔。
- 把本筆輸入打包成一筆退回明細,連同主檔透過
AdeUploadBll寫入退回主檔/明細資料表(程式別取TICKSR)。 - 成功後解析回傳的
pkid(供主表單關閉視窗後定位),把新增筆數 +1,並提示「新增成功」;失敗則顯示錯誤訊息。
取消(取消 按鈕)¶
按 取消 關閉本視窗,回到銷項退回主畫面。主畫面會依本視窗最後一次成功儲存回傳的 pkid 自動定位到該筆主檔。
常見問題¶
輸入銷退發票號碼後,沒有自動帶出客戶與原始銷售金額?
自動回查只在憑證類別為 33 或 34、且發票號碼為完整 10 碼時才執行。號碼不足 10 碼、或憑證類別為 36(或其他非 33/34),系統不會回查原發票,需手動輸入客戶(部門代號)/統一編號。另外若原發票在系統中查不到對應 31/35(對 33)或 32(對 34)的明細,也會帶不出值。
按儲存出現「合計金額 = 0」存不了?
存檔檢核要求合計金額不得為 0。請先輸入銷售金額,系統會依憑證類別與課稅別自動算出稅額與合計;若課稅別為免稅/零稅,合計=銷售金額,金額本身不可為 0。
按儲存出現「發票號碼未輸入」?
系統要求銷退發票號碼與其他憑證至少要有一個。若這筆退回沒有正式發票號碼(例如以其他憑證入帳),請在其他憑證欄填入內容即可通過。
按儲存出現「所屬年月不得空白」或「發票日期輸入錯誤」?
所屬年月需為有效申報年月(空白或 - - 視為未輸入);發票日期需為可被解析的日期格式(遮罩 ShortDate)。請確認兩欄都已正確輸入。
應稅明細算出來的稅額是 0 或不對?
應稅稅額用系統參數表定稅率(InvoiceHelper.表定稅率)計算。若稅額異常,請確認該參數設定;另外課稅別若選零稅/免稅,稅額本就為 0。憑證類別 34(總額含稅)是用含稅金額反推未稅,與 33(外加稅)算法不同,請留意。
存了好幾筆,怎麼在主畫面看不到全部?
本視窗以所屬年月+憑證類別為一張主檔。不同所屬年月或不同憑證類別會落到不同主檔。回到銷項退回主畫面後,視窗只會定位到最後一筆主檔;其他鍵值的退回明細請用主畫面的上一筆/下一筆或 Seek 切換主檔查看。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/P-Invoice/images/):
ticksr_m-step1.png— 新增視窗整體(含預設帶入的公司代碼/所屬年月/憑證類別/課稅別)ticksr_m-step2.png— 輸入銷退發票號碼後自動帶出客戶、統編、原始銷售金額與已銷退金額ticksr_m-step3.png— 輸入銷售金額後自動算出稅額與合計金額ticksr_m-step4.png— 連續儲存後左上「新增筆數」累加