Fixes for test

This commit is contained in:
David Bomba 2025-10-10 14:22:38 +11:00
parent 03659e006b
commit 212ca0c38c
2 changed files with 49 additions and 5 deletions

View File

@ -14,13 +14,20 @@ namespace App\Services\EDocument\Standards;
use App\Models\Company;
use App\Models\Invoice;
use App\Models\Product;
use BaconQrCode\Writer;
use App\Models\VerifactuLog;
use App\Helpers\Invoice\Taxer;
use App\DataMapper\Tax\BaseRule;
use App\Services\AbstractService;
use App\Helpers\Invoice\InvoiceSum;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Writer\PngWriter;
use App\Utils\Traits\NumberFormatter;
use Endroid\QrCode\Encoding\Encoding;
use BaconQrCode\Renderer\ImageRenderer;
use App\Helpers\Invoice\InvoiceSumInclusive;
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use App\Services\EDocument\Standards\Verifactu\AeatClient;
use App\Services\EDocument\Standards\Verifactu\RegistroAlta;
use App\Services\EDocument\Standards\Verifactu\Models\Desglose;
@ -29,6 +36,8 @@ use App\Services\EDocument\Standards\Verifactu\Models\RegistroAnterior;
use App\Services\EDocument\Standards\Verifactu\Models\SistemaInformatico;
use App\Services\EDocument\Standards\Verifactu\Models\PersonaFisicaJuridica;
use App\Services\EDocument\Standards\Verifactu\Models\Invoice as VerifactuInvoice;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\Label\Font\OpenSans;
class Verifactu extends AbstractService
{
@ -199,14 +208,46 @@ class Verifactu extends AbstractService
$total = round($log->invoice->amount, 2);
$url = sprintf(
'https://www.agenciatributaria.gob.es/verifactu?csv=%s&nif=%s&num=%s&fecha=%s&importe=%s',
'https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR?csv=%s&nif=%s&num=%s&fecha=%s&importe=%s',
urlencode($csv),
urlencode($nif),
urlencode($invoiceNumber),
urlencode($date),
urlencode($total)
urlencode((string) $total)
);
$result = Builder::create()
->writer(new PngWriter())
->data($url)
->encoding(new Encoding('UTF-8'))
->errorCorrectionLevel(ErrorCorrectionLevel::Medium) // AEAT: level M or higher
->size(300) // AEAT minimum recommended: 30x30 mm ≈ 300px @ 254 DPI
->margin(10)
->labelText('VERI*FACTU')
->labelFont(new OpenSans(14))
->build();
// header('Content-Type: ' . $result->getMimeType());
return $result->getString();
// try {
// $renderer = new ImageRenderer(
// new RendererStyle(200),
// new SvgImageBackEnd()
// );
// $writer = new Writer($renderer);
// $qr = $writer->writeString($this->encodeMessage(), 'utf-8');
// return htmlspecialchars("<svg viewBox='0 0 200 200' width='200' height='200' x='0' y='0' xmlns='http://www.w3.org/2000/svg'>
// <rect x='0' y='0' width='100%'' height='100%' />{$qr}</svg>");
// } catch (\Throwable $e) {
// nlog("EPC QR failure => ".$e->getMessage());
// return '';
// }
}
public function send(string $soapXml): array

View File

@ -90,11 +90,11 @@ class CreditTest extends TestCase
$this->assertEquals(0, $i->balance);
$this->assertEquals(100, $i->amount);
$credit_array = $i->withoutRelations()->toArray();
$credit_array['invoice_id'] = $i->hashed_id;
$credit_array['client_id'] = $c->hashed_id;
unset($credit_array['backup']);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
@ -216,7 +216,7 @@ class CreditTest extends TestCase
$credit_array = $i->withoutRelations()->toArray();
$credit_array['invoice_id'] = $i->hashed_id;
$credit_array['client_id'] = $c->hashed_id;
unset($credit_array['backup']);
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
@ -416,6 +416,7 @@ class CreditTest extends TestCase
$credit_array = $i->withoutRelations()->toArray();
$credit_array['invoice_id'] = $i->hashed_id;
$credit_array['client_id'] = $c->hashed_id;
unset($credit_array['backup']);
$ii = new InvoiceItem();
$ii->cost = 50;
@ -498,6 +499,8 @@ class CreditTest extends TestCase
$credit_array = $i->withoutRelations()->toArray();
$credit_array['invoice_id'] = $i->hashed_id;
$credit_array['client_id'] = $c->hashed_id;
unset($credit_array['backup']);
$ii = new InvoiceItem();
$ii->cost = 100;