Files
opensem/app/Repositories/Shop/Deliveries.php

58 lines
1.3 KiB
PHP

<?php
namespace App\Repositories\Shop;
use App\Models\Shop\Delivery;
use App\Repositories\Shop\Customers;
use App\Traits\Model\Basic;
class Deliveries
{
use Basic;
public static function init()
{
return [
'sale_channels' => SaleChannels::getOptions(),
];
}
public static function getByCustomer($customerId = false)
{
$customer = Customers::get($customerId);
$saleChannels = $customer->sale_channels->pluck('id')->toArray();
return self::getBySaleChannels($saleChannels);
}
public static function getBySaleChannels($saleChannels)
{
return Delivery::bySaleChannels($saleChannels)->get();
}
public static function getSaleChannelId($deliveryId)
{
return $deliveryId ? Deliveries::getField($deliveryId, 'sale_channel_id') : SaleChannels::getDefaultID();
}
public static function getDefault()
{
return Delivery::active()->atHouse()->first();
}
public static function getAllWithSaleChannel()
{
return Delivery::orderBy('name', 'asc')->active()->public()->with('sale_channel')->get();
}
public static function toggle_active($id, $active)
{
return self::update(['active' => $active], $id);
}
public static function getModel()
{
return Delivery::query();
}
}