commit melhorias sgf
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
use Illuminate\Support\Facades\Auth;use Illuminate\Support\Str;use App\Shared\Context\{CompanyContext,ModuleRecords};
|
||||
$book=$argv[1]??'regression';require __DIR__.'/sgf-single-bootstrap.php';$file=$s['root'].'/single-document-inputs.json';if(is_file($file)){echo json_encode(['passed'=>true,'replayed'=>true,'commands'=>0]).PHP_EOL;exit;}
|
||||
$profiles=json_decode(file_get_contents($s['root'].'/single-profiles.json'),true)['profiles'];$old=json_decode(file_get_contents($s['root'].'/single-commercial.json'),true);$actor=App\Models\User::findOrFail($profiles['commercial_prepare']['user_id']);$reviewer=App\Models\User::findOrFail($profiles['commercial_review']['user_id']);
|
||||
config(['sgf_single_installation.enabled'=>true,'sgf_single_installation.schema_sha256'=>$host->table('sgf_composition_schema')->value('source_hash')]);Auth::guard('web')->setUser($actor);$r=Illuminate\Http\Request::create('/api/a/billing_drafts','POST');$r->attributes->set('sgf_module','commercial');$r->setUserResolver(fn()=>$actor);$session=app('session')->driver();$session->start();$session->put('company_context',$f['scope']+['module_id'=>'commercial','token'=>'document-inputs']);$r->setLaravelSession($session);$app->instance('request',$r);app(CompanyContext::class)->selectFor($actor->id,1,2,2);
|
||||
require_once base_path('tests/Support/IdentityFixture.php');require_once base_path('tests/Support/InvoiceFixture.php');
|
||||
$before=$host->table('si_invoices')->orderBy('id')->get()->toJson();$grants=$host->table('permission_grants')->orderBy('id')->get()->toJson();
|
||||
$result=$host->transaction(function()use($old,$actor,$reviewer,$f,$host){$base=$old+['tenant'=>$f['tenant'],'company'=>$f['company'],'unit'=>$f['unit'],'manager'=>$actor,'reader'=>$reviewer];$out=[];
|
||||
foreach(['credit_invoice','invoice_receipt'] as $name){$created=Tests\Support\InvoiceFixture::additionalDraft($base,'862.07');$s=app(App\Modules\Services\ServiceInvoicing::class);$series=$s->propose($actor->id,['kind'=>'series','identifier'=>'TEST-DOC-'.($name==='credit_invoice'?'NC':'FR').'-2026','data'=>['valid_from'=>$created['start'],'code'=>'TEST-DOC-'.($name==='credit_invoice'?'NC':'FR').'-2026','first_number'=>1,'state'=>'open','evidence'=>'Nova série exclusivamente QA para o bloco documental autorizado.']]);app(CompanyContext::class)->selectFor($reviewer->id,1,2,2);$s->decide($series['id'],$reviewer->id,['version'=>1,'decision'=>'approved','reason'=>'Revisão distinta da nova série QA, sem reiniciar numeração existente.']);app(CompanyContext::class)->selectFor($actor->id,1,2,2);
|
||||
foreach(['service_drafts'=>'source','billing_drafts'=>'draft'] as $area=>$key){$row=$host->table('a_'.$area)->where('id',$created[$key])->firstOrFail();foreach(['finance','accounting'] as $module)ModuleRecords::associate($area,$row->id,$actor->id,$f['scope'],$module,'Conferência individual desta nova origem QA para documentos e mesmo diário.',false,(int)$row->version);}
|
||||
$out[$name]=['draft_id'=>$created['draft'],'source_id'=>$created['source'],'series_id'=>$series['id'],'rule_id'=>$created['rule'],'client_id'=>$created['client'],'total'=>'1000.00','base'=>'862.07','document_tax'=>'137.93'];
|
||||
}return $out;
|
||||
});
|
||||
if($before!==$host->table('si_invoices')->orderBy('id')->get()->toJson()||$grants!==$host->table('permission_grants')->orderBy('id')->get()->toJson())throw new LogicException('Original invoice or rights changed');
|
||||
file_put_contents($file,json_encode($result,JSON_PRETTY_PRINT));echo json_encode(['passed'=>true,'book'=>$book,'new_prepared_sources'=>2,'invoices_issued'=>0,'rights_changed'=>false]).PHP_EOL;
|
||||
Reference in New Issue
Block a user