deved-it / fattura-elettronica

Fatturazione Elettronica Italiana
https://deved-it.github.io/fattura-elettronica
MIT License
78 stars 36 forks source link

Autofattura #105

Open shinesoftware opened 1 year ago

shinesoftware commented 1 year ago

Salve a tutti,

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

grazie

salgua commented 1 year ago

Così su due piedi non so quali siano le particolarità dell'autofattura. Quando istanzi i datiGenerali puoi usare il codice documento che preferisci, ad es. così:

$datiGenerali = new DatiGenerali(
    'TD17', //integrazione/autofattura per acquisto servizi dall'estero
    '2022-11-22',
    '2022221111',
    122
);

non avendo mai approfondito non so se siano necessarie o meno altre modifiche, eventualmente fammi sapere che proviamo ad implementarle

shinesoftware commented 1 year ago

@salgua l'autofattura è un documento emesso per conto del fornitore; si crea seguendo queste regole:

  1. Invertire Cessionario e Committente
  2. Impostare il tipo di documento TD17 (per acquisto servizi) TD18 (per acquisto beni) dall'estero;
  3. Impostare obbligatoriamente la data ed il documento correlato
  4. Impostare il regimeFiscale solamente sul ramo del cedentePrestatore
  5. Impostare una causale al documento
  6. Impostare il codice destinatario appartenente a chi emette l'autofattura

Queste sono le regole. Fammi sapere se posso aiutarvi in qualche modo.

salgua commented 1 year ago

credo manchi solo il punto 4, il resto dovrebbe essere già possibile

shinesoftware commented 1 year ago

@salgua ok ma ho qualche dubbio. Impostando il tipo di documento la classe dovrebbe automaticamente fare lo switch fra Cessionario e Committente ed impostare gli altri parametri? oppure bisogna impostare qualcosa? Potresti farmi un esempio?

grazie

salgua commented 1 year ago

@shinesoftware purtroppo non ho a portata di mano un file XML di un'autofattura, più tardi me ne procuro uno. Ad ogni modo non credo sia corretto fare invertire Cessionario e Committente alla libreria, è responsabilità tua e del tuo applicativo decidere cosa inserire in ogni singolo blocco

shinesoftware commented 1 year ago

@salgua si infatti ho fatto invertire i dati come dice la documentazione manualmente dal mio software. Grazie. Attendo un esempio.

salgua commented 1 year ago

@shinesoftware ho un XML di autofattura: quella che ho trovato è del tutto simile alla fattura, con Cessionario e Committente invertiti. Nella fattispecie vedo che sono presenti i blocchi regimeFiscale e riferimentoNormativo, ma dovresti già essere in grado di aggiungerli così:

...
$anagraficaCedente = new DatiAnagrafici(
        '12345678901',
        'Acme SpA',
        'IE',
        '12345678901',
        'RF18' //regime fiscale
    );
...
//nel riepilogo
$datiRiepilogo3 = new DatiRiepilogo(XX,XX,'I',XX);
$datiRiepilogo3->RiferimentoNormativo = "22% - ACQUISTI BENI AUTOFATTURE ART.17 C.2";

non dovresti aver bisogno di altro. In caso fammi sapere