Merge branch 'v5-develop' of https://github.com/turbo124/invoiceninja into v5-develop

This commit is contained in:
David Bomba 2023-04-22 09:20:27 +10:00
commit 934a30f661
11 changed files with 61416 additions and 61152 deletions

View File

@ -1 +1 @@
5.5.105
5.5.106

View File

@ -162,6 +162,9 @@ class SelfUpdateController extends BaseController
$this->deleteDirectory(base_path('vendor/beganovich/snappdf/versions/'.$file->getFileName()));
}
}
$iterator = null;
}
private function deleteDirectory($dir)
@ -206,6 +209,8 @@ class SelfUpdateController extends BaseController
foreach (new \RecursiveIteratorIterator($directoryIterator) as $file) {
unlink(base_path('bootstrap/cache/').$file->getFileName());
}
$directoryIterator = null;
}
private function testWritable()
@ -225,6 +230,8 @@ class SelfUpdateController extends BaseController
}
}
$directoryIterator = null;
return true;
}

View File

@ -0,0 +1,140 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Services\Invoice\EInvoice;
use SimpleXMLElement;
use App\Models\Invoice;
use App\Services\AbstractService;
/*
<?xml version="1.0" encoding="UTF-8"?>
<FatturaElettronica versione="FPR12" xmlns="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2">
<FatturaElettronicaHeader>
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>01234567890</IdCodice>
</IdTrasmittente>
<ProgressivoInvio>00001</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>ABCDE1</CodiceDestinatario>
</DatiTrasmissione>
<CedentePrestatore>
<!-- Company information of the sender (seller/provider) -->
</CedentePrestatore>
<CessionarioCommittente>
<!-- Company information of the receiver (buyer) -->
</CessionarioCommittente>
</FatturaElettronicaHeader>
<FatturaElettronicaBody>
<DatiGenerali>
<DatiGeneraliDocumento>
<TipoDocumento>TD01</TipoDocumento>
<Divisa>EUR</Divisa>
<Data>2023-04-21</Data>
<Numero>1</Numero>
<!-- Add other information as needed -->
</DatiGeneraliDocumento>
<!-- Add other general data as needed -->
</DatiGenerali>
<DatiBeniServizi>
<!-- List of items or services -->
</DatiBeniServizi>
<DatiPagamento>
<!-- Payment details -->
</DatiPagamento>
</FatturaElettronicaBody>
</FatturaElettronica>
*/
class FatturaPA extends AbstractService
{
private $xml;
public function __construct(public Invoice $invoice)
{
$this->xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><FatturaElettronica></FatturaElettronica>');
}
public function run()
{
return $this->addHeader()->getXml();
}
public function addHeader() {
$this->xml->addChild('FatturaElettronicaHeader');
return $this;
}
public function addTrasmissioneData($idPaese, $idCodice, $progressivoInvio, $formatoTrasmissione, $codiceDestinatario) {
$datiTrasmissione = $this->xml->FatturaElettronicaHeader->addChild('DatiTrasmissione');
$idTrasmittente = $datiTrasmissione->addChild('IdTrasmittente');
$idTrasmittente->addChild('IdPaese', $idPaese);
$idTrasmittente->addChild('IdCodice', $idCodice);
$datiTrasmissione->addChild('ProgressivoInvio', $progressivoInvio);
$datiTrasmissione->addChild('FormatoTrasmissione', $formatoTrasmissione);
$datiTrasmissione->addChild('CodiceDestinatario', $codiceDestinatario);
return $this;
}
public function addCedentePrestatore($data) {
// Add CedentePrestatore data
}
public function addCessionarioCommittente($data) {
// Add CessionarioCommittente data
}
public function addBody() {
$this->xml->addChild('FatturaElettronicaBody');
return $this;
}
public function addDatiGenerali($data) {
// Add DatiGenerali data
}
public function addLineItem($data) {
if (!isset($this->xml->FatturaElettronicaBody->DatiBeniServizi)) {
$this->xml->FatturaElettronicaBody->addChild('DatiBeniServizi');
}
$lineItem = $this->xml->FatturaElettronicaBody->DatiBeniServizi->addChild('DettaglioLinee');
$lineItem->addChild('NumeroLinea', $data['NumeroLinea']);
$lineItem->addChild('Descrizione', $data['notes']);
$lineItem->addChild('Quantita', $data['quantity']);
$lineItem->addChild('PrezzoUnitario', $data['cost']);
$lineItem->addChild('PrezzoTotale', $data['line_total']);
$lineItem->addChild('AliquotaIVA', $data['tax_rate1']);
if (isset($data['UnitaMisura'])) {
$lineItem->addChild('UnitaMisura', $data['UnitaMisura']);
}
return $this;
}
public function addDatiPagamento($data) {
// Add DatiPagamento data
}
public function getXml()
{
return $this->xml->asXML();
}
}
// $fattura = new FatturaPA();
// $fattura
// ->addHeader()
// ->addTrasmissioneData('IT', '01234567890', '00001', 'FPR12', 'ABCDE1');
// echo $fattura->getXml();

View File

@ -14,8 +14,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
'app_version' => '5.5.105',
'app_tag' => '5.5.105',
'app_version' => '5.5.106',
'app_tag' => '5.5.106',
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', ''),

View File

@ -8,8 +8,8 @@ const RESOURCES = {
"canvaskit/profiling/canvaskit.js": "c21852696bc1cc82e8894d851c01921a",
"canvaskit/profiling/canvaskit.wasm": "371bc4e204443b0d5e774d64a046eb99",
"canvaskit/canvaskit.wasm": "3de12d898ec208a5f31362cc00f09b9e",
"/": "ce916b859a7b6e9b399d0ea53e3943aa",
"main.dart.js": "9795e7408f5fd9d163f59f046dea3a30",
"/": "4dc42582b23586f0a87f05a055704c19",
"main.dart.js": "31eae793fd4596a8c839ab497b11df22",
"icons/Icon-512.png": "0f9aff01367f0a0c69773d25ca16ef35",
"icons/Icon-192.png": "bb1cf5f6982006952211c7c8404ffbed",
"manifest.json": "ef43d90e57aa7682d7e2cfba2f484a40",

61116
public/main.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

60892
public/main.foss.dart.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,48 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
use App\Services\Invoice\EInvoice\FatturaPA;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Routing\Middleware\ThrottleRequests;
use Tests\MockAccountData;
use Tests\TestCase;
/**
* @test
*/
class FatturaPATest extends TestCase
{
use DatabaseTransactions;
use MockAccountData;
protected function setUp(): void
{
parent::setUp();
$this->makeTestData();
$this->withoutMiddleware(
ThrottleRequests::class
);
}
public function testInvoiceBoot()
{
$fat = new FatturaPA($this->invoice);
$xml = $fat->run();
// nlog($xml);
$this->assertnotNull($xml);
}
}