File: /var/www/ipsremont-demo/app/Services/Shipment/ShipmentService.php
<?php
namespace App\Services\Shipment;
use App\Http\Requests\Shipment\IndexRequest;
use App\Http\Requests\Shipment\CreateRequest;
use App\Repository\Shipment\ShipmentRepository;
use App\Services\BaseService;
use App\Services\Status\StatusService;
use App\Traits\Stat;
class ShipmentService extends BaseService
{
use Stat;
protected ShipmentRepository $repository;
public function __construct()
{
$this->repository = new ShipmentRepository();
}
/**
* @param $id
* @return mixed
*/
public static function getById($id)
{
return ShipmentRepository::getById($id);
}
/**
* @param IndexRequest $request
* @return mixed
*/
public function search(IndexRequest $request)
{
return $this->repository->search($request);
}
/**
* @param CreateRequest $request
*/
public function save(CreateRequest $request)
{
$this->repository->save($request);
}
public static function save1c($item)
{
return ShipmentRepository::save1c($item);
}
public static function getCdekShipments($limit)
{
return ShipmentRepository::getSdekShipments($limit);
}
public static function getPekShipments($limit)
{
return ShipmentRepository::getPekShipments($limit);
}
public static function getDpdShipments($limit)
{
return ShipmentRepository::getDpdShipments($limit);
}
public function getLast()
{
return $this->repository->getLast()->get();
}
public function getStats($start, $end) {
$statuses = StatusService::getShipmentAll();
$query = ShipmentRepository::getAvailable();
$query
->where('created_at', '>=', $start . ' 00:00:00')
->where('created_at', '<=', $end . ' 23:59:59');
return $this->countBySatuses($statuses, $query);
}
}