21 lines
2.2 KiB
PHP
21 lines
2.2 KiB
PHP
<?php
|
|
require __DIR__.'/../vendor/autoload.php';
|
|
$app=require __DIR__.'/../bootstrap/app.php'; $app->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;
|