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() { 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();