From 8d8528f6fb9543cafc12e5184171c0935c57d3ee Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Sat, 4 Oct 2025 11:44:04 +0200 Subject: [PATCH] new: display the default address checkbox on profile load --- app/Http/Controllers/Shop/CustomerController.php | 1 + app/Repositories/Shop/Customers.php | 11 +++++++++++ resources/views/Shop/Customers/edit.blade.php | 2 ++ .../Shop/Customers/partials/address_item.blade.php | 4 +++- .../views/Shop/Customers/partials/addresses.blade.php | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Shop/CustomerController.php b/app/Http/Controllers/Shop/CustomerController.php index 0f156486..91b6754f 100644 --- a/app/Http/Controllers/Shop/CustomerController.php +++ b/app/Http/Controllers/Shop/CustomerController.php @@ -106,6 +106,7 @@ class CustomerController extends Controller 'address' => $address->toArray(), 'prefix' => $prefix, 'with_name' => true, + 'selected' => $address->id, ])->render(); return response()->json([ diff --git a/app/Repositories/Shop/Customers.php b/app/Repositories/Shop/Customers.php index 22460b53..8625d58c 100644 --- a/app/Repositories/Shop/Customers.php +++ b/app/Repositories/Shop/Customers.php @@ -6,6 +6,7 @@ use App\Datatables\Shop\CustomerInvoicesDataTable; use App\Datatables\Shop\CustomerOrdersDataTable; use App\Models\Shop\Customer; use App\Traits\Model\Basic; +use App\Repositories\Shop\CustomerAddresses; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; @@ -95,6 +96,16 @@ class Customers $data = $customer->toArray(); $data['sale_channels'] = $customer->sale_channels->pluck('id')->toArray(); $data['deliveries'] = Deliveries::getBySaleChannels($data['sale_channels'])->toArray(); + $data['delivery_address_id'] = optional(CustomerAddresses::getDeliveryAddress($id))->id; + $data['invoice_address_id'] = optional(CustomerAddresses::getInvoiceAddress($id))->id; + + if (! $data['delivery_address_id'] && ! empty($data['delivery_addresses'])) { + $data['delivery_address_id'] = $data['delivery_addresses'][0]['id'] ?? null; + } + + if (! $data['invoice_address_id'] && ! empty($data['invoice_addresses'])) { + $data['invoice_address_id'] = $data['invoice_addresses'][0]['id'] ?? null; + } return $data; } diff --git a/resources/views/Shop/Customers/edit.blade.php b/resources/views/Shop/Customers/edit.blade.php index ee62619a..f2b17587 100644 --- a/resources/views/Shop/Customers/edit.blade.php +++ b/resources/views/Shop/Customers/edit.blade.php @@ -24,6 +24,7 @@ 'prefix' => 'deliveries', 'addresses' => $customer['delivery_addresses'], 'with_name' => true, + 'selected' => $customer['delivery_address_id'] ?? null, ]) @@ -32,6 +33,7 @@ 'prefix' => 'invoices', 'addresses' => $customer['invoice_addresses'], 'with_name' => true, + 'selected' => $customer['invoice_address_id'] ?? null, ]) diff --git a/resources/views/Shop/Customers/partials/address_item.blade.php b/resources/views/Shop/Customers/partials/address_item.blade.php index a8352fa1..dab8d52c 100644 --- a/resources/views/Shop/Customers/partials/address_item.blade.php +++ b/resources/views/Shop/Customers/partials/address_item.blade.php @@ -2,8 +2,10 @@
@php $inputName = isset($prefix) && $prefix ? $prefix.'[address_id]' : 'address_id'; + $currentValue = $selected ?? null; @endphp - +
@if ($with_name ?? false) diff --git a/resources/views/Shop/Customers/partials/addresses.blade.php b/resources/views/Shop/Customers/partials/addresses.blade.php index 57d32f93..858b902d 100644 --- a/resources/views/Shop/Customers/partials/addresses.blade.php +++ b/resources/views/Shop/Customers/partials/addresses.blade.php @@ -4,6 +4,7 @@ 'address' => $address, 'prefix' => $prefix ?? null, 'with_name' => $with_name ?? false, + 'selected' => $selected ?? null, ]) @endforeach