[FIX] 銷售紀錄未付款單顯示:已棄單改未支付、未出貨顯示 --
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) <noreply@anthropic.com>
This commit is contained in:
parent
ddac862cee
commit
b7e8401a99
@ -935,6 +935,8 @@ class SalesController extends Controller
|
||||
'pending' => __('Pending'),
|
||||
'paid' => __('Paid'),
|
||||
'completed' => __('Completed'),
|
||||
'failed' => __('Failed'),
|
||||
'abandoned' => __('Unpaid'),
|
||||
'cancelled' => __('Cancelled'),
|
||||
'refunded' => __('Refunded'),
|
||||
];
|
||||
|
||||
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "アプリ更新",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
'paid' => __('Paid'),
|
||||
'completed' => __('Completed'),
|
||||
'failed' => __('Failed'),
|
||||
'abandoned' => __('Abandoned'),
|
||||
'abandoned' => __('Unpaid'),
|
||||
'cancelled' => __('Cancelled'),
|
||||
'refunded' => __('Refunded'),
|
||||
];
|
||||
@ -63,6 +63,10 @@
|
||||
<div class="space-y-2">
|
||||
<p class="text-[10px] font-black text-slate-400 dark:text-slate-500 uppercase tracking-widest">{{ __('Dispense Status') }}</p>
|
||||
<div>
|
||||
{{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}}
|
||||
@if(! $order->hasDeliveryOutcome())
|
||||
<span class="text-sm font-extrabold text-slate-300 dark:text-slate-700 tracking-widest">--</span>
|
||||
@else
|
||||
@php
|
||||
$deliveryStatusMap = [
|
||||
0 => ['label' => __('Dispense Failed'), 'color' => 'rose'],
|
||||
@ -72,6 +76,7 @@
|
||||
$ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate'];
|
||||
@endphp
|
||||
<x-status-badge :color="$ds['color']" :label="$ds['label']" size="sm" />
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -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 @@
|
||||
<x-status-badge :color="$s['color']" :label="$s['label']" size="xs" />
|
||||
</td>
|
||||
<td class="px-6 py-6 whitespace-nowrap">
|
||||
{{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}}
|
||||
@if(! $order->hasDeliveryOutcome())
|
||||
<span class="text-xs font-bold text-slate-300 dark:text-slate-700 tracking-widest">--</span>
|
||||
@else
|
||||
@php
|
||||
$deliveryStatusMap = [
|
||||
0 => ['label' => __('Dispense Failed'), 'color' => 'rose'],
|
||||
@ -286,6 +290,7 @@
|
||||
$ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate'];
|
||||
@endphp
|
||||
<x-status-badge :color="$ds['color']" :label="$ds['label']" size="xs" />
|
||||
@endif
|
||||
</td>
|
||||
<td class="px-6 py-6 whitespace-nowrap">
|
||||
@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 @@
|
||||
<div>
|
||||
<p class="text-[10px] font-black text-slate-400 dark:text-slate-500 uppercase tracking-widest mb-1">{{
|
||||
__('Dispense Status') }}</p>
|
||||
{{-- 非付款成功(未完成/支付失敗/未支付)的單從未出貨,出貨狀態無意義 → 顯示 '--' --}}
|
||||
@if(! $order->hasDeliveryOutcome())
|
||||
<span class="text-xs font-bold text-slate-300 dark:text-slate-700 tracking-widest">--</span>
|
||||
@else
|
||||
@php
|
||||
$deliveryStatusMap = [
|
||||
0 => ['label' => __('Dispense Failed'), 'color' => 'rose'],
|
||||
@ -460,6 +469,7 @@
|
||||
$ds = $deliveryStatusMap[$order->delivery_status] ?? ['label' => __('Unknown'), 'color' => 'slate'];
|
||||
@endphp
|
||||
<x-status-badge :color="$ds['color']" :label="$ds['label']" size="xs" />
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user