From 1a6d16c71cba15c94b93e643491afc5f48a2483a Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 8 Oct 2024 13:55:03 +0200 Subject: [PATCH 01/16] fix: :sparkles: add customer discounts count on club navigation --- app/Http/Controllers/Club/DiscountController.php | 4 ++++ app/Http/Controllers/Controller.php | 5 +++++ app/Models/Discount.php | 16 ++++++++++++++++ resources/views/club/layouts/header.blade.php | 11 ++++++----- .../layouts/main-menu/offcanvas-menu.blade.php | 11 ++++++----- 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Club/DiscountController.php b/app/Http/Controllers/Club/DiscountController.php index 1832bf20..1e16f287 100644 --- a/app/Http/Controllers/Club/DiscountController.php +++ b/app/Http/Controllers/Club/DiscountController.php @@ -7,6 +7,7 @@ use App\Http\Requests\Club\MesBr\PrintCouponsRequest; use App\Models\Customer; use App\Models\Discount; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Cache; class DiscountController extends Controller { @@ -140,6 +141,9 @@ class DiscountController extends Controller return null; } + // Update customer discounts count. + Cache::set("discountsCustomerCount", Discount::getCustomerDiscountsCount($customer->hashcode)); + // * Tout est OK return \base64_decode(Arr::get($result, 'pdf')) ?: null; } catch (\RuntimeException $e) { diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 43f3312d..225eab3a 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\Enums\Pagination\ItemsPerPaginationEnum; use App\Enums\Theme\BootstrapThemeEnum; use App\Lib\Helpers\ToolboxHelper; +use App\Models\Discount; use App\Models\Message; use App\Models\Notification; use Illuminate\Database\Eloquent\Builder; @@ -49,6 +50,10 @@ class Controller extends BaseController !is_null($notificationModel->customer_id); }) ->count()); + + $result = Cache::get("discountsCustomerCount") + ?: Discount::getCustomerDiscountsCount($customerModel->hashcode); + View::share('discountsCustomerCount', $result); } return $next($request); }); diff --git a/app/Models/Discount.php b/app/Models/Discount.php index f8c7b32e..06dcc9de 100644 --- a/app/Models/Discount.php +++ b/app/Models/Discount.php @@ -149,6 +149,22 @@ class Discount extends Model } //end try } + /** + * Get customer discounts count. + * + * @param string $hashcode + * @return integer + */ + public static function getCustomerDiscountsCount(string $hashcode): int + { + /** @var \LDC\MESBR\MesBr */ + $mesBr = app('mesBrAPI'); + + return collect($mesBr->getMurCustomer($hashcode)->coupons)->filter(function ($discount) { + return !$discount->used; + })->count(); + } + /** * Replace coupons picture host. * diff --git a/resources/views/club/layouts/header.blade.php b/resources/views/club/layouts/header.blade.php index 20f9f671..4dbab21a 100644 --- a/resources/views/club/layouts/header.blade.php +++ b/resources/views/club/layouts/header.blade.php @@ -93,11 +93,12 @@ diff --git a/resources/views/club/layouts/main-menu/offcanvas-menu.blade.php b/resources/views/club/layouts/main-menu/offcanvas-menu.blade.php index 501e5707..90f4c4e1 100644 --- a/resources/views/club/layouts/main-menu/offcanvas-menu.blade.php +++ b/resources/views/club/layouts/main-menu/offcanvas-menu.blade.php @@ -50,11 +50,12 @@ {{ __('« La Poulitude »') }} - - {{ __('Nouveaux bons de réduction') }} - {{-- FIXME: replace this br count and if it's greater than 99, show 99+ --}} - 7 - + @if($discountsCustomerCount) + + {{ __('Nouveaux bons de réduction') }} + {{ $discountsCustomerCount > 99 ? '99+' : $discountsCustomerCount }} + + @endif