# PCE TW GUI MODULE — 銷項（AR）功能規格與分期藍圖

> **狀態**：Phase 1 已交付（主檔、開立 Suitelet、發票本管理、開立取配號）；Phase 2+ 仍規劃中  
> **對象**：產品／顧問／開發  
> **前提**：進項（AP）功能已完成，銷項依進項架構平行擴充  
> **相關**：[**實作進度（一頁式）**](./PCE_GUI_MODULE_ar-status.md) · [SuiteApp 使用說明](./PCE_GUI_MODULE_suiteapp-user-guide.md)（§5.5 開立取號） · [Phase 1 測試清單](./PCE_GUI_MODULE_ar-phase1-tests.md) · [取號流程與邏輯](./PCE_GUI_MODULE_ar-invoice-numbering.md) · [取號測試指南](./PCE_GUI_MODULE_ar-invoice-numbering-tests.md) · [開立銷項發票 Prototype](./prototypes/einvoice-issue.html) · [MIG 4.1 欄位對照](./PCE_GUI_MODULE_ar-field-map-mig41.md)  
> **文件日期**：2026-09-13

---

## 1. 現況盤點


| 項目                                                     | 狀態                   |
| ------------------------------------------------------ | -------------------- |
| Center Category `custcentercategory_pce_ar`（標籤：**銷項**） | 已有；連結 **PCE 銷項資料**、**開立銷項發票** |
| 營業人系統設定 `custrecord_pce_bizsys_ar_feature`（銷項功能）       | 已接：未啟用不可開立；交易表身可自動勾「是否開立發票/折讓單」 |
| Customer 主檔 `custentity_pce_cust_*`（統編／抬頭／地址）          | 已有                   |
| 共用統編函式庫 `common/PCE_LIB_TaxId.js`                      | 已有（進銷項共用）            |
| 通關註記／零稅率註記對照表                                          | 種子語意偏銷項／外銷，進項暫不輸入    |
| 銷項憑證 Custom Record／CS／UE | **已有**主檔＋商品明細、開立 Suitelet、驗證腳本；Phase 4–6、Phase 7 自動化仍屬後續 |
| 憑證格式／字軌種子（31–36） | 格式代碼種子已寫入（31／32／35 各兩筆；37–38 暫不種子）；**發票本管理與開立取配號已接上** |
| `FileCabinet/.../ar/`                                  | **已有**                |


**結論**：Phase 1 開立與發票本取配號已交付；折讓開立依當期／非當期與有無銷項主檔控管可折餘額（非當期無主檔可開立但提示自管）。**不做**進項 Vendor Bill 那種「交易上 PCE 憑證 1:N 子列表」。後續 Phase 2 **Customer Deposit 轉開**；Phase 3 強化／加值中心；Phase 4 對帳報表；Phase 5 **憑證 PDF 下載**；Phase 6 外部憑證寫入 NS（低優先）；Phase 7 **自動／批次開立**（設計規劃）。

---



## 2. 目標與原則



### 2.1 產品目標

支援台灣營業稅**銷項**憑證在 NetSuite 的登錄、檢核、批次匯入與（後續）外部介接；並提供與加值中心／電子發票流程對齊的「**開立銷項發票**」作業入口（以現有 prototype 為 UX 起點）。

### 2.2 設計原則

1. **鏡像進項**：目錄、腳本 ID、驗證鏈、CSV → Write、呼叫紀錄與 AP 同構，降低維護成本。
2. **共用優先**：營業人資料、統編檢查、課稅別、字軌／格式對照、通關／零稅率表盡量共用；銷項專屬邏輯放 `ar/`。
3. **Feature flag**：寫入／開立前檢查 `custrecord_pce_bizsys_ar_feature`（對應該營業人／子公司）。
4. **分期交付**：先獨立銷項紀錄與開立 UI，再掛交易、再 CSV／API。

---



## 3. 建議物件命名（對照進項）


| 層級                    | 進項（現有）                          | 銷項（建議）                                          |
| --------------------- | ------------------------------- | ----------------------------------------------- |
| Center Category       | `custcentercategory_pce_ap`     | `custcentercategory_pce_ar`（已存在）                |
| 憑證紀錄                  | `customrecord_pce_ap_invoice`   | `customrecord_pce_ar_invoice`（顯示名：**PCE 銷項資料**） |
| 商品明細                  | 進項子列表／子記錄（對照）               | `customrecord_pce_ar_invoice_line`（掛 **PCE 銷項主檔**；§9.2 A；**非**交易 AP 式 1:N 子列表） |
| 發票本                   | —                               | `customrecord_pce_ar_invoice_book`＋管理頁            |
| 欄位前綴                  | `custrecord_pce_ap_*`           | `custrecord_pce_ar_*`                           |
| 呼叫紀錄                  | `customrecord_pce_ap_write_log` | `customrecord_pce_ar_write_log`                 |
| 交易 Subtab             | `custtab_pce_trx_einvoice`（進項 1:N 子列表）  | `custtab_pce_trx_ar_einvoice`（銷項：**表身欄位＋自訂商品明細**；**非** AP 式多筆 PCE 主檔子列表）               |
| Client / UE / RL / SL | `customscript_pce_*_ap_*`       | `customscript_pce_*_ar_*`                       |
| File Cabinet          | `…/ap/`                         | `…/ar/`                                         |
| 開立作業 Suitelet         | —                               | `customscript_pce_sl_ar_issue`（**開立銷項發票**）            |
| 發票本管理 Suitelet        | —                               | `customscript_pce_sl_ar_invoice_book`             |


腳本 ID 範例：

- `customscript_pce_cs_ar_invoice` / `customscript_pce_cs_trans_ar_body`  
- `customscript_pce_ue_arinv_default`  
- `customscript_pce_rl_ar_write`  
- `customscript_pce_sl_ar_csv_import`  
- `customscript_pce_sl_ar_issue`

---



## 4. 功能範圍總覽（之後實作時）

```mermaid
flowchart TB
  subgraph nav [PCE_GUI_銷項]
    List[PCE銷項資料清單]
    Issue[開立銷項發票Suitelet]
    Csv[銷項CSV匯入]
  end
  subgraph core [核心]
    Rec[customrecord_pce_ar_invoice]
    Val[PCE_LIB_AR_Validate]
    Flag[bizsys_ar_feature]
  end
  subgraph trx [交易表身與開立_非AP式1N子列表]
    Inv[Invoice]
    CM[CreditMemo]
    CS[CashSale]
  end
  subgraph api [介接_後期]
    RL[AR_Write_RESTlet]
    Log[ar_write_log]
  end
  List --> Rec
  Issue --> Rec
  Csv --> RL
  RL --> Rec
  RL --> Log
  Rec --> Val
  Val --> Flag
  Inv --> Rec
  CM --> Rec
  CS --> Rec
```



---



## 5. 分期藍圖



### Phase 0 — 規格與對齊（本文件，進行中）

- [x] 盤點現況與命名  
- [x] 銷項憑證欄位清單（MIG 4.1 表頭／表身；見欄位對照）  
- [x] 確認第一批交易類型：僅 **Invoice + Credit Memo**（§6）  
- [x] 開立銷項發票與「PCE 銷項資料」：一張開立＝一筆主檔＋N 筆商品子明細（§9.2 A）  
- [x] 格式代碼 31–36 種子已加入安裝腳本（31／32／35 各兩筆；37–38 暫不種子）；發票本管理與開立取配號已交付  

**產出**：本藍圖 +（建議）欄位對照表 Excel／Markdown 附錄。

---



### Phase 1 — 主檔與開立作業（MVP）

**目標**：使用者可在 PCE GUI → 銷項 維護銷項資料，並用「**開立銷項發票**」畫面建立一筆銷項。


| 工作項 | 說明 |
|--------|------|
| Custom Record | `customrecord_pce_ar_invoice`＋`…_line`（§9.2 A）；欄位見 [MIG 4.1 對照](./PCE_GUI_MODULE_ar-field-map-mig41.md) |
| 發票本 | `customrecord_pce_ar_invoice_book`＋**發票本管理**（模組設定）；開立時依 §9.5 取配號 |
| 導覽 | `custcentercategory_pce_ar`：「PCE 銷項資料」「**開立銷項發票**」；發票本管理在模組設定 |
| 開立銷項發票 Suitelet | prototype 作版面起點；查詢 Invoice／Credit Memo 後以「**單張／合併開立**」建立主檔；清單僅顯示 `issue_invoice=T`、發票/折讓單狀態空白、未鎖定、發票號碼空白；賣方／買方規則見 §9.3／§9.4 |
| Client／UE | 檢核、連動、feature flag；賣方依子公司 mapping **不可覆寫** |
| Lookup／字軌 | 格式代碼 31–36 種子已入安裝腳本（31／32／35 各兩筆）；**開立取配號已整合**（`PCE_LIB_AR_BookAllocate.js`） |
| 文件 | SuiteApp 使用說明 §5.5／§5.6、本藍圖 §9.5 |
| SuiteApp | 與進項同一 app：`com.netsuite.pceguitw` |

**本階段不做**：交易子列表、CSV、外部 API。

**Prototype**：僅作 UX／版面參考；正式欄位以「完整對齊加值中心」為準（§9.1）。

---



### Phase 2 — 銷項交易延伸

**已定案不做**：在 Invoice／Credit Memo 上複製進項 **「PCE 進項資料」1:N 子列表**（一筆交易掛多筆 `customrecord_pce_ar_invoice`）。銷項維持 **PCE 銷項主檔 CR ＋開立 Suitelet**；交易頁僅 **表身 PCE 欄位、自訂商品明細、檢視頁開立**（Phase 1 已部分交付，見使用說明 §3.5）。

**Phase 2 規劃主項**：


| 範圍 | NetSuite 類型 | 備註 |
|------|---------------|------|
| **Phase 2（本階段）** | Customer Deposit | **轉開發票**（見下表） |
| 現行／維護 | Invoice、Credit Memo | 表身 CS/UE、開立按鈕；**不**做 AP 式 1:N 子列表 |
| 暫不做 | Cash Sale | 門市／現金流程另議 |
| 暫不做 | Cash Refund | 同上 |

**Customer Deposit → 銷項發票（規劃）**

Customer Deposit 在 NS **無稅碼、無商品明細**；開立電子發票時需特別處理：

| 面向 | 方向 |
|------|------|
| 金額基礎 | 以原 Customer Deposit **總額為含稅金額**，依適用稅率（由客戶設定之發票明細／課稅別推定）**反推未稅金額與稅額**；明細加總須與含稅總額一致（尾差規則待訂） |
| 發票明細 | 提供**客戶可自行設定**之 Customer Deposit 預設發票商品明細（品名、數量、單價邏輯、課稅別等；儲存位置待訂：模組設定 CR 或子公司／客戶層級） |
| 開立入口 | 自 Customer Deposit 檢視／開立 Suitelet 選定訂金 → 帶入或覆寫明細 → 建立 PCE 銷項主檔並取配號 |
| 文件／測試 | 使用說明 §5、含稅反推與多列明細之單元測試（待建） |

**Invoice／Credit Memo（現行，非 Phase 2 新建）**：`custtab_pce_trx_ar_einvoice` 為表身與自訂商品明細；開立仍走 **開立銷項發票** Suitelet，來源交易帶入商品列（§9.2 A 寫入 PCE 主檔＋line CR）。

---



### Phase 3 — 強化與合規

| 工作項 | 說明 |
|--------|------|
| 發票本／期別 | 進階控管（多本、鎖定、盤點） |
| 加值中心 | 上傳流程銜接（若專案範圍包含） |
| 權限與回歸 | 權限收斂、冒煙測試 Suitelet、Browser／API 回歸清單 |
| 欄位精簡 | 依實務刪減「完整對齊」後確認不需要的欄位（呼應 §9.1） |

---



### Phase 4 — 每期申報對帳報表

**目標**：提供客戶**每一申報期別**（營業稅雙月期）申報前所需的**對帳報表**——自 NetSuite／PCE 銷項資料彙整，供會計與顧問勾稽帳載、發票本、加值中心（若已上傳）是否一致。

**規劃範圍（待細化規格）**：

| 面向 | 方向 |
|------|------|
| 期別／主體 | 依**統一編號**、**申報期別**（ROC 雙月）、子公司篩選 |
| 資料來源 | PCE 銷項主檔／明細、關聯 Invoice／Credit Memo、發票本狀態、上傳狀態欄（Phase 3 若已接加值中心） |
| 報表類型 | 開立／作廢／折讓明細、格式與稅額小計、與 NS 交易金額差異、缺號／重複號警示（規則待訂） |
| 交付 | Suitelet 查詢＋匯出（CSV 為 MVP；PDF／Excel 視需求）；可選 Saved Search／Workbook 範本 |
| 文件 | 對帳邏輯說明、顧問操作步驟（併入使用說明 §5 或獨立對帳手冊） |

**優先序**：高於 Phase 6（外部憑證寫入）；申報週期性剛性需求，宜在加值中心銜接（Phase 3）就緒或並行規劃。

---



### Phase 5 — 憑證 PDF 下載

**目標**：提供使用者下載**已開立**銷項憑證與申報／加值中心作業所需之 **PDF**（必要時再擴充 ZIP 批次下載）。

**規劃範圍（待細化規格）**：

| 文件類型 | 方向 |
|----------|------|
| **B2B 發票 PDF** | 已開立之 B2B 電子發票（如格式 35 等）；內容對齊 MIG／加值中心版面（範本待訂） |
| **折讓單 PDF** | 已開立折讓證明（格式 33／34） |
| **零稅率清單 PDF** | 依期別／統編彙整零稅率銷項之清單 PDF（申報或內部覆核用） |
| **其他** | 依加值中心、申報或客戶合約所需之附表、證明或匯出（類型清單待與顧問確認後增列） |

| 面向 | 方向 |
|------|------|
| 入口 | Suitelet 查詢＋下載；可選 PCE 銷項主檔／來源交易頁連結 |
| 資料來源 | `customrecord_pce_ar_invoice`＋明細、關聯 NS 交易、發票號碼／狀態 |
| 文件 | 使用說明 §5、PDF 欄位與範本對照（待建） |

---



### Phase 6 — CSV 與 Write API

**目標**：讓**已在 NetSuite 以外開立**的銷項憑證（含對應交易資料）**寫入 NS**——批次匯入與外部系統介接，技術面比照 AP Write。

**優先序**：低於 Phase 1–5。主路徑是 NS 內開立／Suitelet；Phase 6 給「外部先開票、後補登 NS」或異質系統匯入，非多數客戶上線必備。

**與 Phase 1 發票本 CSV 區隔**：發票本 CSV 是字軌／配號主檔維護（Phase 1 已交付）；Phase 6 是**銷項憑證／Write API**，不是發票本匯入。


| 元件         | 建議                                                                     |
| ---------- | ---------------------------------------------------------------------- |
| Suitelet   | `customscript_pce_sl_ar_csv_import`（範本／欄位說明／validateOnly）              |
| RESTlet    | `customscript_pce_rl_ar_write`                                         |
| Actions    | `arInvoiceOnly`／`transactionOnly`／`transactionWithArInvoices`（命名對齊 AP） |
| Log        | `customrecord_pce_ar_write_log`                                        |
| Auth       | 沿用 OAuth 2.0 Bearer                                                    |
| 文件／Postman | `PCE_GUI_MODULE_ar-write-api-*.md` + collection                        |

---



### Phase 7 — 開立自動化（設計規劃）

**目標**：在 Phase 1 互動式開立穩定後，設計**自動化流程**，支援**自動／批次開立銷項發票**與**銷項折讓**（折讓證明），降低大量重複人工操作。

**規劃範圍（待細化規格）**：

| 面向 | 方向 |
|------|------|
| 觸發方式 | Saved Search＋排程 Map/Reduce、Workflow Action、條件式 User Event，或 Suitelet 批次選取（待選型） |
| 批次開立發票 | 來源為已勾選開立、表身就緒之 Invoice 等；重用既有開立／取配號 lib；需 idempotency、失敗重試與部分成功策略 |
| 批次開立折讓 | 來源 Credit Memo／可折餘額規則與現行 Suitelet 一致；非當期無主檔等邊界與 Phase 1 相同 |
| 治理與可觀測 | 治理額度分批、批次／逐筆 log、失敗清單與通知（email 或 Center 待辦，待訂） |
| 與 Phase 6 區隔 | Phase 6＝**外部已開立**憑證寫入 NS；Phase 7＝**NS 內待開立**交易自動／批次開立 |
| 文件 | 自動化觸發條件、顧問設定步驟、與手動 Suitelet 差異說明（待建） |

**優先序**：低於 Phase 2–5；本階段以**設計規劃**為主，實作待 Phase 2 與取配號／折讓規則收斂後啟動。

---



### 營業稅申報

**目標**：依 **PCE 營業人** 合併該營業人之 **進項**（PCE 進項資料等）與 **銷項**（PCE 銷項主檔／明細），產出申報營業稅所需之 **TXT** 與 **T02** 檔案。

| 面向 | 方向 |
|------|------|
| 期別／主體 | 依**統一編號**、**申報期別**（ROC 雙月）、營業人 |
| 進項來源 | `customrecord_pce_ap_invoice`、交易子列表關聯進項等 |
| 銷項來源 | `customrecord_pce_ar_invoice`＋明細 |
| 產出 | 申報 **TXT**、**T02**（對齊 `Documentation/` 報稅 TXT Mapping 與組字範例） |
| 空白字軌／空白發票 | 依發票本（格式、字軌、期別）列印空白發票；未使用字軌／號碼彙整與申報檔銜接 |
| 入口 | Suitelet 或 Center（規劃中） |
| 與 Phase 4 區隔 | Phase 4 為申報前**對帳報表**；本項為**正式申報檔**產生 |
| 與 Phase 5 區隔 | Phase 5 為已開立**憑證 PDF**；本項為媒體申報檔 |

**優先序**：與 Phase 3 加值中心、Phase 4 對帳可並行規劃；**SuiteTax** 實作排在申報檔能力之後（見 [SuiteTax 規劃](./PCE_GUI_MODULE_suitetax-plan.md)）。

---



## 6. 交易類型 — 已定案

**Phase 2 主項**：**Customer Deposit 轉開發票**。Invoice／Credit Memo：**表身＋Suitelet 開立**（**不做** AP 式 1:N 子列表）。

| NetSuite 類型 | Phase 2 | 對照進項 |
|---------------|---------|----------|
| Invoice | 表身／開立（現行） | **非** VB 式 1:N 子列表 |
| Credit Memo | 表身／開立（現行） | **非** VC 式 1:N 子列表 |
| Customer Deposit | **做**（轉開發票） | — |
| Cash Sale | 不做 | — |
| Cash Refund | 不做 | — |

Cash Sale／Cash Refund 若日後有門市／現金流程需求，另開 Phase 2.1。

---



## 7. 憑證格式與字軌


| 面向 | 進項（已有） | 銷項 |
|------|-------------|------|
| 格式代碼 | **21–29**（**21／25 各拆 2 筆**；進項共 11 筆） | **31–36**（31／32／35 各 2 筆；**37–38 暫不種子**）；種子見 `PCE_SL_InstallLookupData.js`；以 **進銷項別** 過濾下拉 |
| MOF／字軌本 | 進項字軌種子 | **發票本** Custom Record＋管理頁；開立時配號（§9.5） |
| 通關／零稅率 | 表已有、進項暫不用 | 銷項欄位啟用並接驗證（完整對齊 MIG） |

### 7.1 憑證格式代碼一覽

#### 進項 21（拆 2 筆）

| 代碼 | Name（種子） | 發票類別代號 |
|------|----------------|--------------|
| 21 | `21-三聯式統一發票` | 01 |
| 21 | `21-電子計算機統一發票` | 05 |

AP Write／CSV 傳 `docFormatCode: "21"` 或 `"25"` 時須加 `invCatCode` 或 `docFormatName`。

#### 進項 25（拆 2 筆）

| 代碼 | Name（種子） | 發票類別代號 |
|------|----------------|--------------|
| 25 | `25-進項三聯式收銀機統一發票（稅額500元以下可按月彙總登錄）` | 06 |
| 25 | `25-進項一般稅額計算之電子發票（稅額500元以下可按月彙總登錄）` | 07 |

#### 銷項 31–36

| 代碼 | Name（種子） |
|------|----------------|
| 31 | `31-銷項三聯式` |
| 31 | `31-銷項電子計算機統一發票` |
| 32 | `32-銷項二聯式` |
| 32 | `32-銷項二聯式收銀機統一發票` |
| 33 | `33-三聯式/電子計算機/三聯式收銀機統一發票及一般稅額計算電子發票之銷貨退回或折讓證明單(逐筆登錄)` |
| 34 | `34-二聯式/二聯式收銀機統一發票及銷項免用統一發票之銷貨退回或折讓證明單(逐筆登錄)` |
| 35 | `35-銷項一般稅額計算之電子發票` |
| 35 | `35-銷項三聯式收銀機統一發票` |
| 36 | `36-銷項免用統一發票` |

`custrecord_pce_docfmt_code_value` 為 `31`／`32`／`35` 等；開立一般稅額電子發票實務選 **`35-銷項一般稅額計算之電子發票`**。特種稅額 **37／38 暫不加入種子**。

下拉過濾：`custrecord_pce_docfmt_io_type`（進項／銷項，`customlist_pce_doc_io_type`）。進項欄位 `custrecord_pce_ap_doc_format_code` 已過濾僅進項；銷項主檔欄位於 Phase 1 以同樣方式過濾僅銷項。


---



## 8. 與進項的共用／拆分


| 共用                                             | 銷項專屬                                  |
| ---------------------------------------------- | ------------------------------------- |
| `customrecord_pce_business_info` + sys setting | `customrecord_pce_ar_invoice`＋商品子明細（§9.2 A） |
| `PCE_LIB_TaxId` | `PCE_LIB_AR_Validate`、`PCE_AR_Fields` |
| `customrecord_pce_tax_type` | 開立銷項發票 Suitelet、**發票本** |
| `doc_format_code`（**已含銷項 31–36 種子**；37–38 暫無） | AR Write／CSV／Log |
| Customer `custentity_pce_cust_*` | 交易表身 CS/UE（`custtab_pce_trx_ar_einvoice`） |


---



## 9. 決策清單（進入 Phase 1 前）

### 9.1 銷項欄位定稿 — 已定案

**先完整對齊**；來源為 MIG 4.1 中介文字檔：

- 主檔 ← **發票表頭**＋**折讓單表頭**
- 子明細 ← **發票表身**＋**折讓單表身**

欄位清單見 [PCE_GUI_MODULE_ar-field-map-mig41.md](./PCE_GUI_MODULE_ar-field-map-mig41.md)。  
[`prototypes/einvoice-issue.html`](./prototypes/einvoice-issue.html) 僅作版面參考；之後再依實務刪減欄位。

### 9.2 商品明細儲存 — 已定案

**A：主檔 + 商品子明細**。1 張 `customrecord_pce_ar_invoice` 底下 N 筆 `customrecord_pce_ar_invoice_line`。**不**在 NS 交易上掛多筆主檔（不做進項 AP 式 1:N 子列表）。

開立畫面的 NS 交易商品／自定義商品僅決定**來源**；按「開立發票」後一律寫入主檔＋子明細，供查詢、報表、作廢／折讓對應。

### 9.3 賣方帶入 — 已定案

依 **Customer 的子公司** 對應 **PCE 營業人（子公司）** 帶入賣方；**不可覆寫**。

### 9.4 買方帶入 — 已定案

由 Customer `custentity_pce_cust_*` 帶入；**B2C** 統編固定 **`0000000000`**（10 個 0）。

### 9.5 字軌 — 已定案並已實作

**開立時即處理發票號碼**（實作：`PCE_LIB_AR_BookAllocate.js`）。發票本為獨立主檔 `customrecord_pce_ar_invoice_book`，銷項主檔**不**連結發票本欄位。發票開立格式不含 **33／34**；開立折讓單僅 **33／34**；發票本管理不含 **33／34／36**。

| 格式與上傳 | 號碼 | 發票本 |
|------------|------|--------|
| **36** | 系統產生 `SEUI`＋時間戳後 10 碼（共 14 字），不可手填；Name 與發票號碼相同 | 不找、不回寫 |
| **35**＋加值中心上傳 | 系統自動取號（字軌 2＋流水 8） | 依條件找本並回寫 `last_no`／`last_issue_dt`／狀態 |
| **35** 不上傳，或紙本（31／32 等） | **必填**手填 | 號碼反查本；只驗已用；不要求接續 `last_no` |
| **33／34** | **必填**手填折讓證明單號碼 | 不找本 |

**自動取號搜尋硬條件**：未停用、賣方統編、發票日期→民國年月→**雙月期別**、格式、狀態 0／1、**已勾選** `custrecord_pce_ar_book_ns_platform`（是否透過 NS傳至加值中心）。

**配號篩選**：本有設部門／類別／配號、表單沒選 → 不用這本；本空白＝通用本可用。表單空白時**不**沿用交易部門／類別（mapping 完全選填）。帳號仍須啟用 NetSuite **Departments／Classes** feature（`manifest.xml` 硬需求），與是否使用配號 mapping 無關。

**多本**：只取 **internal id 最小者**。該本最後驗證未過（日期、餘號、樂觀鎖）直接回錯（訊息含發票本 id），**不改試其他本**。同一本遇號碼衝突可重試。

**手填**：解析字軌＋流水 → 起訖範圍涵蓋；多本涵蓋＝`BOOK_AMBIGUOUS`。已用檢查：銷項 `custrecord_pce_ar_invoice_no`／`custrecord_pce_ar_allowance_no` 與 Invoice／CM `custbody_pce_ar_invoice_no`／`custbody_pce_ar_allowance_no`。成功後 `last_no`＝max(既有, 本次)，`last_issue_dt`＝本次日期。

### 9.6 與進項同一 SuiteApp — 已定案

銷項與進項同一 SuiteApp：`com.netsuite.pceguitw`。

### 決策摘要（2026-09-09）

| # | 主題 | 決議 |
|---|------|------|
| 9-1 | 欄位 | 先完整對齊 MIG 4.1 表頭／表身（發票＋折讓）；見欄位對照 |
| 9-2 | 商品明細儲存 | **A**：主檔 + 商品子明細 |
| 9-3 | 賣方 | Customer 子公司 ↔ PCE 營業人；不可覆寫 |
| 9-4 | 買方 | `custentity_pce_cust_*`；B2C＝`0000000000` |
| 9-5 | 字軌 | 開立即處理號碼：36 不取號；35＋上傳自動取最小 id 本；其餘手填反查。發票本獨立主檔＋管理頁 |
| 9-6 | 邊界 | 與進項同一 SuiteApp |

---

## 10. 建議下一步

Phase 1 開立與取配號已交付。後續建議：

1. 開立 UI：依 `doc_kind` 標示條件必填（零稅率、捐贈、PrintMark、混合稅明細）。  
2. Phase 2 Customer Deposit 轉開（含稅反推、明細範本設定）。  
3. Phase 3 作廢／折讓回沖、加值中心、發票本進階控管（鎖定、盤點）；空白字軌／空白發票併入 **營業稅申報**（§5）。  
4. Phase 4 每期申報對帳報表（規格與 Suitelet 匯出）。  
5. Phase 5 憑證 PDF 下載（B2B 發票、折讓、零稅率清單等）。  
6. Phase 6 銷項 CSV／Write API（外部已開立發票寫入 NS，優先序低）。  
7. Phase 7 自動／批次開立銷項發票與折讓（設計規劃）。

---



## 11. 參考路徑


| 路徑                                                                                                                            | 用途                |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| [docs/reference/電子發票B2BB2C中介文字檔MIG4.1說明.pdf](./reference/電子發票B2BB2C中介文字檔MIG4.1說明.pdf) | MIG 4.1 欄位來源 |
| [docs/PCE_GUI_MODULE_ar-field-map-mig41.md](./PCE_GUI_MODULE_ar-field-map-mig41.md) | 銷項主檔／表身欄位對照 |
| [src/Objects/Center_Categories/custcentercategory_pce_ar.xml](../src/Objects/Center_Categories/custcentercategory_pce_ar.xml) | 銷項選單佔位            |
| [src/Objects/Custom_Records/customrecord_pce_ap_invoice.xml](../src/Objects/Custom_Records/customrecord_pce_ap_invoice.xml)   | 進項紀錄範本            |
| [src/FileCabinet/SuiteApps/com.netsuite.pceguitw/ap/](../src/FileCabinet/SuiteApps/com.netsuite.pceguitw/ap/)                 | 進項程式範本            |
| [docs/prototypes/einvoice-issue.html](./prototypes/einvoice-issue.html)                                                       | 開立銷項發票 UX prototype |
| [docs/PCE_GUI_MODULE_ar-invoice-numbering.md](./PCE_GUI_MODULE_ar-invoice-numbering.md)                                       | 開立取號流程與邏輯（現行實作） |
| [docs/PCE_GUI_MODULE_suiteapp-user-guide.md](./PCE_GUI_MODULE_suiteapp-user-guide.md)                                         | 使用者說明（§5.5 開立銷項發票）    |


