[FIX] 開立電子發票前檢查機台電子發票開關
1. finalizeTransaction() 開立發票條件改為「機台 tax_invoice_enabled 開啟 AND 上報帶 invoice」,兩者皆成立才開立。 2. 機台關閉電子發票時:不建發票、不送綠界 IssueInvoiceJob,僅記 warning log(machine_id / flow_id / order_id)供追查。 3. 修正原本只判斷上報是否帶 invoice、完全忽略機台開關而可能誤開發票的問題。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7a90e8c6de
commit
cbc4ae3749
@ -371,7 +371,9 @@ class TransactionService
|
||||
|
||||
// 2. Record Invoice — 後台開立版:finalize 帶 invoice 輸入(status=pending)時建 pending 發票,
|
||||
// commit 後派 IssueInvoiceJob 去綠界開立(不在交易內等 ECPay,避免長交易)。
|
||||
if (!empty($data['invoice'])) {
|
||||
// 開立條件:機台「電子發票開關」開啟 AND 上報帶 invoice,兩者皆成立才開立。
|
||||
// 機台關閉電子發票時略過開立(不建發票、不送綠界),僅留 warning log 供日後追查。
|
||||
if (!empty($data['invoice']) && $order->machine?->tax_invoice_enabled) {
|
||||
$invoiceData = $data['invoice'];
|
||||
$invoiceData['serial_no'] = $serialNo;
|
||||
$invoiceData['flow_id'] = $order->flow_id;
|
||||
@ -384,6 +386,13 @@ class TransactionService
|
||||
\App\Jobs\Transaction\IssueInvoiceJob::dispatch($invoice->id);
|
||||
});
|
||||
}
|
||||
} elseif (!empty($data['invoice'])) {
|
||||
// 上報帶了 invoice,但機台「電子發票開關」為關閉 → 略過開立,留軌跡供追查。
|
||||
Log::warning('機台已關閉電子發票,略過開立', [
|
||||
'machine_id' => $order->machine_id,
|
||||
'flow_id' => $order->flow_id,
|
||||
'order_id' => $order->id,
|
||||
]);
|
||||
}
|
||||
|
||||
// 3. Record Dispense Results (B602) - Optional/Multiple
|
||||
|
||||
Loading…
Reference in New Issue
Block a user