Ctrl K

銷項背景自動開立發票(Phase 7)

現行:專用 Suitelet 可一次勾選多筆 Invoice(最多 25 筆);按「下一步(背景開立)」後立即更新交易 custbody_pce_ar_inv_status=背景自動開立發票、custbody_pce_ar_locked=是,並寫入 customrecord_pce_ar_auto_issue_queue,由 PCE_MR_AR_IssueBackground 逐筆開立。固定 35-07 且 透過加值中心上傳。

行為

項目說明
入口PCE GUI Portal → 銷項 → 背景自動開立(customscript_pce_sl_ar_background_issue);Bootstrap 分頁 提交背景開立/進度與結果(一般開立確認頁不提供背景開立)
提交成功成功排入佇列後 redirect 至 進度與結果分頁(內部帶批次篩選);畫面顯示 已提交…→立即查看進度與結果;不向使用者顯示批次 ID、MR 工作編號。部分筆數失敗時另顯示「另有 N 筆未成功:…」
開立失敗來源 Invoice 解鎖、custbody_pce_ar_inv_status 清空,失敗原因寫入 發票錯誤訊息(custbody_pce_ar_error_msg,前綴「背景自動開立失敗:」);再次排入或開立成功時清空
發票日期未指定時以各 Invoice 交易日期 為憑證日期;可能因發票本期間不符而失敗。清單頁可填 指定開立日期(套用到已勾選發票)
發票本配號清單頁(勾選區)或確認頁可指定 發票部門/發票分類/自定義發票本配號(選填。三欄須與發票本完全相同;留空只對到該欄也空白的發票本。不沿用交易部門/類別)
格式/上傳伺服器固定 docFormat=35-07、vacUpload=true
零稅率清單與確認頁都不收集通關方式、零稅率原因、出口報單或證明文件。零稅率發票請改走一般開立
開立核心MR 自佇列呼叫 issueFromSources(backgroundQueueIssue gate;略過重複鎖定)
明細過多仍由 PCE_MR_AR_IssueLines 背景建明細
結果佇列 CR customrecord_pce_ar_auto_issue_queue;MR customscript_pce_mr_ar_issue_background
進度畫面同一 Suitelet 進度與結果分頁(或舊部署 customscript_pce_sl_ar_autoiss_mon 輕量書籤);進入時不自動查詢,須按 查詢;條件含 建立日期(UTC+8,未填則查詢時預設當天)/NetSuite 發票編號/狀態(無批次 ID 輸入欄);明細 發票號碼 連結 PCE 銷項主檔;發票日期=主檔 custrecord_pce_ar_doc_date;有待處理時約 45 秒自動重新整理
Portal UI唯一採 workbench 單卡 + card-header-tabs + embedded「查詢條件」的銷項入口;與開立/作廢/發票本版面尚未統一,見 PCE GUI Portal — 銷項內頁 UI(查詢條件/workbench)

程式

元件Script / 檔案
LIBPCE_LIB_AR_AutoIssue.js、PCE_LIB_AR_AutoIssueQueue.js
進度查詢(輕量)PCE_LIB_AR_AutoIssueQueueMonitor.js、PCE_LIB_AR_AutoIssueMonitorRequest.js(進度部署 不載入 PCE_LIB_AR_Issue)
分頁/路由PCE_LIB_AR_AutoIssueTabShell.js、PCE_LIB_AR_AutoIssueWorkbench.js → PCE_SL_AR_AutoIssueWorkbench.js
曆日PCE_LIB_TaiwanDate.js(UTC+8 原生 Date;進度頁建立日篩選)
佇列 CRcustomrecord_pce_ar_auto_issue_queue
佇列狀態customlist_pce_ar_auto_issue_qstat
交易狀態customlist_pce_ar_inv_status → val_pce_ar_invstat_bg_auto
MRcustomscript_pce_mr_ar_issue_background → PCE_MR_AR_IssueBackground.js
Suitelet(主)customscript_pce_sl_ar_background_issue → PCE_SL_AR_AutoIssueWorkbench.js;提交邏輯 PCE_LIB_AR_IssueSuitelet.js
Suitelet(進度書籤)customscript_pce_sl_ar_autoiss_mon → PCE_SL_AR_AutoIssueMonitor.js(僅 MonitorRequest);HTML PCE_LIB_AR_AutoIssueMonitorHtml.js

本機測試

npm run test:ar-auto-issue
npm run test:ar-auto-issue-monitor
npm run test:taiwan-date

未含(後續)

  • Saved Search 排程批次、Credit Memo、合併/淨額、Email 通知