Files
SGF/scripts/sgf-fiscal-obligations-proof-bootstrap.php
2026-11-11 09:00:17 +02:00

12 lines
3.0 KiB
PHP

<?php
require __DIR__.'/sgf-iva-proof-bootstrap.php';
config(['fiscal_obligations.enabled'=>true,'fiscal_obligations.schema_sha256'=>hash_file('sha256',$repo.'/database/sql/fiscal_obligations.sql')]);
set_exception_handler(function($e){echo json_encode(['passed'=>false,'type'=>get_class($e),'message'=>$e->getMessage(),'frames'=>array_map(fn($f)=>[basename($f['file']??''),$f['line']??0],array_slice($e->getTrace(),0,5))]).PHP_EOL;exit(1);});
$fo=app(App\Modules\Services\FiscalObligations::class);$foQuery=['reference_on'=>'2026-12-15'];$selectFiscal(13);$foSource=$fo->listing(13,$foQuery)['source'];if(!$foSource&&($foProvisionRegression??false)===true){if($book!=='regression')throw new LogicException('Never recreate8085 map');$selectFiscal(13);$current=$w->listing(13,[]);$made=[];if(!$current['assessment_current_review']){if(($current['assessment']['state']??null)==='prepared'){[$a]=$command(14,$input('assessment','review',$current['assessment']['version']));$made[]=$a;}else{[$a]=$command(13,$input('assessment','prepare',$current['assessment']['version']??0));$made[]=$a;[$a]=$command(14,$input('assessment','review',$a['version']));$made[]=$a;}}$selectFiscal(13);$current=$w->listing(13,[]);[$a]=$command(13,$input('form','prepare',$current['form']['version']??0));$made[]=$a;[$a]=$command(14,$input('form','review',$a['version']));$made[]=$a;$selectFiscal(13);$foSource=$fo->listing(13,$foQuery)['source'];file_put_contents($work.'/fiscal-obligations-source.json',json_encode(['passed'=>is_array($foSource),'regression_only'=>true,'necessary_missing_source_commands'=>count($made),'existing_assessment_reused'=>$current['assessment_current_review'],'new_financial_effects'=>0],JSON_PRETTY_PRINT));echo json_encode(['passed'=>is_array($foSource),'source_proof'=>$work.'/fiscal-obligations-source.json']).PHP_EOL;}if(!$foSource)throw new LogicException('Existing reviewed map required');
$foData=['operation'=>'establish','form_id'=>$foSource['form_id'],'period'=>$foSource['period'],'responsible_id'=>13,'due_on'=>'2026-12-15','evidence'=>'QA prazo artificial, sem fundamento legal ou submissão externa.','export_sha256'=>null];
$foInput=fn($key,$version,$data,$action='prepare')=>['action'=>$action,'record_key'=>$key,'version'=>$version,'reason'=>'Decisão administrativa QA individual, sem tributo ou pagamento.','data'=>$data];
$foPreview=function($actor,$input,$key=null)use($selectFiscal,$fo){$selectFiscal($actor,'fo-proof');return$fo->preview($actor,$input,$key??(string)Illuminate\Support\Str::uuid());};
$foConfirm=function($actor,$preview,$generation='fo-proof')use($selectFiscal,$fo){$selectFiscal($actor,$generation);return$fo->confirm($actor,$preview);};
$foCommand=function($actor,$input,$key=null)use($foPreview,$foConfirm){$key??=(string)Illuminate\Support\Str::uuid();$cut=$foPreview($actor,$input,$key);return[$foConfirm($actor,$cut['preview']),$cut,$key];};
$foList=function($actor=17,$extra=[])use($selectFiscal,$fo,$foQuery){$selectFiscal($actor,'fo-proof');return$fo->listing($actor,$extra+$foQuery);};