fix on shelve with available offers
This commit is contained in:
@@ -12,6 +12,6 @@ class Basket extends Model
|
|||||||
|
|
||||||
public function Offer()
|
public function Offer()
|
||||||
{
|
{
|
||||||
return $this->belongsTo('App\Models\Shop\Offer');
|
return $this->belongsTo(Offer::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
43
app/Models/Shop/Categorizable.php
Normal file
43
app/Models/Shop/Categorizable.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Shop;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Categorizable extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'categorizables';
|
||||||
|
|
||||||
|
public function categorizable()
|
||||||
|
{
|
||||||
|
return $this->morphTo();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function category()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Category::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function articles()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(Article::class)->where('categorizable_type', Article::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeByCategory($query, $category_id)
|
||||||
|
{
|
||||||
|
return $query->where($this->table . '.category_id', $category_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeByCategories($query, $categories_id)
|
||||||
|
{
|
||||||
|
return $query->whereIn($this->table . '.category_id', $categories_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scopeByCategoryParent($query, $category_id)
|
||||||
|
{
|
||||||
|
$category = Category::find($category_id);
|
||||||
|
return $query->whereHas('category', function ($query) use ($category) {
|
||||||
|
return $query->inRange($category->_lft, $category->_rgt);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -36,11 +36,21 @@ class Category extends parentCategory
|
|||||||
return $this->morphedByMany(Article::class, 'categorizable');
|
return $this->morphedByMany(Article::class, 'categorizable');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ArticlesByParent()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public function ArticlesTagged()
|
public function ArticlesTagged()
|
||||||
{
|
{
|
||||||
return $this->tags->articles;
|
return $this->tags->articles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function categorizables()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Categorizable::class);
|
||||||
|
}
|
||||||
|
|
||||||
public function countArticlesTagged()
|
public function countArticlesTagged()
|
||||||
{
|
{
|
||||||
return $this->tags()->withCount('Articles');
|
return $this->tags()->withCount('Articles');
|
||||||
@@ -66,6 +76,11 @@ class Category extends parentCategory
|
|||||||
return $query->where('id', '<>', 1);
|
return $query->where('id', '<>', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function scopeInRange($query, $_lft, $_rgt)
|
||||||
|
{
|
||||||
|
return $query->where('_lft', '>=', $_lft)->where('_rgt', '<=', $_rgt);
|
||||||
|
}
|
||||||
|
|
||||||
public function scopeHasAvailableOffers($query, $sale_channel_id = false)
|
public function scopeHasAvailableOffers($query, $sale_channel_id = false)
|
||||||
{
|
{
|
||||||
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
|
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
|
||||||
@@ -73,4 +88,12 @@ class Category extends parentCategory
|
|||||||
$query->WithAvailableOffers($sale_channel_id);
|
$query->WithAvailableOffers($sale_channel_id);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function scopeHasAvailableOffersByCategoryParent($query, $sale_channel_id = false)
|
||||||
|
{
|
||||||
|
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
|
||||||
|
return $query->whereHas('articles', function ($query) use ($sale_channel_id) {
|
||||||
|
$query->WithAvailableOffers($sale_channel_id);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class Categories
|
|||||||
public static function getCategoryTreeVisibles($sale_channel_id = false)
|
public static function getCategoryTreeVisibles($sale_channel_id = false)
|
||||||
{
|
{
|
||||||
// return self::getModel()->defaultOrder()->visible()->hasAvailableOffers($sale_channel_id)->get()->toTree();
|
// return self::getModel()->defaultOrder()->visible()->hasAvailableOffers($sale_channel_id)->get()->toTree();
|
||||||
return self::getModel()->defaultOrder()->hasAvailableOffers()->visible()->get()->toTree();
|
return self::getModel()->defaultOrder()->visible()->get()->toTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getChildren($data, $withFolder = false)
|
public static function getChildren($data, $withFolder = false)
|
||||||
|
|||||||
Reference in New Issue
Block a user