diff --git a/app/Http/Controllers/Admin/AdminInvoiceController.php b/app/Http/Controllers/Admin/AdminInvoiceController.php index 367fa1c..82e06c4 100644 --- a/app/Http/Controllers/Admin/AdminInvoiceController.php +++ b/app/Http/Controllers/Admin/AdminInvoiceController.php @@ -50,29 +50,22 @@ class AdminInvoiceController extends Controller // POPUP VIEW // ------------------------------------------------------------- public function popup($id) - { - $invoice = Invoice::with([ - 'items', - 'chargeGroups.items', - ])->findOrFail($id); +{ + $invoice = Invoice::with([ + 'items', + 'chargeGroups.items', + ])->findOrFail($id); - // demo update असेल तर - $invoice->update([ - 'customer_email' => 'test@demo.com', - 'customer_address' => 'TEST ADDRESS', - 'pincode' => '999999', - ]); + $shipment = null; - $shipment = null; + $groupedItemIds = $invoice->chargeGroups + ->flatMap(fn($group) => $group->items->pluck('invoice_item_id')) + ->unique() + ->values() + ->toArray(); - $groupedItemIds = $invoice->chargeGroups - ->flatMap(fn($group) => $group->items->pluck('invoice_item_id')) - ->unique() - ->values() - ->toArray(); - - return view('admin.popup_invoice', compact('invoice', 'shipment', 'groupedItemIds')); - } + return view('admin.popup_invoice', compact('invoice', 'shipment', 'groupedItemIds')); +} // ------------------------------------------------------------- // EDIT INVOICE PAGE @@ -86,9 +79,31 @@ class AdminInvoiceController extends Controller 'chargeGroups.items', 'installments', ])->findOrFail($id); - + + // ✅ Customer details sync — जर test data आला असेल तर fix होईल + if ($invoice->customer) { + $needsUpdate = []; + + if (empty($invoice->customer_email) || $invoice->customer_email === 'test@demo.com') { + $needsUpdate['customer_email'] = $invoice->customer->email; + } + + if (empty($invoice->customer_address) || $invoice->customer_address === 'TEST ADDRESS') { + $needsUpdate['customer_address'] = $invoice->customer->address; + } + + if (empty($invoice->pincode) || $invoice->pincode === '999999') { + $needsUpdate['pincode'] = $invoice->customer->pincode; + } + + if (!empty($needsUpdate)) { + $invoice->update($needsUpdate); + $invoice->refresh(); + } + } + $shipment = null; - + $groupedItemIds = $invoice->chargeGroups ->flatMap(function ($group) { return $group->items->pluck('invoice_item_id'); @@ -96,7 +111,7 @@ class AdminInvoiceController extends Controller ->unique() ->values() ->toArray(); - + return view('admin.invoice_edit', compact('invoice', 'shipment', 'groupedItemIds')); } diff --git a/app/Http/Controllers/ContainerController.php b/app/Http/Controllers/ContainerController.php index e1c570e..eb6d89a 100644 --- a/app/Http/Controllers/ContainerController.php +++ b/app/Http/Controllers/ContainerController.php @@ -520,7 +520,7 @@ class ContainerController extends Controller $invoice = new Invoice(); $invoice->container_id = $container->id; - // $invoice->customer_id = $customerId; + $invoice->customer_id = $customerId; $invoice->mark_no = $firstMark; $invoice->invoice_number = $this->generateInvoiceNumber(); @@ -533,20 +533,28 @@ class ContainerController extends Controller ->addDays(10) ->format('Y-m-d'); - if ($snap) { - $invoice->customer_name = $snap['customer_name'] ?? null; - $invoice->company_name = $snap['company_name'] ?? null; - $invoice->customer_mobile = $snap['mobile_no'] ?? null; - } - - $invoice->final_amount = 0; - $invoice->gst_percent = 0; - $invoice->gst_amount = 0; - $invoice->final_amount_with_gst = 0; - - $invoice->customer_email = null; - $invoice->customer_address = null; - $invoice->pincode = null; + // Customer User model वरून fetch करा (customer_id string आहे जसे CID-2025-000001) + $customerUser = \App\Models\User::where('customer_id', $customerId)->first(); + + $invoice->container_id = $container->id; + $invoice->customer_id = $customerUser->id ?? null; // ✅ integer id + $invoice->mark_no = $firstMark; + + if ($snap) { + $invoice->customer_name = $snap['customer_name'] ?? null; + $invoice->company_name = $snap['company_name'] ?? null; + $invoice->customer_mobile = $snap['mobile_no'] ?? null; + } + + $invoice->final_amount = 0; + $invoice->gst_percent = 0; + $invoice->gst_amount = 0; + $invoice->final_amount_with_gst = 0; + + // ✅ User model वरून email, address, pincode घ्या + $invoice->customer_email = $customerUser->email ?? null; + $invoice->customer_address = $customerUser->address ?? null; + $invoice->pincode = $customerUser->pincode ?? null; $uniqueMarks = array_unique(array_column($rowsForCustomer, 'mark')); $invoice->notes = 'Auto-created from Container ' . $container->container_number diff --git a/resources/views/admin/container_show.blade.php b/resources/views/admin/container_show.blade.php index 05b2326..f3dca44 100644 --- a/resources/views/admin/container_show.blade.php +++ b/resources/views/admin/container_show.blade.php @@ -672,11 +672,14 @@ ); $isTotalColumn = $isTotalQty || $isTotalCbm || $isTotalKg || $isAmount; + + // जर container pending नसेल तर सर्व fields readonly + $isReadOnly = $isTotalColumn || $container->status !== 'pending'; @endphp