Giter Site home page Giter Site logo

deved-it / fattura-elettronica Goto Github PK

View Code? Open in Web Editor NEW
77.0 77.0 37.0 230 KB

Fatturazione Elettronica Italiana

Home Page: https://deved-it.github.io/fattura-elettronica

License: MIT License

PHP 100.00%
fattura-elettronica fatturazione-elettronica php php-library

fattura-elettronica's People

Contributors

alessandrofilira avatar danielebuso avatar diegottt avatar francescodim avatar francescolovecchio avatar mircobabini avatar pfalomo avatar riktar avatar rupert978 avatar salgua avatar samnela avatar slamdunk avatar snipershady avatar vittominacori avatar zerai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fattura-elettronica's Issues

Supporto completo tipi DatiDocumentiCorrelati

Allo stato attuale sono supportati i seguenti tipi DatiDocumentiCorrelati:

  • DatiContratto
  • DatiConvenzione

Mancano pertanto i seguenti tipi:

  • DatiOrdineAcquisto
  • DatiRicezione
  • DatiFattureCollegate

Inoltre DatiContratto non prevede tutti i campi previsti dallo schema e DatiConvenzione nel costruttore che richiede il valore $codiceCommessaConvenzione che tuttavia dovrebbe essere opzionale.

ref. Dati di Riepilogo ed Imposta

Describe the bug
Il codice calcola un imposta partendo da una costante applicata nel codice sorgente ed impostata a 22. Il problema nasce quando un esercente deve realizzare una fattura con più aliquote ed in questo caso il modulo deve generare diverse sezioni relative ai DatiRiepilogo. Vedi https://forum.italia.it/t/aliquote-multiple-in-una-fattura-elettronica/5369/3

To Reproduce
Vedi file alla riga 64 - FatturaElettronica/FatturaElettronicaBody/DatiBeniServizi.php

Expected behavior
E' necessario lasciare la possibilità di impostare un'aliquota corretta o di disabilitare la sezione dei dati di riepilogo.

Grazie

Impostazione intermediario

Ciao,
dopo l'ultimo update 1.0.6 con l'introduzione dell'intermediario, usando il codice di esempio del readme ottengo questo errore:

Type error: Argument 1 passed to Deved\FatturaElettronica\FatturaElettronicaFactory::setIntermediario() must be an instance of Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaHeader\Common\DatiAnagrafici, null given,

sembra che sia obbligatorio ma seguendo le specifice del fiel XSD risulta opzionale:

https://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd

<xs:element name="TerzoIntermediarioOSoggettoEmittente" type="TerzoIntermediarioSoggettoEmittenteType" minOccurs="0" />

Supporto a Titolo e CodEORI

Nei DatiAnagrafici per un TerzoIntermediarioOSoggettoEmittente mancano le seguenti due proprietà

  • <Titolo> Titolo onorifico del terzo intermediario
  • <CodEORI> Codice EORI del terzo intermediario

DatiPagamento opzionale

FatturaElettronicaFactory->create() richiede un oggetto DatiPagamento.
Dalle specifiche tecniche, il blocco DatiPagamento non è opzionale?

Si potrebbe aggiungere un metodo setDatiPagamento anziché passare i dati direttamente al metodo create.

Necessità di specificare l'iscrizione REA

Nel file che rappresenta la struttura del file XML (Tracciato Fattura) abbiamo l'elemento 1.2.4 che per se non è obbligatorio, ma leggendo la sua descrizione

Blocco da valorizzare nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile

Potremmo dedurre che nella maggior parte dei casi, questo campo deve essere specificato e quindi ritengo ci sia una certa urgenza nella sua implementazione. Solo i liberi professionisti e l’imprenditori agricoli che svolge attività essenziale non devono iscriversi al registro delle imprese e quindi non devono specificare quel campo.

Scrivo per avere da voi qualche informazione al riguardo, se mi sbaglio o se siete d'accordo. Per il momento questa mi risulta la migliore libreria PHP per la generazione del file XML per la fatturazione elettronica e potrei contribuire. Intanto attendo il vostro feedback.

Fattura con linee con diverse aliquote

Is your feature request related to a problem? Please describe.
Al momento non è possibile inserire in fattura linee con aliquote differenti.

Describe the solution you'd like
Avere la possibilità di inserire linee con aliquote differenti.

Gestione imposta di bollo

Non si evince, dalla documentazione, se è possibile o meno definire la voce
"Impsota di bollo 2,00 euro".

Esiste la funzionalità o pensi di integrarla?

Hai fatto un ottimo lavoro e se ti fa piacere potrei farti una PR con un readme.md
con una documentazione un po' più completa.

Grazie

Problema con generazione importo totale fattura

Ciao,
ho implementato il tuo package ma verificando l'XML generato con l'XSD ufficiale che puoi trovare qui:

https://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd

Alla voce Amount2DecimalType viene dichiarato un controllo con questo pattern:

<xs:pattern value="[\-]?[0-9]{1,11}\.[0-9]{2}" />

e non contempla la virgola per le migliaia mentre nel package usi number_format($this->importoTotaleDocumento, 2) che la aggiunge per default.

Sarebbe necessario modificarlo in modo da rendere compatibile la generazione per fatture oltre le migliaia.
Se vuoi ti posso mandare io una PR

Autofattura

Salve a tutti,

c'è modo di generare un'autofattura con il componente o bisogna creare la funzionalità da zero?

grazie

Bug nel trait MagicFieldsTrait

Le proprietà dinamiche vengono scritte nell'XML con il metodo writeXmlField solo una volta.
Se si usa il metodo per la validazione della fattura e poi si esporta l'XML non funziona correttamente.

Data in DatiContratto

Prima di tutto vi ringrazio per l'aggiunta dei Dati del Contratto.
Volevo chiedervi se è possibile aggiungere anche il campo "Data" (che manca), come di seguito:

1 596441 2018-07-20 1

CodiceTipo

Ciao, ho iniziato ad utilizzare oggi il tuo progetto.
Mi sono reso conto che manca qualcosa come per esempio CodiceTipo.
Momentaneamente ho effettuato questa modifica se dovesse servire a qualcuno.

public function __construct( $descrizione, $prezzoUnitario, $codiceArticolo = null, $quantita = null, $unitaMisura = 'pz', $aliquotaIva = 22.00, $codiceTipo = "FOR" ) { $this->codiceArticolo = $codiceArticolo; $this->descrizione = $descrizione; $this->prezzoUnitario = $prezzoUnitario; $this->quantita = $quantita; $this->unitaMisura = $unitaMisura; $this->aliquotaIva = $aliquotaIva; $this->codiceTipo = $codiceTipo; }

`public function toXmlBlock(\XMLWriter $writer)
{
    $writer->startElement('DettaglioLinee');
    $writer->writeElement('NumeroLinea', $this->numeroLinea);
    if ($this->codiceArticolo) {            
        $writer->startElement('CodiceArticolo');
            $writer->writeElement('CodiceTipo', $this->codiceTipo);
            $writer->writeElement('CodiceValore', $this->codiceArticolo);
        $writer->endElement();
    }
    $writer->writeElement('Descrizione', $this->descrizione);
    if ($this->quantita) {
        $writer->writeElement('Quantita', fe_number_format($this->quantita, 2));
        $writer->writeElement('UnitaMisura', $this->unitaMisura);
    }
    $this->writeXmlField('DataInizioPeriodo', $writer);
    $this->writeXmlField('DataFinePeriodo', $writer);
    $writer->writeElement('PrezzoUnitario', fe_number_format($this->prezzoUnitario, 2));
    $writer->writeElement('PrezzoTotale', $this->prezzoTotale());
    $writer->writeElement('AliquotaIVA', fe_number_format($this->aliquotaIva, 2));
    $this->writeXmlFields($writer);        
    $writer->endElement();
    return $writer;
}`

verifica() lancia eccezione con pec [email protected]

Describe the bug
Quando viene chiamata ->setCessionarioCommittente con 4° parametro pec = [email protected], viene restituito il seguente errore dalla funzione ->verifica():

Element 'PECDestinatario': [facet 'pattern'] The value '[email protected]' is not accepted by the pattern '([!#-'*+\/-9=?A-Z^-~-]+(\\.[!#-'*+\/-9=?A-Z^-~-]+)*|\"(\\[\\]!#-[^-~ \\t]|(\\\\[\\t -~]))+\")@([!#-'*+\/-9=?A-Z^-~-]+(\\.[!#-'*+\/-9=?A-Z^-~-]+)*|\\[[\\t -Z^-~]*\\])'

To Reproduce
È sufficiente provare a creare un xml con pec impostata come nell'esempio fornito.

Additional context
Ho indagato e mi sembra che la regex funzioni correttamente, così come fornita dall'xsd 1.2.1. Sembra però che il validatore fallisca, non ho avuto altri problemi con email senza il trattino. Mi chiedo se il trattino quindi possa influire, dato che rimuovendolo funziona (tuttavia l'indirizzo email corretto vede il trattino).

Supporto per sconto/maggiorazione

Sembra che nelle linee non ci sia il supporto per sconto o maggiorazione. Mi sembra strano perché lo sconto è una cosa davvero basilare.

È previsto un aggiornamento?

DatiContratto da impementare

Buongiorno, nel file DatiGenerali.php leggo un TODO:

//todo: implementare DatiOrdineAcquisto, DatiContratto etc. (facoltativi)

Dovrei generare la parte "DatiContratto".
Avete intenzione di implementarla a breve?

Grazie

Dati di pagamento senza scadenza

Salve, nell'esempio riportato nella documentazione i dati di pagamento possono essere definiti nel modo seguente:

$datiPagamento = new DatiPagamento(
ModalitaPagamento::SEPA_CORE,
'2018-11-30',
122
);

Ma come faccio a non indicare la data di scadenza? Io vorrei indicare solo la modalità di pagamento ed il totale, senza indicare la data di scadenza. Al momento non è possibile poichè se non valorizzo il secondo parametro mi crea un XML non conforme allo standard definito dall'agenzia delle entrate.

Grazie

Configurazione .gitattributes (incompleta)

Describe the bug
Il packaging della libreria (zip file) non esclude i file/dir come da configurazione (.gitattributes)

.gitattributes introdotto in questa PR

To Reproduce
Describe the steps to reproduce the behavior:
Download ed extract dell file zip (last release)

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot from 2021-11-27 15-33-36

Additional context
Add any other context about the problem here.

Supporto codici tipo documento TD24

Al momento la libreria prevede i seguenti tipi di documento

const Fattura = 'TD01';
const AccontoSuFattura = 'TD02';
const AccontoSuParcella = 'TD03';
const NotaDiCredito = 'TD04';
const NotaDiDebito = 'TD05';
const Parcella = 'TD06';

Con le ultime modifiche alla fattura elettronica sono tuttavia state introdotte alcune novità, a titolo esemplificativo:

  • Codici da TD16 a TD27: corrispondono tutti a nuovi codici per i quali occorre documentarsi.
  • Codici da TD16 a TD23 e TD27: portano da 1 a 8 le opzioni per l'Autofattura e dovremo fare attenzione nel selezionare il codice giusto per la nostra esigenza.
  • Codici da TD16 a TD20: al contrario di come eravamo abituati, dovremmo specificare come <CedentePrestatore> il reale fornitore e come <CessionarioCommittente> il reale cliente, ovvero chi ha ricevuto i beni e deve emettere l'Autofattura.
  • Codici da TD21 a TD23 e TD27:si comportano operativamente esattamente come eravamo abituati nel precedente "TD20", ovvero dovremmo specificare come <CedentePrestatore> e <CessionarioCommittente> la stessa azienda, ovvero quella che emette l'Autofattura.
  • Codici TD17 e TD18: sono facoltativi e ci offrono l'opportunità di evitare l'Esterometro.
  • Codici TD24 e TD25: per i tanti che provvedono alla Fattura Differita, dovranno fare attenzione a sostituire il vecchio TD01 con uno di questi codici.
  • Codici TD26: Per le cessioni di beni ammortizzabili.
  • Codici TD27: Per gli omaggi o l'autoconsumo (beni/servizi ad uso dell'imprenditore).

Nello specifico, come da titolo, sarebbe opportuno aggiungere almeno il codice TD24 per evitare di incorrere in sanzioni ove previsto al posto del precedente TD01

Fattura Impresa individuale

Is your feature request related to a problem? Please describe.
Ciao, per l'impresa individuale, nel campo IdTrasmittente/IdCodice deve esserci il c.f. e non la p. iva

Describe the solution you'd like
Bisognerebbe indicare il tipo di impresa in modo che inserisca il c.f. piuttosto che la p.iva

Describe alternatives you've considered
Sto terminando la verifica degli altri campi prima di verificare le possibili soluzioni

Contributo a modifiche

Ciao, sto usando la libreria.
Vedo che ci sono alcune cose da aggiungere, se vi fa piacere posso fare delle modifiche e contribuire al progetto.

Saluti

Dettaglio pagamenti multipli

Buongiorno, nel caso ci siano più scadenze di pagamento è possibile indicarle?
Dalla struttura del progetto mi sembra di intuire che sia possibile identificare un solo dettaglio di pagamento, corretto?

Grazie

Sezione Trasmissione non corretta

Describe the bug
Nel caso di un trasmittente diverso dal mittente della fattura, ad esempio con invio via servizio Aruba, il modulo non permette la cancellazione di alcune sezioni superflue all'invio come la sezione DatiTrasmissione > ContattiTrasmittente

To Reproduce
Creare una normale fattura indicando l'Id Trasmittente di un servizio esterno come su detto ed associando un IdTrasmittente.

 $trasmittente = new IdTrasmittente('IT', '0123456789');
 $fatturaElettronicaFactory->setIdTrasmittente($trasmittente);

Nella sezione:

 \Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaHeader\telefono

il modulo genera la costruzione di una sezione relativa ai ContattiTrasmittente che non è utile ai fini di un invio attraverso un servizio esternalizzato.

Expected behavior
La possibilità di cancellare la sezione DatiTrasmissione > ContattiTrasmittente e l'impostazione di un IdTrasmittente personalizzato.

Grazie mille

Annotazione della data di effettuazione, quando diversa dalla emissione

Implementando la fatturazione elettronica ho trovato dei testi che indicano la necessita di specificare la data dell'operazione/effettuazione, quando questa sia diversa dalla data di emissione della fattura. Credo che questo caso, in questi mesi, sarà abbastanza frequente, in quanto ci saranno sicuramente dei problemi con l'implementazione e generazione dei file xml.

"L’art. 11 del DL 119/2018, invece, modifica, a regime, inserendo la nuova lettera g-bis) dell’articolo 21 del D.P.R. 633/1972, i termini di emissione delle fatture (indipendentemente dal formato cartaceo o elettronico), stabilendo che, a partire dal 1° luglio 2019, la fattura potrà essere emessa entro 10 giorni dal momento di effettuazione dell’operazione (determinato ex art. 6 del DPR 633/72). In tal caso, la data di effettuazione dovrà essere specificamente indicata sul documento, in quanto diversa da quella di emissione della fattura."

E anche questo:

Innanzi tutto, l’articolo 10 del dl 119/2018, prevede che per i primi 6 mesi del 2019, non vengano applicate sanzioni in caso di emissione tardiva della fattura, purché questa venga inviata entro il termine di liquidazione dell’Iva del periodo. La sanzione sarà invece ridotta dell’80% nel caso in cui la fattura emessa tardivamente rientri nella liquidazione periodica del mese o del trimestre successivo.

Inoltre, dal 1° luglio 2019, chi deve emettere fattura avrà 10 giorni di tempo dalla prestazione o dalla vendita, novità che va ad applicarsi a tutte le fatture e non solo a quelle elettroniche. In tal caso, sarà comunque necessario indicare in fattura che questa non è stata emessa contestualmente all’effettuazione dell’operazione.

Nel file che rappresenta la struttura del file XML (Tracciato Fattura) non riesco a trovare un elemento che potrebbe servire a specificare questo caso.

Cosa ne pensate? Una volta individuato il campo si potrà provvedere alla sua implementazione, ma prima dobbiamo capire se è necessario e come si fa :)

DatiBeniServizi - Unità di misura obbligatoria

Ciao,
nella parte di creazione delle linee DatiBeniServizi c'è di default la scritta pz come Unità di Misura ma alcune volte è suprerfluo, non sarebbe meglio lasciare quel campo nullo e inserirlo in fattura solo se presente?

Compatibilità con PHP 7

Buonasera, ho provato ad installare la libreria su una debian 8.7 con PHP 7 ma sembra ci sia un problema di compatibilità della libreria ext-xmlwriter. Nel mio server ho la versione 7.0.33 mentre è richiesta la 7.1 minimo.
Forse bisogna avere una versione superiore di PHP? io ho la 7.0.33.

Grazie

Dovrei implementare l'importazione dell'XML, oltre al canale SDIFTP, avete già qualcosa? O se vi interessa ve lo rendo disponibile appena finito.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Errore nel generare ScontoMaggiorazione

Describe the bug
XMLWriter::writeElement() expects at most 2 parameters, 4 given

To Reproduce
Creare una fattura aggiungendo ScontoMaggiorazione a DatiGenerali

Aggiungere possibilità di specificare ID Trasmittente

Le informazioni di IdTrasmittente potrebbero non combaciare con idpaese e codicefiscale del cedente/prestatore.
Utilizzando la classe FatturaElettronicaFactory il metodo setCedentePrestatore crea un'istanza della classe idTrasmittente sempre con le informazioni di cui sopra e non è possibile assegnare altri valori alla proprietà idTrasmittente in quanto protected.
Credo possa bastare aggiungere un semplice metodo alla classe FatturaElettronicaFactory come per esempio setIscrizioneRea.
Se può essere utile ho già la modifica pronta da proporre con una Pull request.
Saluti
Roberto

Errore quando si inseriscono i dati di pagamento senza una data

Buonasera,

quando creo i dati di pagamento nel seguente modo:

$datiPagamento = new DatiPagamento(
ModalitaPagamento::RIDUtenze,
'',
100
);

senza indicare una data di scadenza del pagamento, in fase di generazione dell'xml ottengo l'errore seguente:

array (size=5)
0 => int 2048
1 => string 'Deved\FatturaElettronica\XmlBlock and Deved\FatturaElettronica\Traits\MagicFieldsTrait define the same property ($xmlFields) in the composition of Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaBody\DatiPagamento. This might be incompatible, to improve maintainability consider using accessor methods in traits instead. Class was composed' (length=353)
2 => string '....\vendor\deved\fattura-elettronica\src\FatturaElettronica\FatturaElettronicaBody\DatiPagamento.php' (length=136)
3 => int 80
4 =>
array (size=1)
'file' => string '....\vendor\composer/../deved/fattura-elettronica/src\FatturaElettronica\FatturaElettronicaBody\DatiPagamento.php' (length=148)

Grazie

Allegati

Salve,
La classe in questione può gestire anche gli allegati in formato base64?

Saluti e grazie della risposta.

Impostare la sezione di spedizione

Is your feature request related to a problem? Please describe.
Come fare a creare una sezione per la gestione del trasporto?

...
<FatturaElettronicaBody>
  <DatiGenerali>
     <DatiTrasporto>
        <DatiAnagraficiVettore>
            <IdFiscaleIVA>
                <IdPaese>IT</IdPaese>
                <IdCodice>24681012141</IdCodice>
            </IdFiscaleIVA>
            <Anagrafica>
                <Denominazione>Trasporto spa</Denominazione>
            </Anagrafica>
        </DatiAnagraficiVettore>
        <DataOraConsegna>2012-10-22T16:46:12.000+02:00</DataOraConsegna>
    </DatiTrasporto>

nel file xsl:

<xs:complexType name="DatiTrasportoType">
  <xs:sequence>
    <xs:element name="DatiAnagraficiVettore" type="DatiAnagraficiVettoreType" minOccurs="0" />
    <xs:element name="MezzoTrasporto"        type="String80LatinType"         minOccurs="0" />
    <xs:element name="CausaleTrasporto"      type="String100LatinType"        minOccurs="0" />
    <xs:element name="NumeroColli"           type="NumeroColliType"           minOccurs="0" />
    <xs:element name="Descrizione"           type="String100LatinType"        minOccurs="0" />
    <xs:element name="UnitaMisuraPeso"       type="String10Type"              minOccurs="0" />
    <xs:element name="PesoLordo"             type="PesoType"                  minOccurs="0" />
    <xs:element name="PesoNetto"             type="PesoType"                  minOccurs="0" />
    <xs:element name="DataOraRitiro"         type="xs:dateTime"               minOccurs="0" />
    <xs:element name="DataInizioTrasporto"   type="xs:date"                   minOccurs="0" />
    <xs:element name="TipoResa"              type="TipoResaType"              minOccurs="0" />
    <xs:element name="IndirizzoResa"         type="IndirizzoType"             minOccurs="0" />
    <xs:element name="DataOraConsegna"       type="xs:dateTime"               minOccurs="0" />
  </xs:sequence>
</xs:complexType>

Describe the solution you'd like
Creare questa sezione aiuterà tutti coloro fossero interessati alla gestione della spedizione

Grazie

I valori del DDT per la fattura differita non vengono specificati

Specificando i dati del DDT con il metodo setDatiDdt non vengono specificati nel xml. Codice esempio:

$datiGenerali = new DatiGenerali(TipoDocumento::Fattura, $data['invoice_date'], $data['invoice_number'], $invoiceTotal);
$datiDDT = new DatiDdt($data['redelivery_document_number'], $data['redelivery_date']);
$datiGenerali->setDatiDdt($datiDDT);

Incollo cosa succede nella funzione toXmlBlock della classe DatiDDT:

    public function toXmlBlock(\XMLWriter $writer)
    {
        /** @var DatiDdt $block */
        print_r($this);
        /*
        Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaBody\DatiGenerali\DatiDdt Object
        (
            [datiDdt:protected] => Array
                (
                )

            [numeroDdt:protected] => 216-A-2018
            [dataDdt:protected] => 2019-01-08
            [riferimentoNumeroLinee:protected] => Array
                (
                )

            [currentIndex:protected] => 0
            [xmlFields:protected] => Array
                (
                )

        )
        */
        foreach ($this as $block) {
            // Non entra qui
            $writer->startElement('DatiDDT');
                $writer->writeElement('NumeroDDT', $block->numeroDdt);
                $writer->writeElement('DataDDT', $block->dataDdt);
                foreach ($block->riferimentoNumeroLinee as $numeroLinea) {
                    $writer->writeElement('RiferimentoNumeroLinea', $numeroLinea);
                }
            $writer->endElement();
        }
        return $writer;
    }

Quindi i dati sono specificati subito prima della funzione for, ma non entra nella funzione foreach. Non sono esperto di PHP, ma credo che questo non succede per il fatto che il nostra variabile sia una oggetto.

Gestione della natura dell'iva dove richiesto

Is your feature request related to a problem? Please describe.
Per alcuni tipi di iva bisogna gestirne la natura.

Describe the solution you'd like
Bisogna poter passare i codici della natura per i tipi di iva che lo richiedono, io lo aggiungerei nella definizione della linea, così oltre a passare l'iva, se necessario si passa anche il codice della natura.

Additional context
Codici natura iva:
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 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)

Aggiungere metodo per test fattura in FatturaElettronica

Is your feature request related to a problem? Please describe.
Le fatture generate, soprattuto quelle con campi creati dinamicamente, potrebbero non esser conformi allo schema xsd

Describe the solution you'd like
Aggiungere un metodo per testare l'xml della fattura in FatturaElettronica

Compatibilità PHP8 - Implements Countable & Iterator

Describe the bug
Installando il modulo ed eseguendo la creazione del file xml viene indicato un errore all'implementazione della Countable e della Iterator in alcune classi del progetto deved. Controllando il codice sorgente del file ad esempio DettaglioLinee.php si nota che non vengono dichiarate esplicitamente i valori di ritorno.

To Reproduce
Usare le classi sotto >= PHP8.0

Expected behavior
Evitare l'errore seguente:
Fatal error: During inheritance of Countable: Uncaught Exception: Deprecated Functionality: Return type of Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaBody\DatiBeniServizi\DettaglioLinee::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/vendor/deved/fattura-elettronica/src/FatturaElettronica/FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee.php on line 125

Una soluzione alternativa potrebbe essere evitare il braking changes con l'impostazione della versione di PHP nel file di composer.

grazie

ABI e CAB

Ciao,
nella sezione DatiPagamento manca la possibilità di indicare ABI e CAB

Installazione

Buonasera, chiedo solo come posso fare per installare il tutto su DB ospitato su spazio web altervista e testare l'applicativo in PHP.
Ho intanto inviato il ZIP allo spazio web ed attendo chiarimenti

Grazie

Adeguamento alla fatturazione differita

Nel file che rappresenta la struttura del file XML (Tracciato Fattura) abbiamo l'elemento 2.1.8 che per se non è obbligatorio, ma si riferisce alle specifiche per la fattura differita. Mi risulta che la libreria fa già tutto il necessario per la fattura immediata, ma se si riuscirebbe solo a specificare questo elemento cioè 2.1.8.1 (NumeroDDT) e 2.1.8.2 (DataDDT), allora andrebbe bene anche per la fatturazione differita.

L'elemento potrebbe prendere anche più righe, il caso che non ho mai avuto e non so quando si presenta nelle gestione aziendale. Comunque, potendo specificare solo questo elemento la libreria sarebbe anche in grado di gestire la fatturazione differita (cosa a me necessaria).

Non sono esperto di PHP, ma forse questa cosa si potrebbe specificare qui, come 5 elemento:

$datiGenerali = new DatiGenerali(
    TipoDocumento::Fattura,
    '2018-11-22',
    '2018221111',
    122
);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.