@php $status = $salesOrder->status ?? ''; $statusClass = match ($status) { 'DRAFT' => 'draft', 'SUBMITTED', 'PENDING_APPROVAL' => 'pending', 'APPROVED' => 'approved', 'PARTIAL' => 'partial', 'COMPLETED' => 'completed', 'CANCELLED' => 'cancelled', default => 'pending', }; $formatAddress = function ($addr) { if (!$addr) { return ''; } $parts = array_filter([ $addr->address_line1 ?? null, $addr->address_line2 ?? null, $addr->city ?? null, ($addr->state->state_name ?? $addr->state->name ?? null) ?? null, $addr->pincode ?? null, $addr->country ?? null, ], fn ($v) => !empty($v)); return implode(', ', $parts); }; @endphp
{{ $salesOrder->company->company_name ?? 'Company' }}
@if($salesOrder->companyGst) GSTIN: {{ $salesOrder->companyGst->gstin_number }}
@endif Address: @if($salesOrder->companyGst) {{ $salesOrder->companyGst->address_line1 ?? '' }} @if(!empty($salesOrder->companyGst->address_line2)) , {{ $salesOrder->companyGst->address_line2 }} @endif @if(!empty($salesOrder->companyGst->city)) , {{ $salesOrder->companyGst->city }} @endif @if($salesOrder->companyGst->state) , {{ $salesOrder->companyGst->state->state_name ?? $salesOrder->companyGst->state->name ?? '' }} @endif @if(!empty($salesOrder->companyGst->pincode)) - {{ $salesOrder->companyGst->pincode }} @endif @else N/A @endif
@if($salesOrder->company && $salesOrder->company->phone) Phone: {{ $salesOrder->company->phone }} | @endif @if($salesOrder->company && $salesOrder->company->email) Email: {{ $salesOrder->company->email }} @endif
Sales Order

Sales Order Details

SO Number: {{ $salesOrder->so_number }}
SO Date: {{ optional($salesOrder->so_date)->format('d-M-Y') ?? '-' }}
Expected Delivery: {{ optional($salesOrder->expected_delivery_date)->format('d-M-Y') ?? '-' }}
Status: {{ str_replace('_', ' ', $salesOrder->status ?? '-') }}
@if(!empty($salesOrder->customer_po_number))
Customer PO: {{ $salesOrder->customer_po_number }} @if(!empty($salesOrder->customer_po_date)) ({{ optional($salesOrder->customer_po_date)->format('d-M-Y') }}) @endif
@endif

Customer Details

Customer: {{ $salesOrder->customer->customer_name ?? 'Customer' }}
@if($salesOrder->customerGstin)
Customer GSTIN: {{ $salesOrder->customerGstin->gstin_number }}
@endif
Billing Address: {{ $formatAddress($salesOrder->billingAddress) ?: 'N/A' }}
Shipping Address: {{ $formatAddress($salesOrder->shippingAddress) ?: (!empty($salesOrder->shipping_address) ? $salesOrder->shipping_address : 'Same as Billing') }}
Tax Type: @if($salesOrder->tax_type === 'INTRASTATE') INTRASTATE (CGST + SGST) @elseif($salesOrder->tax_type === 'INTERSTATE') INTERSTATE (IGST) @else EXEMPTED (No Tax) @endif
@if($salesOrder->tax_type === 'INTRASTATE') @elseif($salesOrder->tax_type === 'INTERSTATE') @endif @foreach($salesOrder->lines as $index => $line) @if($salesOrder->tax_type === 'INTRASTATE') @elseif($salesOrder->tax_type === 'INTERSTATE') @endif @endforeach
# Product / Variant HSN Qty UOM RateCGST SGSTIGSTTotal
{{ $index + 1 }} {{ $line->productVariant->product->product_name ?? '-' }}
{{ $line->productVariant->sku ?? ($line->productVariant->variant_name ?? '') }}
{{ $line->hsn_code ?? 'N/A' }} {{ number_format($line->ordered_qty, 2) }} {{ $line->uom->uom_code ?? '-' }} ₹{{ number_format($line->rate, 2) }} {{ $line->cgst_rate }}%
₹{{ number_format($line->cgst_amount, 2) }}
{{ $line->sgst_rate }}%
₹{{ number_format($line->sgst_amount, 2) }}
{{ $line->igst_rate }}%
₹{{ number_format($line->igst_amount, 2) }}
₹{{ number_format($line->line_total, 2) }}
Subtotal: ₹{{ number_format($salesOrder->taxable_amount, 2) }}
@if(($salesOrder->other_charges ?? 0) > 0)
Other Charges: ₹{{ number_format($salesOrder->other_charges, 2) }}
@endif @if($salesOrder->tax_type === 'INTRASTATE')
Total CGST: ₹{{ number_format($salesOrder->cgst_amount, 2) }}
Total SGST: ₹{{ number_format($salesOrder->sgst_amount, 2) }}
@elseif($salesOrder->tax_type === 'INTERSTATE')
Total IGST: ₹{{ number_format($salesOrder->igst_amount, 2) }}
@endif @if($salesOrder->discount_amount > 0)
Discount: -₹{{ number_format($salesOrder->discount_amount, 2) }}
@endif
GRAND TOTAL: ₹{{ number_format($salesOrder->total_amount, 2) }}