Files
SGF/scripts/sgf-stock-completion-proof-bootstrap.php
T
2026-11-11 09:00:17 +02:00

12 lines
1.8 KiB
PHP

<?php
use Illuminate\Support\Facades\{Auth,DB};use Illuminate\Support\Str;use App\Shared\Context\CompanyContext;
require __DIR__.'/sgf-stock-final-proof-bootstrap.php';
$policy=json_decode(file_get_contents($s['root'].'/stock-completion-binding.json'),true);config(['stock_completion.enabled'=>true,'stock_completion.binding_sha256'=>hash_file('sha256',$s['root'].'/stock-completion-binding.json')]);
$invoke=function($role,$method,$data=[])use($app,$f,$profiles){
Auth::forgetGuards();Auth::shouldUse('web');$user=App\Models\User::findOrFail($role==='warehouse'?$f['validator']:$profiles[$role]['user_id']);Auth::guard('web')->setUser($user);
$r=Illuminate\Http\Request::create('/api/stock-completion',$method==='index'?'GET':'POST',$data);$r->attributes->set('sgf_module','stock');$session=app('session')->driver();$session->start();$session->put('company_context',$f['scope']+['module_id'=>'stock','token'=>'completion-'.$role]);$r->setLaravelSession($session);$r->setUserResolver(fn()=>$user);$app->instance('request',$r);app(CompanyContext::class)->selectFor($user->id,1,2,2);
return app(App\Modules\Inventory\StockCompletionController::class)->$method($r,app(App\Modules\Purchasing\ReceiptRuntime::class))->getData(true);
};
$prepare=function($role,$family,$action,$data=[],$record=null,$version=0)use($invoke){$state=$invoke($role,'index',['family'=>$family]);return $invoke($role,'preview',['family'=>$family,'action'=>$action,'data'=>$data,'record_key'=>$record,'version'=>$version,'operation_key'=>(string)Str::uuid(),'revision'=>$state['revision'],'reason'=>'Conferência QA individual da origem, versão e impacto.']);};
$command=function($role,$family,$action,$data=[],$record=null,$version=0)use($invoke,$prepare){$p=$prepare($role,$family,$action,$data,$record,$version);return [$invoke($role,'confirm',['preview'=>$p['preview']]),$p];};