From b7e8401a9911b5cf8019dfb0641be2066cd932c7 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 18 Jun 2026 17:14:29 +0800 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E9=8A=B7=E5=94=AE=E7=B4=80=E9=8C=84?= =?UTF-8?q?=E6=9C=AA=E4=BB=98=E6=AC=BE=E5=96=AE=E9=A1=AF=E7=A4=BA:?= =?UTF-8?q?=E5=B7=B2=E6=A3=84=E5=96=AE=E6=94=B9=E6=9C=AA=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E3=80=81=E6=9C=AA=E5=87=BA=E8=B2=A8=E9=A1=AF=E7=A4=BA=20--?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 付款狀態「已棄單(abandoned)」顯示文字改為「未支付」;新增 Unpaid 語系、移除孤兒 Abandoned key,三語系(zh_TW/en/ja)對齊排序。 2. 出貨狀態:非付款成功(未完成 pending/支付失敗 failed/未支付 abandoned)的單從未出貨,一律顯示「--」,避免 delivery_status 欄位 DB 預設值 1 誤顯示為「出貨成功」。 3. 判斷邏輯收斂至 Order::hasDeliveryOutcome(),桌機表格、手機卡片、明細面板與匯出 delivery_status_label accessor 共用同一基準。 4. 補齊匯出訂單狀態對照表原本缺漏的 failed/abandoned 標籤。 Co-Authored-By: Claude Opus 4.8 (1M context) --- app/Http/Controllers/Admin/SalesController.php | 2 ++ app/Models/Transaction/Order.php | 14 ++++++++++++++ lang/en.json | 2 +- lang/ja.json | 2 +- lang/zh_TW.json | 2 +- .../sales/partials/order-detail-panel.blade.php | 7 ++++++- .../admin/sales/partials/tab-orders.blade.php | 14 ++++++++++++-- 7 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Admin/SalesController.php b/app/Http/Controllers/Admin/SalesController.php index 756d71a..5f41984 100644 --- a/app/Http/Controllers/Admin/SalesController.php +++ b/app/Http/Controllers/Admin/SalesController.php @@ -935,6 +935,8 @@ class SalesController extends Controller 'pending' => __('Pending'), 'paid' => __('Paid'), 'completed' => __('Completed'), + 'failed' => __('Failed'), + 'abandoned' => __('Unpaid'), 'cancelled' => __('Cancelled'), 'refunded' => __('Refunded'), ]; diff --git a/app/Models/Transaction/Order.php b/app/Models/Transaction/Order.php index 2e98628..5f6ccbb 100644 --- a/app/Models/Transaction/Order.php +++ b/app/Models/Transaction/Order.php @@ -229,11 +229,25 @@ class Order extends Model ]; } + /** + * 出貨狀態是否有意義:唯有付款成功(completed/paid)、機台真的動作過的單才有出貨結果。 + * pending(未完成)、failed(支付失敗)、abandoned(未支付)從未出貨,出貨狀態應顯示 '--'。 + * ⚠ delivery_status 欄位 DB 預設為 1(出貨成功),這些單若直接讀值會誤顯示成「出貨成功」。 + */ + public function hasDeliveryOutcome(): bool + { + return in_array($this->status, [self::STATUS_COMPLETED, 'paid'], true); + } + /** * 取得目前出貨狀態標籤 (Accessor) */ public function getDeliveryStatusLabelAttribute(): string { + if (! $this->hasDeliveryOutcome()) { + return '--'; + } + return self::getDeliveryStatusLabels()[$this->delivery_status] ?? __('Unknown'); } } diff --git a/lang/en.json b/lang/en.json index 4fa8aa9..ef124a7 100644 --- a/lang/en.json +++ b/lang/en.json @@ -27,7 +27,6 @@ "APP Version": "APP Version", "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", - "Abandoned": "Abandoned", "Abnormal": "Abnormal", "Account": "Account", "Account :name status has been changed to :status.": "Account :name status has been changed to :status.", @@ -2244,6 +2243,7 @@ "Unlock": "Unlock", "Unlock Now": "Unlock Now", "Unlock Page": "Unlock Page", + "Unpaid": "Unpaid", "Unpublish": "Unpublish", "Update": "Update", "Update App": "Update App", diff --git a/lang/ja.json b/lang/ja.json index 6d150b6..eb86d99 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -27,7 +27,6 @@ "APP Version": "アプリバージョン", "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", - "Abandoned": "放棄済み", "Abnormal": "異常", "Account": "アカウント", "Account :name status has been changed to :status.": "アカウント :name のステータスが :status に変更されました。", @@ -2244,6 +2243,7 @@ "Unlock": "ロック解除", "Unlock Now": "今すぐロック解除", "Unlock Page": "ページロック解除", + "Unpaid": "未払い", "Unpublish": "非公開", "Update": "更新", "Update App": "アプリ更新", diff --git a/lang/zh_TW.json b/lang/zh_TW.json index 4c8880d..8f06c72 100644 --- a/lang/zh_TW.json +++ b/lang/zh_TW.json @@ -27,7 +27,6 @@ "APP Version": "APP版本號", "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", - "Abandoned": "已棄單", "Abnormal": "異常", "Account": "帳號", "Account :name status has been changed to :status.": "帳號 :name 的狀態已變更為 :status。", @@ -2244,6 +2243,7 @@ "Unlock": "解鎖", "Unlock Now": "立即解鎖", "Unlock Page": "頁面解鎖", + "Unpaid": "未支付", "Unpublish": "下架", "Update": "編輯", "Update App": "更新 App", diff --git a/resources/views/admin/sales/partials/order-detail-panel.blade.php b/resources/views/admin/sales/partials/order-detail-panel.blade.php index 32d5832..cc457f6 100644 --- a/resources/views/admin/sales/partials/order-detail-panel.blade.php +++ b/resources/views/admin/sales/partials/order-detail-panel.blade.php @@ -44,7 +44,7 @@ 'paid' => __('Paid'), 'completed' => __('Completed'), 'failed' => __('Failed'), - 'abandoned' => __('Abandoned'), + 'abandoned' => __('Unpaid'), 'cancelled' => __('Cancelled'), 'refunded' => __('Refunded'), ]; @@ -63,6 +63,10 @@

{{ __('Dispense Status') }}

+ {{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}} + @if(! $order->hasDeliveryOutcome()) + -- + @else @php $deliveryStatusMap = [ 0 => ['label' => __('Dispense Failed'), 'color' => 'rose'], @@ -72,6 +76,7 @@ $ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate']; @endphp + @endif
diff --git a/resources/views/admin/sales/partials/tab-orders.blade.php b/resources/views/admin/sales/partials/tab-orders.blade.php index 5c43443..135fd1e 100644 --- a/resources/views/admin/sales/partials/tab-orders.blade.php +++ b/resources/views/admin/sales/partials/tab-orders.blade.php @@ -268,7 +268,7 @@ 'paid' => ['label' => __('Paid'), 'color' => 'emerald'], 'completed' => ['label' => __('Completed'), 'color' => 'emerald'], 'failed' => ['label' => __('Failed'), 'color' => 'rose'], - 'abandoned' => ['label' => __('Abandoned'), 'color' => 'slate'], + 'abandoned' => ['label' => __('Unpaid'), 'color' => 'slate'], 'cancelled' => ['label' => __('Cancelled'), 'color' => 'slate'], 'refunded' => ['label' => __('Refunded'), 'color' => 'rose'], ]; @@ -277,6 +277,10 @@ + {{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}} + @if(! $order->hasDeliveryOutcome()) + -- + @else @php $deliveryStatusMap = [ 0 => ['label' => __('Dispense Failed'), 'color' => 'rose'], @@ -286,6 +290,7 @@ $ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate']; @endphp + @endif @php @@ -351,7 +356,7 @@ 'paid' => ['label' => __('Paid'), 'color' => 'emerald'], 'completed' => ['label' => __('Completed'), 'color' => 'emerald'], 'failed' => ['label' => __('Failed'), 'color' => 'rose'], - 'abandoned' => ['label' => __('Abandoned'), 'color' => 'slate'], + 'abandoned' => ['label' => __('Unpaid'), 'color' => 'slate'], 'cancelled' => ['label' => __('Cancelled'), 'color' => 'slate'], 'refunded' => ['label' => __('Refunded'), 'color' => 'rose'], ]; @@ -451,6 +456,10 @@

{{ __('Dispense Status') }}

+ {{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}} + @if(! $order->hasDeliveryOutcome()) + -- + @else @php $deliveryStatusMap = [ 0 => ['label' => __('Dispense Failed'), 'color' => 'rose'], @@ -460,6 +469,7 @@ $ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate']; @endphp + @endif