From ee60bac538ea7d5f22739e969018c35f9828c57f Mon Sep 17 00:00:00 2001 From: ludo Date: Mon, 29 Apr 2024 22:01:45 +0200 Subject: [PATCH] fixes on addresses --- .../Controllers/Shop/Auth/LoginController.php | 9 ++++- .../Shop/Auth/RegisterController.php | 19 +++++----- .../Controllers/Shop/CustomerController.php | 2 +- app/Repositories/Shop/CustomerAddresses.php | 38 +++++++++++-------- app/Repositories/Shop/Customers.php | 33 +++++++++------- app/Repositories/Shop/OrderMails.php | 2 +- app/Repositories/Shop/Orders.php | 2 +- .../views/Admin/Shop/Articles/form.blade.php | 5 +-- .../views/Shop/Articles/article.blade.php | 25 ------------ resources/views/Shop/Customers/edit.blade.php | 4 +- .../Shop/Customers/partials/address.blade.php | 12 ++++++ .../Customers/partials/addresses.blade.php | 7 +++- resources/views/components/card.blade.php | 2 +- resources/views/load/form/save.blade.php | 20 +++++++--- 14 files changed, 99 insertions(+), 81 deletions(-) delete mode 100644 resources/views/Shop/Articles/article.blade.php diff --git a/app/Http/Controllers/Shop/Auth/LoginController.php b/app/Http/Controllers/Shop/Auth/LoginController.php index a96cae22..3043fdd2 100644 --- a/app/Http/Controllers/Shop/Auth/LoginController.php +++ b/app/Http/Controllers/Shop/Auth/LoginController.php @@ -32,8 +32,13 @@ class LoginController extends Controller if ($this->guard()->attempt($credentials, $request->get('remember'))) { $request->session()->regenerate(); - - return back()->getTargetUrl() === route('Shop.login') ? redirect()->intended(route('home')) : back(); + if (back()->getTargetUrl() === route('Shop.Orders.store')) { + $route = 'Shop.Orders.order'; + } else { + $route = 'home'; + } + + return redirect()->intended(route($route)); } return back()->withErrors([ diff --git a/app/Http/Controllers/Shop/Auth/RegisterController.php b/app/Http/Controllers/Shop/Auth/RegisterController.php index 5c6416b7..2b24940d 100644 --- a/app/Http/Controllers/Shop/Auth/RegisterController.php +++ b/app/Http/Controllers/Shop/Auth/RegisterController.php @@ -24,28 +24,27 @@ class RegisterController extends Controller public function register(RegisterCustomer $request) { - $validatedData = $request->validateWithBag('Errors', [ + $request->validateWithBag('Errors', [ 'last_name' => 'required|max:255', 'first_name' => 'required|max:255', 'email' => 'required|email|max:255|unique:shop_customers,email,NULL,id,deleted_at,NULL', 'password' => ['required', 'confirmed', new Password()], ]); - + + if (back()->getTargetUrl() === route('Shop.Orders.store')) { + $route = 'Shop.Orders.order'; + } else { + $route = 'home'; + } + $user = $this->create($request->all()); $this->guard()->login($user); - /* - $response = $this->registered($request, $user); - - if ($response) { - return $response; - } - */ return $request->wantsJson() ? new JsonResponse([], 201) - : redirect()->route('home'); + : redirect()->route($route); } public function emailVerify() diff --git a/app/Http/Controllers/Shop/CustomerController.php b/app/Http/Controllers/Shop/CustomerController.php index f252bafa..4bf58e5c 100644 --- a/app/Http/Controllers/Shop/CustomerController.php +++ b/app/Http/Controllers/Shop/CustomerController.php @@ -52,6 +52,6 @@ class CustomerController extends Controller $data = $request->all(); $customer = Customers::storeFull($data); - return response()->json(['error' => 0]); + return redirect()->route('Shop.Customers.edit'); } } diff --git a/app/Repositories/Shop/CustomerAddresses.php b/app/Repositories/Shop/CustomerAddresses.php index 4ed48eb3..93a9142a 100644 --- a/app/Repositories/Shop/CustomerAddresses.php +++ b/app/Repositories/Shop/CustomerAddresses.php @@ -12,27 +12,35 @@ class CustomerAddresses public static function add($userId, $data) { $name = $data['company'] ? $data['company'] : $data['first_name'].' '.$data['last_name']; - if ($data['use_for_delivery'] ?? false) { - return self::store([ - 'customer_id' => $userId, - 'name' => $name, - 'address' => $data['delivery_address'], - 'address2' => $data['delivery_address2'], - 'zipcode' => $data['delivery_zipcode'], - 'city' => $data['delivery_city'], - ]); - } - + $delivery = $data['use_for_delivery'] ?? false; + return self::store([ 'customer_id' => $userId, 'name' => $name, - 'address' => $data['address'], - 'address2' => $data['address2'], - 'zipcode' => $data['zipcode'], - 'city' => $data['city'], + 'address' => $delivery ? $data['delivery_address'] : $data['address'], + 'address2' => $delivery ? $data['delivery_address2'] : $data['address2'], + 'zipcode' => $delivery ? $data['delivery_zipcode'] : $data['zipcode'], + 'city' => $delivery ? $data['delivery_city'] : $data['city'], ]); } + public static function storeByCustomer($customer, $data) + { + $deliveries = $data['deliveries'] ?? false; + if ($deliveries && $deliveries['zipcode'] && $deliveries['city']) { + $deliveries['customer_id'] = $customer->id; + $deliveries['type'] = 1; + self::store($deliveries); + } + + $invoices = $data['invoices'] ?? false; + if ($invoices && $invoices['zipcode'] && $invoices['city']) { + $invoices['customer_id'] = $customer->id; + $invoices['type'] = 2; + self::store($invoices); + } + } + public static function toggleActive($id, $active) { return self::update(['active' => $active], $id); diff --git a/app/Repositories/Shop/Customers.php b/app/Repositories/Shop/Customers.php index c921a863..0a255544 100644 --- a/app/Repositories/Shop/Customers.php +++ b/app/Repositories/Shop/Customers.php @@ -70,7 +70,7 @@ class Customers { $customer = $id ? self::get($id) : self::getAuth(); $file = self::makeAvatarFilename($customer); - if (! File::checkFile($file)) { + if (!File::checkFile($file)) { self::createAvatar($customer); } @@ -80,7 +80,7 @@ class Customers public static function createAvatar($customer) { $filename = self::makeAvatarFilename($customer); - $name = $customer->first_name.' '.$customer->last_name; + $name = $customer->first_name . ' ' . $customer->last_name; $avatar = new Avatar(); return $avatar->create($name) @@ -97,7 +97,7 @@ class Customers { $path = storage_path(self::getStorage()); if (File::checkDirOrCreate($path)) { - $filename = $path.self::getAvatarFilename($customer); + $filename = $path . self::getAvatarFilename($customer); } return $filename ?? false; @@ -105,7 +105,7 @@ class Customers public static function getAvatarFilename($customer) { - return 'user-'.$customer->uuid.'.png'; + return 'user-' . $customer->uuid . '.png'; } public static function getAddresses($id = false) @@ -141,7 +141,7 @@ class Customers public static function isNotConnected() { - return ! self::isConnected(); + return !self::isConnected(); } public static function isConnected() @@ -161,19 +161,26 @@ class Customers public static function storeFull($data) { - $saleChannels = $data['sale_channels']; - unset($data['sale_channels']); - $customer = self::store($data); - if ($customer) { - self::storeSaleChannels($customer->id, $saleChannels); + $data2 = $data; + if ($data['sale_channels'] ?? false) { + $saleChannels = $data['sale_channels'] ?? false; + unset($data['sale_channels']); } + if ($data['deliveries'] ?? false) { + unset($data['deliveries']); + } + if ($data['invoices'] ?? false) { + unset($data['invoices']); + } + $customer = self::store($data); + CustomerAddresses::storeByCustomer($customer, $data2); return $customer->id; } public static function storeDeliveries($customer, $deliveries) { - if (! $deliveries) { + if (!$deliveries) { return false; } $deliveries = collect($deliveries)->transform(function ($item) { @@ -220,14 +227,14 @@ class Customers { $path = '/app/public/Customers/'; - return $filename ? $path.$filename : $path; + return $filename ? $path . $filename : $path; } public static function getPublic($filename = false) { $path = '/storage/Customers/'; - return $filename ? $path.$filename : $path; + return $filename ? $path . $filename : $path; } public static function guard() diff --git a/app/Repositories/Shop/OrderMails.php b/app/Repositories/Shop/OrderMails.php index 71f498c7..869664c4 100644 --- a/app/Repositories/Shop/OrderMails.php +++ b/app/Repositories/Shop/OrderMails.php @@ -16,7 +16,7 @@ class OrderMails public static function sendOrderConfirmed($orderId) { - $order = Orders::get($orderId, ['customer', 'address']); + $order = Orders::get($orderId, ['customer', 'delivery_address']); $mail = new ConfirmationCommande($order); return Mail::to($order->customer->email)->send($mail); diff --git a/app/Repositories/Shop/Orders.php b/app/Repositories/Shop/Orders.php index 6ec1b9c3..6bb8bbd4 100644 --- a/app/Repositories/Shop/Orders.php +++ b/app/Repositories/Shop/Orders.php @@ -59,7 +59,7 @@ class Orders public static function saveOrder($data) { $basket = $data['basket']; - $invoice = $data['invoice']; + $invoice = $data['invoice'] ?? []; unset($data['basket'], $data['invoice']); $data += self::getSummaryOfBasket($basket); $order = self::store($data); diff --git a/resources/views/Admin/Shop/Articles/form.blade.php b/resources/views/Admin/Shop/Articles/form.blade.php index daa9087b..b75a92fc 100644 --- a/resources/views/Admin/Shop/Articles/form.blade.php +++ b/resources/views/Admin/Shop/Articles/form.blade.php @@ -25,18 +25,15 @@ @endpush diff --git a/resources/views/Shop/Articles/article.blade.php b/resources/views/Shop/Articles/article.blade.php deleted file mode 100644 index 8476f5c8..00000000 --- a/resources/views/Shop/Articles/article.blade.php +++ /dev/null @@ -1,25 +0,0 @@ - -
- ... -
- {{ $offer['article']['name'] }} - - - - -

-

-
- 3.50 €
- Semence -
- -
- 1.65 €
- Plant -
-
-

-
-
-
diff --git a/resources/views/Shop/Customers/edit.blade.php b/resources/views/Shop/Customers/edit.blade.php index 153f8931..ee62619a 100644 --- a/resources/views/Shop/Customers/edit.blade.php +++ b/resources/views/Shop/Customers/edit.blade.php @@ -23,6 +23,7 @@ @include('Shop.Customers.partials.addresses', [ 'prefix' => 'deliveries', 'addresses' => $customer['delivery_addresses'], + 'with_name' => true, ]) @@ -30,6 +31,7 @@ @include('Shop.Customers.partials.addresses', [ 'prefix' => 'invoices', 'addresses' => $customer['invoice_addresses'], + 'with_name' => true, ]) @@ -38,8 +40,8 @@ - + @endsection @include('load.form.save') diff --git a/resources/views/Shop/Customers/partials/address.blade.php b/resources/views/Shop/Customers/partials/address.blade.php index 413ffab5..1f0e5f92 100644 --- a/resources/views/Shop/Customers/partials/address.blade.php +++ b/resources/views/Shop/Customers/partials/address.blade.php @@ -1,3 +1,15 @@ +@if ($with_name ?? false) +
+
+ @include('components.form.input', [ + 'name' => $prefix ?? false ? $prefix . "['name']" : 'name', + 'value' => $customer['name'] ?? '', + 'label' => 'Nom', + ]) +
+
+@endif +
@include('components.form.input', [ diff --git a/resources/views/Shop/Customers/partials/addresses.blade.php b/resources/views/Shop/Customers/partials/addresses.blade.php index f3a11651..6b3ead2d 100644 --- a/resources/views/Shop/Customers/partials/addresses.blade.php +++ b/resources/views/Shop/Customers/partials/addresses.blade.php @@ -5,6 +5,9 @@ val="{{ $address['id'] }}" id="address_{{ $address['id'] }}" />
+ @if ($with_name ?? false) + {{ $address['name'] }}
> + @endif {{ $address['address'] }}
@if ($address['address2']) {{ $address['address2'] }}
@@ -15,7 +18,7 @@ @endforeach
- + @include('Shop.Customers.partials.address', [ 'prefix' => $prefix, 'with_country' => false, @@ -29,7 +32,7 @@
+ class="btn-warning btn-sm mt-2" />
diff --git a/resources/views/components/card.blade.php b/resources/views/components/card.blade.php index 10fde121..2c465d7a 100644 --- a/resources/views/components/card.blade.php +++ b/resources/views/components/card.blade.php @@ -11,7 +11,7 @@ {!! $tools !!}
@endisset -

{{ $title ?? false }}

+

{{ $title ?? false }}

@endisset
@endif diff --git a/resources/views/load/form/save.blade.php b/resources/views/load/form/save.blade.php index f01b2868..6fe83722 100644 --- a/resources/views/load/form/save.blade.php +++ b/resources/views/load/form/save.blade.php @@ -2,14 +2,24 @@ @push('scripts')