Add display of shelve

This commit is contained in:
Ludovic CANDELLIER
2022-01-23 22:49:23 +01:00
parent 81b6c87d59
commit 52019357ba
10 changed files with 38 additions and 27 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Articles;
use App\Repositories\Shop\Categories;
use App\Repositories\Shop\Offers;
use App\Repositories\Shop\Tags;
@@ -17,15 +18,14 @@ class CategoryController extends Controller
return $dataTable->render('Shop.Categories.list');
}
public function show($id)
public function show($category_id)
{
$data = self::init();
$data['category'] = Categories::getFull($id);
$data['offers'] = Offers::getByCategoryWithTags($id);
$data['tags'] = Tags::getWithCountOffers();
$data['tags2'] = TagGroups::getWithTagsAndCountOffers();
dump($data);
exit;
$data['category'] = Categories::getFull($category_id);
$data['articles'] = Articles::getArticlesToSell($category_id);
$data['tags'] = TagGroups::getWithTagsAndCountOffers();
// dump($data);
// exit;
return view('Shop.shelve', $data);
}

View File

@@ -23,9 +23,7 @@ class HomeController extends Controller
$input = $request->input();
$data = self::init();
$data['display_by_rows'] = $input['by_rows'] ?? false;
// $data['offers'] = Offers::getLast()->toArray();
$data['articles'] = Articles::getArticlesToSell();
// $data['tags'] = Tags::getWithCountOffers();
$data['tags'] = TagGroups::getWithTagsAndCountOffers();
return view('Shop.home', $data);
}

View File

@@ -78,9 +78,9 @@ class Article extends Model implements HasMedia
public function scopeByCategory($query, $category_id)
{
return $query->whereHas('categories', function ($query) use ($category_id) {
return $category_id ? $query->whereHas('categories', function ($query) use ($category_id) {
$query->where('id', $category_id);
});
}) : $query;
}
public function scopeByProduct($query, $model)
@@ -93,6 +93,20 @@ class Article extends Model implements HasMedia
return $query->where($this->table . '.product_id', $model_id);
}
public function scopeByTag($query, $tag_id)
{
return $tag_id ? $query->whereHas('tags', function ($query) use ($tag_id) {
$query->where('id', $tag_id);
}) : $query;
}
public function scopeByTags($query, $tags)
{
return $tags ? $query->whereHas('tags', function ($query) use ($tags) {
$query->whereIn('id', $tags);
}) : $query;
}
public function scopeWithOffers($query)
{
return $query->has('offers');

View File

@@ -112,5 +112,4 @@ class Offer extends Model
$query->whereIn('tag_id', $tags);
});
}
}

View File

@@ -22,14 +22,10 @@ class PriceListValue extends Model
public function tariff()
{
return $this->belongsToThrough(
'App\Models\Shop\Tariff',
'App\Models\Shop\PriceList',
null,
'',
return $this->belongsToThrough('App\Models\Shop\Tariff', 'App\Models\Shop\PriceList', null, '',
[
'App\Models\Shop\Tariff' => 'tariff_id',
'App\Models\Shop\PriceList' => 'price_list_id'
'App\Models\Shop\PriceList' => 'price_list_id',
]
);
}

View File

@@ -61,9 +61,9 @@ class Articles
return $data;
}
public static function getArticlesToSell()
public static function getArticlesToSell($category_id = false, $tags = false)
{
$articles = self::getArticlesWithOffers();
$articles = self::getArticlesWithOffers($category_id, $tags);
foreach ($articles as $article) {
$price_lists = $article->offers[0]->tariff->price_lists->toArray();
// dump($price_lists);
@@ -93,9 +93,9 @@ class Articles
return $data;
}
public static function getArticlesWithOffers()
public static function getArticlesWithOffers($category_id = false, $tags = false)
{
return Article::visible()->withAvailableOffers()->with([
return Article::byCategory($category_id)->byTags($tags)->visible()->withAvailableOffers()->with([
'image',
'product',
'article_nature',

View File

@@ -1,3 +1,9 @@
<div class="row">
<div class="col-12">
@include('components.form.button', ['id' => 'reset_filters', 'txt' => 'Annuler les filtres', 'class' => 'btn-success w-100'])
</div>
</div>
@foreach ($tags as $group)
<h5>{{ $group['name'] }}</h5>
@foreach ($group['tags'] as $tag)

View File

@@ -14,7 +14,7 @@
<div class="row">
<div class="col-12">
Il y a {{ $nb ?? 0 }} article(s) dans la liste
Il y a {{ count($articles) ?? 0 }} article(s) dans la liste
<form name="product_sorting">
<label>Trier par</label>
@include('components.form.select', ['name' => 'sorting', 'list' => ['Pertinence']])

View File

@@ -5,7 +5,7 @@
@section('content')
<div class="row">
<div class="col-3 col-lg-2">
@include('Shop.layout.partials.category_filters')
@include('Shop.Tags.partials.filter')
</div>
<div class="col-9 col-lg-10">
<div class="row">

View File

@@ -1,6 +1,4 @@
<button type="{{ $type ?? 'button' }}" class="btn {{ $class ?? ''}}" @if (isset($id)) id="{{ $id }}"@endif>
@if ($icon ?? false)
<i class="fa fa-fw {{ $icon ?? '' }}"></i>
@endif
@if ($icon ?? false)<i class="fa fa-fw {{ $icon ?? '' }}"></i>@endif
{{ $txt ?? '' }}
</button>