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

@@ -145,9 +145,13 @@ class Articles
public static function getArticlesToSell($options)
{
$articles = self::getArticlesWithOffers($options);
// dump($options);
// dump($articles->toArray());
// exit;
/*
foreach ($articles as $article) {
$price_lists = $article->offers[0]->tariff->price_lists->toArray();
// dump($price_lists);
dump($price_lists);
if (count($price_lists)) {
if (!is_array($data[$article->name] ?? false)) {
$data[$article->name] = self::getDataForSale($article);
@@ -157,6 +161,7 @@ class Articles
$data[$article->name][$article_nature_name] = self::getDataPriceForSale($article, $prices);
}
}
*/
return $data ?? false;
}
@@ -190,14 +195,24 @@ class Articles
$sale_channel_id = $options['sale_channel_id'] ?? SaleChannels::getDefaultID();
$tags = $options['tags'] ?? false;
$model = ($options['homepage'] ?? false) ? Article::homepage()->visible() : Article::visible();
dump($model->with([
'offers' => function($query) use ($sale_channel_id) {
$query->withPriceListValuesBySaleChannel($sale_channel_id);
},
])
->get()->toArray());
dump('ici');
// exit;
return $model->byCategory($category_id)->byTags($tags)->withAvailableOffers($sale_channel_id)->with([
'image',
'product',
'article_nature',
'offers.variation.package',
'offers.tariff.price_lists' => function($query) use ($sale_channel_id) {
'offers' => function($query) use ($sale_channel_id) {
$query->bySaleChannel($sale_channel_id);
},
'offers.variation.package',
'offers.tariff.price_lists.price_list_values',
])->get();
}

View File

@@ -48,27 +48,25 @@ class Offers
];
}
public static function getOffersByArticles($articles_ids, $sale_channel_id = false)
public static function getOffersByArticles($article_ids, $sale_channel_id = false)
{
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
return Offer::active()
->with([
'article_nature',
'variation',
'tariff.price_lists' => function ($query) use ($sale_channel_id) {
$query->bySaleChannel($sale_channel_id);
},
'tariff.price_lists.price_list_values',
])
->byArticles($articles_ids)
->bySaleChannel($sale_channel_id)
->get();
return self::getOffersBySaleChannelRaw($sale_channel_id)->byArticles($article_ids)->get();
}
public static function getOffersByArticle($article_id, $sale_channel_id = false)
{
return self::getOffersBySaleChannelRaw($sale_channel_id)->byArticle($article_id)->get();
}
public static function getOffersBySaleChannel($sale_channel_id = false)
{
return self::getOffersBySaleChannelRaw($sale_channel_id)->get();
}
public static function getOffersBySaleChannelRaw($sale_channel_id = false)
{
$sale_channel_id = $sale_channel_id ? $sale_channel_id : SaleChannels::getDefaultID();
return Offer::active()
return Offer::active()->byStockAvailable()
->with([
'article_nature',
'variation',
@@ -77,9 +75,7 @@ class Offers
},
'tariff.price_lists.price_list_values',
])
->byArticle($article_id)
->bySaleChannel($sale_channel_id)
->get();
->bySaleChannel($sale_channel_id);
}
public static function getThumbSrcById($id)