Files
services_core/app/Http/Controllers/Material/MaterialController.php
T
2026-07-02 23:34:17 +07:00

92 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->success(
MaterialResource::collection($data),
'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'
);
}
}