File: /var/www/ipsremont-demo/app/Services/Warehouse/WarehouseService.php
<?php
namespace App\Services\Warehouse;
use App\Http\Requests\Warehouse\CreateRequest;
use App\Http\Requests\Warehouse\IndexRequest;
use App\Http\Requests\Warehouse\UpdateRequest;
use App\Models\Warehouse;
use App\Repository\Warehouse\WarehouseRepository;
class WarehouseService
{
/** @var WarehouseRepository */
protected WarehouseRepository $repository;
/**
* WarehouseService constructor.
*/
public function __construct()
{
$this->repository = new WarehouseRepository();
}
/**
* @param $id
* @return mixed
*/
public static function getById($id)
{
return WarehouseRepository::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);
}
/**
* @param UpdateRequest $request
*/
public function update(UpdateRequest $request)
{
$this->repository->update($request);
}
/**
* @param $id
*/
public function delete($id)
{
$this->repository->delete($id);
}
public function deleteByBranch($id) {
$items = WarehouseRepository::getAvailable()->where(['branch_id' => $id])->get('id');
foreach ($items as $item) {
$this->repository->delete($item);
}
}
/**
* Return active items available for me, and filtered by Branch
* @return array
*/
public static function getByBranch($branchId = null) {
return WarehouseRepository::getByBranch($branchId)->get()->pluck('name', 'id')->toArray();
}
/**
* Return active items available for me, and filtered by Branch converted for ajax select
* @return array
*/
public static function getByBranchAjax($branchId = null, $search = null) {
$query = WarehouseRepository::getByBranch($branchId);
if ($search) {
$query->where('name', 'like', '%' . $search . '%');
}
return $query->get(['name as text','id'])->toArray();
}
/**
* Return global central warehouse
*
* @return Warehouse
*/
public static function getCentral() {
return WarehouseRepository::getCentral();
}
}