mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 11:04:41 -04:00
Add stubs for FatturaPA
This commit is contained in:
parent
029702041b
commit
c100e2c4f3
140
app/Services/Invoice/EInvoice/FatturaPA.php
Normal file
140
app/Services/Invoice/EInvoice/FatturaPA.php
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
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['Descrizione']);
|
||||
$lineItem->addChild('Quantita', $data['Quantita']);
|
||||
$lineItem->addChild('PrezzoUnitario', $data['PrezzoUnitario']);
|
||||
$lineItem->addChild('PrezzoTotale', $data['PrezzoTotale']);
|
||||
$lineItem->addChild('AliquotaIVA', $data['AliquotaIVA']);
|
||||
|
||||
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();
|
Loading…
x
Reference in New Issue
Block a user