From 42ec18188e543d68b65613173a827e7ab9af700b Mon Sep 17 00:00:00 2001 From: twsystem1004 Date: Fri, 17 Jul 2026 01:16:14 +0000 Subject: [PATCH] =?UTF-8?q?feat(=E9=8A=B7=E5=94=AE=E7=B4=80=E9=8C=84):=20?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=8B=80=E6=85=8B=E9=A0=90=E8=A8=AD=E3=80=8C?= =?UTF-8?q?=E5=B7=B2=E5=AE=8C=E6=88=90=E3=80=8D+=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E3=80=8C=E5=BE=85=E9=A0=98=E5=8F=96=E3=80=8D=E7=8B=80=E6=85=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 付款狀態下拉預設改為「已完成」,避免客戶把 failed(付款失敗/逾時) 誤會成刷卡失敗; 「所有付款狀態」改為明確選項 value=all(非空值,AJAX 才不會被當空值丟掉),選它才顯示全部。 2. 新增 awaiting_pickup(待領取,領藥單已生成未領取) 至下拉選項與各狀態顯示: 桌機/手機徽章(amber,原本無對應會顯示原始字串)、訂單明細面板、匯出狀態標籤。 Co-Authored-By: Claude Opus 4.8 (1M context) --- app/Http/Controllers/Admin/SalesController.php | 7 +++++-- .../admin/sales/partials/order-detail-panel.blade.php | 2 ++ resources/views/admin/sales/partials/tab-orders.blade.php | 7 ++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Admin/SalesController.php b/app/Http/Controllers/Admin/SalesController.php index 2688188..9dccd13 100644 --- a/app/Http/Controllers/Admin/SalesController.php +++ b/app/Http/Controllers/Admin/SalesController.php @@ -35,7 +35,9 @@ class SalesController extends Controller $search = $request->input('search'); $machineId = $request->input('machine_id'); $paymentType = $request->input('payment_type'); - $status = $request->input('status'); + // 付款狀態預設只看「已完成」:避免客戶把 failed(付款失敗/逾時) 誤會成刷卡失敗。 + // 「所有付款狀態」為明確選項 status=all(非空值,AJAX 才不會當空值丟掉)。 + $status = $request->input('status', 'completed'); $deliveryStatus = $request->input('delivery_status'); $startDate = $request->input('start_date'); $endDate = $request->input('end_date'); @@ -138,7 +140,7 @@ class SalesController extends Controller // 訂單專用過濾器 if ($tab === 'orders') { if ($paymentType) $ordersQuery->where('payment_type', $paymentType); - if ($status) $ordersQuery->where('status', $status); + if ($status && $status !== 'all') $ordersQuery->where('status', $status); // 出貨狀態:唯有付款成功(completed/paid)的單才有出貨結果,需與列表顯示邏輯 (hasDeliveryOutcome) 一致 if ($deliveryStatus !== null && $deliveryStatus !== '') { $ordersQuery->whereIn('status', [Order::STATUS_COMPLETED, 'paid']) @@ -1545,6 +1547,7 @@ class SalesController extends Controller 'pending' => __('Pending'), 'paid' => __('Paid'), 'completed' => __('Completed'), + 'awaiting_pickup' => __('Awaiting Pickup'), 'failed' => __('Failed'), 'abandoned' => __('Unpaid'), 'cancelled' => __('Cancelled'), 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 02472c2..43369d3 100644 --- a/resources/views/admin/sales/partials/order-detail-panel.blade.php +++ b/resources/views/admin/sales/partials/order-detail-panel.blade.php @@ -34,6 +34,7 @@ 'pending' => 'pending', 'paid' => 'active', 'completed' => 'active', + 'awaiting_pickup' => 'pending', 'failed' => 'error', 'abandoned' => 'disabled', 'cancelled' => 'disabled', @@ -43,6 +44,7 @@ 'pending' => __('Pending'), 'paid' => __('Paid'), 'completed' => __('Completed'), + 'awaiting_pickup' => __('Awaiting Pickup'), 'failed' => __('Failed'), 'abandoned' => __('Unpaid'), 'cancelled' => __('Cancelled'), diff --git a/resources/views/admin/sales/partials/tab-orders.blade.php b/resources/views/admin/sales/partials/tab-orders.blade.php index ae790e3..beac529 100644 --- a/resources/views/admin/sales/partials/tab-orders.blade.php +++ b/resources/views/admin/sales/partials/tab-orders.blade.php @@ -31,11 +31,14 @@ {{-- 付款狀態 --}}
- + + @@ -325,6 +328,8 @@ 'pending' => ['label' => __('Pending'), 'color' => 'amber'], 'paid' => ['label' => __('Paid'), 'color' => 'emerald'], 'completed' => ['label' => __('Completed'), 'color' => 'emerald'], + 'awaiting_pickup' => ['label' => __('Awaiting Pickup'), 'color' => 'amber'], + 'awaiting_pickup' => ['label' => __('Awaiting Pickup'), 'color' => 'amber'], 'failed' => ['label' => __('Failed'), 'color' => 'rose'], 'abandoned' => ['label' => __('Unpaid'), 'color' => 'slate'], 'cancelled' => ['label' => __('Cancelled'), 'color' => 'slate'],