Project

General

Profile

Wiki » History » Version 14

Simone Girolimetto, 01/21/2020 12:03 PM

1 9 Simone Girolimetto
h1. 2bit Fatturazione Elettronica - Panoramica
2 1 Simone Girolimetto
3 2 Simone Girolimetto
p{font-weight: 400;}. Progetto .Net C# 2017 per la creazione ed invio presso HUB del file XML con i dati delle fatture B2B.
4
5 9 Simone Girolimetto
h2. Struttura del progetto - Sezione .NET
6 2 Simone Girolimetto
7
p{font-weight: 400;}. Solution: C:\Sorgenti\[DotNet...]\FatturaElettronica\DueFatturaElettronica\DueFatturaElettronica\DueFatturaElettronica.sln
8
9
p{font-weight: 400;}. Progetti:
10
11 3 Simone Girolimetto
* %{font-weight: 400;}*DueFatturaElettronica*: contiene l'interfaccia a COM per utilizzare i metodi di creazione da ambiente VB6 + contiene i riferimenti al pacchetto FatturaElettronica by Nicola Iarocci, che espone un DTO strutturato per caricare i dati della fattura, eseguire una prevalidazione ed esportare in JSON la struttura dati secondo normativa.%
12
* %{font-weight: 400;}*DueCSolutionGatewayFAE*: contiene dei servizi per inviare presso HUB "2C Solution" l'XML con i dati della fattura elettronica. Permette di inviare, recuperare o ottenere lo stato di una o piu fatture.%
13 1 Simone Girolimetto
* %{font-weight: 400;}*Test* : Console di test per provare la solution.%
14
15
Il pacchetto NuGet è il seguente:
16 3 Simone Girolimetto
17 5 Simone Girolimetto
!{height: 126px; width: 683px;}20190218-120348-510.png!
18 3 Simone Girolimetto
19 9 Simone Girolimetto
h2. *Struttura del progetto - Sezione .COM*
20 3 Simone Girolimetto
21
Le DLL prodotte in .NET sono distribuite nella cartella "Lib\NET\DueFatturaElettronica"
22
23 4 Simone Girolimetto
!{height: 378px; width: 282px;}20190218-120546-176.png!
24
25
In ambito vb6 la libreria utilizzata è "DueFatturaElettronica.dll", referenziata da "DueFatturaElettronica.tlb" nei seguenti progetti:
26
27
* Due.vbp (C:\Sorgenti\DueBitSLN_trunk\DueApplication\Sorgenti\Due\)
28
* SchedulerFatturaElettronica.vbp (C:\Sorgenti\DueBitSLN_trunk\DueApplication\Sorgenti\Due_SchedulerFattureElettroniche\)
29
30
E' possibile dichiarare un oggetto di tipo ComInterface, che avrà i seguenti metodi:
31
32
!{height: 166px; width: 345px;}20190218-121146-191.png!
33
34
Sono evidenziati i due piu importanti.
35
36 1 Simone Girolimetto
Esiste un altro progetto vb6 chiamato "Scheduler Fattura Elettronica", che è un activeX-exe ed è referenziato in:
37 4 Simone Girolimetto
38
* Due.vbp (C:\Sorgenti\DueBitSLN_trunk\DueApplication\Sorgenti\Due\)
39 8 Simone Girolimetto
* AvvioAutomaticoEasypos.vbp (C:\Sorgenti\DueBitSLN_trunk\DueEasyPos\Sorgenti\avvioAutomaticoEasyPOS\)
40
41 9 Simone Girolimetto
h2. Aggiornamento dei binari .Net
42 5 Simone Girolimetto
43 1 Simone Girolimetto
E' possibile distribuire i binari .NET aggiornati con il setup di aggiornamento del software, oppure sfruttando 2BitInstaller.
44 5 Simone Girolimetto
45 1 Simone Girolimetto
L'applicativo, infatti, al suo avvio da parte di DUE, effettua un check nel server web e recupera uno zip presente in una specifica cartella. 
46
Se la versione indicata nel nome di questo file è maggiore di quella che è presente nel pc, il pacchetto zip viene scaricato, decompresso in LIB\NET\DueFatturaElettronica, sovrascrivendo le vecchie librerie .NET con quelle nuove.
47 5 Simone Girolimetto
48 1 Simone Girolimetto
Ogni zip al suo interno contiene tutto l'occorrente per la gestione delle FE, compreso un file "leggimi.txt" contenente il change-log dei rilasci. 
49 5 Simone Girolimetto
50 9 Simone Girolimetto
h2. Come creare il pacchetto ZIP
51 1 Simone Girolimetto
52
Il pacchetto ZIP deve essere creato a mano, compattando i binari prodotti dalla compilazione in release della solution .Net DueFatturaElettronica.
53 5 Simone Girolimetto
54 1 Simone Girolimetto
Prima di compilare la solution:
55
56
* modificare il file "leggimi.txt" aggiungendo cosa è cambiato
57
* aumentare di 1 la major version del progetto DueFatturaElettronica:
58
59
!{height: 424px; width: 1029px;}20190218-122831-344.png!
60
61
!{height: 572px; width: 821px;}20190218-122152-077.png!
62
63
Il pacchetto zip deve poi essere copiato manualmente nella macchina su web, cartella D:\InetPub\vHosts\ApplicationInstaller.duebit.com\updates\Repository\FE
64 5 Simone Girolimetto
65 9 Simone Girolimetto
dove sono presenti due cartelle, una per versione beta (es: 20), e una per la stabile (es 19).
66 5 Simone Girolimetto
67 9 Simone Girolimetto
Rispettare il nome del file che dovrà essere simile a "FatturaElettronica18_v013.zip", dove con 18 si indica la versione di riferimento (18, 19, 20), e con "v0xx" il numero di versione della libreria, che dovrà aumentare di 1 alla volta.
68 5 Simone Girolimetto
69 9 Simone Girolimetto
h1. PRINCIPI DI FUNZIONAMENTO
70 5 Simone Girolimetto
71 10 Simone Girolimetto
h2. *Configurazione base*
72 9 Simone Girolimetto
73
p{font-weight: 400;}. Nella sezione impostazioni azienda è disponibile una sezione per la configurazione della FE:
74
75
p{font-weight: 400;}. !{height: 375px; width: 612px;}20190218-123144-197.png! 
76
77 6 Simone Girolimetto
*Codice regime fiscale*<notextile></notextile>: è necessario indicare il codice secondo una codifica specifica:
78
79
table{background-color: transparent; border-collapse: collapse; border-spacing: 0px; border-style: none; border-width: 0px; font-family: Tahoma;}.
80
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF01 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Ordinario |
81
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF02 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Contribuenti minimi (art.1, c.96-117, L. 244/07) |
82
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF03 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Nuove iniziative produttive (art.13, L. 388/00)  |
83 1 Simone Girolimetto
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF04 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Agricoltura e attività connesse e pesca (artt.34 e 34-bis, DPR 633/72) |
84
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF05 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Vendita sali e tabacchi (art.74, c.1, DPR. 633/72) |
85
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF06 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Commercio fiammiferi (art.74, c.1, DPR 633/72) |
86
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF07 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Editoria (art.74, c.1, DPR 633/72) |
87
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF08 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Gestione servizi telefonia pubblica (art.74, c.1, DPR 633/72) |
88
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF09 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Rivendita documenti di trasporto pubblico e di sosta (art.74, c.1, DPR 633/72) |
89
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF10 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Intrattenimenti, giochi e altre attività di cui alla tariffa allegata al DPR 640/72 (art.74, c.6, DPR 633/72) |
90
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF11 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Agenzie viaggi e turismo (art.74-ter, DPR 633/72)  |
91
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF12 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Agriturismo (art.5, c.2, L. 413/91) |
92
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF13 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Vendite a domicilio (art.25-bis, c.6, DPR 600/73) |
93
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF14 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Rivendita beni usati, oggetti d'arte, d'antiquariato o da collezione (art.36, DL 41/95) |
94
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF15 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Agenzie di vendite all'asta di oggetti d'arte, antiquariato o da collezione (art.40-bis, DL 41/95) |
95
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF16 |\8{color: inherit; font-family: inherit; font-size: inherit;}. IVA per cassa P.A. (art.6, c.5, DPR 633/72) |
96
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF17 |\8{color: inherit; font-family: inherit; font-size: inherit;}. IVA per cassa (art. 32-bis, DL 83/2012) |
97
{background-color: #f2f3f4; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF18 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Altro |
98
{background-color: #e7ebf7; color: #666666; font-size: 10pt;}. |\2{color: inherit; font-family: inherit; font-size: inherit;}. RF19 |\8{color: inherit; font-family: inherit; font-size: inherit;}. Regime forfettario (art.1, c.54-89, L. 190/2014) |
99 6 Simone Girolimetto
100 1 Simone Girolimetto
*Percorso esportazione XML fatture attive:* indica dove verrà generato il file XML se alle fatture verrà utilizzata la funzione "Genera XML"
101
102
*[ ] Controlla esito invio fatture attive da questa opstazione ogni x min:* abilita un monitoraggio dell'esito invio fatture all'HUB convenzionato con 2bit ed aggiorna automaticamente l'esito nella testata della fattura.
103
104
*[ ] Invio automatico fatture attive ad Hub da questa postazione ogni x min*<notextile></notextile>: abilita l'invio automatico ad hub delle fatture almeno stampate, esportate in pdf o inviate via mail dalla postazione corrente
105
106
*[ ] Download delle fatture passive da questa postazione degli ultimi x giorni:* effettua un check su HUB per scaricare un file XSL ed inviare a pc una notifica in presenza di nuove fatture da fornitori. Indicare il percorso in "Percorso download fatture passive".
107
108
*Testo da stampare su fatture cartacee:* Dalla versione 19.515 in poi di DUE è possibile indicare in tutti i formati di stampa (report a4, misuratore fiscale, tm88) un testo e i dati SDI/PEC relativi al cliente per la gestione della fattura elettronica, in termini di notifica di documento copia conforme. 
109
110
In Impostazioni azienda -- > Documenti è possibile determinare per quali sezionali abilitare l'invio ad hub delle fatture. Serve uno username ed una password che identifichi l'accesso al portale HUB 2C Solution. 
111
112
E' inoltre possibile specificare un "cedente prestatore", ovvero un cliente che associo ad un bollettario e che servirà al tool di invio dell'XML per recuperarne i suoi dati (SDI e PEC) inviando le fatture a quei riferimenti. Il codice destinatario è di fatto il codice hub che identifica il cliente nell'HUB 2C. 
113
114 12 Simone Girolimetto
h2. *Calcolo degli arrotondamenti*
115
116
p{font-weight: 400;}(wiki-class-MsoNormal). La dinamica che ha richiesto una rifattorizzazione "pesante" sulla logica della FE è legato al fatto che allo SDI non interessa minimamente il totale del documento fattura Emesso. Ai clienti SI.
117
118
p{font-weight: 400;}(wiki-class-MsoNormal). Quindi alla seconda o terza chiamata di clienti che hanno chiesto motivazione del fatto che il loro cliente gli contestasse il pagamento della fattura perche' di importo diverso da quella cartacea è stato necessario intervenire sull'arrotondamento prezzi.
119
120
p{font-weight: 400;}(wiki-class-MsoNormal). La fatturazione elettronica lavora sui prezzi imponibili, su cui calcola quindi l'iva. 2bit ha clienti che lavorano sulle fatture con prezzi ivati nel corpo. Inizialmente si era implementato il campo "arrotondamento fattura", previsto nel totale del documento, non trovando alcuna direttiva ministeriale. Tutto ha funzionato, il portale accettava le fatture.. il validatore della fattura elettronica pure. Purtroppo i clienti che ricevono le fatture emesse, il piu' delle volte NON vedono il campo arrotondamento nei documenti ricevuti. A questo punto, per arrotondare il documento, si è preso spunto da questo articolo:
121
122
p{font-weight: 400;}(wiki-class-MsoNormal). https://forum.italia.it/t/risolto-arrotondamenti-imposta-su-e-fattura/6504/21
123
124
p{font-weight: 400;}. Alla versione 13 della libreria, l'algoritmo risulta implementato e funzionante, garantendo uno scostamento di 1 centesimo al massimo tra il calcolo dell'imponibile o dell'iva: se la somma dei due è superiore di 1 centesimo rispetto al totale del documento, viene abbassato l'imponibile di 1 cent. Se è inferiore di 1 cent, viene aumentata l'iva di 1 cent.
125
126
p{font-weight: 400;}. Sopra 1 cent, non viene arrotondato nulla.
127
128 1 Simone Girolimetto
h2. Note fattura
129
130
Eventuali note indicate in testata della fattura saranno esportate nel nodo "DatiGenerali.DatiGeneraliDocumento.Causale". 
131
132 10 Simone Girolimetto
h2. Cendente prestatore
133
134
Nel caso si voglia indicare, come emettitore della fattura elettronica, un ente diverso dalla ragione sociale dell'azienda, è possibile indicare, nella sezione bollettari, un cliente registrato nell'anagrafica clienti come "cedente prestatore":
135
136
!{height: 324px; width: 530px;}20200121-112220-572.png! 
137
138
Nell'esempio sopra riportato, la fattura esportata in XML con sezionale "BIS" verrà emessa con emettitore *pari al cliente indicato come cedente prestatore (es: "Allevamento avicolo").*<notextile></notextile> Diversamente, l'xml generato avrà i dati anagrafici dell'azienda.
139
140 13 Simone Girolimetto
E' possibile esportare anche il dato di "Riferimento Amministrazione". E' sufficiente attivare la gestione dei *dati ulteriori* nella scheda del cliente, creare un gruppo di dati ulteriori per i clienti con la descrizione "Fattura Elettronica", ed un dato ulteriore di tipo testo con descrizione "<notextile></notextile>*RiferimentoAmministrazione".*<notextile></notextile> Il valore di questo dato nella scheda del cliente sarà usato per popolare il nodo "FatturaElettronicaHeader.CedentePrestatore.RiferimentoAmministrazione". 
141
142 11 Simone Girolimetto
h2. Cliente intermediario
143
144
Nel caso si voglia indicare, nel nodo "FatturaElettronicaHeader.TerzoIntermediarioOSoggettoEmittente", un soggetto intermediario, è necessario creare la chiave sulla tabImpostazioni, con descrizione "idClienteIntermediario", e valore pari all'id cliente da utilizzare per l'emissione dell'intermediario in tutte le fatture attive generate in XML. Per la costruzione del nodo, verranno recuperati dalla scheda del cliente:
145 1 Simone Girolimetto
146
* Ragione sociale
147
* partita iva
148
* codice fiscale
149
150
Per i dati extra relativi al cliente intermediario:
151
152
* *Anagrafica.CodEORI*
153
** Serve per l'indicazione del codice eventualmente attribuito al cedente/prestatore in base al Regolamento CE n. 312 del 16 aprile 2009
154
*** Creare una chiave su tabImpostazioni, descrizione "idClienteIntermediario_CodEORI", ed indicare nel campo "valore" il codice del cedente prestatore. 
155
* *FatturaElettronicaHeader.SoggettoEmittente*
156
** Formato alfanumerico; lunghezza di 2 caratteri; i valori ammessi sono i seguenti:
157
*** "CC" --> cessionario/committente.
158
*** "TZ" --> soggetto terzo.
159
*** Creare una chiave su tabImpostazioni, descrizione "FE_SoggettoEmittente". Indicare uno dei due valori descritti precedentemente. 
160
161
h2. Cessionario committente
162
163
Affinchè il destinatario della fattura sia valido, deve avere una nazione con il codice iso correttamente impostato. Verificare quindi l'anagrafica nazioni in Backoffice --> Anagrafiche -->  Profili --> Nazioni:
164
165 13 Simone Girolimetto
!{height: 313px; width: 249px;}20200121-114151-945.png!
166
167
!{height: 235px; width: 467px;}20200121-114320-754.png!
168
169
h2. Conai
170
171
E' possibile esportare, nella sezione DatiDocumento.Causali, una dicitura per indicare l'assolvimento del Conai.
172
173 14 Simone Girolimetto
E' sufficiente attivare la gestione dei dati ulteriori nella scheda del cliente, creare un gruppo di dati ulteriori per i clienti con la descrizione "Fattura Elettronica", e creare un dato ulteriore di tipo combobox (valore si/no) con descrizione "<notextile></notextile>*Conai*<notextile></notextile>".
174 1 Simone Girolimetto
175 14 Simone Girolimetto
!20200121-120128-945.png!
176
177
Nel caso il cliente presenti questo valore a "SI", l'xml generato avrà, nella sezione "DatiGenerali.DatiGeneraliDocumento.Causale", la riga descrittiva che indica il contributo conai:
178
179
!{height: 179px; width: 411px;}20200121-120318-002.png!
180
181 13 Simone Girolimetto
"CORRISPETTIVO COMPRENSIVO DEL CONTRIBUTO CONAI GIA' ASSOLTO DAL FORNITORE OVE DOVUTO"
182
183
La descrizione può essere variata inserendo una chiave nella tabImpostazioni (Descrizione chiave: "FE_RigaDescrittivaConai"). Il valore di questa chiave verrà utilizzato al posto del valore di default.
184
185
h2. Dati ordine di acquisto (CIG, CUP)
186
187
Per valorizzare i dati di ordine acquisto, è sufficiente indicare CIP e/o CUP nella testata della fattura da backoffice:
188
189
!20200121-114543-543.png!
190
191
Per indicare anche il riferimento del documento di acquisto, popolare i campi nella sezione Note:
192
193
!20200121-114659-547.png!
194
195
h2. Dichiarazione intento
196
197
p{font-size: 14px; font-weight: 400;}. La dichiarazione di intento viene automaticamente esportata nell'XML se è attiva nella fattura. Viene recuperata la registrazione più recente,ed espressa nel nodo "DatiDocumento.Causali", con questa dicitura:
198
199 1 Simone Girolimetto
p{font-size: 14px; font-weight: 400;}. "LETTERA D'INTENTO N. xxxx DEL yyyyyyyy"
200 13 Simone Girolimetto
201 14 Simone Girolimetto
p{font-size: 14px; font-weight: 400;}. Se è attivo un dato ulteriore specifico nel cliente, è possibile indicare nel nodo "DatiDocumento.Causali" una riga descrittiva aggiuntiva prima della dichiarazione di intento. E' sufficiente attivare la gestione dei dati ulteriori nella scheda del cliente, creare un gruppo di dati ulteriori per i clienti con la descrizione "Fattura Elettronica", e creare un dato ulteriore di tipo testo con descrizione "<notextile></notextile>*Causale*<notextile></notextile>". Nel caso il cliente presenti questo campo valorizzato, l'xml generato avrà, nella sezione "DatiGenerali.DatiGeneraliDocumento.Causale", questo valore.
202 1 Simone Girolimetto
203
h2. Numero di protocollo della ricevuta di dichiarazione d'intento
204
205 14 Simone Girolimetto
%{font-size: 14px; font-weight: 400;}Dal 1 gennaio 2020, le fatture elettroniche con dichiarazione di intento devono riportare il numero di protocollo della ricevuta della dichiarazione di intento.%
206 1 Simone Girolimetto
207 14 Simone Girolimetto
%{font-size: 14px; font-weight: 400;}Questo dato va inserito in ogni cliente previa creazione di un dato ulteriore specifico. %<notextile></notextile>E' sufficiente attivare la gestione dei dati ulteriori nella scheda del cliente, creare un gruppo di dati ulteriori per i clienti con la descrizione "Fattura Elettronica", e creare un dato ulteriore di tipo testo con descrizione "<notextile></notextile>*Numero Protocollo Ricevuta Dichiarazione Intento*<notextile></notextile>".
208
209
!20200121-120203-452.png!
210
211
Nel caso il cliente presenti questo campo valorizzato, l'xml generato avrà, nella sezione "DatiGenerali.DatiGeneraliDocumento.Causale", questo valore.
212
213
!{height: 235px; width: 464px;}20200121-120255-547.png!
214 12 Simone Girolimetto
215
h2. REA
216
217
Il REA o Repertorio Economico Amministrativo è un archivio delle informazioni delle attività iscritte e non al Registro delle Imprese.
218
219
Per indicare il numero REA in una fattura elettronica, devono essere creati questi record nella tabImpostazioni:
220
221
* Per il numero REA (richiesto valore di tipo stringa)
222
** Descrizione: REA_NumeroREA
223
** Valore: indicare il numero
224
* Per il capitale sociale (richiesto valore di tipo numerico)
225
** Descrizione: REA_CapitaleSociale
226
** Valore: indicare il valore del capitale sociale
227
* Per il socio unico (richiesto valore di tipo stringa)
228
** Descrizione: REA_SocioUnico
229
** Valore: indicare la stringa
230
* Per lo stato liquidazione (richiesto valore di tipo stringa)
231
** Descrizione: REA_StatoLiquidazione
232
** Valore: indicare la stringa
233
* Per l'ufficio di iscrizione (richiesto valore di tipo stringa)
234
** Descrizione: REA_Ufficio
235
** Valore: indicare la stringa