diff --git a/app/Services/Invoice/EInvoice/FatturaPA.php b/app/Services/Invoice/EInvoice/FatturaPA.php new file mode 100644 index 000000000000..a7a523ec190a --- /dev/null +++ b/app/Services/Invoice/EInvoice/FatturaPA.php @@ -0,0 +1,140 @@ + + + + + + IT + 01234567890 + + 00001 + FPR12 + ABCDE1 + + + + + + + + + + + + TD01 + EUR + 2023-04-21 + 1 + + + + + + + + + + + + +*/ + +class FatturaPA extends AbstractService +{ + private $xml; + + public function __construct(public Invoice $invoice) + { + $this->xml = new SimpleXMLElement(''); + } + + 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();