From ea2532efc8c68c700cdea09754605cbac4797d529529d7e110410c41b450dc60 Mon Sep 17 00:00:00 2001 From: divya abdar Date: Mon, 22 Dec 2025 17:30:47 +0530 Subject: [PATCH 1/2] invoice pop up invoice edit file chnages --- resources/views/admin/invoice_edit.blade.php | 117 ++++- resources/views/admin/popup_invoice.blade.php | 461 +++++++++--------- 2 files changed, 346 insertions(+), 232 deletions(-) diff --git a/resources/views/admin/invoice_edit.blade.php b/resources/views/admin/invoice_edit.blade.php index 662bef7..dd203c4 100644 --- a/resources/views/admin/invoice_edit.blade.php +++ b/resources/views/admin/invoice_edit.blade.php @@ -33,6 +33,97 @@ body { 100% { opacity: 1; transform: translateY(0) scale(1); } } +/* -------------------------------------------------- + INVOICE PREVIEW RESPONSIVE FIXES +-------------------------------------------------- */ +.invoice-preview-wrapper { + width: 100%; + overflow: auto; + max-width: 100%; + box-sizing: border-box; +} + +.invoice-preview-wrapper * { + box-sizing: border-box; +} + +/* Override any fixed width styles that might be in popup_invoice */ +#invoicePreview, +.invoice-container, +.invoice-wrapper { + max-width: 100% !important; + width: 100% !important; +} + +/* Responsive table fixes for invoice */ +.invoice-preview-wrapper table { + width: 100% !important; + max-width: 100% !important; + table-layout: auto !important; +} + +.invoice-preview-wrapper .table-responsive { + overflow-x: auto !important; + -webkit-overflow-scrolling: touch; +} + +/* Ensure all elements scale properly */ +.invoice-preview-wrapper .row, +.invoice-preview-wrapper .col, +.invoice-preview-wrapper [class*="col-"] { + flex: 1 1 auto !important; + max-width: 100% !important; +} + +/* Force responsive behavior for print-style elements */ +@media (max-width: 1200px) { + .invoice-preview-wrapper { + font-size: 95%; + } +} + +@media (max-width: 992px) { + .invoice-preview-wrapper { + font-size: 90%; + } +} + +@media (max-width: 768px) { + .invoice-preview-wrapper { + font-size: 85%; + } + + .invoice-preview-wrapper table th, + .invoice-preview-wrapper table td { + padding: 0.5rem !important; + } +} + +@media (max-width: 576px) { + .invoice-preview-wrapper { + font-size: 80%; + } + + .invoice-preview-wrapper .d-flex { + flex-direction: column !important; + } + + .invoice-preview-wrapper .text-end, + .invoice-preview-wrapper .text-start { + text-align: center !important; + } +} + +/* Prevent any fixed pixel widths */ +.invoice-preview-wrapper [style*="width:"]:not([style*="width:100%"]):not([style*="width:auto"]) { + width: auto !important; + max-width: 100% !important; +} + +.invoice-preview-wrapper [style*="min-width"] { + min-width: 0 !important; +} + /* -------------------------------------------------- COMPACT CARD DESIGN -------------------------------------------------- */ @@ -332,6 +423,30 @@ body { font-size: 0.8rem; } } + +@media print { + .invoice-preview-wrapper { + max-width: 100% !important; + width: 100% !important; + overflow: visible !important; + } + + .invoice-preview-wrapper * { + visibility: visible !important; + } + + .glass-card { + box-shadow: none !important; + border: 1px solid #000 !important; + } + + .card-header-compact { + background: #000 !important; + color: #fff !important; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } +} @@ -344,7 +459,7 @@ body { Invoice Overview -
+
@include('admin.popup_invoice', [ 'invoice' => $invoice, 'shipment' => $shipment, diff --git a/resources/views/admin/popup_invoice.blade.php b/resources/views/admin/popup_invoice.blade.php index ce9392b..51775be 100644 --- a/resources/views/admin/popup_invoice.blade.php +++ b/resources/views/admin/popup_invoice.blade.php @@ -56,7 +56,7 @@ } .id-container { - margin-bottom: 1rem; /* Reduced from 1.5rem */ + margin-bottom: 1rem; } .id-box { @@ -67,6 +67,9 @@ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); transition: all 0.3s ease; height: 100%; + display: flex; + align-items: center; + gap: 1rem; } .id-box:hover { @@ -82,34 +85,29 @@ border-left: 4px solid var(--success); } - .id-box-accent { - border-left: 4px solid var(--warning); - } - .id-icon { - width: 36px; - height: 36px; - border-radius: 50%; + width: 48px; + height: 48px; + border-radius: var(--border-radius); display: flex; align-items: center; justify-content: center; - margin-bottom: 0.5rem; /* Reduced from 0.75rem */ - font-size: 1rem; + font-size: 1.2rem; + flex-shrink: 0; } .id-icon-primary { - background: rgba(52, 152, 219, 0.1); - color: var(--secondary); + background: linear-gradient(135deg, #3498db 0%, #2980b9 100%); + color: white; } .id-icon-secondary { - background: rgba(39, 174, 96, 0.1); - color: var(--success); + background: linear-gradient(135deg, #27ae60 0%, #219653 100%); + color: white; } - .id-icon-accent { - background: rgba(243, 156, 18, 0.1); - color: var(--warning); + .id-content { + flex: 1; } .id-label { @@ -126,76 +124,87 @@ font-weight: 700; color: var(--primary); margin-bottom: 0; + word-break: break-word; + line-height: 1.3; } - .date-container { - background: white; - border-radius: var(--border-radius); - padding: 1rem; /* Reduced from 1.25rem */ - margin-bottom: 1rem; /* Reduced from 1.5rem */ - border: 1px solid #e9ecef; - box-shadow: var(--box-shadow); - } - - .date-card { - text-align: center; - padding: 0.75rem; - background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); - border-radius: var(--border-radius); - border: 1px solid rgba(0,0,0,0.05); - } - - .date-icon { - width: 40px; - height: 40px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin: 0 auto 0.5rem; /* Reduced from 0.75rem */ - background: var(--secondary); + /* Enhanced Date Section with Blue-Purple Gradient */ + .date-badge { + font-size: 0.85rem; + padding: 0.75rem 1rem; + border-radius: 8px; + font-weight: 500; + background: linear-gradient(135deg, #3498db 0%, #9b59b6 100%); color: white; - font-size: 1rem; + border: none; + min-width: 140px; + position: relative; + overflow: hidden; + box-shadow: 0 4px 15px rgba(52, 152, 219, 0.2); } - .date-label { - font-size: 0.8rem; - color: #6c757d; - font-weight: 600; - margin-bottom: 0.5rem; + .date-badge:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(52, 152, 219, 0.3); + } + + .date-badge .badge-label { + font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.5px; - } - - .date-value { - font-size: 1rem; - font-weight: 700; - color: var(--primary); - padding: 0.5rem; - background: white; - border-radius: 4px; - border: 1px solid #e9ecef; - } - - .date-connector { + color: rgba(255, 255, 255, 0.9); + margin-bottom: 0.25rem; display: flex; align-items: center; - justify-content: center; - height: 100%; + gap: 4px; } - .date-connector i { - background: var(--light); - padding: 10px; + .date-badge .badge-label i { + font-size: 0.6rem; + } + + .date-badge .badge-value { + font-weight: 700; + font-size: 0.95rem; + color: white; + } + + .date-badge.due-date { + background: linear-gradient(135deg, #3498db 0%, #9b59b6 100%); + } + + .date-badge.overdue { + background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); + animation: pulse 2s infinite; + } + + @keyframes pulse { + 0% { box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.4); } + 70% { box-shadow: 0 0 0 6px rgba(231, 76, 60, 0); } + 100% { box-shadow: 0 0 0 0 rgba(231, 76, 60, 0); } + } + + .date-separator { + color: #dee2e6; + font-weight: 300; + padding: 0 0.5rem; + display: flex; + align-items: center; + } + + .date-separator i { + background: white; + padding: 8px; border-radius: 50%; color: var(--secondary); border: 2px solid #e9ecef; + box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .card { border: 1px solid #e9ecef; border-radius: var(--border-radius); - margin-bottom: 1rem; /* Reduced from 1.5rem */ + margin-bottom: 1rem; box-shadow: var(--box-shadow); } @@ -228,27 +237,18 @@ background-color: rgba(52, 152, 219, 0.03); } - .summary-card { - background: var(--light); - border-left: 4px solid var(--secondary); - } - - .summary-header { - background: var(--primary); - color: white; + /* Simplified Summary Section */ + .summary-container { + margin: 2rem 0; } .amount-row { - border-bottom: 1px solid #e9ecef; + display: flex; + justify-content: space-between; + align-items: center; padding: 0.75rem 0; } - .total-row { - border-top: 2px solid #dee2e6; - font-size: 1.1rem; - font-weight: 700; - } - .text-primary { color: var(--primary) !important; } @@ -268,15 +268,20 @@ /* COMPACT HEADER STYLES */ .compact-header { - margin-bottom: 0.75rem; /* Reduced from default */ + margin-bottom: 0.75rem; } .compact-header .invoice-title { - margin-bottom: 0.25rem; /* Reduced gap */ + margin-bottom: 0.25rem; } - .compact-header .status-badge { - margin-top: 0.25rem; /* Reduced gap */ + /* Date and status row */ + .date-status-row { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 0.75rem; + flex-wrap: wrap; } @media (max-width: 768px) { @@ -284,10 +289,6 @@ margin: 1rem; } - .date-connector { - margin: 1rem 0; - } - .table-responsive { font-size: 0.8rem; } @@ -295,6 +296,55 @@ .id-box { margin-bottom: 1rem; } + + .date-status-row { + justify-content: flex-start; + margin-top: 0.5rem; + } + + .compact-header .col-md-6.text-end { + text-align: left !important; + } + + .date-badge { + min-width: 120px; + } + + .summary-container { + padding: 0 1rem; + } + } + + @media (max-width: 576px) { + .date-status-row { + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; + } + + .date-separator { + display: none; + } + + .date-badge { + width: 100%; + } + + .id-box { + flex-direction: column; + text-align: center; + gap: 0.75rem; + } + + .id-icon { + width: 40px; + height: 40px; + font-size: 1rem; + } + + .table-responsive { + overflow-x: auto; + } } @@ -318,108 +368,89 @@
- - - {{ ucfirst($invoice->status) }} - -
-
- - - -
-
- -
-
-
- +
+ +
+
+ INVOICE DATE +
+
{{ \Carbon\Carbon::parse($invoice->invoice_date)->format('M d, Y') }}
-
Invoice ID
-
{{ $invoice->invoice_number }}
-
-
- - -
-
-
- -
-
Order ID
-
- @if($invoice->order && $invoice->order->order_id) - {{ $invoice->order->order_id }} - @elseif($invoice->order_id) - {{ $invoice->order_id }} - @else - N/A - @endif -
-
-
- - -
-
-
- -
-
Shipment ID
-
- @php - $shipmentId = 'N/A'; - // Try multiple ways to get shipment ID - if($invoice->shipment && $invoice->shipment->shipment_id) { - $shipmentId = $invoice->shipment->shipment_id; - } elseif($invoice->shipment_id) { - $shipmentId = $invoice->shipment_id; - } elseif(isset($shipment) && $shipment && $shipment->shipment_id) { - $shipmentId = $shipment->shipment_id; - } - @endphp - {{ $shipmentId }} + + +
+
+ DUE DATE +
+
{{ \Carbon\Carbon::parse($invoice->due_date)->format('M d, Y') }}
+ + + + + {{ ucfirst($invoice->status) }} +
-
-
-
-
-
- +
+
+ +
+
+
+ +
+
+
ORDER ID
+
+ @if($invoice->order && $invoice->order->order_id) + {{ $invoice->order->order_id }} + @elseif($invoice->order_id) + {{ $invoice->order_id }} + @else + N/A + @endif +
-
INVOICE DATE
-
{{ \Carbon\Carbon::parse($invoice->invoice_date)->format('M d, Y') }}
-
-
- -
-
-
-
-
- + + +
+
+
+
-
DUE DATE
-
- {{ \Carbon\Carbon::parse($invoice->due_date)->format('M d, Y') }} +
+
SHIPMENT ID
+
+ @php + $shipmentId = 'N/A'; + // Try multiple ways to get shipment ID + if($invoice->shipment && $invoice->shipment->shipment_id) { + $shipmentId = $invoice->shipment->shipment_id; + } elseif($invoice->shipment_id) { + $shipmentId = $invoice->shipment_id; + } elseif(isset($shipment) && $shipment && $shipment->shipment_id) { + $shipmentId = $shipment->shipment_id; + } + @endphp + {{ $shipmentId }} +
@@ -520,53 +551,27 @@
-
-
-
-
-
- Final Summary -
+
+
+
+ +
+ Subtotal Amount + ₹{{ number_format($invoice->final_amount,2) }}
-
-
- Amount: - ₹{{ number_format($invoice->final_amount,2) }} -
- - @if($invoice->tax_type === 'gst') - {{-- CGST --}} -
- CGST ({{ $invoice->cgst_percent ?? ($invoice->gst_percent/2) }}%): - ₹{{ number_format($invoice->gst_amount/2, 2) }} -
- - {{-- SGST --}} -
- SGST ({{ $invoice->sgst_percent ?? ($invoice->gst_percent/2) }}%): - ₹{{ number_format($invoice->gst_amount/2, 2) }} -
- - @elseif($invoice->tax_type === 'igst') - {{-- IGST --}} -
- IGST ({{ $invoice->igst_percent ?? $invoice->gst_percent }}%): - ₹{{ number_format($invoice->gst_amount, 2) }} -
- @else - {{-- Default GST --}} -
- GST ({{ $invoice->gst_percent }}%): - ₹{{ number_format($invoice->gst_amount, 2) }} -
- @endif - -
- Total Payable: - ₹{{ number_format($invoice->final_amount_with_gst,2) }} -
+ + +
+ GST Amount + ₹{{ number_format($invoice->gst_amount, 2) }} +
+ + +
+ Total Payable Amount + ₹{{ number_format($invoice->final_amount_with_gst,2) }}
@@ -586,12 +591,6 @@ @endif
- - -
-

Thank you for your business!

-

For any inquiries, contact us at support@Kent Logistic

-
From 7fa03688aa03b87d9ede5871cca727333f6abdb232f5302e06910e5214ba996b Mon Sep 17 00:00:00 2001 From: divya abdar Date: Tue, 23 Dec 2025 00:30:18 +0530 Subject: [PATCH 2/2] changes of invoice and shipment --- .../Admin/AdminInvoiceController.php | 28 +++-- public/invoices/invoice-INV-2025-000029.pdf | Bin 62505 -> 59881 bytes public/invoices/invoice-INV-2025-000031.pdf | Bin 0 -> 59876 bytes resources/views/admin/popup_invoice.blade.php | 88 +++++++++----- resources/views/admin/shipments.blade.php | 114 +++++++++++++++++- routes/web.php | 6 +- 6 files changed, 196 insertions(+), 40 deletions(-) create mode 100644 public/invoices/invoice-INV-2025-000031.pdf diff --git a/app/Http/Controllers/Admin/AdminInvoiceController.php b/app/Http/Controllers/Admin/AdminInvoiceController.php index 0209ff0..19d313e 100644 --- a/app/Http/Controllers/Admin/AdminInvoiceController.php +++ b/app/Http/Controllers/Admin/AdminInvoiceController.php @@ -26,15 +26,13 @@ class AdminInvoiceController extends Controller // ------------------------------------------------------------- public function popup($id) { - $invoice = Invoice::with(['items', 'order'])->findOrFail($id); + $invoice = Invoice::with(['items', 'order', 'installments'])->findOrFail($id); - // Find actual Shipment record - $shipment = \App\Models\Shipment::whereHas('items', function ($q) use ($invoice) { - $q->where('order_id', $invoice->order_id); - }) - ->first(); + $shipment = \App\Models\Shipment::whereHas('items', function ($q) use ($invoice) { + $q->where('order_id', $invoice->order_id); + })->first(); - return view('admin.popup_invoice', compact('invoice', 'shipment')); + return view('admin.popup_invoice', compact('invoice', 'shipment')); } // ------------------------------------------------------------- @@ -145,6 +143,22 @@ class AdminInvoiceController extends Controller $invoice->update(['pdf_path' => 'invoices/' . $fileName]); } + public function downloadInvoice($id) +{ + $invoice = Invoice::findOrFail($id); + + // Generate PDF if missing + if ( + !$invoice->pdf_path || + !file_exists(public_path($invoice->pdf_path)) + ) { + $this->generateInvoicePDF($invoice); + $invoice->refresh(); + } + + return response()->download(public_path($invoice->pdf_path)); +} + // ------------------------------------------------------------- // INSTALLMENTS (ADD/DELETE) // ------------------------------------------------------------- diff --git a/public/invoices/invoice-INV-2025-000029.pdf b/public/invoices/invoice-INV-2025-000029.pdf index 212a92719dccc231c618c989d977638fa5fe0c381542c8bc26dc65167962e0ac..80c41f273d6bf4534073b5a86a402ee110d09723f824a32322bdfb0ad549b8eb 100644 GIT binary patch delta 4508 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 b^?pDg!#^;@pXrWBsHQn< delta 6167 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 fz|lx`$lp!uRtr9!LS0!4C@c&E
- -
-
-
- -
- Subtotal Amount - ₹{{ number_format($invoice->final_amount,2) }} -
- - -
- GST Amount - ₹{{ number_format($invoice->gst_amount, 2) }} -
- - -
- Total Payable Amount - ₹{{ number_format($invoice->final_amount_with_gst,2) }} -
-
-
+ @php + $totalAmount = $invoice->final_amount; + $gstAmount = $invoice->gst_amount; + $totalPayable = $invoice->final_amount_with_gst; + + $paidAmount = $invoice->totalPaid(); + $remaining = $invoice->remainingAmount(); + @endphp + +
+
+
+ +
+ Total Amount + ₹{{ number_format($totalAmount,2) }}
+ +
+ GST Amount + + + ₹{{ number_format($gstAmount,2) }} + +
+ +
+ Total Payable + + ₹{{ number_format($totalPayable,2) }} + +
+ +
+ Paid Amount + + − ₹{{ number_format($paidAmount,2) }} + +
+ +
+ Remaining Amount + + ₹{{ number_format($remaining,2) }} + +
+ +
+
+
+
- @if($invoice->pdf_path) - + + Download PDF - @endif +
@@ -599,12 +624,12 @@ - + + \ No newline at end of file diff --git a/resources/views/admin/shipments.blade.php b/resources/views/admin/shipments.blade.php index 6ee0a4f..a8953fe 100644 --- a/resources/views/admin/shipments.blade.php +++ b/resources/views/admin/shipments.blade.php @@ -741,6 +741,13 @@ margin: 1vh auto !important; } + /* UPDATED: Shipment Order Details Modal - ALSO EDGE-TO-EDGE */ + .modal-xl.edge-to-edge.order-details-modal { + max-width: 95vw !important; + width: 95vw !important; + margin: 1vh auto !important; + } + .shipment-details-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; @@ -1135,6 +1142,12 @@ margin: 2vh auto !important; } + .modal-xl.edge-to-edge.order-details-modal { + max-width: 96vw !important; + width: 96vw !important; + margin: 2vh auto !important; + } + .shipment-totals-row { grid-template-columns: repeat(4, 1fr); gap: 15px; @@ -1148,6 +1161,12 @@ margin: 2.5vh auto !important; } + .modal-xl.edge-to-edge.order-details-modal { + max-width: 95vw !important; + width: 95vw !important; + margin: 2.5vh auto !important; + } + .shipment-details-body { padding: 20px 25px; } @@ -1176,6 +1195,14 @@ max-height: 100vh !important; } + .modal-xl.edge-to-edge.order-details-modal { + max-width: 100vw !important; + width: 100vw !important; + margin: 0 !important; + height: 100vh !important; + max-height: 100vh !important; + } + .shipment-details-body { padding: 15px 20px; } @@ -1210,6 +1237,15 @@ .shipment-total-value { font-size: 16px; } + + /* Order details modal specific responsive styles */ + .order-details-content { + padding: 15px; + } + + .order-details-table { + min-width: 1000px; + } } @media (max-width: 576px) { @@ -1224,10 +1260,42 @@ overflow-y: auto; } + .modal-xl.edge-to-edge.order-details-modal .modal-content { + border-radius: 0; + height: 100vh; + overflow-y: auto; + } + .shipment-details-header { padding: 20px 25px 15px; border-radius: 0; } + + .order-details-header { + padding: 20px 15px 10px; + border-radius: 0; + } + + .order-details-body { + padding: 15px; + } + } + + @media (max-width: 480px) { + .modal-xl.edge-to-edge, + .modal-xl.edge-to-edge.order-details-modal { + margin: 0 !important; + padding: 0 !important; + } + + .modal-content { + border-radius: 0 !important; + } + + .shipment-details-body, + .order-details-body { + padding: 10px 15px; + } } @@ -1849,7 +1917,11 @@ function openShipmentDetails(id) { html += ` - ${order.order_id} + + ${order.order_id} + ${order.origin || 'N/A'} ${order.destination || 'N/A'} @@ -1962,6 +2034,46 @@ document.addEventListener('DOMContentLoaded', function() { }); }); }); + + + +function openShipmentOrderDetails(orderId) { + const modal = new bootstrap.Modal( + document.getElementById('shipmentOrderDetailsModal') + ); + + const body = document.getElementById('shipmentOrderDetailsBody'); + body.innerHTML = "

Loading...

"; + + modal.show(); + + fetch(`/admin/orders/view/${orderId}`) + .then(res => res.text()) + .then(html => { + body.innerHTML = html; + }) + .catch(() => { + body.innerHTML = + "

Failed to load order details.

"; + }); +} + + + + @endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index f79b3ce..5946d4f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -219,7 +219,11 @@ Route::prefix('admin') Route::post('/invoices/{id}/installment', [AdminInvoiceController::class, 'storeInstallment']) ->name('admin.invoice.installment.store'); - + Route::get( + '/admin/invoices/{id}/download', + [AdminInvoiceController::class, 'downloadInvoice'] +)->name('admin.invoices.download'); + Route::delete('/installment/{id}', [AdminInvoiceController::class, 'deleteInstallment']) ->name('admin.invoice.installment.delete');