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