IVA INDETRAIBILE
Esempio ricevo fattura di 123,57 + IVA 20% 24,71.
se nella registrazione utilizzo il codice IVA 20% totalmente deducibile OpenERP calcola correttamente 24,71 di IVA (123,57 * 20% = 24,714 arr. 24,71)
se nella registrazione utilizzo il codice IVA 20% deducibile al 50% OpenERP effettua i calcoli come sotto (IVA errata 24,72)
spiego come andrebbe fatto il calcolo:
123,57 *50% = 61,785 arrotondo 61,79 imponibile indetraibile
123,57 *50% = 61,785 arrotondo 61,78 imponibile detraibile
IVA indetraibile = 61,79 * 20% = 12,358 arrotondo a 12,36
IVA detraibile = 61,78 * 20% = 12,356 arrotondo a 12,35
REGOLA PER L'ARROTONDAMENTO:
arrotondamento da applicare: arrotondamento matematico al secondo decimale, se il terzo decimale è 5 effettuo l'arrotondamento per eccesso.
imponibile indetraibile: imponibile per % indetraibilità → faccio l'arrotondamento
imponibile detraibile: imponibile totale – imponibile indetraibile
IVA indetraibile: imponibile indetraibile per aliquota IVA → faccio l'arrotondamento
IVA detraibile: IVA sul totale imponibile – IVA indetraibile
nell'esempio sopra riportato:
imponibile indetraibile: 123,57 * 50% = 61,785 arrotondo a 61,79
imponibile detraibile. 123,57 – 61,79 = 61,78
IVA indetraibile: 61,79 * 20% = 12,358 arrotondo a 12,36
IVA detraibile: (123,57*20%= 24,714 arrotondo a 24,71) – 12,36 = 12,35
La scrittura generata è la seguente:
sistemando l'arrotondamento diventa:
nella riga nell'imponibile saranno salvati:
Tassa applicata: account_tax.id
Imponibile detraibile: 61,78
Imposta detraibile: 12,35
Imponibile non detraibile: 61,79
Imposta non detraibile: 12,36
Percentuale di indetraibilità: 50,00
la stampe dei registri IVA e della liquidazione IVA avrebbe in un unico record tutte
le informazioni necessarie.
La discussione sulla possibile soluzione è qui http://www.mail-archive.com/openobject-italia-core-devs@lists.launchpad.net/msg00380.html
Il branch che contiene le correzioni è questo https://code.launchpad.net/~openobject-italia-core-devs/openobject-italia/l10n_it_fix_partially_deductible_vat
Dai primi test sembra funzionare: http://www.openerp-italia.org/index.php?option=com_kunena&Itemid=81&func=view&catid=8&id=5239&limit=6&limitstart=12#5256
Il baco che impediva l'installazione del nuovo l10n_it è stato corretto: https://bugs.launchpad.net/openobject-addons/+bug/789658 quindi potremmo anche proporre il merge
Icsergio: le soluzioni proposte funzionano con i casi presentati, ma non con un altro caso: fattura di imponibile € 100,03, IVA € 20,006 arrotondata a 20,01, detraibile al 50%. L'errore è nel calcolo dell'IVA indetraibile, che viene indicata in € 10,00, e dell'IVA detraibile, che è indicata in € 10,01, mentre dovrebbe essere il contrario.
Merge proposto: https://code.launchpad.net/~openobject-italia-core-devs/openobject-addons/l10n_it_6.1_fixes/+merge/73349
https://bugs.launchpad.net/openobject-addons/+bug/707923
Sono stati fatti dei test su 2 fatture, provando su entrambe il calcolo con e senza il modulo c2c_account_tax_rounding.
La prima fattura ha 2 righe:
Il risultato del calcolo dell IVA effettuato SENZA il modulo c2c_account_tax_rounding è il seguente:
Calcolo scorretto
Il risultato del calcolo dell IVA effettuato CON il modulo c2c_account_tax_rounding è il seguente:
Calcolo corretto
La seconda fattura ha sempre 2 righe:
Il risultato del calcolo dell IVA effettuato SENZA il modulo c2c_account_tax_rounding è il seguente:
Calcolo scorretto
Il risultato del calcolo dell IVA effettuato CON il modulo c2c_account_tax_rounding è il seguente:
Calcolo scorretto
Il calcolo corretto sarebbe il seguente:
123.57+123.57×0.9 = 234.783
123.57*0.1 = 12.357
234.78*0.2 = 46.956
12.36×0.2 = 2.472
IVA totale = 46.96 + 2.47 = 49.43
AGGIORNATO per il caso di imponibile €100,03 e IVA al 20% indetraibile al 50% (vedi sopra in possibile soluzione): Con un semplice arrotondamento per eccesso della sola parte di imponibile indetraibile e dell'IVA calcolandola sull'IVA totale effettiva, mentre le altre voci vengono calcolate per differenza:
| Descrizione | Importi | % detraibilità riga (per caso fattura 2) | Importi indetraibili | Detraibili | % detraibilità |
|---|---|---|---|---|---|
| Imponibile | 123,57 | 100,00% | 61,79 | 61,78 | 50,00% |
| Iva | 24,71 | 12,36 | 12,35 | ||
| Totale | 148,28 | 74,15 | 74,13 |
Tabella per copia-incolla:
| Descrizione | Importi | % detraibilità riga (per caso fattura 2) | Importi indetraibili | Detraibili | % detraibilità |
|---|---|---|---|---|---|
| Imponibile | 123,57 | 100,00% | =ROUNDUP(B2*F2*C2;2) | =B2-D2 | 50,00% |
| Iva | =ROUND(B2*0,2;2) | 100,00% | =ROUNDUP(B3*F3*C3;2) | =B3-D3 | 50,00% |
| Totale | =B2+B3 | =D2+D3 | =B4-D4 |
Modificare la % detraibilità riga al 50% per il caso fattura 2 e detraibilità al 10%. La tabella si può copia-incollare su un foglio di calcolo direttamente.
Biancama: secondo me questo metodo sbaglia in alcuni casi. Ad esempio supponiamo di avere una fattura fornitore con due righe: * Imponibile 100,11 con iva al 20% totalmente detraibile * Imponibile 100,11 con iva al 20% 50% detraibile Il fornitore emette fattura con imponibile (100,11 + 100,11) = 200,22 con iva 200,22 * 0,2 = 40,044 e quindi arrotondato 40,04 In openERP avremo 3 righe di Imposte:
| Descrizione | Imponibile | tasse | arrotondamento |
|---|---|---|---|
| Iva al 20% (credito) | 100,11 | 20,022 | 20,02 |
| Iva al 20% detraibile al 50% (I) | 100,11 | 10,011 | 10,01 |
| Iva al 20% detraibile al 50% (D) | 100,11 | 10,011 | 10,02 |
Il totale fa 40,05 e quindi è sbagliato
Icsergio: Il calcolo che fai non è quello proposto: l'IVA detraibile viene sempre calcolata per differenza ed è per forza corretto. Quindi verrebbe calcolata l'IVA totale sui 100,11 (20,02) quindi detratta l'IVA indetraibile (10,01) e il risultato sarebbe (10,01). Basta provare a inserire in un foglio di calcolo le formule proposte e il risultato è infatti corretto, come si vede sotto.
| Importi | % detraibilità riga (per caso fattura 2) | Importi indetraibili | Detraibili | % detraibilità | |
|---|---|---|---|---|---|
| Imponibile | 200,22 | 50,00% | 50,06 | 150,16 | 50,00% |
| Iva | 40,04 | 10,01 | 30,03 | ||
| Totale | 240,26 | 60,07 | 180,19 |
Lo stratagemma del modulo c2c_account_tax_rounding per simulare il calcolo “verticale” non è sufficiente a coprire tutti i casi.
Potrà essere utile contattare i tedeschi (https://bugs.launchpad.net/openobject-addons/+bug/707923 ) per portare avanti insieme il lavoro di magrolla (https://code.launchpad.net/~openobject-italia-core-devs/openobject-italia/l10n_it_invoice_tax_compute/+merge/60069 ) e realizzare un modulo che metta a disposizione una ”(company based?) configuration option to choose either horizontal or vertical calculation” (come suggerito da Marco Dieckhoff )
Un'altra possibile soluzione, adottata anche da adempiere potrebbe essere quella di mettere un flag nella Form Imposte (livello documento). Se il flag è spuntato allora il calcolo dell'imposta sarà fatto in verticale, altrimenti in orizzontale.
Vediamo cosa arriva da Albert:
Collaboreremo con c2c per ottenere qualcosa di più stabile e generico possibile: https://bugs.launchpad.net/openobject-addons/+bug/707923/comments/39