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];};