Try to fix price_lists by sale_channel

This commit is contained in:
Ludovic CANDELLIER
2022-03-30 00:36:58 +02:00
parent ff18a0f5bf
commit c4bb4fdd59
8 changed files with 54 additions and 25 deletions

View File

@@ -38,6 +38,16 @@ class Article extends Model implements HasMedia
return $this->hasMany(Offer::class);
}
public function price_lists()
{
return $this->hasManyDeep(
PriceList::class,
[Offer::class, Tariff::class],
['article_id', 'id'],
['id', 'tariff_id'],
);
}
public function prices()
{
return $this->hasManyDeep(

View File

@@ -163,10 +163,9 @@ class Offer extends Model
public function scopeWithPriceListValuesBySaleChannel($query, $sale_channel_id)
{
return $query->with([
'price_lists' => function($query) use ($sale_channel_id) {
'price_lists.price_list_values' => function($query) use ($sale_channel_id) {
$query->bySaleChannel($sale_channel_id);
},
'price_lists.price_list_values',
]);
}

View File

@@ -39,4 +39,12 @@ class PriceListValue extends Model
{
return $query->orderBy('quantity', 'desc')->where($this->table . '.quantity', '<=', $quantity)->first();
}
public function scopeBySaleChannel($query, $sale_channel_id) {
return $query->with([
'price_list' => function ($query) use ($sale_channel_id) {
return $query->bySaleChannel($sale_channel_id);
},
]);
}
}

View File

@@ -53,7 +53,7 @@ class Tariff extends Model
->orWhere($this->table . '.code', 'LIKE', "${str}%");
}
public function scopeBySaleChanel($query, $id)
public function scopeBySaleChanelDefault($query, $id)
{
return $query->where($this->table . '.sale_channel_id', $id);
}