diff --git a/app/Http/Controllers/Admin/PharmacyPickupController.php b/app/Http/Controllers/Admin/PharmacyPickupController.php index e38f60a..3785aeb 100644 --- a/app/Http/Controllers/Admin/PharmacyPickupController.php +++ b/app/Http/Controllers/Admin/PharmacyPickupController.php @@ -59,6 +59,20 @@ class PharmacyPickupController extends AdminController ]); } + /** + * AJAX:回傳某機台目前可領藥品(建立領藥單彈窗用,對齊取貨碼 slots-ajax 模式)。 + */ + public function productsAjax(Machine $machine) + { + $enabled = ($machine->settings['shopping_mode'] ?? null) === 'pickup_sheet' + && (bool) ($machine->settings['pharmacy_pickup_enabled'] ?? false); + abort_unless($enabled, 403); + + return response()->json([ + 'products' => $this->service->availableProducts($machine)->values(), + ]); + } + public function store(Request $request) { $request->validate([ diff --git a/resources/views/admin/sales/pharmacy-pickup/index.blade.php b/resources/views/admin/sales/pharmacy-pickup/index.blade.php index 8065d81..3092973 100644 --- a/resources/views/admin/sales/pharmacy-pickup/index.blade.php +++ b/resources/views/admin/sales/pharmacy-pickup/index.blade.php @@ -10,177 +10,449 @@ 'abandoned' => __('Abandoned'), ]; $statusColors = [ - 'awaiting_pickup' => 'bg-amber-100 text-amber-700 dark:bg-amber-500/10 dark:text-amber-400', - 'completed' => 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400', - 'failed' => 'bg-rose-100 text-rose-700 dark:bg-rose-500/10 dark:text-rose-400', + 'awaiting_pickup' => 'bg-amber-500/10 border border-amber-500/20 text-amber-600 dark:text-amber-400', + 'completed' => 'bg-emerald-500/10 border border-emerald-500/20 text-emerald-600 dark:text-emerald-400', + 'failed' => 'bg-rose-500/10 border border-rose-500/20 text-rose-600 dark:text-rose-400', + 'pending' => 'bg-slate-500/10 border border-slate-500/20 text-slate-500', + 'abandoned' => 'bg-slate-500/10 border border-slate-500/20 text-slate-500', ]; @endphp -
{{ __('No machines enabled for pharmacy pickup. Enable it under Machine System Settings (Pickup Sheet mode → Pharmacy Pickup switch).') }}
- @else - {{-- 選機台(變更即重新載入該機台可領藥品) --}} - - - @if($selectedMachine) - - @endif - @endif -| {{ __('Order No.') }} | -{{ __('Pricing Slip No.') }} | -{{ __('Machine') }} | -{{ __('Items') }} | -{{ __('Pickup Code') }} | -{{ __('Status') }} | -{{ __('Created') }} | -{{ __('Actions') }} | + {{-- Desktop Table --}} +||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ __('Order No.') }} | +{{ __('Machine') }} | +{{ __('Items') }} | +{{ __('Pickup Code') }} | +{{ __('Status') }} | +{{ __('Created') }} | +{{ __('Actions') }} | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| {{ $order->order_no }} | -{{ $order->pricing_slip_no ?: '-' }} | -{{ $order->machine?->name ?? '-' }} | -
- @foreach($order->items as $it)
- {{ $it->product_name }} × {{ $it->quantity }}
- @endforeach
+ | |||||||
|
+ {{ $order->order_no }}
+ @if($order->pricing_slip_no)
+ {{ __('Pricing Slip No.') }}: {{ $order->pricing_slip_no }}
+ @endif
|
- {{ $order->pickupCode?->code ?? '-' }} | -- {{ $statusLabels[$order->status] ?? $order->status }} + |
+ {{ $order->machine?->name ?? '-' }}
+ {{ $order->machine?->serial_no }}
|
-
- {{ $order->created_at?->format('Y-m-d H:i') }}
- {{ $order->creator?->name }}
+ |
+
+ @foreach($order->items as $it)
+
{{ $it->product_name }} × {{ $it->quantity }}
+ @endforeach
+ |
-
-
+
+ @if($order->pickupCode?->code)
+ {{ $order->pickupCode->code }}
+ @else
+ -
+ @endif
+ |
+
+ {{ $statusLabels[$order->status] ?? $order->status }}
+ |
+
+ |
+ {{ $order->created_at?->format('Y-m-d H:i') }}
+ {{ $order->creator?->name }}
+
+ |
@if($order->status !== 'failed' && $order->pickupCode)
- {{ __('Print') }}
+
+
+
@endif
@if($order->status === 'awaiting_pickup')
-
@endif
- @if($order->status === 'failed' && !($order->pickupCode))
- -
+ @if($order->status !== 'awaiting_pickup' && !($order->status !== 'failed' && $order->pickupCode))
+ -
@endif
|
| {{ __('No pharmacy pickup orders yet.') }} | ||||||||||
{{ $order->machine?->name ?? '-' }}
+{{ __('Pickup Code') }}
+{{ $order->pickupCode?->code ?? '-' }}
+{{ __('Pricing Slip No.') }}
+{{ $order->pricing_slip_no ?: '-' }}
+{{ __('Items') }}
+{{ $it->product_name }} × {{ $it->quantity }}
+ @endforeach +{{ __('Created') }}
+{{ $order->created_at?->format('Y-m-d H:i') }} · {{ $order->creator?->name }}
+