diff --git a/app/Http/Controllers/Purchase/PurchasePipelineController.php b/app/Http/Controllers/Purchase/PurchasePipelineController.php
index dcfc2f0..1524fe2 100644
--- a/app/Http/Controllers/Purchase/PurchasePipelineController.php
+++ b/app/Http/Controllers/Purchase/PurchasePipelineController.php
@@ -35,7 +35,8 @@ class PurchasePipelineController extends Controller
'items',
'signature.signedBy',
'rfqInvitations.supplier',
- 'supplierQuotes',
+ 'supplierQuotes.supplier',
+ 'supplierQuotes.items',
'awardedQuote.supplier',
]);
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..a3f469d
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,5 @@
+
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 09c4366..1286f57 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -4,7 +4,9 @@
-
+ @php $minTotal = $pr->supplierQuotes->min('total_amount'); @endphp
@foreach($pr->supplierQuotes->sortBy('total_amount') as $quote)
-
-
{{ $quote->supplier->name }}
-
- {{ number_format($quote->total_amount, 2) }}
+ @php $isLowest = !$quote->is_awarded && $pr->supplierQuotes->count() > 1 && (float)$quote->total_amount === (float)$minTotal; @endphp
+
+
+
{{ $quote->supplier->name }}
+ @if($isLowest)
+
LOWEST
+ @endif
+
+
+
+ BD {{ number_format($quote->total_amount, 3) }}
+
@if($quote->is_awarded)
-
Awarded
+
✓
+ @else
+
@endif
@endforeach
-
- View All Quotes →
+
+ Compare All Quotes →
@endif
@@ -401,6 +417,202 @@
+{{-- ============================================================
+ QUOTE DETAIL MODAL
+ ============================================================ --}}
+
+
+
+ {{-- Header --}}
+
+
+ {{-- Body --}}
+
+
+ {{-- Meta row --}}
+
+
+ {{-- Items table --}}
+
+
Line Items
+
+
+
+
+ | Item |
+ Qty |
+ Unit Price |
+ Total |
+
+
+
+
+
+
+
+ {{-- Notes --}}
+
+
+ {{-- Awarded banner --}}
+
+ ✓ This quote was awarded
+
+
+
+
+
+ {{-- Footer --}}
+
+
+
+
+@php
+$quoteDataForJs = $pr->supplierQuotes->keyBy('id')->map(function($q) {
+ return [
+ 'id' => $q->id,
+ 'supplier' => $q->supplier->name,
+ 'total' => number_format($q->total_amount, 3),
+ 'isAwarded' => (bool)$q->is_awarded,
+ 'leadTime' => $q->lead_time_days !== null ? $q->lead_time_days . ' days' : null,
+ 'paymentTerms'=> $q->payment_terms,
+ 'notes' => $q->notes,
+ 'submittedAt' => $q->submitted_at->format('d M Y, H:i'),
+ 'items' => $q->items->map(function($i) {
+ return [
+ 'description' => $i->description,
+ 'supplierDescription' => $i->supplier_description,
+ 'quantity' => $i->quantity,
+ 'unit' => $i->unit,
+ 'unitPrice' => number_format($i->unit_price, 3),
+ 'totalPrice' => number_format($i->total_price, 3),
+ 'isVatable' => (bool)$i->is_vatable,
+ 'notAvailable' => (bool)$i->not_available,
+ ];
+ })->values(),
+ ];
+});
+@endphp
+
+
+