@php $normalize = static fn (?string $name) => preg_replace('/\s+/', ' ', strtolower(trim((string) $name))); $installationItem = $quotation->items->first(function ($i) use ($normalize) { return in_array($normalize($i->product_name), ['installation charges', 'installation charge'], true); }); $transportationItem = $quotation->items->first(function ($i) use ($normalize) { return $normalize($i->product_name) === 'transportation'; }); $baseItems = $quotation->items ->reject(function ($i) use ($normalize) { $name = $normalize($i->product_name); return $name === 'commission' || in_array($name, ['installation charges', 'installation charge', 'transportation'], true); }) ->map(fn ($i) => [ 'product_name' => (string) $i->product_name, 'description' => (string) ($i->description ?? ''), 'quantity' => (int) $i->quantity, 'price' => (float) $i->price, ])->values()->all(); $includeInstallation = (bool) old('include_installation', (bool) $installationItem); $installationPrice = (float) old('installation_price', (float) ($installationItem?->price ?? 0)); $includeTransportation = (bool) old('include_transportation', (bool) $transportationItem); $transportationPrice = (float) old('transportation_price', (float) ($transportationItem?->price ?? 0)); @endphp
Quotations Edit & Preview

Quotation Version Editor

Based on v{{ $quotation->version_number }} ({{ $quotation->created_by }}) — Enquiry #{{ $quotation->enquiry->id }}
Back
@csrf
Editable Fields (Seller)
Preview updates live
To (Customer)
Optional
Site Installation & Labour
Delivery to Site / Logistics
Cancel
@include('partials.quotation.reseller_to_customer_preview')