From 15539f27a69a80bf2367505aafe77dde79eb2432 Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Mon, 21 Feb 2022 09:09:36 +0100 Subject: [PATCH] Add new search of articles --- app/Http/Controllers/Shop/ArticleController.php | 2 ++ app/Models/Shop/Offer.php | 14 +++++++++++--- app/Models/Shop/Tariff.php | 5 ++--- app/Repositories/Shop/Offers.php | 6 +++--- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Shop/ArticleController.php b/app/Http/Controllers/Shop/ArticleController.php index b7ee3e8b..5b752ce0 100644 --- a/app/Http/Controllers/Shop/ArticleController.php +++ b/app/Http/Controllers/Shop/ArticleController.php @@ -14,6 +14,8 @@ class ArticleController extends Controller { $data = self::init(); $data['article'] = Articles::getArticleToSell($id); + // dump($data['article']); + // exit; return view('Shop.Articles.show', $data); } } diff --git a/app/Models/Shop/Offer.php b/app/Models/Shop/Offer.php index 41148e63..72c6ac4f 100644 --- a/app/Models/Shop/Offer.php +++ b/app/Models/Shop/Offer.php @@ -39,7 +39,7 @@ class Offer extends Model public function price_lists() { - return $this->hasManyThrough(PriceList::class, Tariff::class, 'id', 'tariff_id', 'id', 'id'); + return $this->hasManyThrough(PriceList::class, Tariff::class, 'id', 'tariff_id', 'tariff_id', 'id'); } public function categories() @@ -64,7 +64,7 @@ class Offer extends Model public function scopeActive($query) { - return $query->byStatus(1)->byTariffActive(); + return $query->byStatus(1)->HasTariffActive(); } public function scopeByArticle($query, $id) @@ -132,10 +132,18 @@ class Offer extends Model }); } - public function scopeByTariffActive($query) + public function scopeHasTariffActive($query) { return $query->whereHas('tariff', function ($query) { $query->active(); }); } + + public function scopeBySaleChannel($query, $sale_channel_id) + { + return $query->whereHas('price_lists', function ($query) use ($sale_channel_id) { + $query->active()->bySaleChannel($sale_channel_id); + }); + } + } diff --git a/app/Models/Shop/Tariff.php b/app/Models/Shop/Tariff.php index d85c55b6..2f39b6bd 100644 --- a/app/Models/Shop/Tariff.php +++ b/app/Models/Shop/Tariff.php @@ -28,7 +28,6 @@ class Tariff extends Model public function sale_channels() { - // return $this->HasManyThrough(SaleChannel::class, PriceList::class); return $this->HasManyThrough(SaleChannel::class, PriceList::class, 'id', 'id', 'id', 'sale_channel_id'); } @@ -73,10 +72,10 @@ class Tariff extends Model public function scopeActive($query) { - return $query->byStatus(0)->byPriceListsActive(); + return $query->byStatus(0)->hasPriceListsActive(); } - public function scopeByPriceListsActive($query) + public function scopeHasPriceListsActive($query) { return $query->whereHas('price_lists', function ($query) { $query->active(); diff --git a/app/Repositories/Shop/Offers.php b/app/Repositories/Shop/Offers.php index 590cc51d..72f9d65a 100644 --- a/app/Repositories/Shop/Offers.php +++ b/app/Repositories/Shop/Offers.php @@ -7,14 +7,14 @@ use App\Models\Shop\Offer; class Offers { - public static function getOffersByArticles($articles_id) + public static function getOffersByArticles($articles_ids) { - return Offer::active()->with(['article_nature', 'tariff.price_lists.price_list_values', 'variation'])->byArticles($articles_id)->get(); + return Offer::active()->with(['article_nature', 'variation', 'tariff.price_lists.price_list_values'])->byArticles($articles_ids)->get(); } public static function getOffersByArticle($article_id) { - return Offer::active()->with('variation')->byArticle($article_id)->get(); + return Offer::active()->with(['article_nature', 'variation', 'tariff.price_lists.price_list_values'])->byArticle($article_id)->get(); } public static function getThumbSrcById($id)