make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap(); \App\Modules\Services\ServiceInvoicing::guard(); $f=json_decode(file_get_contents('C:/laragon/data/sgf-tempo/secrets/browser-fixture.json'),true,32,JSON_THROW_ON_ERROR); $fixture=$f+$f['invoice']+['manager'=>\App\Models\User::findOrFail($f['manager_id']),'reader'=>\App\Models\User::findOrFail($f['reader_id'])]; $fixture=\Illuminate\Support\Facades\DB::transaction(fn()=>\Tests\Support\InvoiceFixture::additionalDraft($fixture)); $issuer=app(\App\Modules\Services\ServiceInvoicing::class); $review=$issuer->review($fixture['draft'],$fixture['series'],$fixture['rule'],$f['manager_id']); if(!$review['ready'])throw new RuntimeException('Synthetic export revision not ready.'); $result=$issuer->issue($fixture['draft'],$f['manager_id'],['series_id'=>$fixture['series'],'rule_id'=>$fixture['rule'],'review_hash'=>$review['review_hash']],(string)\Illuminate\Support\Str::uuid()); $pdf=$issuer->pdf($result['id'],$f['manager_id']); $dir=base_path('output/pdf'); if(!is_dir($dir))mkdir($dir,0777,true); file_put_contents($dir.'/sgf-tempo-factura-teste.pdf',$pdf); $view=$issuer->show($result['id'],$f['manager_id']); $long=$view['snapshot']; unset($long['document_lines']); $long['document']['observations']=str_repeat('Conteúdo sintético extenso para verificar paginação e margens. ',80).str_repeat('W',800); file_put_contents(storage_path('app/invoice-long-proof.pdf'),app(\App\Modules\Services\InvoicePdf::class)->render($long)); if($pdf!==$issuer->pdf($result['id'],$f['manager_id']))throw new RuntimeException('PDF bytes changed.'); file_put_contents(base_path('docs/proofs/invoice-pdf-results.json'),json_encode(['database'=>'sgf_tempo_test','renderer'=>$view['snapshot']['renderer'],'pdf_sha256'=>hash('sha256',$pdf),'repeated_download_identical'=>true,'browser_and_pdf_share_document_lines'=>true,'synthetic_only'=>true],JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR)); echo json_encode(['invoice_id'=>$result['id'],'number'=>$result['number'],'pdf_sha256'=>hash('sha256',$pdf),'renderer'=>$view['snapshot']['renderer']],JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR).PHP_EOL;