# PCE TW GUI MODULE — 操作手冊

> **對象**：NetSuite 管理員、會計／財務使用者、實作顧問  
> **目的**：帳上已交付功能的**操作手冊**（第一次設定、日常步驟、CSV 範本下載）  
> **帳上完整版**：PCE GUI → 說明 → SuiteApp 操作手冊（含範本直接下載）  
> **English**：[PCE_GUI_MODULE_suiteapp-user-guide.en.md](./PCE_GUI_MODULE_suiteapp-user-guide.en.md)  
> **相關 API 文件**：[AP Write 介接手冊](./PCE_GUI_MODULE_ap-write-api-integration-guide.md) · [技術說明](./PCE_GUI_MODULE_ap-write-api-technical.md)

---

## 1. 產品概覽

**PCE TW GUI MODULE**（Publisher：`com.netsuite`，Project ID：`pceguitw`）是一套以 SuiteCloud SDF 建置的 **SuiteApp**，用來支援台灣營業稅／進項憑證在 NetSuite 的登錄、檢核與介接。

目前已交付能力：

| 模組 | 做什麼 |
|------|--------|
| 營業人基本資料 | 申報用營業人主檔（統編、地址、子公司、進項／銷項功能開關） |
| 課稅別 NS 稅碼對應 | 把課稅別 1／2／3 對到 **NetSuite（NS）** Tax Code（銷項開立前必設） |
| 進項憑證登錄 | 「PCE 進項資料」可掛 **Vendor Bill**（應付帳款發票）／**Expense Report**（費用報銷）／**Vendor Credit**（廠商折讓）／**Vendor Prepayment**（廠商預付），或獨立建立 |
| 進項 CSV | 上傳／貼上 CSV，單次最多 100 列；可先 **只驗證不寫入** |
| 進項 API | IT／廠商介接 AP Write（§5.4） |
| 發票本管理 | 查詢／調整配號、手動建立、CSV 匯入（31／32／35） |
| 開立銷項發票/折讓單 | 單張／合併開立、開立折讓單、開立淨額發票；頁首按鈕或查詢頁 |
| 自訂商品明細 | **Invoice**（銷項發票）／**Credit Memo**（貸項通知單，CM）「PCE 銷項」分頁改寫開立用商品列；開立時相同品項＋單價＋課稅別合併為一列 |
| 導覽選單 | 頂部 **PCE GUI**（Classic Center／`BASIC`） |

帳上操作手冊與範本下載：PCE GUI → 說明。規格與分期見 [PCE_GUI_MODULE_ar-blueprint.md](./PCE_GUI_MODULE_ar-blueprint.md)。

### 這本手冊怎麼用

1. 新帳號先做完 **§4 第一次設定**（營業人 → 課稅別 → 統編 → 發票本）。
2. CSV 匯入前先到 **§1.1 範本下載** 取檔，Excel 編輯後**另存 CSV UTF-8**。
3. 日常進項見 **§5.1～5.3**；日常銷項見 **§5.5～5.7**。
4. 帳上同一份手冊可直接下載範本，不必再到各功能頁找檔。

### 1.2 流程總覽

帳上 **PCE GUI → 說明 → SuiteApp 操作手冊** 亦以相同結構呈現（CSS 流程圖，無需額外外掛）。

```mermaid
flowchart TB
  deploy[部署 SuiteApp] --> setup[第一次設定 §4]
  setup --> ap[進項日常 §5.1–5.3]
  setup --> ar[銷項日常 §5.0–5.6]
  setup --> book[發票本管理 §5.6]
  book --> ar
```

### 1.3 術語與縮寫

本手冊與流程圖常用縮寫之完整名稱如下。帳上 **PCE GUI → 說明 → SuiteApp 操作手冊** 中，**§1.3 術語表本身為純文字對照**；其餘章節帶**虛線底線**的縮寫游標停駐可見相同說明：

| 縮寫 | 完整名稱 | 說明 |
|------|----------|------|
| **SEUI** | Sales Exempt from Uniform Invoices（銷項免用統一發票） | 格式 **36** 之系統號碼前綴；後接時間戳 10 碼，共 14 字（例 `SEUI4567890123`） |
| **NS** | NetSuite | 本 ERP 平台；如「課稅別 NS 稅碼對應」「是否透過 NS 傳至加值中心」 |
| **AP** | Accounts Payable／進項 | 進項憑證（應付／進項）模組 |
| **AR** | Accounts Receivable／銷項 | 銷項憑證；開立發票／折讓單 |
| **VB** | Vendor Bill（應付帳款發票） | 供應商應付帳款發票交易單 |
| **ER** | Expense Report（費用報銷） | 員工費用報銷單 |
| **VC** | Vendor Credit（廠商折讓） | 廠商貸項通知單 |
| **VP** | Vendor Prepayment（廠商預付） | 廠商預付款交易單 |
| **CM** | Credit Memo（貸項通知單） | 客戶貸項通知單；折讓單之來源交易 |
| **CSV** | Comma-Separated Values（逗號分隔值） | 試算表文字檔；Excel 請另存 **CSV UTF-8** |
| **invCatCode** | Invoice Category Code（發票類別代號） | 代號 01～08；格式 21／25／31／32／35 常用 |
| **OAuth** | Open Authorization（開放授權） | AP Write API 介接授權（由 IT 設定） |
| **M2M** | Machine-to-Machine（機器對機器） | OAuth 用戶端憑證模式，無需使用者登入 |

### 畫面速覽

![PCE GUI 選單](./images/user-guide/03-pce-gui-menu.png)

*圖：頂部 **PCE GUI** 選單（說明／模組設定／進項／銷項）。*

### 1.1 範本下載

請替換範例統編、字軌與金額。單次最多 **100** 列。建議先勾**只驗證不寫入**。

帳上：PCE GUI → 說明 → SuiteApp 操作手冊 → **範本下載**。各功能頁也提供同一批檔案。

| 用途 | 下載（帳上說明頁） | 專案樣本 | 使用頁 |
|------|-------------------|----------|--------|
| 進項 CSV 範本 | `?action=template&kind=ap` | [ap-invoice-import-sample.csv](./samples/ap-invoice-import-sample.csv) | 進項 → 進項 CSV 匯入 |
| 進項欄位說明 | `?action=guide&kind=ap` | [ap-invoice-import-field-guide.csv](./samples/ap-invoice-import-field-guide.csv) | 同上 |
| 進項 invCatCode 對照 | `?action=invcatmap&kind=ap` | [ap-invCatCode-erp-mapping.csv](./samples/ap-invCatCode-erp-mapping.csv) | 同上 |
| 發票本 CSV 範本 | `?action=template&kind=arbook` | [ar-invoice-book-import-sample.csv](./samples/ar-invoice-book-import-sample.csv) | 模組設定 → 發票本管理 → CSV |
| 發票本欄位說明 | `?action=guide&kind=arbook` | [ar-invoice-book-import-field-guide.csv](./samples/ar-invoice-book-import-field-guide.csv) | 同上 |
| 發票本 invCatCode 對照 | `?action=invcatmap&kind=arbook` | [ar-invCatCode-mapping.csv](./samples/ar-invCatCode-mapping.csv) | 同上 |

IT／介接另見 [docs/postman/](./postman/)（AP Write Postman）與 [介接手冊](./PCE_GUI_MODULE_ap-write-api-integration-guide.md)。

---

## 2. 前置條件

### 2.1 NetSuite 功能

`manifest.xml` 宣告：

| Feature | 必要性 |
|---------|--------|
| Custom Records | 必填 |
| Server SuiteScript | 必填 |
| Subsidiaries | 必填 |
| Accounting | 建議開啟（交易單相關流程） |

### 2.2 權限與角色

部署後腳本多設為 **All Roles**（僅涵蓋內部角色）。實務上請確認角色至少具備：

- Custom Record 權限：`PCE 營業人資料`、`PCE 進項資料`（及代碼對照表如需維護）
- 交易權限：Vendor Bill／Expense Report／Vendor Credit／Vendor Prepayment（視流程）
- Suitelet／RESTlet：CSV 匯入頁、AP Write（外部介接另需 Integration／Token）

### 2.3 部署方式（開發／顧問）

```bash
# 於專案根目錄（已設定 suitecloud auth）
suitecloud project:validate
suitecloud project:deploy
```

- Application ID：`com.netsuite.pceguitw`
- 部署完成後會執行安裝腳本，自動建立代碼對照表初始資料（同名略過，可重跑）

---

## 3. SuiteApp 內容清單

### 3.1 導覽（Center）

| Script ID | 類型 | 顯示名稱 |
|-----------|------|----------|
| `custcentertab_pce_gui` | Center Tab | **PCE GUI**（`center=BASIC`／Classic Center，`allroles=T`；總覽預設 Script Portlet） |
| `custpubdashboard_pce_gui` | Published Dashboard | PCE GUI 總覽：顯示「SuiteApp 操作手冊」Portlet（套用至 Administrator／Full Access；既有使用者需在帳上 Publish／Personalize 一次） |
| `custcentercategory_pce_help` | Category | 說明 |
| `custcentercategory_pce_basic_data` | Category | **模組設定**（**模組通用系統設定**／營業人資料／課稅別對應／**發票本管理**／發票本配號設定） |
| `custcentercategory_pce_ap` | Category | 進項 |
| `custcentercategory_pce_ar` | Category | **銷項**（PCE 銷項資料／**開立銷項發票/折讓單**） |

**PCE GUI → 說明**

- SuiteApp 操作手冊 → Suitelet（可下載進項／發票本 CSV 範本；總覽 Portlet 顯示摘要）

![SuiteApp 內容與使用說明（Suitelet）](./images/user-guide/01-suitelet-user-guide.png)

*圖：選單「說明 → SuiteApp 操作手冊」完整頁面。*

**PCE GUI → 模組設定**

- **模組通用系統設定** → `customrecord_pce_module_sys_setting`（正式區／測試區各一筆；以 NetSuite Account ID 對應環境）
- PCE 營業人資料 → `customrecord_pce_business_info`
- **發票本管理** → Suitelet `customscript_pce_sl_ar_book_csv_import`
- 發票本配號設定 → `customrecord_pce_ar_book_profile`

![模組設定選單](./images/user-guide/03b-menu-basic-data.png)

*圖：PCE GUI → 模組設定 → PCE 營業人資料。*

**PCE GUI → 進項**

- PCE 進項資料 → `customrecord_pce_ap_invoice`
- 進項 CSV 匯入 → Suitelet `customscript_pce_sl_ap_csv_import`

![進項選單](./images/user-guide/06-menu-ap.png)

*圖：PCE GUI → 進項（進項資料／CSV 匯入）。*

**PCE GUI → 銷項**

- PCE 銷項資料 → `customrecord_pce_ar_invoice`
- **開立銷項發票/折讓單** → Suitelet `customscript_pce_sl_ar_issue`

### 3.2 Custom Records（業務）

| Script ID | 名稱 | 用途 |
|-----------|------|------|
| `customrecord_pce_module_sys_setting` | 模組通用系統設定 | 正式區／測試區；Account ID 對應；模組級進項／銷項／報稅開關 |
| `customrecord_pce_business_info` | PCE 營業人資料 | 營業稅營業人主檔 |
| `customrecord_pce_biz_sys_setting` | （營業人下系統設定） | 進項／銷項／報稅：**繼承／啟用／停用**（`customlist_pce_setting_override`）覆寫模組預設 |
| `customrecord_pce_ap_invoice` | PCE 進項資料 | 進項憑證明細（可關聯交易） |
| `customrecord_pce_ap_write_log` | 進項匯入紀錄 | 每次 CSV／API 寫入的請求與結果（對帳用） |
| `customrecord_pce_ar_invoice` | PCE 銷項資料 | 銷項憑證主檔（發票／折讓）；發票另追蹤已折讓未稅／稅額／總計與可折餘額 |
| `customrecord_pce_ar_invoice_line` | PCE 銷項商品明細 | 開立後寫入的商品子明細 |
| `customrecord_pce_ar_custom_line` | PCE 銷項自訂商品明細 | Invoice／CM 開立前可改寫的商品列（掛 PCE 銷項分頁） |
| `customrecord_pce_ar_invoice_line` | （銷項商品明細） | 主檔下商品列 |
| `customrecord_pce_ar_invoice_book` | 發票本 | 字軌／期別／配號／自定義發票本配號（無 Name 欄） |
| `customrecord_pce_ar_book_import_log` | 發票本匯入紀錄 | CSV／手動匯入背景處理狀態與各區段結果 |
| `customrecord_pce_ar_book_profile` | 發票本配號設定 | 自定義配號群組（Name／說明）；發票本連結後以 profileName 對應 |
| `customrecord_pce_mof_track` | 字軌 | 財政部字軌相關 |

### 3.3 代碼／對照表 Custom Records

部署時由 `customscript_pce_sl_install_lookup` 灌入初始資料（已存在則略過）：

| Script ID | 說明 | 初始資料 |
|-----------|------|----------|
| `customrecord_pce_doc_format_code` | 憑證格式代碼（進項 21～29 共 11 筆、銷項 31～36；**21／25／31／32／35 各拆 2 筆**；含**進銷項別**、**發票類別代號**） | 有 |
| `customrecord_pce_tax_type` | 課稅別 | 有 |
| `customrecord_pce_deduction_code` | 進項扣抵代號 | 有 |
| `customrecord_pce_summary_mark` | 彙加／分攤註記 | 有 |
| `customrecord_pce_ar_book_status` | 發票本狀態（0 未使用／1 使用中／2 使用完畢／9 停用） | 有 |
| `customrecord_pce_customs_mark` | 通關註記 | 進項暫無預設列 |
| `customrecord_pce_zero_rate_mark` | 適用零稅率註記 | 進項暫無預設列 |
| `customrecord_pce_city` | 營業縣市 | 對照用 |
| `customrecord_pce_filing_type` | 申報種類 | 對照用 |
| `customrecord_pce_filing_mark` | 自行／委託申報註記 | 對照用 |
| `customrecord_pce_consol_code` | 總繳代號 | 對照用 |

Name 格式多為「代碼-說明」（例如 `21-三聯式統一發票`、`25-進項一般稅額計算之電子發票（…）`）。API／CSV 傳 **`docFormatCode: "21"`** 或 **`"25"`** 時須加 **`invCatCode`**（21：`01`／`05`；25：`06`／`07`）或 **`docFormatName`**。

### 3.4 Entity 自訂欄位（Vendor／Customer）

| Script ID | 標籤 | 適用 |
|-----------|------|------|
| `custentity_pce_vendor_tax_id` | PCE 廠商統一編號 | Vendor |
| `custentity_pce_vendor_invoice_title` | PCE 廠商發票抬頭 | Vendor |
| `custentity_pce_vendor_reg_addr` | PCE 廠商登記地址 | Vendor |
| `custentity_pce_cust_tax_id` | PCE 客戶統一編號 | Customer |
| `custentity_pce_cust_invoice_title` | PCE 客戶發票抬頭 | Customer |
| `custentity_pce_cust_reg_addr` | PCE 客戶登記地址 | Customer |

多顯示於 **PCE 發票** Entity Subtab（`custtab_pce_einvoice`）。Vendor／Customer 統編由 Client Script／User Event 驗證（8 碼檢核碼；B2C 客戶可為 10 個 0）。

### 3.5 交易 Subtab

| Script ID | 標題 | 類型 |
|-----------|------|------|
| `custtab_pce_trx_einvoice` | PCE 進項資料 | Transaction |
| `custtab_pce_trx_ar_einvoice` | PCE 銷項 | Transaction |

進項 Subtab 用於 Vendor Bill 等；銷項 Subtab 用於 Invoice／Credit Memo 表身欄位與自訂商品明細子列表（見 §3.5.1）。

#### 3.5.1 Invoice／Credit Memo 表身欄位（PCE 銷項）

| Script ID | 標籤 | 說明 |
|-----------|------|------|
| `custbody_pce_ar_issue_invoice` | 是否開立發票/折讓單 | 見下方 **銷項功能與此欄位** |
| `custbody_pce_ar_use_custom_lines` | 使用自訂商品明細 | 勾選後開立改讀下方自訂商品明細子列表（非交易 item）；首次勾選且子列表為空時會從 item 帶入 |
| `custbody_pce_ar_inv_status` | 發票/折讓單狀態 | 清單 `customlist_pce_ar_inv_status`（PCE 發票狀態） |
| `custbody_pce_ar_locked` | 鎖定中 | 流程鎖定用 |
| `custbody_pce_ar_invoice_no` | 發票號碼 | **僅 Invoice 顯示**（Credit Memo 由 User Event 隱藏）。開立成功後回寫（一般為字軌 2 碼＋流水 8 碼；格式 36 為 **SEUI**（Sales Exempt from Uniform Invoices）＋時間戳 10 碼，共 14 字） |
| `custbody_pce_ar_allowance_no` | 折讓單號碼 | **僅 Credit Memo 顯示**。開立折讓單成功後回寫（最多 16 碼） |
| `custbody_pce_ar_orig_invoice_no` | 折抵發票號碼 | **僅 Credit Memo 顯示**。開立折讓單時填寫／回寫之原發票號碼（最多 10 碼） |

同一分頁另有子列表 **PCE 銷項自訂商品明細**（`customrecord_pce_ar_custom_line`），主要欄位如下：

| 欄位 | Script ID | 說明 |
|------|-----------|------|
| 品項 | `custrecord_pce_ar_cstmline_item` | 對應來源 item；勾選帶入時自動寫入 |
| 品名 | `custrecord_pce_ar_cstmline_description` | 開立用品名（可改寫） |
| 數量／單位／單價／金額 | `…_qty`／`…_unit`／`…_unit_price`／`…_amount` | 未稅金額；金額 0 的列開立時略過 |
| 營業稅額 | `custrecord_pce_ar_cstmline_tax_amount` | 各列加總須等於單頭 `taxtotal` |
| 課稅別 | `custrecord_pce_ar_cstmline_tax_type` | 對應 `customrecord_pce_tax_type`（1／2／3 等） |
| 明細備註 | `custrecord_pce_ar_cstmline_remark` | 最多 120 字；可自 item 子列表帶入 |

已勾選但沒有有效列（金額皆為 0）時，開立會被拒絕。未稅合計與營業稅合計**必須**與 NetSuite 單頭一致（容許 0.02）。儲存時若營業稅全空，系統會依課稅別（應稅 5%）推算並對齊單頭。

**銷項功能與此欄位**（依 **模組通用系統設定** Account Mapping ＋ **PCE 營業人主檔** ＋營業人 effective 銷項開關）：

| 情境 | 行為 |
|------|------|
| 本帳號 **未** Mapping 至正式區／測試區 | 模組銷項全關；此欄 **禁用**、不勾選；交易頁 **無** 開立按鈕；開立／作廢／發票本 Suitelet 拒絕 |
| 該 **subsidiary** **沒有** 對應的 **PCE 營業人資料**（未建主檔或未填 subsidiary） | **銷項一律關閉**（即使模組通用已勾銷項） |
| 該 **subsidiary** 銷項 **停用**（營業人覆寫或子設定） | 同上 |
| 銷項 **啟用** 且已選 **客戶 (entity)** | **強制勾選**（建立／複製／編輯儲存；`pageInit`／變更客戶或 subsidiary 時同步） |
| 銷項 **啟用** 但 **無客戶** | 不勾選 |
| 已開立（已有發票／折讓號碼或狀態） | 不顯示開立按鈕（與銷項開關無關） |

Suitelet（開立、作廢、發票本手動建立／查詢）在 POST 時會再次驗證銷項是否啟用。從交易頁按開立若遭拒，訊息會註明「此交易所屬營業人銷項功能未啟用」。

**開立按鈕僅在 Invoice／Credit Memo「檢視」頁顯示**（編輯頁不顯示，以免未存檔的自訂商品明細與表頭與開立資料不一致）。請先 **儲存** 再進檢視頁開立；或改用 **銷項 → 開立銷項發票/折讓單** 查詢已存檔交易。

> **未來（B1-7）**：若需一次性將歷史 Invoice／Credit Memo 上「銷項已停用但仍勾選」的紀錄批次清勾，可另排 Map/Reduce；目前未內建。

#### 3.5.2 Invoice／Credit Memo item 子列表欄位

| Script ID | 標籤 | 說明 |
|-----------|------|------|
| `custcol_pce_ar_line_remark` | 明細備註 | 銷售 item 列備註（最多 120 字）。勾選「使用自訂商品明細」且子列表為空帶入時，會寫入自訂列 **明細備註** |

> **表單設定**：部署 `custcol_pce_ar_line_remark` 後，須至 **Customization → Forms → Transaction Forms**，在 Invoice／Credit Memo 的 **Items** 子列表加入 **明細備註** 欄，使用者才能在 item 列維護備註。

### 3.6 Scripts

| Script ID | 類型 | 說明 |
|-----------|------|------|
| `customscript_pce_ue_apinv_default` | User Event | 進項資料儲存前驗證（非 UI 路徑補強） |
| `customscript_pce_cs_ap_invoice` | Client | 進項資料畫面欄位行為 |
| `customscript_pce_cs_trans_ap_sublist` | Client | 交易單上進項子列表聯動（VB／ER／VC／VP） |
| `customscript_pce_rl_ap_write` | RESTlet | 進項／交易寫入 API |
| `customscript_pce_sl_ap_csv_import` | Suitelet | 進項 CSV 匯入 UI |
| `customscript_pce_sl_install_lookup` | Suitelet（安裝） | 代碼表初始資料 |
| `customscript_pce_sl_ap_write_smoke` | Suitelet | AP Write 冒煙測試（開發／驗證用） |
| `customscript_pce_sl_ap_write_smoke_inst` | 安裝相關 | 冒煙測試安裝輔助 |
| `customscript_pce_cs_ar_invoice` | Client | PCE 銷項資料主檔欄位聯動／驗證 |
| `customscript_pce_ue_arinv_default` | User Event | 銷項資料 beforeSubmit 驗證 |
| `customscript_pce_sl_user_guide` | Suitelet | **操作手冊**（`?lang=zh\|en`；範本 `action=template\|guide\|invcatmap`＋`kind=ap\|arbook`） |
| `customscript_pce_sl_taxtype_mapping` | Suitelet | 課稅別 NS 稅碼對應 |
| `customscript_pce_sl_ar_issue` | Suitelet | **開立銷項發票/折讓單**（查詢 NS Invoice／Credit Memo） |
| `customscript_pce_sl_ar_invoice_book` | Suitelet | 發票本清單入口 |
| `customscript_pce_sl_ar_book_csv_import` | Suitelet | **發票本管理** UI（CSV／手動／查詢/更新） |
| `customscript_pce_mr_ar_book_import` | Map/Reduce | 發票本建立背景 job |
| `customscript_pce_mr_ar_book_alloc_update` | Map/Reduce | 發票本配號批次更新背景 job |
| `customscript_pce_ue_ar_book_default` | User Event | 發票本新增預設狀態 0-未使用 |
| `customscript_pce_cs_trans_ar_body` | Client | Invoice／Credit Memo「是否開立發票/折讓單」預設、自訂商品明細帶入、開立按鈕 |
| `customscript_pce_ue_trans_ar_body` | User Event | 同上（非 UI 路徑補強） |
| `customscript_pce_cs_vendor_taxid` / `customscript_pce_ue_vendor_taxid` | Client／UE | Vendor 統編驗證 |
| `customscript_pce_cs_customer_taxid` / `customscript_pce_ue_customer_taxid` | Client／UE | Customer 統編驗證 |

### 3.7 File Cabinet（主要路徑）

```text
SuiteApps/com.netsuite.pceguitw/
├── ap/
│   ├── clientscripts/     # 進項／交易 Client Scripts
│   ├── libraries/         # CSV、驗證、Payload、WriteLog 等
│   ├── restlets/          # AP Write RESTlet
│   ├── suitelets/         # CSV Import、Smoke
│   └── userevents/        # 進項 Default／驗證
├── ar/
│   ├── clientscripts/     # 銷項主檔、交易表身
│   ├── libraries/         # 驗證、Lookup、開立邏輯、開立畫面 HTML
│   ├── suitelets/         # 開立銷項發票、發票本管理、Smoke
│   └── userevents/        # 銷項驗證、交易表身
└── common/                # 統編檢查、字軌資料等共用函式庫
```

---

## 4. 部署後設定步驟

建議依序完成：

```mermaid
flowchart TD
  A[A 確認選單] --> B[B 營業人資料]
  B --> B2[B2 課稅別 NS 稅碼對應]
  B2 --> C[C Vendor／Customer 統編]
  C --> D[D 匯入或建立發票本]
  D --> E{需要 API 介接?}
  E -->|是| F[F OAuth + AP Write]
  E -->|否| done[可開始日常作業]
  F --> done
```

### 步驟 A — 確認選單

1. 重新整理 NetSuite（或切換角色／Center 後再回來）。
2. 頂部應出現 **PCE GUI**。
3. 點開確認：
   - **說明 → SuiteApp 操作手冊**（含範本下載）
   - **模組設定 → 模組通用系統設定**、**PCE 營業人資料**、**課稅別 NS 稅碼對應**、**發票本管理**、**發票本配號設定**
   - **進項 → PCE 進項資料**、**進項 CSV 匯入**
   - **銷項 → PCE 銷項資料**、**開立銷項發票/折讓單**

若看不到 Tab：確認角色為 Classic Center、以及 `custcentertab_pce_gui` 的 Audience（預設 all roles）。

### 步驟 A0 — 模組通用系統設定（必做）

1. **PCE GUI → 模組設定 → 模組通用系統設定**。
2. 確認已有 **正式區**、**測試區** 兩筆（安裝腳本會種子；功能預設關閉）。
3. 在對應環境的那一筆 **NetSuite Account IDs** 填入本帳號 ID（一行一個；不分大小寫，`-`／`_` 視為相同）。
4. 依需求勾選 **銷項**（進項 Phase 尚未全面接線，可之後再開）。
5. 未 Mapping 的帳號：**所有模組功能視為關閉**。

各 **PCE 營業人資料** 下可再以 **進項／銷項／報稅** 的「繼承／啟用／停用」覆寫模組預設。

### 步驟 B — 維護營業人資料

1. **PCE GUI → 模組設定 → PCE 營業人資料 → New**
2. 至少填寫：
   - 營利事業統一編號（8 碼）
   - 營業人名稱
   - 其他申報相關欄位（稅籍編號、營業地址、聯絡人／申報人等，依實際申報需求）
3. 若有多子公司，請依環境維護對應資料與「子公司」關聯。
4. 於營業人記錄的系統設定確認**進項功能**與**銷項功能**開關。銷項開立前必須啟用銷項功能。

### 步驟 B2 — 課稅別 NS 稅碼對應

1. **PCE GUI → 模組設定 → 課稅別 NS 稅碼對應**
2. 為課稅別 **1（應稅）／2（零稅率）／3（免稅）** 各選對應的 NetSuite Tax Code（可多選）。
3. 儲存。Invoice／Credit Memo 自訂商品明細與開立讀稅時會用到這份對應；未對應會無法開立。

![PCE 營業人資料清單](./images/user-guide/04-business-info-list.png)

*圖：PCE 營業人資料清單。*

![PCE 營業人資料明細](./images/user-guide/05-business-info-form.png)

*圖：營業人資料欄位範例（含子公司）。*

### 步驟 C — 維護供應商／客戶主檔

1. 開啟 Vendor／Customer。
2. 到 **PCE 發票** Subtab。
3. 填入統編、發票抬頭、登記地址，供進項／銷項檢核與後續帶入。

### 步驟 D —（選用）外部 API 介接

若需系統對系統寫入：

1. 建立／設定 OAuth 2.0 Integration（建議 Client Credentials M2M，Scope 含 RESTlets）。
2. 取得 AP Write RESTlet External URL。
3. 依 [介接手冊](./PCE_GUI_MODULE_ap-write-api-integration-guide.md) 取得 Bearer Token 後呼叫。
4. 可於 **進項匯入紀錄** 清單檢視每次匯入（進項 CSV 匯入頁導覽亦提供連結；NetSuite 清單顯示名稱可能仍為「PCE AP Write 呼叫紀錄」）。

### 步驟 E —（選用）限制腳本對象角色

正式環境建議將關鍵 Suitelet／RESTlet 的 Audience 從「全部角色」收斂為會計／介接專用角色。

---

## 5. 日常使用步驟

### 5.0 準備 Invoice／Credit Memo 自訂商品明細

當會計要改寫開立用的品名或金額（而非直接用交易 item）：

1. （選用）在 **Items** 子列表維護 **明細備註**（`custcol_pce_ar_line_remark`；須已加入表單，見 §3.5.2）。
2. 開啟 Invoice 或 Credit Memo → **PCE 銷項**。
3. 勾選 **使用自訂商品明細**。若子列表為空，Client Script 會從 item 帶入（略過金額 0），含：**品項**、品名、數量、單價、金額、**課稅別**、**營業稅額**（依課稅別 5% 或 item 的 `tax1amt`）、**明細備註**。
4. 可在 **PCE 銷項自訂商品明細** 再編輯各列；變更 **金額** 或 **課稅別** 時，營業稅額會自動重算（手改營業稅額則不覆寫）。
5. 儲存。**未稅合計**須等於單頭 `subtotal`、**營業稅合計**須等於單頭 `taxtotal`（容許 0.02）。不符時 Client Script 會擋儲存；若營業稅全空，User Event 會依課稅別補齊後再驗證。
6. **開立時**：確認頁與寫入 PCE 銷項主檔的商品列，會將 **品項、單價、課稅別皆相同** 的多列**合併為一列**（加總數量、金額、營業稅額；明細備註以 `；` 串接）。Invoice 上的自訂子列表仍保留原始多列供對帳。
7. 取消勾選 **使用自訂商品明細** **不會**清空已維護的自訂列，只是開立改回讀 item。

### 5.1 在交易單上登錄進項（建議會計流程）

```mermaid
flowchart TD
  start[進項登錄] --> path{選擇方式}
  path -->|建議| trx[交易單 PCE 進項子列表]
  path --> list[獨立 PCE 進項資料]
  path --> csv[CSV 匯入]
  trx --> save[儲存 → 建立 PCE 進項資料]
  list --> save
  csv --> validate{只驗證?}
  validate -->|是| preview[試跑結果]
  validate -->|否| save
  preview --> csv
```

適用：**Vendor Bill**、**Expense Report**、**Vendor Credit**、**Vendor Prepayment**。

1. 建立或開啟交易單，選擇 Vendor（若適用）。
2. 切到 **PCE 進項資料** Subtab／子列表。
3. 新增一列進項明細，填寫例如：
   - 憑證格式代碼（21～29）
   - 憑證開立日期
   - 資料所屬年月／申報期別（民國五碼 `YYYMM`）
   - 進項扣抵代號、課稅別
   - 發票號碼／其他憑證號碼（依格式）
   - 買受人／銷售人統編
   - 銷售金額、稅額、總計
   - 彙加註記等（依需求）
4. 儲存交易單。系統會以 Client Script 協助欄位聯動與前端檢核；User Event 於進項記錄儲存前再驗證。交易單進項子列表會依 header **子公司** 對應 PCE 營業人資料帶入買受人統編；獨立新增進項資料時需手動填入。

一張交易可對應 **多筆** 進項資料（1:N）。

![Vendor Bill 上的 PCE 進項資料子列表](./images/user-guide/08-vendorbill-ap-sublist.png)

*圖：Vendor Bill → **PCE 進項資料** 子列表（可新增進項列）。*

### 5.2 直接維護「PCE 進項資料」清單

1. **PCE GUI → 進項 → PCE 進項資料**
2. New／Edit 記錄。
3. 可選擇填 **來源交易單據**，掛回既有 **Vendor Bill（應付帳款發票）**、**Expense Report（費用報銷）**、**Vendor Credit（廠商折讓）** 或 **Vendor Prepayment（廠商預付）**；也可先不掛交易、僅建立進項資料。

![PCE 進項資料清單](./images/user-guide/07-ap-invoice-list.png)

*圖：PCE 進項資料清單。*

![PCE 進項資料明細](./images/user-guide/09-ap-invoice-form.png)

*圖：進項資料欄位範例（憑證格式、統編、金額等）。*

### 5.3 進項 CSV 匯入

1. **PCE GUI → 進項 → 進項 CSV 匯入**
2. （建議）先下載（說明頁或本頁皆可）：
   - **範本 CSV**（`action=template`）
   - **欄位說明 CSV**（`action=guide`）
   - **發票類別代號對照**（`action=invcatmap`）
3. 以 Excel／試算表填寫後**另存 CSV**（建議「CSV UTF-8」，避免中文亂碼），或於頁面貼上 CSV 文字。
4. （建議）先勾 **只驗證不寫入**（試跑，不建立資料），確認無誤後再取消勾選正式匯入。
5. 按 **匯入**，系統建立 **PCE 進項資料**。
6. 匯入完成後會**自動導向結果頁**（網址含 `action=result` 與 **進項匯入紀錄** id）。**重新整理頁面不會再次送出 CSV**，可安心按 F5 檢視結果。
7. 檢視結果摘要：
   - 成功／失敗筆數（失敗優先顯示）
   - 可下載失敗列 CSV
   - 成功列可連到進項記錄
   - 可開啟 **進項匯入紀錄** 對帳（「進階資訊（IT／對帳用）」含 **匯入批號**、**結果代碼**）
8. **限制**：單次最多 **100** 列。

![進項 CSV 匯入頁](./images/user-guide/02-csv-import.png)

*圖：進項 CSV 匯入（範本下載、上傳／貼上、只驗證不寫入）。*

#### CSV 常用欄位（摘要）

| 欄位 | 必填 | 說明 |
|------|------|------|
| `docFormatCode` | 必填 | 21～29；格式 21／25 須搭配 `invCatCode` |
| `invCatCode` | 條件必填 | **發票類別代號**；格式 21（01／05）、25（06／07）必填 |
| `docDate` | 必填 | `YYYY/MM/DD` 或 `YYYY-MM-DD` |
| `docPeriod` | 必填 | 民國五碼所屬年月 |
| `filingPeriod` | 必填 | 民國五碼申報期別 |
| `deductionCode` | 必填 | 1～4 |
| `invoiceNo` | 條件 | 多數格式必填 |
| `buyerTaxId` | 必填 | 8 碼 |
| `sellerTaxId` | 條件 | 依格式 |
| `taxType` | 必填 | 如 1／2／3／F／D |
| `salesAmount`／`taxAmount`／`totalAmount` | 金額 | 依驗證規則 |
| `fileBizTax` | 選填 | 是否申報營業稅 |
| `clientRef` | 選填 | 來源參考號 |
| `transaction` | 選填 | 掛回既有 NetSuite 交易單據（須填 internal id；請向 IT 索取） |

完整說明與範例列見 `docs/samples/ap-invoice-import-sample.csv`、頁面欄位一覽。

### 5.4 透過 API 寫入（系統介接）

對會計使用者：通常由 IT／廠商執行。重點：

| action | 用途 |
|--------|------|
| `apInvoiceOnly` | 只建進項 |
| `transactionOnly` | 只建／引用交易（最多 10 筆） |
| `transactionWithApInvoices` | 交易＋進項（1:N） |

- 僅支援 **POST** + OAuth 2.0 Bearer  
- API 參數 `options.validateOnly: true` 等同畫面上的 **只驗證不寫入**（試跑，不建立資料）  

細節、範例與 Postman：[介接手冊](./PCE_GUI_MODULE_ap-write-api-integration-guide.md)。

### 5.5 開立銷項發票/折讓單（Phase 1）

完整取號流程、篩選條件與錯誤代碼見 [銷項開立取號流程與邏輯](./PCE_GUI_MODULE_ar-invoice-numbering.md)。

```mermaid
flowchart TD
  prep[Invoice/CM 準備 §5.0] --> search[查詢或頁首按鈕]
  search --> select[勾選來源單據]
  select --> mode{開立模式}
  mode -->|只發票| inv[單張／合併開立]
  mode -->|只折讓| allow[開立折讓單 33/34]
  mode -->|兩者| net[開立淨額發票]
  inv --> form[確認格式／日期／配號]
  allow --> form
  net --> form
  form --> num[取號]
  num --> ok[建立 PCE 銷項 + 回寫 NS]
```

```mermaid
flowchart TD
  start[確認格式與加值中心上傳] --> fmt{格式?}
  fmt -->|36| gen["系統 SEUI 號碼<br/>Sales Exempt from Uniform Invoices"]
  fmt -->|35 上傳| auto[發票本自動取號]
  fmt -->|35 不上傳/31/32| manual[手填反查發票本]
  fmt -->|33/34 折讓| allowNum[手填折讓證明單號]
  auto --> ok[成功回寫]
  manual --> ok
  gen --> ok
  allowNum --> ok
```

1. **PCE GUI → 銷項 → 開立銷項發票/折讓單**（Bootstrap 全頁：查詢 → 確認開立）。也可從尚未開立的 Invoice 頁首按 **開立銷項發票**、Credit Memo 頁首按 **開立折讓單**，直接進入該單的確認開立頁；已開立（已有發票號碼／折讓單號碼或發票/折讓單狀態）則不顯示按鈕。
2. 設定查詢條件（統一編號／買方公司／部門／分類／NetSuite 發票編號／NetSuite 折讓單編號／日期等）後按 **查詢**。
3. 清單**僅顯示**同時符合下列條件的銷項發票或折讓單：
   - **是否開立發票/折讓單**＝是
   - **發票/折讓單狀態**空白
   - **鎖定中**＝否
   - **發票號碼**空白
   - **折讓單號碼**空白
4. 在 **銷項發票清單** 或 **折讓單清單** 分頁勾選後開立：
   - 只選發票：單張或合併開立
   - 只選折讓單：**開立折讓單**（折抵已開立的發票）
   - 同時勾選發票與折讓單：**開立淨額發票**
5. 進入憑證開立表單後，確認 **格式代號**、**是否透過加值中心上傳**、**發票號碼／折讓證明單號碼**（依下表）。只選發票時格式不含 **33／34**；**開立折讓單**時格式**只顯示 33／34**，並手填折讓證明單號碼（不經發票本）。**格式 33** 可選擇透過加值中心上傳；折讓單不填載具／捐贈，但須填 **折讓扣抵發票號碼**（原發票號碼；成功後回寫 Credit Memo 的 **折抵發票號碼**）。開立發票時另可填 **發票本配號條件**（發票部門／發票分類／自定義發票本配號；**選填**，空白則使用未限定的通用發票本，不會自動沿用交易部門／分類）。若來源交易已勾 **使用自訂商品明細**，確認頁商品明細來自該分頁自訂列（畫面會提示），且列數可能少於自訂子列表（相同品項＋單價＋課稅別已合併）。**合併開立**且多張來源皆勾選自訂明細時，跨單相同條件亦會合併；**淨額開立**（發票＋折讓）則不合併正負列。
6. 系統建立 **PCE 銷項資料**主檔與商品明細，並導向該記錄檢視。Invoice 回寫 **發票號碼**，並初始化 **已折讓未稅／稅額／總計＝0**、**可折餘額＝總計**。Credit Memo 回寫 **折讓單號碼** 與 **折抵發票號碼**（不寫入發票號碼欄）。折讓開立時依折抵發票的**申報雙月期別**（相對折讓憑證日期）控管：
   - **當期**且無銷項主檔 → **阻擋**
   - **有**銷項主檔（當期或非當期）→ 可折餘額足夠才可開立，成功後累加已折讓並重算可折餘額
   - **非當期**且無銷項主檔 → **可開立**，但不控管可折餘額；系統會寫入總備註提醒自行管控（並請填原發票日期以判斷期別）
   明細過多時表單僅預覽部分筆數，其餘可至系統報表「PCE 銷項開立商品明細」依來源單號查詢。

> 建立銷項發票／折讓單時，若已選客戶且單據子公司對應之 PCE 營業人已啟用 **銷項功能**，**是否開立發票/折讓單** 會自動勾選。
>
> **自訂商品明細**：詳見 **§5.0**。重點：item 列可填 **明細備註**（`custcol_pce_ar_line_remark`）並帶入自訂列；帶入時含品項、課稅別、營業稅額；儲存須與單頭未稅／稅額一致；**開立時**相同品項＋單價＋課稅別合併為一列（Invoice 上自訂子列表仍保留原列數）。

#### 發票號碼規則

| 格式與上傳 | 發票號碼 | 發票本 |
|------------|----------|--------|
| **36**（銷項免用統一發票） | 系統產生 **SEUI**（Sales Exempt from Uniform Invoices，免用統一發票號碼前綴）＋時間戳後 10 碼（共 14 字），不可手填；Name 與發票號碼相同 | 不找本、不回寫 |
| **35** 且加值中心＝**上傳** | 系統自動取號（字軌 2 碼＋流水 8 碼） | 依賣方統編、格式、發票日期對應之**雙月期別**、配號條件找本；須已勾選 **是否透過 NS傳至加值中心** |
| **35** 且加值中心＝**不上傳**，或紙本（**31／32** 等） | **必填**手填（例 `CA00000075`） | 依號碼反查涵蓋該流水的發票本；只驗「號碼是否已用」 |
| **33／34**（開立折讓單） | **必填**手填折讓證明單號碼（最多 16 碼） | 不找本、不回寫 |

#### 自動取號（35＋上傳）

1. 搜尋未停用、狀態 **0-未使用／1-使用中**、統編／期別／格式相符，且已勾選 **是否透過 NS傳至加值中心** 的發票本。
2. 配號篩選：發票本若已指定部門、類別或配號，開立條件必須一致；開立條件空白時，只用「未限定」的通用本。
3. **多本只取 internal id 最小者**。該本最後驗證未過（發票日期早於最新取號日、已無下一號、回寫衝突等）會顯示錯誤（含發票本 id），**不會改試其他本**。
4. 成功後回寫發票本 `last_no`、`last_issue_dt`；未使用改為使用中，用盡則改為使用完畢。
5. 發票日期須 ≥ 該本最新取號日期（同日可接受；尚未取號則不限）。

#### 手填號碼（紙本／35 不上傳）

1. 號碼須為字軌 2 碼英文＋流水（不足 8 碼會補零）。
2. 系統以字軌＋流水反查起訖範圍涵蓋該號的發票本；找不到或**多本同時涵蓋**都會失敗，請再確認統編／期別／格式。
3. 若銷項主檔或 Invoice／Credit Memo 已使用同一號碼，會拒絕開立。
4. 手填**不檢查**是否接續 `last_no`；成功後 `last_no` 取「既有最後取用」與本次號碼的較大值，並更新最新取號日期。

### 5.6 發票本管理

開立時如何取號／手填反查見 **§5.5**。本節說明如何建立與調整發票本。

1. **PCE GUI → 模組設定 → 發票本管理**（頁面分三個分頁：**查詢/更新發票本**、**手動輸入**、**CSV 匯入**；預設開啟查詢分頁）
2. **查詢/更新發票本**：先選 **統一編號**（必填）查詢該公司發票本；**發票本期別**、**格式**（不含 33／34／36）、**NetSuite→加值中心** 為選填，可縮小結果。若要修改部門、類別或配號，可勾選多筆 **批次調整配號**，或於單列 **調整配號**（一次超過 **25** 本改背景處理，請稍後重新查詢確認）；亦可按 ID 連結開啟單筆紀錄。
3. **手動輸入**：切換至「手動輸入」分頁，先選 **統一編號**（下拉選單，與查詢相同），再填 **格式**（不含 33／34／36；選定後**發票類別**自動帶入且不可修改）、期別、字軌、起訖號等（規則同 CSV）；可選 **發票本部門**、**發票本類別**、**自定義發票本配號**（選項與查詢/更新相同）；狀態固定為未使用，無須填寫。可勾 **只驗證不寫入** 後按 **建立發票本**。
4. **CSV 匯入**：下載 **CSV 範本**、**欄位說明** 與 **發票類別代號對照**（下載檔名含 invCatCode），以 Excel／試算表填寫統編、字軌、起訖號等，完成後**另存 CSV**（建議「CSV UTF-8」）；上傳或貼上 CSV，建議先勾 **只驗證不寫入**（試跑，不建立資料）試跑。
5. 匯入／手動建立完成後會**自動導向結果頁**（網址含 `action=result` 與 **發票本匯入紀錄** id）。**重新整理頁面不會再次送出**。
6. 結果頁顯示「正在建立發票本…」（含載入動畫）→ 完成後顯示成功／失敗摘要；明細表會自動更新為發票本連結。
7. 成功列可連至新增的 **PCE 發票本**；失敗列（含背景批次處理失敗的區段）可下載修正後再匯入。
8. **限制**：CSV 最多 **100** 列；**不需 Name**；狀態空白時預設 **0-未使用**。**寫入**由背景批次處理建立，並寫入 **發票本匯入紀錄**；背景工作編號等技術資訊在「進階資訊（IT 用）」。
9. **起訖號尾數規則**（8 碼正規化後看**尾數 2 碼**）：
   - **起號**：須為 **50 的倍數**（00 或 50）
   - **訖號**：須為 **50 的倍數減 1**（49 或 99）
   例：單本 50 張可填 `50`～`99` 或 `0`～`49`；三聯式 3 本可填 `0`～`149`。
10. **自動切分**：同一列可填跨多本的 `beginNo`／`endNo`，系統依 `invCatCode` 切分：
   - 手開式（01 三聯式、02 二聯式、05 電子計算機）與電子發票（07）：**50** 張／本
   - 收銀機（03 二聯式收銀機、06 三聯式收銀機）：**250** 張／本
   起訖號總張數須為每本張數的整數倍（例：01 類別填 0～149 → 自動建立 3 本）。

範例檔：`docs/samples/ar-invoice-book-import-sample.csv`  
發票類別對照：`docs/samples/ar-invCatCode-mapping.csv`（格式 **31／32／35** 須填 `invCatCode` 辨識）

#### CSV 常用欄位（摘要）

| 欄位 | 必填 | 說明 |
|------|------|------|
| `taxId` | 必填 | 8 碼統一編號；須已存在於 **PCE 營業人資料** |
| `invCatCode` | 必填 | **發票類別代號** 01～08；格式 31 填 01／05；32 填 02／03；35 填 06／07 |
| `docFormatCode` | 必填 | 銷項格式 31～36；31／32／35 須搭配 invCatCode 或 docFormatName |
| `period` | 必填 | 民國五碼 YYYMM |
| `track` | 必填 | 二碼英文大寫字軌 |
| `beginNo` / `endNo` | 必填 | 8 碼數字；起號尾數 00／50、訖號尾數 49／99；可填多本區間（見 §5.6 切分規則） |
| `statusCode` | 選填 | 0／1／2／9，預設 0 |
| `profileName` | 選填 | 自定義發票本配號 Name 或 id |
| `nsToPlatform` | 選填 | 僅 **35-07** 有效；其餘格式匯入時固定 **false**（CSV 值不採用） |
| `paperInvoice` | 選填 | 匯入時自動設定：**35-07** 固定 **false**，其餘固定 **true**（CSV 值不採用） |
| `remark` | 選填 | 備註 |
| `clientRef` | 選填 | 對帳用參考鍵 |

---

## 6. 常見問題

| 現象 | 可能原因 | 處理 |
|------|----------|------|
| 看不到 PCE GUI | 角色／Center、快取 | 重新整理、確認 Tab Audience、檢查是否在 More 選單 |
| 課稅別未對應、無法開立 | 尚未設定 NS Tax Code | **模組設定 → 課稅別 NS 稅碼對應** 為 1／2／3 指定稅碼 |
| 自訂明細合計不符 | 自訂列未稅／營業稅與單頭不同 | 留在確認開立頁；回 PCE 銷項分頁調整金額／營業稅後再開 |
| Items 看不到明細備註 | 表單未加入欄位 | 至 Invoice／CM 表單 Items 子列表加入 `custcol_pce_ar_line_remark` |
| 開立列數比自訂子列表少 | 開立時合併相同品項＋單價＋課稅別 | 正常；Invoice 自訂子列表仍保留原列，僅開立確認頁／PCE 主檔合併 |
| 沒有開立按鈕 | 已開立、**銷項未啟用**、或部署 Audience 為空 | 確認尚未開立；**模組通用系統設定** Account ID 與銷項開關；營業人系統設定；Deployment → Audience |
| 銷項 Suitelet 拒絕／下拉無營業人 | 未 Mapping 或該營業人銷項關閉 | **模組通用系統設定** 補 Account ID 並啟用銷項；必要時在營業人覆寫為「啟用」 |
| CSV 全部失敗 | 表頭／日期／統編格式 | 下載欄位說明，對照錯誤訊息與失敗列 CSV |
| CSV 中文亂碼 | 非 UTF-8 編碼 | Excel 另存新檔 → 選「CSV UTF-8」 |
| 發票號碼被拒 | 字軌不符合公告 | 檢查 `customrecord_pce_mof_track`／期別字軌 |
| 自動取號失敗、找不到發票本 | 統編／雙月期別／格式／配號不符、未勾選透過 NS 傳至加值中心，或該本已用盡 | 至 **發票本管理** 確認字軌、期別、配號與「是否透過 NS傳至加值中心」；錯誤訊息會標示發票本 id |
| 發票本 id：日期不可早於最新取號日期 | 開立日期早於該本上次取號日 | 調整發票日期，或確認是否應使用其他配號條件 |
| 手填號碼已使用 | 銷項主檔或 NS 交易已有同一號碼 | 改填其他號碼 |
| 手填號碼對到多本 | 多本字軌與起訖範圍重疊 | 縮小統編／期別／格式，或至發票本管理檢查起訖號 |
| API 401 | Token 過期或 Integration 設定 | 重新取 token；確認 Scope=RESTlets |
| SuiteApp 部署衝突「script ID already exists」 | 帳上有同名但未綁定本 SuiteApp 的物件 | 先刪除帳上未綁定物件再部署 |

---

## 7. 相關文件索引

| 文件 | 說明 |
|------|------|
| [PCE_GUI_MODULE_suiteapp-user-guide.en.md](./PCE_GUI_MODULE_suiteapp-user-guide.en.md) | 本文件英文版 |
| [PCE_GUI_MODULE_ap-write-api-integration-guide.md](./PCE_GUI_MODULE_ap-write-api-integration-guide.md) | AP Write 外部介接手冊 |
| [PCE_GUI_MODULE_ap-write-api-technical.md](./PCE_GUI_MODULE_ap-write-api-technical.md) | AP Write 技術與測試 |
| [samples/README.md](./samples/README.md) | CSV 範本、欄位說明、invCatCode 對照（與帳上說明頁同一批） |
| [PCE_GUI_MODULE_ar-invoice-numbering.md](./PCE_GUI_MODULE_ar-invoice-numbering.md) | 銷項開立取號流程與邏輯 |
| [PCE_GUI_MODULE_ar-blueprint.md](./PCE_GUI_MODULE_ar-blueprint.md) | 銷項（AR）規格與分期藍圖 |
| [prototypes/einvoice-issue.html](./prototypes/einvoice-issue.html) | 開立銷項發票 UX prototype |
| 專案根目錄 `README.md` | SDF 專案結構與命名慣例 |

---

## 8. 版本資訊

| 項目 | 值 |
|------|-----|
| SuiteApp | `com.netsuite.pceguitw` |
| Project name | PCE TW GUI MODULE |
| Manifest version | 1.0.0 |
| 文件日期 | 2026-09-13 |
