@php
$dir = 'rtl';
// ── Logo ──
$logoImg = $logoSrc ?? null;
if (!$logoImg) {
$logoImgRaw = data_get($company ?? [], 'invoice_logo') ?: null;
$isHtml = request()->query('view') === 'html';
if ($logoImgRaw) {
$logoImg = $isHtml ? asset($logoImgRaw) : public_path($logoImgRaw);
if (!$isHtml && !file_exists($logoImg)) $logoImg = null;
}
}
$companyName = data_get($company ?? [], 'company_name')
?? data_get($company ?? [], 'name_company')
?? 'Azora';
// ── Order ID ──
$orderId = str_pad($carRentalDetail->id ?? 0, 4, '0', STR_PAD_LEFT);
// ── Dates ──
$expectedDate = $carRentalDetail->return_at
? \Carbon\Carbon::parse($carRentalDetail->return_at)->format('Y/m/d')
: '---';
$returnDate = '---';
$exitDate = $carRentalDetail->pickup_at
? \Carbon\Carbon::parse($carRentalDetail->pickup_at)->format('Y/m/d')
: '---';
$netDuration = $carRentalDetail->rental_days ?? '---';
// ── Customer Info ──
$customer = $carRentalDetail->profile?->customer;
$customerName = $customer?->full_name ?? '---';
$permAddress = $customer?->address ?? '---';
$egyptAddress = '---';
$email = $customer?->email ?? '---';
$licenseNumber = $customer?->license_number ?? '---';
$licenseIssuedFrom = $customer?->license_issued_from ?? '---';
$licenseIssue = $customer?->license_issue_date ? \Carbon\Carbon::parse($customer->license_issue_date)->format('Y/m/d') : '---';
$licenseExpiry = $customer?->license_expiry_date ? \Carbon\Carbon::parse($customer->license_expiry_date)->format('Y/m/d') : '---';
$nationality = $customer?->nationality?->currentTranslation?->name ?? '---';
$dob = $customer?->birth_date ? \Carbon\Carbon::parse($customer->birth_date)->format('Y/m/d') : '---';
$idNumber = $customer?->id_number ?? '---';
$idIssueDate = $customer?->id_issue_date ? \Carbon\Carbon::parse($customer->id_issue_date)->format('Y/m/d') : '---';
$passportNumber = $customer?->passport ?? '---';
// If with_driver is true, populate the top license/ID fields with the driver's info
if ($carRentalDetail->with_driver && $carRentalDetail->driver) {
$drv = $carRentalDetail->driver;
$licenseNumber = $drv->license_number ?? '---';
$licenseExpiry = $drv->license_expiry_date ? \Carbon\Carbon::parse($drv->license_expiry_date)->format('Y/m/d') : '---';
$idNumber = $drv->national_id ?? '---';
// The driver model might not have these fields, but we clear them if they belonged to the customer
$licenseIssuedFrom = '---';
$licenseIssue = '---';
$dob = '---';
$idIssueDate = '---';
$passportNumber = '---';
}
// ── Drivers (سائق أول / سائق ثان) ──
// Prepare unified driver data regardless of with_driver flag
$driver1 = null; // سائق أول
$driver2 = null; // سائق ثان
if ($carRentalDetail->with_driver) {
// With driver: driver1 = company driver, driver2 = first driverAssignment
$driverModel = $carRentalDetail->driver;
if ($driverModel) {
$driver1 = [
'name' => $driverModel->full_name ?? '---',
'id_number' => $driverModel->national_id ?? '---',
'license_number' => $driverModel->license_number ?? '---',
'license_issued_from' => '---',
'license_issue_date' => '---',
'license_expiry_date' => $driverModel->license_expiry_date ? \Carbon\Carbon::parse($driverModel->license_expiry_date)->format('Y/m/d') : '---',
];
}
$assignment1 = $carRentalDetail->driverAssignments?->get(0);
if ($assignment1 && $assignment1->customer) {
$c = $assignment1->customer;
$driver2 = [
'name' => $c->full_name ?? '---',
'id_number' => $c->id_number ?? '---',
'license_number' => $c->license_number ?? '---',
'license_issued_from' => $c->license_issued_from ?? '---',
'license_issue_date' => $c->license_issue_date ? \Carbon\Carbon::parse($c->license_issue_date)->format('Y/m/d') : '---',
'license_expiry_date' => $c->license_expiry_date ? \Carbon\Carbon::parse($c->license_expiry_date)->format('Y/m/d') : '---',
];
}
} else {
// Without driver: both from driverAssignments
$assignment1 = $carRentalDetail->driverAssignments?->get(0);
$assignment2 = $carRentalDetail->driverAssignments?->get(1);
if ($assignment1 && $assignment1->customer) {
$c = $assignment1->customer;
$driver1 = [
'name' => $c->full_name ?? '---',
'id_number' => $c->id_number ?? '---',
'license_number' => $c->license_number ?? '---',
'license_issued_from' => $c->license_issued_from ?? '---',
'license_issue_date' => $c->license_issue_date ? \Carbon\Carbon::parse($c->license_issue_date)->format('Y/m/d') : '---',
'license_expiry_date' => $c->license_expiry_date ? \Carbon\Carbon::parse($c->license_expiry_date)->format('Y/m/d') : '---',
];
}
if ($assignment2 && $assignment2->customer) {
$c = $assignment2->customer;
$driver2 = [
'name' => $c->full_name ?? '---',
'id_number' => $c->id_number ?? '---',
'license_number' => $c->license_number ?? '---',
'license_issued_from' => $c->license_issued_from ?? '---',
'license_issue_date' => $c->license_issue_date ? \Carbon\Carbon::parse($c->license_issue_date)->format('Y/m/d') : '---',
'license_expiry_date' => $c->license_expiry_date ? \Carbon\Carbon::parse($c->license_expiry_date)->format('Y/m/d') : '---',
];
}
}
// ── Vehicle ──
$vehicle = $carRentalDetail->vehicle;
$plateNumber = '---';
$chassisNumber = '---';
$engineNumber = '---';
$vehicleType = '---';
$modelYear = '---';
if ($vehicle) {
$plateNumber = $vehicle->plate_number ?? '---';
$chassisNumber = $vehicle->chassis_number ?? '---';
$engineNumber = $vehicle->engine_number ?? '---';
$modelYear = $vehicle->manufacture_year ?? '---';
$brandName = $vehicle->brand->currentTranslation->title ?? ($vehicle->brand->translations->first()->title ?? '');
$modelName = $vehicle->model->currentTranslation->title ?? ($vehicle->model->translations->first()->title ?? '');
$vehicleType = trim("$brandName $modelName") ?: '---';
}
if ($carRentalDetail->rental_source === 'supplier' && !$vehicle) {
$plateNumber = $carRentalDetail->supplier_vehicle_plate ?? '---';
$chassisNumber = $carRentalDetail->supplier_vehicle_chassis ?? '---';
$vehicleType = trim(
($carRentalDetail->supplier_vehicle_brand ?? '') . ' ' .
($carRentalDetail->supplier_vehicle_model ?? '')
) ?: '---';
$modelYear = $carRentalDetail->supplier_vehicle_model_year ?? '---';
}
// ── Kilometers & Costs ──
$departureKm = number_format((float)($carRentalDetail->pickup_odometer ?? 0), 0);
$returnKm = number_format((float)($carRentalDetail->return_odometer ?? 0), 0);
$usedKm = number_format(max(0, (float)($carRentalDetail->return_odometer ?? 0) - (float)($carRentalDetail->pickup_odometer ?? 0)), 0);
$allowedKm = number_format((float)($carRentalDetail->km_per_day ?? 0), 0) . ' / اليوم';
$extraKm = number_format((float)($carRentalDetail->extra_km_amount ?? 0), 0);
$extraKmRate = number_format((float)($carRentalDetail->extra_km_rate ?? 0), 2) . ' / إجمالية جارية';
$deliveryService = '---'; // Optional
$basicPrice = number_format((float)($carRentalDetail->daily_rate ?? 0), 2);
$value = number_format((float)($carRentalDetail->invoiceService?->invoice?->invoice_price ?? 0), 2);
$paidAmount = number_format((float)($carRentalDetail->advance_amount ?? 0), 2);
$additionalPay = number_format((float)($carRentalDetail->additions_amount ?? 0), 2);
@endphp
عقد إيجار سيارة {{ $orderId }} - {{ $companyName }}
{{-- 1. Header --}}
{{-- 2. Two Columns Layout --}}
{{-- Right Column (Customer & Companions) --}}
الاسم
{{ $customerName }}
عنوان الإقامة الدائمة
{{ $permAddress }}
عنوان الإقامة بمصر
{{ $egyptAddress }}
الإيميل
{{ $email }}
رقم الرخصة
{{ $licenseNumber }}
تاريخ الإصدار
{{ $licenseIssue }}
تاريخ الانتهاء
{{ $licenseExpiry }}
الجنسية
{{ $nationality }}
رقم البطاقة
{{ $idNumber }}
تاريخ الإصدار
{{ $idIssueDate }}
رقم جواز السفر
{{ $passportNumber }}
{{-- سائق أول --}}
سائق أول :
الاسم
{{ $driver1['name'] ?? '---' }}
رقم البطاقة
{{ $driver1['id_number'] ?? '---' }}
رقم الرخصة
{{ $driver1['license_number'] ?? '---' }}
صادرة من
{{ $driver1['license_issued_from'] ?? '---' }}
تاريخ الإصدار
{{ $driver1['license_issue_date'] ?? '---' }}
{{-- سائق ثان --}}
سائق ثان :
الاسم
{{ $driver2['name'] ?? '---' }}
رقم البطاقة
{{ $driver2['id_number'] ?? '---' }}
رقم الرخصة
{{ $driver2['license_number'] ?? '---' }}
صادرة من
{{ $driver2['license_issued_from'] ?? '---' }}
تاريخ الإصدار
{{ $driver2['license_issue_date'] ?? '---' }}
{{-- Text Section --}}
يقبل المستأجر دفع قيمة الإصلاحات الناتجة عن الحوادث التي يقوم بها أثناء فترة الإيجار أي كان المتسبب هو أم الغير وكذلك تحمل قيمة الإيجار عن الأيام المستغرقة في الإصلاح.
في حالة فقد رخصة أو لوحة السيارة يتحمل المستأجر دفع مبلغ وقدره ٥٠٠٠ جنيه
{{-- Left Column (Dates, Vehicle & Financials) --}}
تاريخ المتوقع
{{ $expectedDate }}
تاريخ العودة
{{ $returnDate }}
تاريخ الخروج
{{ $exitDate }}
صافي المدة
{{ $netDuration }}
نوع السيارة
{{ $vehicleType }}
سنة الموديل
{{ $modelYear }}
رقم الشاسيه
{{ $chassisNumber }}
رقم المحرك
{{ $engineNumber }}
رقم اللوحة
{{ $plateNumber }}
كم دخول
{{ $departureKm }}
كم خروج
{{ $returnKm }}
كم مستخدم
{{ $usedKm }}
كم مسموح
{{ $allowedKm }}
كم زيادة
{{ $extraKm }}
سعر كم زيادة
{{ $extraKmRate }}
خدمة التوصيل
{{ $deliveryService }}
السعر الأساسي
{{ $basicPrice }}
القيمة
{{ $value }}
المبلغ المدفوع
{{ $paidAmount }}
دفعات إضافية
{{ $additionalPay }}
مستوى البنزين في حالة :
الخروج
الدخول
لا يعتمد إلا بختم الشركة
{{-- 3. Signatures Section --}}
{{-- Company Approvals --}}
اعتمد بواسطة
مدير التشغيل
-
مقبل العقد
-
فاتح العقد
-
{{-- Renter Signature --}}
اسم المستأجر:
{{ $customerName }}
توقيع المستأجر
@include('pdf.layouts.footer')