commit de compras
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
namespace App\Modules\Purchasing;
|
||||
|
||||
use App\Shared\Context\CompanyContext;
|
||||
use App\Modules\Identity\Services\Permissions;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/** Navigation only: every destination retains its own current native authority checks. */
|
||||
final class WorkspaceNavigation
|
||||
{
|
||||
public function links():array
|
||||
{
|
||||
if(config('receipt_qa.enabled')!==true||!app()->environment('budget-testing'))return [];
|
||||
$c=app(CompanyContext::class);$scope=$c->identifiers();if(!$c->unitId())return [];
|
||||
$definitions=[
|
||||
['requests','requests','Requisições','Preparar, submeter e obter aprovação distinta.'],
|
||||
['suppliers','suppliers','Fornecedores','Conferir cadastro e revisão antes das propostas.'],
|
||||
['sourcing','sourcing','Propostas e adjudicação','Comparar propostas e fundamentar a escolha; aprovação distinta.'],
|
||||
['orders','orders','Ordens','Emitir a partir da adjudicação aprovada.'],
|
||||
['enabled','receipts','Recepções','Conferir quantidades e qualidade da ordem emitida.'],
|
||||
['invoices','invoices','Facturas','Registar e validar o documento recebido.'],
|
||||
['obligations','obligations','Obrigações','Preparar fotografia e reconhecer por pessoa distinta.'],
|
||||
];$links=[];$permissions=app(Permissions::class);
|
||||
foreach($definitions as[$flag,$path,$label,$description]){
|
||||
$flag=$flag==='enabled'?$flag:$flag.'_enabled';$right='purchasing_'.$path.'.view';
|
||||
if(config('receipt_qa.'.$flag)===true&&$permissions->has($c->userId(),$scope['tenant_id'],$scope['company_id'],$right,$c->unitId()))$links[]=['url'=>'/purchasing/'.$path,'label'=>$label,'description'=>$description,'right'=>$right];
|
||||
}
|
||||
if(config('receipt_qa.dossiers_enabled')===true&&array_filter($links,fn($link)=>$link['right']==='purchasing_requests.view'))$links[]=['url'=>'/purchasing/dossiers','label'=>'Dossiês e evidência','description'=>'Consultar as etapas e o histórico autorizado da mesma requisição.','right'=>'purchasing_requests.view'];
|
||||
return $links;
|
||||
}
|
||||
public function screen(Request $r,ReceiptRuntime $runtime)
|
||||
{
|
||||
abort_unless(config('receipt_qa.enabled')===true,404);$links=$this->links();abort_unless($links,403);
|
||||
$runtime->run($links[0]['right'],fn()=>null);
|
||||
return response()->view('purchasing-workspace',['links'=>$links]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user