Add display of shelve
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -112,5 +112,4 @@ class Offer extends Model
|
||||
$query->whereIn('tag_id', $tags);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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']])
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user