Files
opensem/app/Repositories/Shop/PriceListValues.php
2024-02-23 08:35:41 +01:00

60 lines
1.6 KiB
PHP

<?php
namespace App\Repositories\Shop;
use App\Models\Shop\Offer;
use App\Models\Shop\PriceListValue;
use App\Traits\Model\Basic;
class PriceListValues
{
use Basic;
public static function init()
{
return [
'unities' => Unities::getOptions(),
'taxes_options' => Taxes::getOptions(),
];
}
public static function getPriceByOffer($offer_id, $quantity = 1, $sale_channel_id = false)
{
$prices = self::getPricesByOffer($offer_id, $sale_channel_id);
$price = $prices ? $prices->where('quantity', '<=', $quantity)->sortByDesc('quantity')->first() : false;
return $price ? $price->price_taxed : false;
}
public static function getPricesByOffer($offer_id, $sale_channel_id = false)
{
$price_list = Offer::with([
'price_lists' => function ($query) use ($sale_channel_id) {
$sale_channel_id ? $query->bySaleChannel($sale_channel_id) : $query;
},
])->find($offer_id)->price_lists->first();
return $price_list ? $price_list->price_list_values : false;
}
public static function getByPriceList($id)
{
return PriceListValue::byPriceList($id)->get();
}
public static function storePrices($price_list_id, $values)
{
foreach ($values as $value) {
$value['price_list_id'] = $price_list_id;
if ($value['price']) {
self::store($value);
}
}
}
public static function getModel()
{
return PriceListValue::query();
}
}