Open odooNextev opened 9 months ago
Volevamo proporre un modulo aggiuntivo "l10n_it_causale", che aggiunge il campo "causale" alla fattura. Questo modulo sarebbe poi tra le dipendenze di "l10n_it_reverse_charge" e "l10n_it_fatturapa" per sfruttarlo ed evitare che i test falliscano. Qui uno schema su come abbiamo pensato di modificare alcuni moduli, anche per adattarci il più possibile alla versione ufficiale: https://www.agenziaentrate.gov.it/portale/documents/20143/296471/Provvedimento+21+dicembre+2018_ALLEGATO-B-DATI-FISCALI-FATTURA-XML-21.12.18-def.pdf/c774d5a9-3459-ae1b-f671-7be363acea87 che prevede di inserire i protocolli e la data della dichiarazione di intento nelle righe.
Al momento il modulo l10n_it_edi importa il campo Causale nei termini e condizioni, mentre i termini e condizioni non vengono esportati come Causale.
@odooNextev volete parlarne in call domani e scegliere una soluzione condivisa?
@odooNextev volete parlarne in call domani e scegliere una soluzione condivisa?
Purtroppo stamattina non c'è stato il tempo però chi vuole commentare la struttura del refactoring postata sopra può farlo comunque qui 👍
Volevamo proporre un modulo aggiuntivo "l10n_it_causale", che aggiunge il campo "causale" alla fattura. Questo modulo sarebbe poi tra le dipendenze di "l10n_it_reverse_charge" e "l10n_it_fatturapa" per sfruttarlo ed evitare che i test falliscano. Qui uno schema su come abbiamo pensato di modificare alcuni moduli, anche per adattarci il più possibile alla versione ufficiale: https://www.agenziaentrate.gov.it/portale/documents/20143/296471/Provvedimento+21+dicembre+2018_ALLEGATO-B-DATI-FISCALI-FATTURA-XML-21.12.18-def.pdf/c774d5a9-3459-ae1b-f671-7be363acea87 che prevede di inserire i protocolli e la data della dichiarazione di intento nelle righe.
Al momento il modulo l10n_it_edi importa il campo Causale nei termini e condizioni, mentre i termini e condizioni non vengono esportati come Causale.
Se stiamo parlando di importazione/esportazione di fatture elettroniche, come mai c'è lì in mezzo anche l10n_it_reverse_charge? Potrei capire i moduli _in_rc e out_rc ma non capisco come mai il modulo base.
Nel documento che hai linkato non ho trovato il nodo Causale
, nell'ultima versione delle specifiche https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.2/RappresentazioneTabellareFattOrdinariav123.pdf
dice solo
Descrizione della causale del documento
dove hai trovato riferimenti alla dichiarazione d'intento?
Io ne ho trovati solo in https://www.fatturapa.gov.it/export/documenti/Elenco-Controlli-versione-v1.9.pdf
e non si parla del nodo Causale
.
Se non esiste già un campo in fattura che ha lo stesso scopo di Causale
nella fattura elettronica, per me va bene un campo dedicato.
Lo aggiungerei però in l10n_it_fatturapa in modo che sia gestibile nei moduli _in e _out in modo simmetrico:
Il nome del campo dovrebbe essere univoco per evitare conflitti con altri moduli, ad esempio l10n_it_fatturapa_Causale
; normalmente eviterei il codice in italiano ma in questo caso manterrei Causale
perché è il nome del nodo XML cui è collegato.
Nel modulo del reverse_charge andranno modificati i test, che nella pr attuale falliscono. Per questo motivo avevamo pensato di creare un piccolo modulo solamente per l'aggiunta del campo, per evitare che il reverse_charge dipenda da fatturapa, stessa cosa per la dichiarazione d'intento I riferimenti alla dichiarazione d'intento li ho trovati qui, https://www.fiscoetasse.com/domande-e-risposte/12325-come-indicare-il-n-della-dichiarazione-dintento-nella-fattura-elettronica.html anche se non è un documento ufficiale l'ho ritenuto comunque valido.
Nel modulo del reverse_charge andranno modificati i test, che nella pr attuale falliscono. Per questo motivo avevamo pensato di creare un piccolo modulo solamente per l'aggiunta del campo, per evitare che il reverse_charge dipenda da fatturapa, stessa cosa per la dichiarazione d'intento I riferimenti alla dichiarazione d'intento li ho trovati qui, https://www.fiscoetasse.com/domande-e-risposte/12325-come-indicare-il-n-della-dichiarazione-dintento-nella-fattura-elettronica.html anche se non è un documento ufficiale l'ho ritenuto comunque valido.
Nella PR attuale i test di l10n_it_reverse_charge falliscono perché è stato modificato, senza quelle modifiche dubito che falliscano.
Attualmente il modulo scrive in narration
e non mi pare si sia parlato di modificare questo comportamento, se è da modificare lo farei in una issue a parte.
Se quanto scritto dal modulo deve finire anche nel nuovo campo che popolerà Causale
nella fattura elettronica, penso che iniettarcelo sarà compito di _out_rc.
La definizione di un campo che serve solo alla fatturazione elettronica penso debba essere in l10n_it_fatturapa.
La definizione di un campo che serve solo alla fatturazione elettronica penso debba essere in l10n_it_fatturapa.
Concordo.
Per quanto riguarda il nome, se il campo fosse necessario manterrei comunque le convenzioni attuali. In Odoo "Causale" è già il termine utilizzato per "Reason":
In l10n_it_fatturapa esiste già transport_reason
per il nodo 2.1.9.3
Allo stesso modo, se necessario, userei reason
per il nodo 2.1.1.11
@odooNextev intendi dire che "Causale" ripetuto nell'XML è un problema?
Mi pare un comportamento normale, Che il nodo possa essere utilizzato più volte è previsto dalle specifiche. Viene indicato con <0.N>
@SirAionTech @primes2h Mi intrometto nella discussione per cercare di chiarire meglio quanto proposto dai miei colleghi.
Ho rivisitato la descrizione ed il titolo della issue per attenerci di più al punto focale: il campo termini e condizioni (narration
) è usato in maniera inappropriata (secondo noi) da alcuni moduli che riguardano soprattutto la FE.
La discussione era cominciata qui: https://discord.com/channels/753902328494424064/753902328494424070/1199655452368195617
Capisco quanto segnalato da @SirAionTech, ovvero inserire il campo causale
, reason
o come si preferisce chiamare solo nei moduli di l10n_it_fatturapa
invece che creare un modulo ad hoc solo per questo campo, ma bisogna essere certi che non sia necessario memorizzare la causale dell'autofattura (RC) anche per l'account.move
fine a se stessa (per esempio va stampata nel PDF?) o serve solo per l'invio di questa autofattura in XML.
Un altro punto: ho deciso di tenere tutti gli argomenti (fatturapa, rc, dichiarazione) in una sola issue perchè l'argomento di partenza (campo narration
) è comune a tutti, poi le risoluzioni saranno sviluppate separatamente e si possono anche creare delle issue figlie di questa per separare gli argomenti stessi.
Vi ricordo che: https://github.com/odoo/odoo/blob/b9f0f3676a9409a991ff8bd3d06ba4ace8d567e8/addons/l10n_it_edi/models/account_move.py#L831
La mappatura Causale -> narration è parte di Odoo standard, anche se solo in ingresso.
Visto che il desiderio è quello di uniformarci a loro, non introdurrei un campo "nostro" che in futuro magari dovremo tornare a mappare su narration.
Piuttosto, bisognerebbe proporre PR a loro e convincerli che Causale nella fattura italiana e narration sono due cose abbastanza diverse.
Vi ricordo che: https://github.com/odoo/odoo/blob/b9f0f3676a9409a991ff8bd3d06ba4ace8d567e8/addons/l10n_it_edi/models/account_move.py#L831
La mappatura Causale -> narration è parte di Odoo standard, anche se solo in ingresso.
Visto che il desiderio è quello di uniformarci a loro, non introdurrei un campo "nostro" che in futuro magari dovremo tornare a mappare su narration.
Piuttosto, bisognerebbe proporre PR a loro e convincerli che Causale nella fattura italiana e narration sono due cose abbastanza diverse.
@TheMule71 pensi che non devo portare avanti questa PR allora? https://github.com/OCA/l10n-italy/pull/3887 Per ora Odoo standard fa la mappatura solo per l'ingresso e non considera ancora la causale nella generazione della fattura XML. Potrei poi creare una issue e fare una PR simile anche in odoo/odoo
Ma come mai viene riportata in automatico la causale sull'autofattura? Non sono riuscita a trovare nulla che dica che è da compilare...
Ma come mai viene riportata in automatico la causale sull'autofattura? Non sono riuscita a trovare nulla che dica che è da compilare...
Ciao Marianna, Queste sono indicazioni date dal nostro commercialista.
Nell'autofattura emessa per il fornitore estero deve essere indicato nella causale del XML un messaggio come questo: Documento [Nr. FATTURA FORNITORE] del [DATA] Ns.Protocollo [RIF: INTERNO] del [DATA]
Il riferimento normativo lo trovi all'articolo 46 del D.L. n. 331/93 (Fatturazione delle operazioni intracomunitarie), dove si dice che deve essere emessa una fattura a norma dell'articolo 21 del D.L. n. 633/72 (Fatturazione delle operazioni), dove sono indicate tutte le voci da indicare nell'autofattura.
Nell'articolo non c'è un riferimento al fatto che debbano essere inserite nella causale, inserendole nel campo narration
in odoo vengono automaticamente inserite nella causale della FE.
Spero di averti risposto. So che è difficile muoversi tra le varie norme e ognuno fa riferimento a quello che indica il proprio commercialista rendendo complicato trovare un punto comune.
Ma come mai viene riportata in automatico la causale sull'autofattura? Non sono riuscita a trovare nulla che dica che è da compilare...
Ciao Marianna, Queste sono indicazioni date dal nostro commercialista.
Nell'autofattura emessa per il fornitore estero deve essere indicato nella causale del XML un messaggio come questo: Documento [Nr. FATTURA FORNITORE] del [DATA] Ns.Protocollo [RIF: INTERNO] del [DATA]
Il riferimento normativo lo trovi all'articolo 46 del D.L. n. 331/93 (Fatturazione delle operazioni intracomunitarie), dove si dice che deve essere emessa una fattura a norma dell'articolo 21 del D.L. n. 633/72 (Fatturazione delle operazioni), dove sono indicate tutte le voci da indicare nell'autofattura. Nell'articolo non c'è un riferimento al fatto che debbano essere inserite nella causale, inserendole nel campo
narration
in odoo vengono automaticamente inserite nella causale della FE.Spero di averti risposto. So che è difficile muoversi tra le varie norme e ognuno fa riferimento a quello che indica il proprio commercialista rendendo complicato trovare un punto comune.
Ciao e grazie del chiarimento!! :-)
Attualmente il campo
narration
("termini e condizioni" sotto le righe) delle fatture viene usato da alcuni moduli della localizzazione in maniera, secondo noi, inappropriata. Nella maggior parte dei casi questo si ripercuote sulla fatturazione elettronica, ma nel caso dell'inversione contabile può si dovrebbe aggiungere un campo che può servire anche senza FE.l10n_it_fatturapa_out
Esportando la fattura elettronica, i termini e condizioni vengono inseriti come causale nell'xml:
Non è previsto un campo specifico per la causale e questo è un problema per noi e per altri clienti che usano "per il suo scopo nativo" il campo
narration
/termini e condizioni. Oltre al problema concettuale (sono termini e condizioni non causale), la lunghezza dei termini solitamente è notevole e si otterrebbe un risultato del genere:l10n_it_fatturapa_in
Attualmente il modulo che fa il parse della fattura XML passiva si comporta in maniera speculare a
l10n_it_fatturapa_out
ed associa il campo<Causale>
del XML al camponarration
diaccount.move
. Anche questo, secondo noi, non è un comportamento corretto perché se è una causale non sono termini e condizionil10n_it_reverse_charge
Nell'autofattura emessa per il fornitore estero deve essere indicato nella causale del XML un messaggio come questo:
Funzionalmente non pensiamo sia corretto metterlo nei termini e condizioni e serve un campo ad hoc. A questo punto bisogna capire se serve tenere traccia di questa dicitura anche senza che si usi in Odoo la fatturazione elettronica o è fine solamente alla FE e quindi il campo aggiuntivo deve essere incluso nei moduli appositi a questo scopo o serve crearne uno standalone.
Soluzione proposta
Bisognerebbe quindi creare un modulo ad hoc
l10n_it_causale
da cuil10n_it_fatturapa
el10n_it_reverse_charge
dovrebbero dipendere ed erediterebbero il campo.causale
può essere aggiunto al10n_it_fatturapa
ed a quel puntol10n_it_fatturapa_in
,l10n_it_fatturapa_out
el10n_it_fatturapa_out_rc
non hanno necessità di ulteriori dipendenze, ma solamente di ereditare il campo.In entrambi i casi bisognerebbe discutere se includere il nuovo campo causale nei report siccome le informazioni che verrebbero riportate qui, attualmente, sono in termini e condizioni e vengono stampate nei PDF. Qui si ripresenterebbe il quesito: se è necessario avere la causale dell'autovettura nella stampa e non solo nel XML, significa che la causale deve essere disponibile anche nel modulo base dell'inversione contabile e non solo quello legato alla FE.
l10n_it_declaration_of_intent
Attualmente la dicitura "Vostra dichiarazione d'intento nr %s del %s, nostro protocollo nr %s del %s, protocollo telematico nr %s" viene riportata nel campo
narration
della fattura collegata alla dichiarazione. Non sappiamo precisamente perchè viene fatto questo nel modulo base (l10n_it_declaration_of_intent
), forse per avere quei dati nella fattura senza aprire la dichiarazione o forse per essere poi copiati in fattura nel campo causale. Questa cosa è errata perchè non è giusto usare il campo causale a questo scopo ed inoltre il modulol10n_it_fatturapa_out_di
si occupa già di inserire i dati al posto giusto, ovvero per ogni riga nella sezione<AltriDatiGestionali>
.Soluzione proposta
Rimuovere la compilazione del campo
narration
con i dati della dichiarazione (sono visibili già dalla dichiarazione stessa senza "sporcare" un campo adibito ad altro) e correggere il modulol10n_it_fatturapa_out_di
perchè attualmente non prevede tutti i campi previsti dalla normativa. FAQ n. 49 pubblicata il 21 dicembre 2018 e aggiornata il 22 dicembre 2022: Per ogni riga ci dovrebbe essere questo: