跳轉到

程式資訊

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

存證作廢折讓

功能簡介

「存證作廢折讓」(TICKA_VOIDRP,P-120)用來建立一筆作廢折讓的存證資料——也就是把一張先前已經開立的折讓單整張作廢的事實記錄下來,供日後與財政部電子發票整合服務平台(存證/媒體申報)勾稽。它會留下「哪一張折讓單(折讓單號 / 折讓日期)、由哪一方(賣方)對哪一方(買方)開立、為何作廢(作廢原因)、何時作廢(作廢日期)」這幾項要件。

本表單一次維護一張作廢折讓資料,是典型的單筆主檔維護畫面(無明細表),支援 新增修改刪除查詢列印。實際把這些資料上傳成電子發票平台所需的 CSV 媒體檔,是由另一支存證發票媒體匯出程式統一處理;本表單負責的是單張存證作廢折讓資料的維護。會用到這支表單的,通常是負責電子發票存證/申報的會計或開立人員。

本表單與「作廢發票」不同

本表單(存證作廢折讓,P-120)作廢的對象是折讓單,所以有 折讓單號折讓日期 欄位。若要作廢的是整張發票而非折讓單,請改用存證作廢發票(P-100)。兩者單據結構不同(作廢發票帶發票號碼/核准文號,作廢折讓帶折讓單號),請勿混用。

前置需求

  • 權限:P.進項/銷項發票 → P-120 存證作廢折讓 的新增/修改/刪除/瀏覽/列印權限。
  • 基礎資料:以下資料的維護狀況會直接影響本表單欄位能否自動帶入——
資料 影響的結果
公司基本資料(公司名稱/電話/發票地點/公司地點/統一編號) 新增時自動帶入買方(即自家公司)的名稱、電話、地址、統編
客廠部主檔(賣方對應的客戶/廠商),含發票抬頭、發票地點、統一編號 輸入賣方代號後自動帶入賣方統編/名稱/地址
原始折讓單 提供 折讓單號折讓日期 等作廢標的的依據(人工輸入)

買方=自家公司

這是一張「對外開立後再作廢」的存證資料,因此系統把買方預設成自己(公司基本資料第一筆),由你維護賣方這一側的資料。

操作步驟

新增一筆作廢折讓

  1. 按工具列的 新增。系統自動帶入下列預設值(詳見欄位連動與附加功能):
    • 買方資料(名稱、電話、地址、統編)取自公司基本資料第一筆。
    • 作廢日期 預設為目前系統日期時間。
    • 內部的發票作業別設為 CAN_ALW(作廢折讓作業碼)、內部公司代碼設為 1
  2. 賣方代號 欄輸入或以放大鏡(CuspSearch)查詢賣方(原折讓單的開立方)。帶值後系統自動填入 賣方統編賣方名稱賣方地址
  3. 填入 折讓單號折讓日期(被作廢的那張折讓單)。
  4. 填入 作廢原因,並確認 作廢日期
  5. 視需要調整 買方 各欄位(系統帶的是自家公司,可改)。
  6. 儲存單號 於存檔後由系統自動編配。

查詢、修改與刪除

  1. 用工具列的 查詢/瀏覽功能(或上一筆/下一筆移動鈕)依 單號 等條件叫出既有資料。
  2. 修改 調整內容後 儲存;按 刪除 移除整筆。
  3. 賣方代號可在修改時重新輸入,重帶賣方統編/名稱/地址。

列印

  1. 叫出要列印的單據後,按工具列的 列印 產生存證作廢折讓的報表。

小技巧

一次大量的存證作廢折讓不必逐張在這裡轉檔——維護好之後,由存證發票媒體匯出發票日期區間一次把作廢折讓(連同正常/作廢/折讓/退回發票)整批匯出成電子發票平台的 CSV 媒體檔。

欄位說明

欄位 必填 說明/格式/預設
單號 唯讀,存檔後系統自動編配(最長 20 字)
賣方代號 原折讓單開立方的客廠部代號;輸入後自動帶賣方統編/名稱/地址(最長 10 字)
賣方統編 8 碼;由賣方代號帶入,可改
賣方名稱 由賣方代號帶入(優先取發票抬頭),最長 60 字
賣方地址 由賣方代號帶入的發票地址,最長 100 字
作廢日期 日期時間(yyyy/MM/dd HH:mm:ss,遮罩 ShortDateTime);新增時預設為目前系統時間
作廢原因 最長 20 字
折讓單號 被作廢的折讓單號,最長 16 字
折讓日期 被作廢折讓單的日期(yyyy/MM/dd,遮罩 ShortDate
買方統編 8 碼;新增時帶自家公司統編,可改
買方名稱 新增時帶自家公司名稱,最長 60 字
買方地址 新增時帶自家公司「發票地點」(無則取公司地點),最長 100 字
買方電話 新增時帶自家公司電話,最長 26 字
買方代號 內部欄位,新增時清空;買方來源以公司基本資料帶值為準
發票作業別 內部欄位,新增時固定為 CAN_ALW,畫面未顯示供輸入
公司代碼 內部欄位,新增時設為 1

日期欄位是字串格式

作廢日期折讓日期 在資料層(Source)以字串保存(作廢日期含時間)。請依畫面遮罩完整輸入,避免送出電子發票媒體檔時格式不符。

新版 C# 沒有 VFP 舊版的存檔必填檢核

VFP 舊版(allowsave)在存檔時會逐項擋「作廢日期、公司代碼、買方代號、作廢原因」空白。目前新版 C# 的 Ticka_voidrpViewModel 未實作對應的存檔前檢核,畫面上各欄也未標記為必填。資料完整與否目前依賴操作者自行確認;上述欄位若空白,後續媒體匯出組出的 CSV 對應位置也會是空的,請務必填齊再存檔。

欄位連動與附加功能

這一節整理「輸入某欄位/按某動作後系統會做什麼」,全部依現行程式碼(Ticka_voidrpViewModelTwork_inv_vw_ticka_voidrpSource、VFP ticka_voidrp)整理。

新增時的自動帶值(按 新增AfterAddNew

新增 後,若公司基本資料(CompanyInfo)至少存在第一筆,系統會自動:

  • 設定內部公司代碼 = 1
  • 買方 設成自家公司買方名稱 = 公司名稱、買方電話 = 公司電話、買方統編 = 統一編號,並把內部的買方代號清空。
  • 買方地址 取自家公司的「發票地點」;若發票地點空白,改取「公司地點」。
  • 內部發票作業別 設為 CAN_ALW(作廢折讓作業碼,後續媒體匯出會用到)。
  • 作廢日期 帶入目前系統日期時間(DateTimeWrapper.Now())。

公司基本資料是自動帶值的前提

上述帶值整段包在「公司基本資料筆數 > 0」的條件內。若公司基本資料尚未維護,新增時買方欄位與作廢日期都會留空,需手動填寫。

輸入「賣方代號」後自動帶賣方資料(賣方代號Binding

當你在 賣方代號 輸入代號並帶值(或用放大鏡選取)時,系統會以該代號去客廠部資料(GetCusp)查一筆。找到就帶入

  • 賣方統編 = 該客廠部的統一編號。
  • 賣方名稱 = 優先取「發票抬頭」;若發票抬頭空白,改取客廠部名稱。
  • 賣方地址 = 該客廠部的發票地址(GetInvoiceAddress():依客/廠分類去 cudata/spdata 取「發票地點」,無則取「公司地點」)。

查不到(代號不存在於客廠部主檔)時,賣方統編/名稱/地址維持原值不變,不會清空。

對照 VFP 舊版的『公司代碼帶賣方』

VFP 舊版另有「公司代碼」下拉切換(公司代碼.COMBO1.LostFocus)時,連帶把該公司的統編/名稱/地點填進賣方欄的邏輯;買方則由「買方代號」LostFocus 帶值。新版改以 賣方代號 做為賣方資料的唯一來源(買方改由公司基本資料帶),公司代碼退為內部欄位(固定 1)。功能上以新版的 賣方代號 帶值為準。

移動/瀏覽資料(AfterMoverRecord

切換到上一筆/下一筆或瀏覽選取既有單據時,系統只是把該筆載入畫面,不會重新帶任何預設值或重查賣方資料;畫面顯示的就是存檔當時的內容。若需要重新帶賣方資料,請在 賣方代號 欄重新觸發帶值。

媒體匯出時如何使用本資料(GetHeaderExportText / GetMasterExportText

本表單存的每一筆作廢折讓,會在存證發票媒體匯出被組成電子發票平台的 CSV 兩種列:

  • 表頭列(H)H,買方統編,買方名稱,買方地址,買方電話,發票作業別(其中買方名稱/地址/電話會先 Trim() 去頭尾空白)。
  • 資料列(M)M,折讓單號,折讓日期,賣方統編,賣方名稱,賣方地址,作廢日期,作廢原因(其中賣方統編/名稱/地址、作廢日期、作廢原因會先 Trim())。

匯出時這些作廢折讓會集中寫成「存證作廢折讓發票_起日_迄日.csv」,存到系統設定的匯出發票資料夾。所以本表單裡賣方/買方各欄與折讓單號/日期、作廢日期/原因的正確性,會直接決定送平台的媒體檔內容。

常見問題

輸入賣方代號後,賣方統編/名稱/地址沒有自動帶出來?

自動帶值是以 賣方代號 去客廠部資料(GetCusp)查一筆。若該代號在客廠部主檔不存在、或主檔沒維護統編/發票抬頭/發票地址(發票地點),就帶不出來。請先確認該賣方在客廠部主檔已建檔並維護好發票相關欄位;查無對應資料時舊值會保留不變,不會自動清空。

買方資料怎麼自動變成我們自己公司?可以改嗎?

這是設計——作廢折讓的買方就是自家公司,所以新增時系統用公司基本資料第一筆帶入買方名稱/電話/統編/地址(地址優先取「發票地點」,無則取「公司地點」)。各欄都可手動修改。

新增時沒有自動帶買方資料,作廢日期也是空的?

自動帶值整段的前提是公司基本資料至少有一筆。若公司基本資料尚未維護,新增時買方欄與作廢日期都會留空,需手動填寫。請先到系統設定維護公司基本資料。

存檔時沒有擋必填,可是匯出的媒體檔欄位是空的?

目前新版未實作 VFP 舊版的存檔必填檢核(見欄位說明下方提醒)。作廢日期、作廢原因、折讓單號、折讓日期、買方/賣方統編 若沒填,存檔仍會成功,但媒體匯出組出的 CSV 對應位置就會是空的。請在存檔前自行確認這些欄位都已填齊。

在這裡建好資料,平台媒體檔在哪裡產生?

本表單只負責維護單筆資料,不直接產生媒體檔。實際的 CSV 由存證發票媒體匯出發票日期區間整批匯出,檔名為「存證作廢折讓發票_起日_迄日.csv」,放在系統設定的匯出發票資料夾。

單號要自己填嗎?

不用。單號 是唯讀欄位,存檔後由系統自動編配;新增畫面上會是空白。

相關功能


需補截圖清單

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

  1. ticka_voidrp-step1.png — 新增空白表單(買方自動帶自家公司、作廢日期帶系統時間)
  2. ticka_voidrp-step2.png — 輸入賣方代號後自動帶出賣方統編/名稱/地址
  3. ticka_voidrp-step3.png — 完整填妥準備存檔的畫面(含折讓單號/折讓日期/作廢原因)