MRW.it Forum
  • Home
  • Forum
  • Off-Topic
  • Discussioni Varie

Fatturazione elettronica xml e invio SDI

  • Creatore Discussione Creatore Discussione Simone P
  • Data di inizio Data di inizio 29 Mar 2018
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
R

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
  • 29 Ott 2018
  • #21
ciao, 'scrivere' l'xml, putroppo, è il minimo dei problemi.
questo è il codice che uso per sistema ts
PHP:
$xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><precompilata
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="730_precompilata.xsd"></precompilata>');

    $opzionale1 = $xml->addChild('opzionale1', 'text');
    $opzionale2 = $xml->addChild('opzionale2', 'text');
    $opzionale3 = $xml->addChild('opzionale3', 'text');

    $proprietario = $xml->addChild('proprietario');
    $codiceRegione = $proprietario->addChild("codiceRegione",$datiStruttura[0]);
    $codiceAsl = $proprietario->addChild("codiceAsl",$datiStruttura[1]);
    $codiceSSA = $proprietario->addChild("codiceSSA",$datiStruttura[2]);
etc etc ed alla fine

PHP:
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
$ilfile=[percorso e nome del file senza estensione]
$filexml=$ilfile.".xml";
error_log("salvo il file ".$filexml, 0);
$dom->save($filexml);

come vedi è abbastanza semplice, ovviamente cambiando tag ed i dati

il problema qui è che oltre alla trasmissione bisogna tenere aperto un canale per la ricezione dei messaggi di trasmissione (accettazione, rifiuto etc) dei file di consegna e per la ricezione delle fatture in arrivo.

Cmq se il grande marino è disponibile si potrebbe tentare
 
L

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
  • 2 Nov 2018
  • #22
rudycox ha scritto:
'scrivere' l'xml, putroppo, è il minimo dei problemi
Clicca per allargare...
In verità se si invia via PEC basta solo fare l'XML.

Tranne modifiche in parlamento sembra ufficiale:
Ade ha scritto:
L’obbligo di fattura elettronica, introdotto dalla Legge di Bilancio 2018, vale sia nel caso in cui la cessione del bene o la prestazione di servizio è effettuata tra due operatori Iva (operazioni B2B, cioè Business to Business ), sia nel caso in cui la cessione/prestazione è effettuata da un operatore Iva verso un consumatore finale (operazioni B2C, cioè Business to Consumer ).
Clicca per allargare...
e
Per tutte le fatture elettroniche inviate a privati (altri operatori Iva o consumatori finali), il SdI accetta anche file non firmati digitalmente. Nel caso in cui, però, il file della fattura elettronica sia firmato digitalmente, il SdI esegue controlli sulla validità del certificato di firma.
Clicca per allargare...
 
joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 2 Nov 2018
  • #23
Discussione molto interessante, grazie per le molteplici risposte che avete dato alle mie ultra-molteplici domande :):):).
Per cui, se ho capito bene :
  1. creo l'XML (non c'è l'obbligo di firmarlo digitalmente)
  2. lo spedisco attraverso PEC
e fin qui va tutto bene, ma poi per la conservazione ? Basta tenerlo in un server/cloud ? O ne serve uno in particolare ? Basta tenerlo nel proprio PC ?
 
Ultima modifica: 2 Nov 2018
L

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
  • 2 Nov 2018
  • #24
Pnesavo di aver fatto un file xml di prova conforme prelevando dai dati in csv e quindi l'ho dato in pasto all'AdE su 'Controllare la FatturaPA - Questa funzionalità consente di effettuare su ogni file FatturaPA i controlli formali necessari per garantire il corretto inoltro al destinatario'. ovviamente sbagliavo visto che mi da errore a parte gli errori 3xx per il CF e Partita IVA di prova:
File non conforme al formato (nella descrizione del messaggio è riportata lâ¬"indicazione puntuale della non conformità ) - Invalid content was found starting with element 'AliquotaIVA'. One of '{EsigibilitaIVA, RiferimentoNormativo}' is expected. riga: 62 - colonna: 17 Verificare che il file inviato sia conforme al formato previsto 00200
Clicca per allargare...

Secondo il tabellare:
2.2.2.7 <EsigibilitaIVA> L'elemento esprime il momento nel quale l'IVA diventa esigibile (immediata ai sensi dell'Art. 6 comma 5 del DPR 633 1972, oppure differita) oppure il fatto che le modalità di versamento dell'imposta sono differenti da quelle ordinarie (scissione dei pagamenti) - Obbligatorietà e occorrenze <0.1> (<A.B> A = 0 elemento non obbligatorio A = 1 elemento obbligatorio) quindi non sembra obbligatorio
2.2.2.8 <RiferimentoNormativo> Norma di riferimento (nei casi in cui l'elemento informativo 2.2.2.2 <Natura> è valorizzato) peccato che non ho messo l'elemento <Natura> - Obbligatorietà e occorrenze <0.1>

Ho provato a mettere <EsigibilitaIVA> a Immediata : niente.
File non conforme al formato (nella descrizione del messaggio è riportata lâ¬"indicazione puntuale della non conformità ) - Invalid content was found starting with element 'AliquotaIVA'. One of '{RiferimentoNormativo}' is expected. riga: 62 - colonna: 17 Verificare che il file inviato sia conforme al formato previsto 00200
Clicca per allargare...

Quindi in realtà sono obbligatori tutti e due anche se il tabellare dice di no?

joomeph ha scritto:
Basta tenerlo in un server/cloud ? O ne serve uno in particolare ? Basta tenerlo nel proprio PC ?
Clicca per allargare...
Assolutamente no. Se lo mandi allo sdi via PEC dovrebbe conservarlo direttamente l'AdE visto che 'è possibile attivare il servizio gratuito di conservazione elettronica' dell'AdE stessa che bisogna attivare.

AdE ha scritto:
Il processo di conservazione elettronica a norma è usualmente fornito da operatori privati certificati facilmente individuabili in internet; tuttavia, l’Agenzia delle Entrate mette gratuitamente a disposizione un servizio di conservazione elettronica a norma per tutte le fatture emesse e ricevute elettronicamente attraverso il Sistema di Interscambio.
Clicca per allargare...
 
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 2 Nov 2018
  • #25
LinuxOhYeah ha scritto:
Assolutamente no. Se lo mandi allo sdi via PEC dovrebbe conservarlo direttamente l'AdE visto che 'è possibile attivare il servizio gratuito di conservazione elettronica' dell'AdE stessa che bisogna attivare.
Clicca per allargare...

Perfetto, questa è una ulteriore conferma per me che il gigante ha partorito un topolino.
Per ciò che riguarda i nodi dell'XML me li devo ancora guardare, per cui in questo momento non ne sò nulla.
Credo però di aver letto su una guida che le obbligatorietà le hanno cambiate.
Ho visto che esiste un Codice per ogni azienda che viene assegnato credo dall'AdE, quello, per esempio, si deve richiedere ?
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.445
338
83
  • 2 Nov 2018
  • #26
Scusate ma forse il mio non è un intervento pertinente!
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?
 
L

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
  • 2 Nov 2018
  • #27
Max 1 ha scritto:
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?
Clicca per allargare...
Servizi o software già pronti, a parte quelli dell'AdE (c'è anche una app), sono quasi sempre a pagamento e comunque in qualche maniera bisogna interfacciare il proprio gestionale, che devi comunque continuare ad utilizzare visto che devi dare una copia cartacea a chi te la richiede, con il servizio / software quindi devi comunque fare un lavoro di esportazione: a questo punto esporti direttamente in xml, mandi via pec e non devi pagare terzi per un servizio che puoi fare da solo. alcuni servizi che ho testato hanno più bug del mio script oppure devi mettere i dati via web con username e password: allora meglio utilizzare quello diretto dell'AdE

per me poi c'è anche un fatto di privacy. se per obbligo bisogna mandarlo all'AdE non ci puoi fare nulla.
darli ad un terzo che non sai esattamente cosa faccia dei tuoi dati e di quelli dei tuoi clienti è una scelta sicuramente che faranno in molti. io personalmente non vorrei farla e non lo consiglierei.
imho
 
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 2 Nov 2018
  • #28
Max 1 ha scritto:
Scusate ma forse il mio non è un intervento pertinente!
Ma usare dei servizi o dei software già pronti non si eviterebbe tanti problemi?
Clicca per allargare...

Per quello che mi riguarda ho già dei software che fatturano (cioè sviluppati da me) e non posso dire ai miei 'clienti' : veditela da solo, paga un servizio terzo e fatti le fatture a mano inserendo dati che già hai nel tuo DB. Come ora creo i PDF, è semplicissimo creare l'XML sapendo in quali nodi mettere i dati ed inviarlo via PEC. Il 'cliente' non deve far nulla, e soprattutto non deve pagare nulla perchè l'aggiornamento è gratis, essendo per manutenzione ordinaria.

No, perchè poi si parla di privacy, ma intanto con quei servizi a pagamento di cui parli, riempi un database che non è il tuo, di dati di decine, centinaia, e forse migliaia di aziende, perchè si è vero che lo usi tu, ma si trova su un server loro. Chi ti assicura che quando tu smetti di pagare, loro cancellano tutto ? NESSUNO.
E se pure qualcuno me lo assicurasse, non ci crederei lo stesso.
 
Ultima modifica: 2 Nov 2018
Reactions: ziovanja
L

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
  • 3 Nov 2018
  • #29
il mio script linux funziona, sostanzialmente non sono altro che echo e calcoli con bc, e quindi stavo riprendendo con lo script in php ma mi succede una cosa particolare: mi si raddoppiano gli elementi quando sono dentro alla if()! sto provando ad usare $xml=new SimpleXMLElement. forse non va bene SimpleXMLElement

PHP:
$DatiTrasmissione = $FatturaElettronicaHeader->addChild('DatiTrasmissione');

$IdTrasmittente = $DatiTrasmissione->addChild('IdTrasmittente');
$IdTrasmittente->addChild('IdCodice', '01234567890');
$IdTrasmittente->addChild('IdPaese', 'IT');

$DatiTrasmissione->addChild('ProgressivoInvio', '00001');
$DatiTrasmissione->addChild('FormatoTrasmissione', 'FPR12');

$file = fopen('cli_001.txt', "r");
while( !feof($file) )
    {
    $row = fgets($file);
    $col = explode(";", $row);
   $v_CodiceDestinatario = $col[0];
   ...
   $DatiTrasmissione->addChild('CodiceDestinatario', $v_CodiceDestinatario);
   ...
   }
fclose($file);

print ($xml->asXML('test.xml'));

e mi esce
Codice:
<DatiTrasmissione>
<IdTrasmittente>
  <IdCodice>01234567890</IdCodice>
  <IdPaese>IT</IdPaese>
</IdTrasmittente>
<ProgressivoInvio>00001</ProgressivoInvio>
<FormatoTrasmissione>FPR12</FormatoTrasmissione>
<CodiceDestinatario>0000000</CodiceDestinatario>
<CodiceDestinatario/>
</DatiTrasmissione>

Da dove viene fuori il 2° <CodiceDestinatario/> ? Se continuo mi si raddoppiano tutti. idee?
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 4 Nov 2018
  • #30
Controlla il file cli_001.txt
Cmq non vedo che bisogno c'è di usare simpleXML quando puoi scrivere l'XML direttamente da php senza classi.
Lunedì ti posto un po' di codice
 
L

LinuxOhYeah

Utente Attivo
26 Nov 2016
186
7
18
  • 4 Nov 2018
  • #31
joomeph ha scritto:
Controlla il file cli_001.txt
Clicca per allargare...
grazie della risposta ma il file va bene, infatti ha perfettamente caricato CodiceDestinatario con il dato corretto ovvero '0000000'
Codice:
0000000;;;PROVAX00X00X000Y
peccato che ha aggiunto un <CodiceDestinatario/> totalmente inutile e anche sbagliato come sintassi
simpleXML? perchè anche lo snippet per il 730 era stato fatto con quello e ha funzionato alla perfezione.
anche io pensavo di usare un'altro metodo visto che la fattura elettronica utilizza i namespaces che non vengono gestiti bene da simpleXML
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 6 Nov 2018
  • #32
Eccomi, scusa il ritardo ma ho avuto molto da fare ieri.
Ecco come scrivere un XML in puro php. Lo so, è un pò spartano, ma questo metodo non sbaglia mai.

Codice:
$txt = "";
$filename = 'fattura.xml';

$miofile = fopen($filename, "w") or die("Unable to open file!");
$txt  = '<?xml version="1.0" encoding="utf-8"?>'."\n"; //QUESTO VA CAMBIATO CON LE SPECIFICHE DELLA FATTURA ELETTRONICA
$txt .= '<nodopadre>'."\n";
$txt .= "\t".'<nodofiglio>'.$VALORENODOFIGLIO.'</nodofiglio>'."\n";
$txt .= "\t".'<nodopadre2>'."\n";
$txt .= "\t\t".'<nodofiglio2>'.$VALORENODOFIGLIO2.'</nodofiglio2>'."\n";
$txt .= "\t".'</nodopadre2>'."\n";
$txt .= </nodopadre>'."\n";
fwrite($miofile, $txt);
fclose($miofile);

provo a spiegare, ma credo sia talmente facile che non ce ne sarebbe nemmeno bisogno :
dopo aver dichiarato la variabile txt vuota e il nome del file (in questo caso nella stessa root del file php che stai scrivendo),
nella prima riga creo il file con il nome fattura.xml
nella seconda riga scrivo l'intestazione dell'xml
dalla terza riga inizio a scrivere i nodi iniziando dal primo padre ed usando \n per il line feed e \t per dargli il TAB per cui :
il primo nodo è a capo riga, il primo figlio ha un tab come pure il padre2 ed il secondo figlio ha 2 tab.
con fwrite scrivo la variavile txt nel file e chiudo con fclose.
Niente di più semplice.

N.B. : i TAB e i LINE FEED sono divisi con il . altrimenti potrebbero NON FUNZIONARE CORRETTAMENTE

Mentre il vero problema nasce nell'inviare una PEC da PHP, ma ho già risolto.
 
Ultima modifica: 6 Nov 2018
R

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
  • 7 Nov 2018
  • #33
Se vi interessa questo è il codice che ho usato per creare il file xml della fattura (è una ricevuta sanitaria, ovvero esente iva e con marca da bollo)
la verifica ha dato esito positivo senza alcun errore
Ho messo tra parentesi quadre i dati da cambiare.

il blocco righe puo' essere ripetuto n volte

Nota sulla seguente riga:
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , '');

facendo semplicemente
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader');
ogni riga successiva aggiunta con addChild avrebbe come namespace p:
es:
<patiTrasmissione>
<p:IdTrasmittente>

facendo invece
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , '');
il namespace diventa vuoto e soltanto nelle prime righe child della root verrà scritto xmlns=""
, ovvero solo in:
<FatturaElettronicaHeader xmlns="">
<FatturaElettronicaBody xmlns="">

il comando
preg_replace('/xmlns=""\s?/', '', $xml->asXML())

rimuove tutti gli xmlns="" prima di stampare l'xml



PHP:
//*********
//
// il nome FILE deve essere IT[PARTITAIVA]_[CONTATORE]  CONTATORE=CHAR(5) ES: 00001
//
//*********

$xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd"></p:FatturaElettronica>',LIBXML_NOERROR, FALSE, 'p', FALSE);

// *************
// HEADER
// *************
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , ''); //il namespace ora sarà  xmlns="" che verrà rimosso alla fine
    $DatiTrasmissione = $FatturaElettronicaHeader->addChild('DatiTrasmissione');
        $IdTrasmittente = $DatiTrasmissione->addChild('IdTrasmittente');
        $IdPaese = $IdTrasmittente->addChild('IdPaese','IT');
        $IdCodice =$IdTrasmittente->addChild('IdCodice','[PARTITAIVA]');

        $ProgressivoInvio = $DatiTrasmissione->addChild('ProgressivoInvio', '[PROGRESSIVO]'); // cambiare: formato alfanumerico; lunghezza massima di 10 caratteri.
        $FormatoTrasmissione = $DatiTrasmissione->addChild('FormatoTrasmissione', 'FPR12'); //cambiare
        $CodiceDestinatario  = $DatiTrasmissione->addChild('CodiceDestinatario', '0000000'); //cambiare  char(6) PA oppure char(7) altri

    //    $PECDestinatario = $DatiTrasmissione->addChild('PECDestinatario');

    $CedentePrestatore = $FatturaElettronicaHeader->addChild('CedentePrestatore');
        $DatiAnagrafici = $CedentePrestatore->addChild('DatiAnagrafici');
            $IdFiscaleIVA = $DatiAnagrafici->addChild('IdFiscaleIVA');
                    $IdPaese  = $IdFiscaleIVA->addChild('IdPaese', 'IT');
                    $IdCodice = $IdFiscaleIVA->addChild('IdCodice', '[PARTITAIVA]');

            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                    $Denominazione = $Anagrafica->addChild('Denominazione', '[RAGIONE SOCIALE]');
            $RegimeFiscale = $DatiAnagrafici->addChild('RegimeFiscale', '[REGIMEFISCALE]'); //verificare

        $Sede = $CedentePrestatore->addChild('Sede');
            $Indirizzo = $Sede->addChild('Indirizzo', '[INDIRIZZO]');
            $CAP = $Sede->addChild('CAP', '[CAP]');
            $Comune =  $Sede->addChild('Comune' , '[COMUNE]');
            $Provincia = $Sede->addChild('Provincia', '[PROV]');
            $Nazione = $Sede->addChild('Nazione', 'IT');
       

       
    $CessionarioCommittente = $FatturaElettronicaHeader->addChild('CessionarioCommittente');
        $DatiAnagrafici = $CessionarioCommittente->addChild('DatiAnagrafici');
            $CodiceFiscale = $DatiAnagrafici->addChild('CodiceFiscale', $pivacf);
            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                $Denominazione = $Anagrafica ->addChild('Denominazione', $cognomenome);

        $Sede = $CessionarioCommittente->addChild('Sede');
            $Indir = $Sede->addChild('Indirizzo', $Indirizzo);
            $CAP_2 = $Sede->addChild('CAP', $cap);
            $Comune = $Sede->addChild('Comune', $citta);
            $Provincia =$Sede->addChild('Provincia', $prov);
            $Nazione_2 = $Sede->addChild('Nazione', $nazione); // controllare se italiano o no!!!!
// *************
// FINE HEADER
// *************

// *************      
// BODY
// *************

//TESTATA BODY
   
$FatturaElettronicaBody = $xml->addChild('FatturaElettronicaBody', '' , '');
    $DatiGenerali = $FatturaElettronicaBody->addChild('DatiGenerali');
        $DatiGeneraliDocumento = $DatiGenerali->addChild('DatiGeneraliDocumento');
            //TipoDocumento:
            //TD01 Fattura
            //TD02 Acconto/Anticipo su fattura
            //TD03 Acconto/Anticipo su parcella
            //TD04 Nota di Credito
            //TD05 Nota di Debito
            //TD06 Parcella
            //TD20 Autofattura  
            $TipoDocumento = $DatiGeneraliDocumento->addChild('TipoDocumento', '[TIPODOCUMENTO]'); //modificare
            $Divisa = $DatiGeneraliDocumento->addChild('Divisa','EUR');
            $Data = $DatiGeneraliDocumento->addChild('Data', '[DATAFATTURA]');
            $Numero = $DatiGeneraliDocumento->addChild('Numero', '[N_FATTURA]');
            $DatiBollo = $DatiGeneraliDocumento->addChild('DatiBollo');
                $BolloVirtuale = $DatiBollo->addChild('BolloVirtuale', 'SI');
                $ImportoBollo = $DatiBollo->addChild('ImportoBollo', '[BOLLO]'); // usare  number_format($bollo, 2);
   
// DETTAGLIO FATTURA
$DatiBeniServizi = $FatturaElettronicaBody->addChild('DatiBeniServizi');


// *************  
//RIGHE FATTURA  
//BLOCCO DA RIPETERE PER OGNI RIGA
// *************
        $DettaglioLinee = $DatiBeniServizi->addChild('DettaglioLinee');
            $NumeroLinea = $DettaglioLinee->addChild('NumeroLinea', '[N_RIGA]');
            $Descrizione = $DettaglioLinee->addChild('Descrizione', 'DESCRIZIONE]');
            $Quantita = $DettaglioLinee->addChild('Quantita', '[QTA]'); //[number_format($qta, 2);
            $PrezzoUnitario = $DettaglioLinee->addChild('PrezzoUnitario', '[PREZZO_U]'); // number_format($prezzo, 2);
            $PrezzoTotale = $DettaglioLinee->addChild('PrezzoTotale', '[TOTALE_RIGA]'); //number_format($totale, 2));
            $AliquotaIVA = $DettaglioLinee->addChild('AliquotaIVA', '0.00');
            //Natura:
            //N1 escluse ex art.15
            //N2 non soggette
            //N3 non imponibili
            //N4 esenti
            //N5 regime del margine / IVA non esposta in fattura
            //N6 inversione contabile (per le operazioni in reverse charge
            //   ovvero nei casi di autofatturazione per acquisti extra UE
            //   di servizi ovvero per importazioni di beni nei soli casi
            //   previsti)
            //N7 IVA assolta in altro stato UE (vendite a distanza ex art.
            //   40 commi 3 e 4 e art. 41 comma 1 lett. b, DL 331/93;
            //   prestazione di servizi di telecomunicazioni, teleradiodiffusione
            //   ed elettronici ex art. 7-sexies lett. f, g,
            //   DPR 633/72 e art. 74-sexies, DPR 633/72)
            $Natura = $DettaglioLinee->addChild('Natura', 'N4');
// *************
// FINE RIGHE/A
// *************


// *************
//RIEPILOGO      
// *************      
$DatiRiepilogo = $DatiBeniServizi->addChild('DatiRiepilogo');
    $AliquotaIVA = $DatiRiepilogo->addChild('AliquotaIVA', '0.00');
    $Natura = $DatiRiepilogo->addChild('Natura', 'N4');
    $ImponibileImporto = $DatiRiepilogo->addChild('ImponibileImporto', '[IMPONIBILE]'); //number_format(($cassain-$bollo), 2));
    $Imposta = $DatiRiepilogo->addChild('Imposta', '0.00');
    $RiferimentoNormativo=$DatiRiepilogo->addChild('RiferimentoNormativo', 'Esente da IVA ai sensi dell\'art. 10 comma 1,  n.18 del DPR 633/72 e successive modifiche');
       
// FINE DETTAGLIO FATTURA

// *************
// FINE BODY
// *************
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML(preg_replace('/xmlns=""\s?/', '', $xml->asXML()));
$dom->save('[PERCORSO]/[NOMEFILE_CONTATORE].xml');
 
Ultima modifica: 7 Nov 2018
Reactions: joomeph

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 7 Nov 2018
  • #34
Bel lavoro Rudycox, solo che sarebbe opportuno a questo punto spiegare a tutti :
cosa è il regime fiscale e dove si trova, il formato trasmissione, in che formato scrivere le date e cosa è la natura.
 
R

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
  • 7 Nov 2018
  • #35
i dettagli si trovano tutti nei documenti messi a disposizione dalla agenzia delle entrate all'indirizzo:
http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm

Direi che è fondamentale consultare:
  • Specifiche tecniche del formato della FatturaPA versione 1.2.1
  • Rappresentazione tabellare del tracciato FatturaPA versione 1.2.1
e visionare anche la struttura degli xml di esempio che più si adattano alla propria esigenza.

Gli esempi sono per fatture "standard", per adattarli alle proprie esigenze vanno assolutamente consultati i doc sopra.

se non si fa così direi che è impossibile

alla fine validare il proprio xml con lo strumento apposito: http://sdi.fatturapa.gov.it/SdI2FatturaPAWeb/AccediAlServizioAction.do?pagina=controlla_fattura
 

joomeph

Nuovo Utente
29 Ago 2017
14
1
3
52
  • 7 Nov 2018
  • #36
Si si, dicevo solo di spiegare quei 4 punti a chi non sapeva i link, ma hai fatto meglio a metterli.
Perfetto
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 7 Nov 2018
  • #37
vorrei solo suggerire di fare attenzione alle fatture PA (pubblica amministrazione), rispetto alle PR (privati)

qui trovate quello che mi sembra il "portale" più aggiornato con la documentazione (spero) ultima
https://assistenza.agenziaentrate.g...ew,Kb=FattElettr_UIKIT,t=startup.tem,Company={01B847AC-1BB9-4912-B3C2-81EC51E6FD8F}

per ora ho scelto la strada manuale installando l'applicazione per pc messa a disposizione dall'AdE che genera il file xml e pdf

ma sto anch'io lavorando per creare xml

joomeph ha scritto:
Mentre il vero problema nasce nell'inviare una PEC da PHP, ma ho già risolto.
Clicca per allargare...
se ci fai partecipi della tua soluzione è un passo avanti per la gestione automatica

grazie ragazzi
 
R

rudycox

Nuovo Utente
12 Gen 2016
25
4
3
  • 13 Nov 2018
  • #38
Se vi interessa questo è il codice per l'invio a mezzo PEC usando phpmailer attraverso SMTP di Aruba.
Attenzione a che sistema operativo usate. Se windows dovete usare la classe per windows altrimenti non invia in ssl

Io non ho ancora effettuato invii al SDI, se qualcuno lo ha già fatto, puo' cortesemente indicarmi cosa viene risposto?
Suppongo arrivi una pec di risposta, ma con degli allegati o solo testo?

PHP:
require_once("../class/class.phpmailer_windows.php");
include("../class/class.smtp.php");
//error_reporting(E_ALL);
date_default_timezone_set('Europe/Rome');


 $mail = new PHPMailer;
 //***Enable SMTP debugging.
//    $mail->SMTPDebug = 2;
//    $mail->Debugoutput = 'html';
//***

    $mail->isSMTP();
     $mail->Host = 'smtps.pec.aruba.it';//gethostbyname('smtps.pec.aruba.it');
     $mail->SMTPAuth = true;
    
    //Provide username and password     
    $mail->Username = '[nomeutente]';
    $mail->Password = '[password]';

    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;

    $mail->From = '[indirizzoPEC_mittente]'; 
    $mail->FromName = '[ilVsNome]';
    $mail->addAddress('[indirizzoPEC_destinatario]');
    $mail->isHTML(true);
    $mail->Subject = "trasmissione n. ####"; //$Subject;
    $mail->Body = "invio fattura n. ###x##"; //  $Body;
    $mail->AltBody = "This is the plain text version of the email content";
    $mail->addAttachment('[percorso_completo_e nomefile.xml]');
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else {
           echo 'Mail Sent Successfully';
    }
 
Reactions: fratt and joomeph
A

Acrobata

Nuovo Utente
13 Nov 2018
1
0
1
  • 13 Nov 2018
  • #39
Buongiorno a tutti,
sono il responsabile dell'area amministrativa di un'azienda industriale che utilizza PANTHERA ERP
Con l'imminente obbligo della fattura elettronica tra privati, il distributore del software ci ha proposto l'implementazione dei moduli fatturazione elettronica e conservazione che permetterebbe che ci permetterebbe di raccogliere tutti i dati necessari alla fatturazione elettronica B2B direttamente in anagrafica, di generare e firmare digitalmente fatture in XML e di inviarle automaticamente all’Agenzia delle Entrate, di gestire le notifiche di accettazione o di scarto dello SdI e di gestire analogamente il ciclo di fatturazione passiva.
Sarebbe inoltre possibile appoggiarsi ai loro servizi in outsourcing per dimenticare gli oneri e le responsabilità della conservazione per 10 anni.
Il problema è che i costi da sostenere per suddetta implementazione sono notevoli:
circa 2.560,00 euro per la licenza d'uso con successivo canone annuale ricorrente di 512,00 euro; 540,00 per l'accreditamento allo SDI; 800,00 di canone annuale ricorrente per la conservazione sostitutiva e 385,00 quale costo annuale per l'invio di 5.000,00 documenti e per finire 1500,00/2000,00 euro per le attività di "modellazione" da parte del consulente applicativo.
Sicuramente la soluzione migliore per gestire la fatturazione elettronica con circa 3.500,00 fatture emesse e ricevute è il modulo integrato in Panthera Erp, che consente la gestione del ciclo passivo e attivo della fatturazione elettronica da e verso SDI direttamente dall'applicativo stesso e in modo totalmente trasparente ma tale funzionalità aggiuntiva ci è sembrata proposta ad un costo eccessivo.
Qualcuno dei presenti nel Forum può esprimere il proprio parere o la propria esperienza ?
Grazie
 
E

Ezio88

Nuovo Utente
19 Gen 2016
8
0
1
  • 14 Nov 2018
  • #40
Buongiorno a tutti e bel lavoro con gli script (anche se io ne sto già usando uno mio per il gestionale che ho sviluppato su CakePHP).
Una domanda tecnica sul formato, a cui non ho ancora risposta: Ma nel campo AliquotaIVA del riepilogo delle righe quale aliquota devo inserire se ho aliquote differenti a seconda della riga? Non capisco perché abbiano messo quel campo se c'è già l'indicazione di AliquotaIVA per ogni riga (quindi è già calcolabile la tassazione).
Da quello che ho letto so che quel parametro non può essere diverso dalle aliquote indicate per le righe, ma ci sono anche controlli di valore che impongono che il valore sia legato al campo Imposta.

Quindi se ho una voce al 10% di iva e una al 22% cosa metterò in DatiRipilogo.AliquotaIVA?
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

E
Fatturazione elettronica
  • Emanuele85
  • 19 Nov 2024
  • PHP
Risposte
1
Visite
251
PHP 21 Mar 2025
therope
T
F
Php e fatturazione elettronica
  • frapej
  • 18 Mag 2022
  • PHP
Risposte
0
Visite
1K
PHP 18 Mag 2022
frapej
F
P
  • Bloccata
Mailchimp Fatturazione
  • paoloravaglioli
  • 19 Giu 2020
  • Email Marketing
Risposte
0
Visite
3K
Email Marketing 19 Giu 2020
paoloravaglioli
P
Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione
  • felino
  • 11 Apr 2018
  • WordPress
Risposte
2
Visite
5K
WordPress 30 Apr 2018
felino
F
Fatturazione Importo netto + Tasse
  • Fabio90
  • 3 Dic 2014
  • PHP
Risposte
5
Visite
2K
PHP 9 Dic 2014
marino51
N
BoxBilling.it - Software Gestione Clienti e la fatturazione
  • NovaTunes
  • 19 Ago 2012
  • CMS (Content Management System)
Risposte
0
Visite
2K
CMS (Content Management System) 19 Ago 2012
NovaTunes
N
N
Software Fatturazione
  • NovaTunes
  • 19 Ago 2012
  • Altri Annunci
Risposte
0
Visite
2K
Altri Annunci 19 Ago 2012
NovaTunes
N
0
azienda per fatturazione
  • 02perla
  • 3 Ago 2007
  • Leggi, Normative e Fisco
Risposte
0
Visite
2K
Leggi, Normative e Fisco 3 Ago 2007
02perla
0
I
posta elettronica offline
  • ilprincipiante
  • 21 Apr 2022
  • Posta Elettronica
Risposte
0
Visite
2K
Posta Elettronica 21 Apr 2022
ilprincipiante
I
M
Continua da "posta elettronica" - Configurazione email php su servizio hosting
  • Miminero
  • 8 Mar 2016
  • PHP
Risposte
2
Visite
3K
PHP 9 Mar 2016
borgo italia
l'invio della posta elettronica ed il servizio offerto da vari provider
  • marino51
  • 9 Lug 2014
  • Posta Elettronica
Risposte
0
Visite
6K
Posta Elettronica 9 Lug 2014
marino51
S
Cerco programmatore ( cambi di moneta elettronica multi-valuta )
  • speranza
  • 3 Apr 2014
  • E-Commerce
Risposte
1
Visite
2K
E-Commerce 2 Giu 2014
gizmoru
G
M
Posta elettronica Libero su iPhone
  • m.pittini
  • 25 Giu 2013
  • Adsl e Connettività
Risposte
1
Visite
3K
Adsl e Connettività 26 Giu 2013
Pieroz
P
Y
Creare un sito di bilgietteria elettronica
  • yuki78
  • 3 Apr 2013
  • PHP
Risposte
1
Visite
996
PHP 3 Apr 2013
borgo italia
Art. 616 C.P.: Violazione, sottrazione e soppressione di corrispondenza elettronica
  • Web Designer
  • 11 Apr 2012
  • Leggi, Normative e Fisco
Risposte
0
Visite
3K
Leggi, Normative e Fisco 11 Apr 2012
Web Designer
Posta elettronica: utilizzo e normative
  • Web Designer
  • 10 Apr 2012
  • Leggi, Normative e Fisco
Risposte
2
Visite
5K
Leggi, Normative e Fisco 10 Apr 2012
Web Designer
K
[compro] cerco libro usato di microelettronica
  • knot91
  • 20 Set 2011
  • Altri Annunci
Risposte
0
Visite
1K
Altri Annunci 20 Set 2011
knot91
K
P
copilazione file xlm per posta elettronica
  • primula
  • 14 Set 2011
  • XML
Risposte
0
Visite
3K
XML 14 Set 2011
primula
P
A
[vendo] e-commerce elettronica
  • AndrewLupin
  • 22 Lug 2010
  • Compravendita siti e domini
Risposte
1
Visite
2K
Compravendita siti e domini 10 Ago 2010
AndrewLupin
A
D
Droid Conception: La mia Musica musica elettronica in 'Constant Evolution'..
  • DroidMusician
  • 10 Mar 2009
  • Presenta il tuo Sito
Risposte
0
Visite
984
Presenta il tuo Sito 10 Mar 2009
DroidMusician
D
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Off-Topic
  • Discussioni Varie
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?