@php $pageConfigs = ['navbarType' => 'hidden', 'contentLayout' => 'wide']; $configData = Helper::appClasses(); $statusMap = [ 'pending' => ['Pendiente', 'warning'], 'confirmed' => ['Confirmado', 'info'], 'at_restaurant' => ['En restaurante', 'primary'], 'en_route' => ['En camino', 'primary'], 'delivered' => ['Entregado', 'success'], 'cancelled' => ['Cancelado', 'danger'], ]; @endphp @extends('layouts/layoutMaster') @section('title', 'Pedidos') @section('content')

Pedidos activos

Ver mapa
@if (session('success'))
{{ session('success') }}
@endif @if ($errors->any())
@endif @if (($activeDeliveries ?? collect())->count())
Pedidos en progreso
{{ ($activeDeliveries ?? collect())->count() }}
@foreach ($activeDeliveries as $delivery) @php [$label, $color] = $statusMap[$delivery->status] ?? ['Pendiente', 'warning']; $origin = $delivery->restaurant?->address ?? ''; $destination = $delivery->delivery_address ?? ''; $navApp = auth()->user()->nav_app ?? 'maps'; $navUrl = $navApp === 'waze' ? 'https://waze.com/ul?q=' . urlencode($destination) . '&navigate=yes' : 'https://www.google.com/maps/dir/?api=1&origin=' . urlencode($origin) . '&destination=' . urlencode($destination); $needsDetails = $delivery->is_urgent && ( empty($delivery->customer_name) || $delivery->customer_name === 'Por definir' || empty($delivery->delivery_address) || $delivery->delivery_address === 'Por definir' || empty($delivery->customer_phone) ); @endphp
{{ $label }} #{{ $delivery->id }}
{{ $delivery->customer_name }}
{{ $delivery->delivery_address }} @if ($delivery->is_urgent) Urgente @endif
Recogida {{ $delivery->restaurant?->address ?? 'Restaurante' }}
Entrega {{ $delivery->delivery_address }}
@if ($delivery->delivery_address_extra)
Extra {{ $delivery->delivery_address_extra }}
@endif
@if ($delivery->is_urgent)
Datos del cliente
@if (!$needsDetails) @endif
@if ($needsDetails)
@csrf
Completa los datos para poder finalizar la entrega. @else
Cliente {{ $delivery->customer_name }}
Teléfono {{ $delivery->customer_phone ?? '-' }}
Dirección {{ $delivery->delivery_address }}
@if ($delivery->delivery_address_extra)
Extra {{ $delivery->delivery_address_extra }}
@endif
@csrf
@endif
@endif
Abrir navegación @php $nextAction = match ($delivery->status) { 'pending' => ['confirmed', 'Confirmar pedido', 'btn-primary'], 'confirmed' => ['at_restaurant', 'He llegado al restaurante', 'btn-info'], 'at_restaurant' => ['en_route', 'Salir al cliente', 'btn-warning'], 'en_route' => ['delivered', 'Entregado', 'btn-success'], default => null, }; @endphp @if ($nextAction)
@csrf
@endif
@endforeach
@endif
@endsection @section('page-style') @endsection @section('page-script') @endsection