跳轉到

程式資訊

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

存證作廢發票

此功能尚在規劃,目前未提供

「存證作廢發票」(P-100)在新版 TsERP 中尚未實作:目前只有舊版 VFP 原始碼(scx_tick.vcxticka_void 類別)與一個 C# 資料來源殼(Twork_inv_vw_ticka_voidSource),沒有任何畫面(XAML)、ViewModel 或商業邏輯(BLL)。本頁依 VFP 原版類別與「存證作廢發票_V」檢視表,整理此功能規劃中的用途與欄位,供未來移植與使用者預覽參考。下方「操作步驟」描述的是規劃中的流程,現階段在系統中無法操作

功能簡介

「存證作廢發票」用來留存一張作廢/註銷發票的存證資料——記錄被作廢發票的買賣雙方抬頭、發票號碼與日期、作廢日期與作廢原因。它屬於銷項發票模組(P-Invoice)下的存證類單據,與一般開立、折讓、退回不同:它不產生稅額或金額,只是把「這張發票已作廢」這件事連同雙方資料留底備查。

主要使用者為開立發票的會計/開單人員,在發票確定作廢後建立一筆對應的存證記錄,作為日後查核(例如國稅局申報、帳務勾稽)的依據。

與「存證作廢折讓」是兩支不同程式

本頁的「存證作廢發票」(ticka_void,P-100)與存證作廢折讓ticka_voidrp,P-120)名稱相近但是不同單據:前者作廢的是發票、後者作廢的是折讓單。兩者在 VFP 為各自獨立的類別;新版中折讓那支已有完整 C# 程式(ViewModel/XAML),發票這支則尚未移植,僅有資料來源殼。請勿混淆。

前置需求

  • 權限(規劃):P.銷項發票 → P-100 存證作廢發票 的瀏覽/修改權限。
  • 基礎資料:作廢存證會自動帶入買賣雙方抬頭,下列主檔需先維護完整,帶出的欄位才會正確——
資料 影響的結果
公司資料(CODATA) 選定公司代碼後自動帶出賣方統編/賣方名稱/賣方地址/賣方電話
客戶資料(CUDATA) 輸入買方代號後自動帶出買方統編/買方名稱/買方地址

操作步驟

以下為規劃中的流程

本節描述 VFP 原版的操作方式,作為未來 C# 移植的對照。目前新版尚未提供此畫面,無法實際操作。

  1. 從主選單開啟 P.銷項發票 → 存證作廢發票 視窗。
  2. 點選 新增。系統會把作廢日期預設為目前的系統日期時間。
  3. 選擇公司代碼:選定後系統自動回填賣方(即開立公司)的統編/名稱/地址/電話,不需手動輸入。
  4. 輸入買方代號:離開欄位後系統自動回填買方的統編/名稱/地址
  5. 填寫被作廢發票的識別資料:發票作業別發票號碼發票日期
  6. 輸入作廢原因(必填),如有核准文號可一併填入核准文號
  7. 點選 儲存。系統會檢核作廢日期、公司代碼、買方代號、作廢原因皆已填寫(見欄位連動與附加功能)。
  8. 視需要點選 列印 輸出存證單,或以 修改刪除 維護既有記錄。

存證作廢發票新增畫面(規劃)

欄位說明

下表合併 VFP 原版「存證作廢發票_V」檢視表的欄位(含輸入遮罩 InputMask)與新版資料來源 Twork_inv_vw_ticka_voidSource 的屬性與長度(TsStringLength),作為未來新版畫面的規劃藍本。

欄位 必填 說明 / 格式 / 預設
單號 系統單號(最長 20 碼);新增時由系統產生,唯讀
作廢日期 格式 yyyy/MM/dd HH:mm:ss(長度 19);新增時預設帶入目前系統日期時間
公司代碼 下拉選取(賣方/開立公司,數值代碼);連動帶出賣方抬頭
賣方代號 最長 10 碼;賣方(開立公司)對應代號
賣方統編 8 碼;由公司代碼自動帶入
賣方名稱 最長 60 字;由公司代碼自動帶入
賣方地址 最長 100 字;由公司代碼自動帶入
賣方電話 最長 26 字;由公司代碼自動帶入
發票作業別 最長 10 碼;被作廢發票的作業別
發票號碼 格式 XX99999999(2 碼字軌+8 碼號碼,長度 10)
發票日期 格式 yyyy/MM/dd;被作廢發票的開立日期
買方代號 客戶代號(最長 10 碼);連動帶出買方抬頭
買方統編 8 碼;由買方代號自動帶入
買方名稱 最長 60 字;由買方代號自動帶入
買方地址 最長 100 字;由買方代號自動帶入
作廢原因 最長 20 字
核准文號 最長 60 字;作廢的核准文號(如有)

本單據沒有金額/稅額欄位

存證作廢發票純粹是「作廢事實+雙方抬頭」的存證,不含數量、單價、稅額等金額欄位,也不會轉傳票或沖帳。其餘 SysEntryDate/SysEntryUser/SysEntryMachine/SysRowStatus 等為系統稽核欄位,由系統自動寫入、使用者不需填寫。

欄位連動與附加功能

以下行為來自 VFP 原版 ticka_void 類別(scx_tick.vcx),是此功能規劃中的連動邏輯(新版尚未實作)。每條都標出對應的 VFP 程序,供未來 C# 移植對照。

新增時的預設值(addagain

  • 當你按 新增,系統會在執行完父類別預設動作後,把作廢日期自動填成目前的系統日期時間
  • 對應 VFP:THIS.PF.Page1.作廢日期.VALUE = TTOC(DATETIME())。其餘欄位空白,等待輸入。

公司代碼 → 自動帶出賣方抬頭(公司代碼.COMBO1.LostFocus

  • 當你選定公司代碼(離開下拉欄位)時,系統會以該代碼查詢公司資料(CODATA),自動回填:
    • 賣方統編 ← 公司的統一編號
    • 賣方名稱公司名稱
    • 賣方地址公司地點
    • 賣方電話公司電話
  • 對應 VFP:以 LOG_SYS_EXEC(...,'DARB_GETDATA4','codata',...) 用「公司代碼=目前值」查 codata,取回欄位 公司代碼,公司名稱,公司電話,公司地點,統一編號,再寫回賣方四欄。若查不到該公司(SQLRESULT 無資料),賣方欄位不會被覆寫。

買方代號 → 自動帶出買方抬頭(買方代號.LostFocus

  • 當你輸入買方代號並離開欄位時,系統會以該代號查詢客戶資料(CUDATA),自動回填:
    • 買方統編 ← 客戶的統一編號
    • 買方名稱客戶名稱
    • 買方地址公司地點(客戶地址)
  • 對應 VFP:以 LOG_SYS_EXEC(...,'DARB_GETDATA4','cudata',...) 用「客戶代號=目前值」查 cudata,取回欄位 客戶代號,客戶名稱,公司電話,公司地點,統一編號,再寫回買方三欄。若該客戶主檔未維護對應欄位,帶出的欄位會是空白。

買方代號/公司代碼是專用查詢控件

VFP 原版的買方代號使用客戶查詢控件(sql_cuno)、公司代碼使用公司下拉控件(sqlct_codata 的 COMBO1),輸入時可由控件本身協助挑選與檢核,再觸發上述連動帶值。

儲存前檢核(allowsave

  • 儲存 時,系統會依序檢核,任何一項未通過都會擋下存檔並跳出提示(U_MSG):
    1. 作廢日期為空(或空白字串)→ 提示「請輸入作廢日期!!!」
    2. 公司代碼為空或等於 0 → 提示「請輸入公司代碼!!!」
    3. 買方代號為空 → 提示「請輸入買方代號!!!」
    4. 作廢原因為空 → 提示「請輸入作廢原因!!!」

未涵蓋於原版的功能

VFP 原版(ticka_void未提供轉傳票、沖帳、簽核、托收、附件或 Excel 匯入匯出等延伸功能;此單據只有基本的新增/修改/刪除/列印與上述帶值、檢核。新版移植時若需擴充,屬另行規劃範圍,本頁不描述為可用功能。

常見問題

為什麼在系統選單裡找不到、或開不了這個畫面?

因為「存證作廢發票」(P-100)在新版 TsERP 中尚未實作:目前只有舊版 VFP 原始碼與一個資料來源殼(Twork_inv_vw_ticka_voidSource),沒有 C# 畫面(XAML)與 ViewModel。本頁僅供規劃預覽,待功能移植上線後才能實際操作。

選了公司代碼,賣方統編/名稱卻沒帶出來?

賣方抬頭來自公司資料(CODATA)。請確認該公司代碼在公司資料主檔中已維護統一編號、公司名稱、地點、電話;查不到對應公司時,賣方欄位不會自動填入(見公司代碼連動)。

輸入買方代號後買方資料空白?

買方抬頭來自客戶資料(CUDATA)。請確認該客戶代號存在且已維護統編、名稱、地址;若客戶主檔缺欄位,帶出的對應欄位也會是空白。

按儲存被擋下來,提示「請輸入…」?

存證作廢發票要求作廢日期、公司代碼、買方代號、作廢原因四項皆不可為空(公司代碼還不可為 0)。請補齊提示對應的欄位後再存檔,詳見儲存前檢核

這支和「存證作廢折讓」是同一張單嗎?

不是。兩者是不同單據:本頁作廢的是發票(P-100,尚未移植),存證作廢折讓(P-120)作廢的是折讓單且已有新版程式。名稱相近但請勿混用。

相關功能


需補截圖清單

本功能尚未實作,下列截圖待 C# 移植完成、runtime 驗收後再補拍(放 docs/P-Invoice/images/):

  1. ticka_void-step1.png — 存證作廢發票新增/編輯主畫面(含公司代碼、買賣雙方抬頭、發票識別與作廢原因)