4 lines
1.9 KiB
PHP
4 lines
1.9 KiB
PHP
<?php
|
|
$book=$argv[1]??'regression';require __DIR__.'/sgf-single-bootstrap.php';$p=json_decode(file_get_contents($repo.'/docs/integration/sgf-multi-line-invoice-proposal.json'),true);if(($p['approved']??false)!==true||$p['authorization']['decision']!=='Autorizar a facturação multilinha QA proposta'||$p['new_grants']!==0||$p['new_accounts']!==0)throw new LogicException('Exact approval required');if($book==='8085'&&!is_file($s['root'].'/multiline-invoice-backup-pointer.json'))throw new LogicException('Backup required');$sql=file_get_contents($repo.'/database/sql/multiline_invoices.sql');$sha=hash('sha256',$sql);$host->transaction(function()use($host,$sql,$sha,$tag){if(!$host->getSchemaBuilder()->hasTable('mi_meta')){$host->unprepared($sql);$host->table('mi_meta')->insert(['policy'=>App\Modules\Services\MultiLineInvoiceCalculation::POLICY,'composition'=>$tag,'source_hash'=>$sha]);}else{$m=$host->table('mi_meta')->first();if(!$m||$m->composition!==$tag||$m->source_hash!==$sha)throw new LogicException('Preserve different schema');}});$draftSql=file_get_contents($repo.'/database/sql/multiline_invoice_drafts.sql');$draftSha=hash('sha256',$draftSql);$host->transaction(function()use($host,$draftSql,$draftSha,$tag){if(!$host->getSchemaBuilder()->hasTable('mi_draft_meta')){$host->unprepared($draftSql);$host->table('mi_draft_meta')->insert(['policy'=>App\Modules\Services\MultiLineInvoiceCalculation::POLICY,'composition'=>$tag,'source_hash'=>$draftSha]);}else{$m=$host->table('mi_draft_meta')->first();if(!$m||$m->composition!==$tag||$m->source_hash!==$draftSha)throw new LogicException('Preserve different draft composition');}});
|
|
file_put_contents($work.'/multiline-invoice-setup.json',json_encode(['passed'=>true,'book'=>$book,'schema_sha256'=>$sha,'new_grants'=>0,'new_accounts'=>0,'new_demo'=>false],JSON_PRETTY_PRINT));echo json_encode(['passed'=>true,'proof'=>$work.'/multiline-invoice-setup.json']).PHP_EOL;
|