@extends('layouts.admin') @section('title','Dispatch job') @section('heading','Dispatch job') @section('content')

{{ $job->parcel_order_id ? 'Parcel '.$job->parcelOrder?->number : 'Order '.$job->order?->number }}

Back to dispatch
Status{{ str_replace('_',' ',$job->status) }}
Driver feeINR {{ number_format($job->driver_fee,2) }}
Offer attempts{{ $job->offer_attempts }}
Distance{{ $job->distance_km ? number_format($job->distance_km,2).' km' : 'Pending' }}

Driver

{{ $job->driver?->user?->name ?: 'Unassigned' }}
{{ $job->driver?->user?->email }}
{{ $job->driver?->user?->phone }}

@if($job->offer_expires_at)Offer expires {{ $job->offer_expires_at->format('d M Y H:i:s') }}@endif

Coordinates

Pickup: {{ $job->pickup_latitude }}, {{ $job->pickup_longitude }}

Drop-off: {{ $job->dropoff_latitude }}, {{ $job->dropoff_longitude }}

@if(in_array($job->status,['searching','rejected']))

Reassign job

@csrf
@endif @if(in_array($job->status,['searching','rejected','offered','accepted']))

Manual assignment

Only active, approved, online, available, subscribed, cash-compliant drivers with a verified vehicle and fresh location are shown. Lower workload is ranked first, then pickup distance.

@csrf
@endif

Assignment history

@forelse($job->events->sortByDesc('created_at') as $event)@empty@endforelse
TimeFromToDetails
{{ $event->created_at->format('d M Y H:i') }}{{ $event->from_status ?: '—' }}{{ str_replace('_',' ',$event->to_status) }}{{ data_get($event->metadata,'reason') ?: (data_get($event->metadata,'distance_km') ? data_get($event->metadata,'distance_km').' km from pickup' : '—') }}
No assignment events.
@endsection