@extends('layout.app') @section('title','Truck Performance') @push('header_script') @endpush @section('content')
{{ $vehicle->vehicle_no }}

{{ $vehicle->vehicle_model }}

{{ $vehicle->owner_name }}

Back

Current Odometer

{{ $vehicle->current_km ?? 'N/A' }} km

Active Driver

{{ $activeDriver?->employee?->employee_name ?? 'N/A' }}

Freight Entry List — GRs booked on this truck

Read-only, pulled from the Freight Entry module and filtered to this truck

S.No.GR No.GR DateRouteConsignorConsigneeMaterialWeightFreight ₹Advance ₹Balance ₹Status
-
Total Trips
-
Total Revenue
-
Total Expense
-
Net Profit / Loss

Trip Sheet History

Read-only, pulled from the Trip Sheet module and filtered to this truck

+ Add Trip
Trip No.DatesRouteDriverStart KMEnd KMTotal KMRevenue ₹Diesel LtrDiesel ₹Other Exp ₹Total Exp ₹MileageNet P&L ₹

Daily KM Entry

Daily odometer log for this truck

+ Add Today's Reading
DateOdometer ReadingKM Run (Day)Entered By

Servicing on KM

Interval settings for this truck

+ Add Service Type
@if(!empty($reminderText))
Dashboard reminder: {{ $reminderText }}
@endif
@forelse($serviceSettings as $setting) @empty @endforelse
Service TypeInterval (KM)Last Done KMNext Due KMKM RemainingStatus
{{ $setting->serviceType->name ?? 'N/A' }} {{ $setting->interval_km }} {{ $setting->last_done_km }} {{ $setting->next_due_km }} {{ $setting->km_remaining }} @if($setting->km_remaining <= 0) Overdue @elseif($setting->km_remaining <= 500) Due Soon @else OK @endif
No service interval settings found.

Service History

Log of services carried out, most recent first

+ Add Service Entry
Service TypeDateOdometer KMCost ₹CenterRemarks

Remarks

Free-text notes for this truck — every entry stays on the log

@csrf
    @forelse($vehicle->remarks()->orderBy('created_at', 'desc')->get() as $remark)
  • {{ $remark->remark }}

    {{ $remark->created_at->format('d M Y · h:i A') }} · Added by {{ $remark->user->name ?? 'System' }}

  • @empty
  • No remarks added yet.

  • @endforelse

Registration (RC)

{{ $vehicle->vehicle_no ?? 'N/A' }}
{{ $vehicle->document->chassis_no ?? 'N/A' }}
{{ $vehicle->document->engine_no ?? 'N/A' }}
{{ $vehicle->document->rc_document_date ? \Carbon\Carbon::parse($vehicle->document->rc_document_date)->format('d M Y') : 'N/A' }}
{{ $vehicle->document->rc_expiry ? \Carbon\Carbon::parse($vehicle->document->rc_expiry)->format('d M Y') : 'N/A' }}

Insurance

{{ $vehicle->document->insurance_no ?? 'N/A' }}
{{ $vehicle->document->insurance_company ?? 'N/A' }}
{{ $vehicle->document->insurance_start ? \Carbon\Carbon::parse($vehicle->document->insurance_start)->format('d M Y') : 'N/A' }}
{{ $vehicle->document->insurance_expiry ? \Carbon\Carbon::parse($vehicle->document->insurance_expiry)->format('d M Y') : 'N/A' }}

PUC

{{ $vehicle->document->puc_no ?? 'N/A' }}
{{ $vehicle->document->puc_document_date ? \Carbon\Carbon::parse($vehicle->document->puc_document_date)->format('d M Y') : 'N/A' }}
{{ $vehicle->document->puc_expiry ? \Carbon\Carbon::parse($vehicle->document->puc_expiry)->format('d M Y') : 'N/A' }}

Fitness Certificate

{{ $vehicle->document->fitness_no ?? 'N/A' }}
{{ $vehicle->document->fitness_document_date ? \Carbon\Carbon::parse($vehicle->document->fitness_document_date)->format('d M Y') : 'N/A' }}
{{ $vehicle->document->fitness_expiry ? \Carbon\Carbon::parse($vehicle->document->fitness_expiry)->format('d M Y') : 'N/A' }}

Road Tax

{{ $vehicle->document->road_tax_amount ?? 'N/A' }}
{{ $vehicle->document->road_tax_document_date ? \Carbon\Carbon::parse($vehicle->document->road_tax_document_date)->format('d M Y') : 'N/A' }}
{{ $vehicle->document->road_tax_expiry ? \Carbon\Carbon::parse($vehicle->document->road_tax_expiry)->format('d M Y') : 'N/A' }}

Accidental / Claim History

All accident and insurance-claim records for this truck

+ Add Record
DateLocationDriverDescriptionClaim No.InsurerClaim ₹Settled ₹Repair ₹Status
@php $latestTool = $tools->first(); $toolListLink = $latestTool ? route('vehicle-tool-list.edit', $latestTool->id) . '?redirect_to=performance' : route('vehicle-tool-list.create', ['vehicle_id' => $vehicle->id, 'redirect_to' => 'performance']); @endphp

Tyres

All tyres currently fitted on this truck

+ Add Tyre
@if($latestTool && $latestTool->tyres->count() > 0) @foreach($latestTool->tyres as $idx => $tyre) @endforeach @else @endif
S.No.Tyre SKU / Serial No.CompanyPositionIssue DateRunning KMStatus
{{ $idx + 1 }} {{ $tyre->tyre_number }} {{ $tyre->tyre_company }} {{ $tyre->position }} {{ $tyre->issue_date ? \Carbon\Carbon::parse($tyre->issue_date)->format('d M Y') : 'N/A' }} {{ $tyre->running_km ?? 0 }} @if($tyre->status == 'Good' || $tyre->status == 'Active') {{ $tyre->status }} @elseif($tyre->status == 'Needs Check') {{ $tyre->status }} @elseif($tyre->status == 'Replaced') {{ $tyre->status }} @else {{ $tyre->status ?? 'N/A' }} @endif
No tyres recorded.

Battery

+ Add Battery
@if($latestTool && $latestTool->batteries->count() > 0) @foreach($latestTool->batteries as $idx => $battery) @endforeach @else @endif
S.No.Battery Serial / SKU No.CompanyIssue DateRunning PeriodStatus
{{ $idx + 1 }} {{ $battery->battery_number }} {{ $battery->company }} {{ $battery->issue_date ? \Carbon\Carbon::parse($battery->issue_date)->format('d M Y') : 'N/A' }} {{ $battery->running_period ?? 'N/A' }} @if($battery->status == 'Good' || $battery->status == 'Active') {{ $battery->status }} @elseif($battery->status == 'Needs Check') {{ $battery->status }} @elseif($battery->status == 'Replaced') {{ $battery->status }} @else {{ $battery->status ?? 'N/A' }} @endif
No batteries recorded.

Other Tools & Kits

Standard tool checklist — verified against the SOP below

+ Verify Now
@php $lastVerified = $latestTool && $latestTool->date ? \Carbon\Carbon::parse($latestTool->date)->format('d M Y') : 'N/A'; $issueDate = $vehicle->created_at ? $vehicle->created_at->format('d M Y') : 'N/A'; $toolItems = [ ['key' => 'jack', 'name' => 'Hydraulic Jack', 'qty' => 1], ['key' => 'stepney_spanner', 'name' => 'Wheel Spanner Set', 'qty' => 1], ['key' => 'stepney', 'name' => 'Spare Tyre (Stepney)', 'qty' => 1], ['key' => 'tool_set', 'name' => 'Tool Kit Box', 'qty' => 1], ['key' => 'rope', 'name' => 'Tow Rope / Chain', 'qty' => 1], ['key' => 'fire_extinguisher', 'name' => 'Fire Extinguisher', 'qty' => 1], ['key' => 'tire_lever', 'name' => 'Tire Lever', 'qty' => 2], ['key' => 'bucket', 'name' => 'Bucket', 'qty' => 1], ['key' => 'tarpaulin_cloth', 'name' => 'Tarpaulin (Cloth)', 'qty' => 1], ['key' => 'tarpaulin_plastic', 'name' => 'Tarpaulin (Plastic)', 'qty' => 1], ]; @endphp @foreach($toolItems as $idx => $item) @php // Basic condition simulation based on presence of toollist $isAvailable = $latestTool ? ($latestTool->{$item['key']} ? 1 : 0) : 'N/A'; $condition = $isAvailable === 1 ? 'Good' : ($isAvailable === 0 ? 'Missing' : 'N/A'); @endphp @endforeach
S.No.ItemStd. QtyAvailableIssue DateLast VerifiedCondition
{{ $idx + 1 }} {{ $item['name'] }} {{ $item['qty'] }} {{ $isAvailable }} {{ $issueDate }} {{ $lastVerified }} @if($condition == 'Good') Good @elseif($condition == 'Missing') Missing @else {{ $condition }} @endif
SOP: Verify this checklist at every trip-end (or monthly — confirm cadence). Any item marked Worn/Missing triggers a replacement request; once replaced, reset Condition to Good and update Last Verified.

Driver History

Every driver assigned to this truck

+ Assign Driver
DriverLicense No.Assigned FromAssigned ToDurationKM DrivenReason
@endsection @push('footer_script') @endpush