From c2ef0c7b35bc08a80e69c38e8a2939bec7000d04 Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Thu, 14 Apr 2022 23:20:09 +0200 Subject: [PATCH] Add merchandise, fix articletosell with src for images --- app/Menu/Shop.php | 7 ++++++- app/Repositories/Shop/Articles.php | 8 ++++++-- app/Traits/Repository/Imageable.php | 2 +- .../partials/ArticleAddBasket.blade.php | 9 +++++---- resources/views/Shop/Articles/show.blade.php | 2 +- resources/views/Shop/Baskets/basket.blade.php | 20 ++++++++++++++----- .../Shop/Baskets/partials/article.blade.php | 7 +++---- resources/views/Shop/layout/layout.blade.php | 5 +++-- .../layout/partials/header-basket.blade.php | 2 +- .../Shop/layout/partials/header-nav.blade.php | 2 +- .../components/form/inputs/number.blade.php | 3 +++ resources/views/load/layout/modal.blade.php | 6 +++++- routes/Admin/Shop/Merchandises.php | 18 +++++++++++++++++ routes/Admin/Shop/route.php | 1 + 14 files changed, 69 insertions(+), 23 deletions(-) create mode 100644 routes/Admin/Shop/Merchandises.php diff --git a/app/Menu/Shop.php b/app/Menu/Shop.php index 2dd8528c..7a37dbb6 100644 --- a/app/Menu/Shop.php +++ b/app/Menu/Shop.php @@ -59,6 +59,11 @@ class Shop $menu->addTo('shop', 'Accueil', [ 'route' => 'Admin.Shop.Homepages.index', - ])->activeIfRoute(['Admin.Shop.Homepages.*'])->order(14); + ])->activeIfRoute(['Admin.Shop.Homepages.*'])->order(15); + + $menu->addTo('shop', 'Marchandises', [ + 'route' => 'Admin.Shop.Merchandises.index', + ])->activeIfRoute(['Admin.Shop.Merchandises.*'])->order(16); + } } diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index a63f493f..2972da64 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -83,8 +83,8 @@ class Articles $parents = self::getInheritedByProduct($article->product_id, $article->product_type); $data['description'] = self::getFullDescriptionByArticle($article); $image = self::getFullImageByArticle($article); - $data['image'] = self::getPreview($image); - $data['image_big'] = self::getImage($image); + $data['image'] = self::getPreviewSrc($image); + $data['image_big'] = self::getImageSrc($image); $data['inherited'] = self::getInherited($id); $data['categories'] = self::getCategoriesNameByArticle($article); $data['tags'] = self::getTagsSlugByArticle($article); @@ -408,6 +408,10 @@ class Articles $specie = $article->product; $image = $specie->image; break; + case 'App\Models\Shop\Merchandise': + $merchandise = $article->product; + $image = $merchandise->image; + break; } } return $image; diff --git a/app/Traits/Repository/Imageable.php b/app/Traits/Repository/Imageable.php index 2b66d79e..59fab86a 100644 --- a/app/Traits/Repository/Imageable.php +++ b/app/Traits/Repository/Imageable.php @@ -23,7 +23,7 @@ trait Imageable public static function getThumbSrc($image) { - return Medias::getThumbSrc($image); + return $image ? Medias::getThumbSrc($image) : '/img/visuel-non-disponible.jpg'; } public static function getPreview($image) diff --git a/resources/views/Shop/Articles/partials/ArticleAddBasket.blade.php b/resources/views/Shop/Articles/partials/ArticleAddBasket.blade.php index 971b62fa..04cf5c5c 100644 --- a/resources/views/Shop/Articles/partials/ArticleAddBasket.blade.php +++ b/resources/views/Shop/Articles/partials/ArticleAddBasket.blade.php @@ -42,7 +42,7 @@ label: '{{ __('Commander') }}', className: 'btn-success', callback: function() { - submitModal(form_id); + // submitModal(form_id); } }, }; @@ -51,11 +51,12 @@ 'Ajout dans le panier', 'basket-form', "{{ route('Shop.Basket.modalBasket') }}/" + offer_id + '/' + quantity, - "{{ route('Shop.Basket.addBasket') }}", - refreshBasketTop(), + "{{ route('Shop.Orders.create') }}", + false, false, true, - buttons + buttons, + "refreshBasketTop()", ); }); diff --git a/resources/views/Shop/Articles/show.blade.php b/resources/views/Shop/Articles/show.blade.php index a2e9b113..546e3974 100644 --- a/resources/views/Shop/Articles/show.blade.php +++ b/resources/views/Shop/Articles/show.blade.php @@ -10,7 +10,7 @@
- {!! $article['image_big'] !!} +
{!! $article['description'] !!} diff --git a/resources/views/Shop/Baskets/basket.blade.php b/resources/views/Shop/Baskets/basket.blade.php index 084cb1fa..ac17dd52 100644 --- a/resources/views/Shop/Baskets/basket.blade.php +++ b/resources/views/Shop/Baskets/basket.blade.php @@ -4,7 +4,7 @@ @section('content') @if ($basket) -
+
@@ -17,7 +17,7 @@
@foreach ($basket as $nature => $items) -
+

{{ ucfirst($nature) }}

@foreach ($items as $item) @@ -73,19 +73,28 @@ calculateTotal(); $('.basket-quantity').change(function() { - calculatePrice($(this).parents('.basket-row')); + var offer_id = $(this).data('id'); + quantity = $('.basket-quantity').value; + addBasket(offer_id, quantity, function() { + calculatePrice($(this).parents('.basket-row')); + calculateTotal(); + }); }); $('.basket-delete').click(function() { var offer_id = $(this).data('id'); - var data = {offer_id: offer_id, quantity: 0}; - $.post("{{ route('Shop.Basket.addBasket') }}", data, function() { + addBasket(offer_id, 0, function() { $('#basket_offer-' + offer_id).remove(); calculateTotal(); }); }); } + function addBasket(offer_id, quantity, callback) { + var data = {offer_id: offer_id, quantity: 0}; + $.post("{{ route('Shop.Basket.addBasket') }}", data, callback); + } + function calculatePrice($that) { var quantity = $that.find('.basket-quantity').val(); var price = $that.find('.basket-price').text(); @@ -103,6 +112,7 @@ }); $('#basket-total').html(fixNumber(total)); calculateTotalShipped(); + refreshBasketTop(); return total; } diff --git a/resources/views/Shop/Baskets/partials/article.blade.php b/resources/views/Shop/Baskets/partials/article.blade.php index 913bcf07..c2292e75 100644 --- a/resources/views/Shop/Baskets/partials/article.blade.php +++ b/resources/views/Shop/Baskets/partials/article.blade.php @@ -14,13 +14,12 @@ 'name' => 'quantity', 'value' => $item['quantity'], 'class' => 'basket-quantity', + 'data_id' => $item['id'], ])
-
+
{{ $item['quantity'] * $item['price'] }} € -
-
- +
diff --git a/resources/views/Shop/layout/layout.blade.php b/resources/views/Shop/layout/layout.blade.php index aac842a8..c5091406 100644 --- a/resources/views/Shop/layout/layout.blade.php +++ b/resources/views/Shop/layout/layout.blade.php @@ -56,11 +56,10 @@ @endif - @stack('js') - + @stack('js') + \ No newline at end of file diff --git a/resources/views/Shop/layout/partials/header-basket.blade.php b/resources/views/Shop/layout/partials/header-basket.blade.php index c2277da8..646b2866 100644 --- a/resources/views/Shop/layout/partials/header-basket.blade.php +++ b/resources/views/Shop/layout/partials/header-basket.blade.php @@ -1,7 +1,7 @@
-