commit13
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\CostCenter;
|
||||
use App\Models\SupplyRecord;
|
||||
use App\Models\User;
|
||||
use App\Services\AutomaticPurchases;
|
||||
use App\Services\OrganizationAccess;
|
||||
use App\Services\SupplyPlanning;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Inertia\Inertia;
|
||||
|
||||
class AutomaticPurchaseController extends Controller
|
||||
{
|
||||
public function index(Request $request, AutomaticPurchases $service)
|
||||
{
|
||||
$actor=$request->user('web');
|
||||
abort_unless($actor instanceof User && $actor->hasFunctions(['admin','supply_read','supply_prepare','supply_review']),403);
|
||||
$prepare=app(SupplyPlanning::class)->allows($actor,'supply_prepare');
|
||||
$ready=$service->ready();
|
||||
$planning=app(SupplyPlanning::class);
|
||||
Inertia::encryptHistory();
|
||||
return Inertia::render('stock/replenishment',[
|
||||
'ready'=>$ready,'canPrepare'=>$prepare,'canReview'=>$planning->allows($actor,'supply_review'),
|
||||
'rules'=>$ready?$planning->latest('auto_rule')->latest('id')->limit(100)->get():[],
|
||||
'needs'=>$ready?$planning->latest('auto_need')->latest('id')->limit(100)->get():[],
|
||||
'history'=>$ready?SupplyRecord::query()->whereIn('kind',['auto_rule','auto_need'])->latest('id')->limit(100)->get():[],
|
||||
'policies'=>Schema::hasTable('supply_records') && $prepare?$planning->latest('policy')->where('state','approved')->where('data->purpose','internal')->get():[],
|
||||
'requesters'=>$prepare?User::query()->where('tenant_id',$actor->tenant_id)->get(['id','name','department_id','purchasing_role','tenant_id'])->filter(fn($u)=>in_array('requester',app(OrganizationAccess::class)->permissions($u,'procurement.internal'),true))->map(fn($u)=>$u->only(['id','name','department_id']))->values():[],
|
||||
'centers'=>$prepare?CostCenter::query()->orderBy('code')->get(['id','department_id','code','name']):[],
|
||||
])->toResponse($request)->withHeaders(['Cache-Control'=>'private, no-store, max-age=0']);
|
||||
}
|
||||
|
||||
public function save(Request $request, AutomaticPurchases $service)
|
||||
{
|
||||
$service->save($request->user('web'),$request->all());
|
||||
return redirect('/stock/reposicao');
|
||||
}
|
||||
|
||||
public function evaluate(Request $request, int $id, AutomaticPurchases $service)
|
||||
{
|
||||
$actor=$request->user('web');
|
||||
abort_unless($actor instanceof User && ($actor->hasFunctions(['supply_prepare','supply_review'])) && !app(OrganizationAccess::class)->maintenanceOnly($actor),403);
|
||||
$need=SupplyRecord::query()->where('kind','auto_need')->findOrFail($id);
|
||||
$service->evaluate($actor,$need->stock_item_id,$need->warehouse_id);
|
||||
return redirect('/stock/reposicao');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user