forked from admin/services_core
93 lines
2.3 KiB
PHP
93 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Material;
|
|
|
|
use App\Http\Controllers\ApiController;
|
|
use App\Http\Requests\Material\AssignMaterialRequest;
|
|
use App\Http\Requests\Material\TransferMaterialRequest;
|
|
use App\Http\Requests\Material\ReturnMaterialRequest;
|
|
use App\Http\Resources\Material\MaterialResource;
|
|
use App\Services\Material\MaterialService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class MaterialController extends ApiController
|
|
{
|
|
protected $service;
|
|
|
|
public function __construct(MaterialService $service)
|
|
{
|
|
$this->service = $service;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$filters = $request->only([
|
|
'search',
|
|
'technician_id',
|
|
'warehouse_id',
|
|
'type',
|
|
'page',
|
|
'per_page',
|
|
'sort_by',
|
|
'sort_order',
|
|
]);
|
|
|
|
$data = $this->service->list($filters);
|
|
|
|
return $this->successPaginated(
|
|
$data,
|
|
MaterialResource::class,
|
|
'List material user berhasil diambil'
|
|
);
|
|
}
|
|
|
|
public function assign(AssignMaterialRequest $request)
|
|
{
|
|
$result = $this->service->assign($request->validated());
|
|
|
|
return $this->created(
|
|
new MaterialResource($result),
|
|
'Material berhasil di-assign'
|
|
);
|
|
}
|
|
|
|
public function transfer(TransferMaterialRequest $request)
|
|
{
|
|
$result = $this->service->transfer($request->validated());
|
|
|
|
return $this->updated(
|
|
new MaterialResource($result),
|
|
'Material berhasil di-transfer'
|
|
);
|
|
}
|
|
|
|
public function return(ReturnMaterialRequest $request)
|
|
{
|
|
$result = $this->service->return($request->validated());
|
|
|
|
return $this->updated(
|
|
new MaterialResource($result),
|
|
'Material berhasil direturn'
|
|
);
|
|
}
|
|
|
|
public function listByUser($user_id)
|
|
{
|
|
$data = $this->service->listByUser($user_id);
|
|
|
|
return $this->success(
|
|
\App\Http\Resources\Material\MaterialResource::collection($data),
|
|
'List material user berhasil diambil'
|
|
);
|
|
}
|
|
|
|
public function history($barcode_id)
|
|
{
|
|
$data = $this->service->history($barcode_id);
|
|
|
|
return $this->success(
|
|
$data,
|
|
'History material berhasil diambil'
|
|
);
|
|
}
|
|
} |