Files
SGF/scripts/sgf-document-closed-period-check.php
2026-11-11 09:00:17 +02:00

5 lines
1.7 KiB
PHP

<?php
// Included only while the existing selected-book period proof holds its rollback-only closure.
$profiles=json_decode(file_get_contents($s['root'].'/single-profiles.json'),true)['profiles'];$u=App\Models\User::findOrFail($profiles['finance_review']['user_id']);Illuminate\Support\Facades\Auth::forgetGuards();Illuminate\Support\Facades\Auth::shouldUse('web');Illuminate\Support\Facades\Auth::guard('web')->setUser($u);$r=Illuminate\Http\Request::create('/api/service-documents/preview','POST');$r->attributes->set('sgf_module','commercial');$r->setUserResolver(fn()=>$u);$session=app('session')->driver();$session->start();$session->put('company_context',$f['scope']+['module_id'=>'commercial','token'=>'closed-documents-proof']);$r->setLaravelSession($session);$app->instance('request',$r);app(App\Shared\Context\CompanyContext::class)->selectFor($u->id,1,2,2);
config(['service_documents.enabled'=>true,'service_documents.invoice_receipt_enabled'=>true,'service_documents.inputs_sha256'=>hash_file('sha256',$s['root'].'/single-document-inputs.json')]);$output=$host->table('sd_outputs')->where('kind','credit_note')->firstOrFail();$bad=false;try{app(App\Modules\Services\ServiceDocuments::class)->preview($u->id,['kind'=>'credit_note','action'=>'cancel_review','document_key'=>$output->document_key,'version'=>3,'data'=>[],'reason'=>'Recusar anulação em período QA efectivamente fechado dentro da prova.'],(string)Illuminate\Support\Str::uuid());}catch(Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e){$bad=$e->getStatusCode()===409&&str_contains($e->getMessage(),'período QA aberto');}$ok($bad,'document cancellation refuses an actually closed QA period without reopening');