Refactor the shipping rates import process to remove redundant comments and simplify variable assignments. Additionally, update PDF templates to use the `asset()` helper instead of `public_path()` for logo rendering to ensure consistent asset loading. - refactor(import): simplify `ShippingRatesImport` logic and variable naming - fix(pdf): update logo image source from `public_path` to `asset` in AWB and Label templates
168 lines
12 KiB
PHP
168 lines
12 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en" dir="ltr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: DejaVu Sans, sans-serif; font-size: 11px; direction: ltr; text-align: left; color: #333; }
|
|
.container { width: 190mm; min-height: 277mm; padding: 10mm; margin: 0 auto; }
|
|
|
|
.header { display: flex; align-items: center; margin-bottom: 12px; border-bottom: 2px solid #f37021; padding-bottom: 8px; }
|
|
.logo { width: 70px; height: auto; }
|
|
.title-area { flex: 1; text-align: center; }
|
|
.title { font-size: 20px; font-weight: bold; color: #f37021; }
|
|
.subtitle { font-size: 12px; color: #666; }
|
|
.awb-number { font-size: 14px; font-weight: bold; color: #f37021; text-align: right; }
|
|
|
|
.section { border: 1px solid #ccc; padding: 8px; margin-bottom: 10px; }
|
|
.section-title { font-weight: bold; color: #f37021; margin-bottom: 6px; font-size: 12px; border-bottom: 1px solid #eee; padding-bottom: 3px; }
|
|
|
|
.two-col { display: flex; gap: 10px; margin-bottom: 10px; }
|
|
.col { flex: 1; }
|
|
|
|
.row { margin-bottom: 3px; }
|
|
.label { font-weight: bold; color: #555; display: inline-block; width: 110px; }
|
|
.value { display: inline-block; }
|
|
|
|
.payment-section { border: 1px solid #ccc; padding: 8px; margin-bottom: 10px; background-color: #f9f9f9; }
|
|
.payment-title { font-weight: bold; color: #f37021; margin-bottom: 6px; font-size: 12px; }
|
|
|
|
.total-row { font-weight: bold; color: #f37021; font-size: 12px; border-top: 1px solid #ddd; padding-top: 4px; margin-top: 4px; }
|
|
|
|
.disclaimer { background-color: #fafafa; border: 1px solid #eee; padding: 8px; margin-bottom: 10px; font-size: 8px; color: #666; line-height: 1.4; }
|
|
|
|
.signature { margin-top: 15px; display: flex; justify-content: space-between; }
|
|
.signature-box { width: 45%; border-top: 1px solid #333; padding-top: 5px; text-align: center; font-size: 10px; }
|
|
|
|
.footer { margin-top: 10px; text-align: center; font-size: 10px; color: #999; border-top: 1px solid #ddd; padding-top: 8px; }
|
|
|
|
table { width: 100%; border-collapse: collapse; }
|
|
td { vertical-align: top; padding: 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="header">
|
|
<img src="{{ asset('logo.png') }}" class="logo" alt="IFNEX Logo">
|
|
<div class="title-area">
|
|
<div class="title">Shipment Waybill</div>
|
|
<div class="subtitle">We Deliver Value</div>
|
|
</div>
|
|
<div class="awb-number">AWB No: {{ $shipment->awb_no }}</div>
|
|
</div>
|
|
|
|
<table>
|
|
<tr>
|
|
<td width="50%" style="padding-right: 5px;">
|
|
<div class="section">
|
|
<div class="section-title">SHIPPER</div>
|
|
<div class="row"><span class="label">From:</span><span class="value">{{ $shipment->fromCountry?->name }}</span></div>
|
|
<div class="row"><span class="label">Company Name:</span><span class="value">{{ $shipper['company'] }}</span></div>
|
|
<div class="row"><span class="label">Contact Name:</span><span class="value">{{ $shipper['name'] }}</span></div>
|
|
<div class="row"><span class="label">Tel/Mob:</span><span class="value">{{ $shipper['phone'] }}</span></div>
|
|
<div class="row"><span class="label">Email:</span><span class="value">{{ $shipper['email'] }}</span></div>
|
|
<div class="row"><span class="label">Address:</span><span class="value">{{ $shipper['address'] }}</span></div>
|
|
<div class="row"><span class="label">ID Number:</span><span class="value">{{ $shipper['id_number'] }}</span></div>
|
|
<div class="row"><span class="label">Zip Code:</span><span class="value">{{ $shipper['zip'] }}</span></div>
|
|
</div>
|
|
</td>
|
|
<td width="50%" style="padding-left: 5px;">
|
|
<div class="section">
|
|
<div class="section-title">RECEIVER</div>
|
|
<div class="row"><span class="label">To:</span><span class="value">{{ $shipment->toCountry?->name }}</span></div>
|
|
<div class="row"><span class="label">Company Name:</span><span class="value">{{ $receiver['company'] }}</span></div>
|
|
<div class="row"><span class="label">Contact Name:</span><span class="value">{{ $receiver['name'] }}</span></div>
|
|
<div class="row"><span class="label">Tel/Mobile:</span><span class="value">{{ $receiver['phone'] }}</span></div>
|
|
<div class="row"><span class="label">Email:</span><span class="value">{{ $receiver['email'] }}</span></div>
|
|
<div class="row"><span class="label">Address:</span><span class="value">{{ $receiver['address'] }}</span></div>
|
|
<div class="row"><span class="label">City:</span><span class="value">{{ $receiver['city'] }}</span></div>
|
|
<div class="row"><span class="label">Zip Code:</span><span class="value">{{ $receiver['zip'] }}</span></div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table>
|
|
<tr>
|
|
<td width="50%" style="padding-right: 5px;">
|
|
<div class="section">
|
|
<div class="section-title">SHIPMENT</div>
|
|
<div class="row"><span class="label">Gross Weight:</span><span class="value">{{ $shipment->weight }} Kg</span></div>
|
|
<div class="row"><span class="label">Dimensions:</span><span class="value">{{ $shipment->dimensions }} cm</span></div>
|
|
<div class="row"><span class="label">Volumetric Weight:</span><span class="value">{{ $shipment->volumetric_weight }} Kg</span></div>
|
|
<div class="row"><span class="label">Chargeable Weight:</span><span class="value">{{ $shipment->chargeable_weight }} Kg</span></div>
|
|
<div class="row"><span class="label">Value:</span><span class="value">${{ number_format($shipment->declared_value ?? 0, 2) }} USD</span></div>
|
|
<div class="row"><span class="label">Service:</span><span class="value">{{ $shipment->type?->label() }}</span></div>
|
|
<div class="row"><span class="label">Type:</span><span class="value">{{ $shipment->direction?->value === 'export' ? 'Export' : 'Import' }}</span></div>
|
|
<div class="row"><span class="label">Content:</span><span class="value">{{ $shipment->content_description ?: 'General Goods' }}</span></div>
|
|
|
|
@if($shipment->isParcel() && $items->count() > 0)
|
|
<div style="margin-top: 8px; border-top: 1px solid #eee; padding-top: 6px;">
|
|
<div class="section-title" style="margin-bottom: 4px;">Shipment Details</div>
|
|
<table style="width: 100%; font-size: 10px; border-collapse: collapse;">
|
|
<thead>
|
|
<tr style="background-color: #f37021; color: #fff;">
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">Row</th>
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">Description</th>
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">HS Code</th>
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">Qty</th>
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">Unit Price (USD)</th>
|
|
<th style="border: 1px solid #ddd; padding: 3px; text-align: left;">Total (USD)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($items as $item)
|
|
<tr>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ $item->row_number }}</td>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ $item->description }}</td>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ $item->hs_code }}</td>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ $item->quantity }}</td>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ number_format($item->unit_price, 2) }}</td>
|
|
<td style="border: 1px solid #ddd; padding: 3px;">{{ number_format($item->total_usd, 2) }}</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</td>
|
|
<td width="50%" style="padding-left: 5px;">
|
|
<div class="payment-section">
|
|
<div class="payment-title">PAYMENT</div>
|
|
<div class="row"><span class="label">Shipping Price:</span><span class="value">{{ number_format($shipment->shipping_price ?? 0, 2) }} IRR</span></div>
|
|
<div class="row"><span class="label">Extra Service:</span><span class="value">{{ number_format($shipment->extra_service ?? 0) }} IRR</span></div>
|
|
<div class="row"><span class="label">Domestic Pickup:</span><span class="value">{{ number_format($shipment->domestic_pickup ?? 0) }} IRR</span></div>
|
|
<div class="row"><span class="label">Packing Cost:</span><span class="value">{{ number_format($shipment->packing_cost ?? 0) }} IRR</span></div>
|
|
<div class="row"><span class="label">Domestic Delivery:</span><span class="value">{{ number_format($shipment->domestic_delivery ?? 0) }} IRR</span></div>
|
|
<div class="row"><span class="label">Warehousing Cost:</span><span class="value">{{ number_format($shipment->warehousing_cost ?? 0) }} IRR</span></div>
|
|
<div class="row"><span class="label">Discount:</span><span class="value">{{ number_format($shipment->discount ?? 0) }} IRR</span></div>
|
|
<div class="row total-row"><span class="label">Total Fee:</span><span class="value">{{ number_format($shipment->total_fee ?? 0) }} IRR</span></div>
|
|
<div class="row total-row"><span class="label">Cash on Delivery:</span><span class="value">{{ number_format($shipment->cod_amount ?? 0, 2) }} AED</span></div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div class="disclaimer">
|
|
Please note that: Door-to-door Services is only applicable when the shipment is general cargo. For special cargo, dangerous goods, or items requiring special handling, additional charges may apply. The receiver is responsible for customs clearance and any associated fees. Claims must be filed within 30 days of delivery. Shipper declares that the contents are accurately described and properly packed for transport.
|
|
</div>
|
|
|
|
<div class="signature">
|
|
<div class="signature-box">
|
|
Shipper Name & Signature<br>
|
|
Date: ....../....../........
|
|
</div>
|
|
<div class="signature-box">
|
|
Track Your Shipment at:<br>
|
|
http://ifnex.net
|
|
</div>
|
|
</div>
|
|
|
|
<div class="footer">
|
|
IFNEX Logistics — We Deliver Value | Generated on {{ now()->format('Y-m-d H:i') }}
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|