From 63cc0874edefd69b45cd58eef69f94a623f8edf2 Mon Sep 17 00:00:00 2001 From: soufiane Date: Wed, 19 Jul 2023 10:30:11 +0200 Subject: [PATCH] wait #6128 @1:00 --- .../RedirectClientIfAuthenticated.php | 6 + app/Models/Cart.php | 7 ++ app/Templates/Order.php | 18 +++ resources/views/pages/cart.blade.php | 75 +----------- resources/views/pages/order.blade.php | 110 ++++++++++++++++++ resources/views/partials/header.blade.php | 2 +- routes/web.php | 2 +- 7 files changed, 145 insertions(+), 75 deletions(-) create mode 100644 app/Templates/Order.php create mode 100644 resources/views/pages/order.blade.php diff --git a/app/Http/Middleware/RedirectClientIfAuthenticated.php b/app/Http/Middleware/RedirectClientIfAuthenticated.php index a7f7ba9..1249a5b 100644 --- a/app/Http/Middleware/RedirectClientIfAuthenticated.php +++ b/app/Http/Middleware/RedirectClientIfAuthenticated.php @@ -2,6 +2,7 @@ namespace App\Http\Middleware; +use App\Models\Cart; use Closure; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; @@ -29,12 +30,17 @@ class RedirectClientIfAuthenticated $tokenIsValid = Hash::check($token, $actualToken->token); if(!$tokenIsValid) abort('404'); } + if (($request->path() === "se-connecter" || $request->path() === "changer-votre-mot-de-passe") && Auth::guard('web-clients')->check()) { return redirect('/'); }elseif(($request->path() !== "se-connecter" && $request->path() !== "changer-votre-mot-de-passe") && !Auth::guard('web-clients')->check()) { return redirect('/se-connecter'); } + if($request->path() === "ma-commande" && Cart::hasNoEcommerceProductInCart($request)) { + return redirect('/ma-selection'); + } + return $next($request); } } diff --git a/app/Models/Cart.php b/app/Models/Cart.php index 0e5fc37..e115681 100644 --- a/app/Models/Cart.php +++ b/app/Models/Cart.php @@ -2,6 +2,8 @@ namespace App\Models; +use Illuminate\Http\Request; + class Cart extends ECommerceCommon { protected $table = 'cart'; @@ -60,4 +62,9 @@ class Cart extends ECommerceCommon return $refs; } + + public static function hasNoEcommerceProductInCart(Request $request) { + $cartData = $request->session()->get('cart_items', []); + return sizeof(array_filter($cartData, function($n) { return empty($n['basic_selling_price']); })) > 0 ?? false; + } } diff --git a/app/Templates/Order.php b/app/Templates/Order.php new file mode 100644 index 0000000..631c841 --- /dev/null +++ b/app/Templates/Order.php @@ -0,0 +1,18 @@ + -
-
- {{ __('Frais de ports') }} : @{{ total > 1000 ? '20€' : '0€' }} -
-
-

{{ __('Total HT') }} : @{{ total }}

-

{{ __('Montant TVA') }} : @{{ tva }}

-

{{ __('Total TTC') }} : @{{ totalTTC }}

-
-
- - @if(\App\Models\Client::getClientConnected()) -
-
+
@form([ 'action' => '/ajax/request_quote', 'ga'=>false, 'extra_fields' => '' // Populated by VueJS ])
- -
-

{{ __('Choisir une adresse de facturation') }} :

-
-
-
-
- - -
-
-
- {{ __('Ajouter une adresse') }} -
-

{{ __('Choisir une adresse de livraison') }} :

-
-
-
-
- - -
-
-
- {{ __('Ajouter une adresse') }} -
-
diff --git a/resources/views/pages/order.blade.php b/resources/views/pages/order.blade.php new file mode 100644 index 0000000..d556680 --- /dev/null +++ b/resources/views/pages/order.blade.php @@ -0,0 +1,110 @@ +@extends('layouts/app') + +@php($pageId = $page->id) + +@section('content') + + + +
+ + {{-- Columns set to auto because cart will disappear when quote form is sent, leaving just the confirmation message. --}} + + + {{-- Nested divs to allow grey backgrounds of columns to match the height of their content instead of total height --}} +
+ + +
+
+ {{ __('Frais de ports') }} : @{{ total > 1000 ? '20€' : '0€' }} +
+
+

{{ __('Total HT') }} : @{{ total }}

+

{{ __('Montant TVA') }} : @{{ tva }}

+

{{ __('Total TTC') }} : @{{ totalTTC }}

+
+
+ + + @if(\App\Models\Client::getClientConnected()) + + @endif + +
+ En nous transmettant votre demande, vous acceptez que PM Instrumentation traite vos données + personnelles dans le but de vous offrir un service de qualité. Pour plus d’information sur la + protection de vos données à caractère personnel, vous pouvez consulter la page + Vie privée. +
+
+ +
+
+

{{ __('Choisir une adresse de facturation') }} :

+
+
+
+
+ + +
+
+
+ {{ __('Ajouter une adresse') }} +
+

{{ __('Choisir une adresse de livraison') }} :

+
+
+
+
+ + +
+
+
+ {{ __('Ajouter une adresse') }} +
+
+
+ +
+ +
+ +
+ {{ __("Vous n'avez encore rien sélectionné") }} +
+ +
+ +

@{{ confirmMessage }}

+
+@endsection diff --git a/resources/views/partials/header.blade.php b/resources/views/partials/header.blade.php index f3b04cf..fabbdd2 100644 --- a/resources/views/partials/header.blade.php +++ b/resources/views/partials/header.blade.php @@ -43,7 +43,7 @@ @if (config('features.quote')) - @include('partials.cart') diff --git a/routes/web.php b/routes/web.php index f0c3b44..532001b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -15,7 +15,7 @@ Route::post('/reset-password', 'Client\ResetPasswordController@resetPassword')-> //add specific name to be simple to add active class //add middleware to secure this specific page Route::any('{page}', 'PageController@catchall')->where( - ['page' => '\b(se-connecter|mon-compte|paniers-enregistres|mes-commandes)\b'] + ['page' => '\b(se-connecter|mon-compte|paniers-enregistres|mes-commandes|ma-commande)\b'] )->name('client')->middleware('client'); Route::any('{page}/{subs?}', 'PageController@catchall') -- 2.39.5