Line 8:
Line 8:
−
= Standard VAT and rounding rules =
+
=Standard VAT and rounding rules=
For an example we will use an invoice with two products, based in a country where the totals must be rounded to two decimal places.
For an example we will use an invoice with two products, based in a country where the totals must be rounded to two decimal places.
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D<br>Vat rate||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(D*E)||nowrap="nowrap"|G<br>Tax amount rounded<br>to 2 dec. places<br>=round(F)||nowrap="nowrap"|H<br>Exact price<br>inc tax<br>=(E+F)||nowrap="nowrap"|I<br>Price inc tax rounded<br>to 2 decimals<br>=(E+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D<br>Vat rate||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(D*E)|| nowrap="nowrap" |G<br>Tax amount rounded<br>to 2 dec. places<br>=round(F)|| nowrap="nowrap" |H<br>Exact price<br>inc tax<br>=(E+F)|| nowrap="nowrap" |I<br>Price inc tax rounded<br>to 2 decimals<br>=(E+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||1||1.24||10%||1.24||0.124||0.12||1.24+0.124=1.364||1.36
+
||1|| nowrap="nowrap" |Product alpha||1||1.24||10%||1.24||0.124||0.12||1.24+0.124=1.364||1.36
|-
|-
−
||2||nowrap="nowrap"|Product beta||1||1.24||10%||1.24||0.124||0.12||1.24+0.124=1.364||1.36
+
||2|| nowrap="nowrap" |Product beta||1||1.24||10%||1.24||0.124||0.12||1.24+0.124=1.364||1.36
|}
|}
Line 23:
Line 23:
1) If we choose to sum the rounded lines (to 2 decimal places) lines, we get:
1) If we choose to sum the rounded lines (to 2 decimal places) lines, we get:
−
* Total without tax: 1.24(E1) + 1.24(E2) = '''2.48'''
+
−
* Total tax 10%: 0.12(G1) + 0.12(G2) = '''0.24''' (we sum the rounded values of tax on each line)
+
*Total without tax: 1.24(E1) + 1.24(E2) = '''2.48'''
−
* Total inc tax (we sum total without tax + total tax): 2.48(Ex) + 0.24(Gx) = '''2.72'''
+
*Total tax 10%: 0.12(G1) + 0.12(G2) = '''0.24''' (we sum the rounded values of tax on each line)
+
*Total inc tax (we sum total without tax + total tax): 2.48(Ex) + 0.24(Gx) = '''2.72'''
Note that if we sum the rounded price inc. tax on each line, we get: 1.36(I1) + 1.36(I2) = '''2.72''' (the same result, so we know there is no error)
Note that if we sum the rounded price inc. tax on each line, we get: 1.36(I1) + 1.36(I2) = '''2.72''' (the same result, so we know there is no error)
2) If we choose to round the amount (to 2 decimals) after summing the unrounded lines, we get:
2) If we choose to round the amount (to 2 decimals) after summing the unrounded lines, we get:
−
* Total without tax: 1.24(E1) + 1.24(E2) = '''2.48''' (same as method 1)
+
−
* Total tax 10%: (1.24(E1) + 1.24(E2)) * 10% = 0.124 + 0.124 = 0.248 rounded to nearest two decimals gives '''0.25''' (we sum the amount without tax for each lines, calculate vat rate on this and subsequently we round the value to 2 decimals)
+
*Total without tax: 1.24(E1) + 1.24(E2) = '''2.48''' (same as method 1)
−
* Total inc tax (we sum each line without tax and add the total tax): 2.48 + 0.25 = '''2.73'''
+
*Total tax 10%: (1.24(E1) + 1.24(E2)) * 10% = 0.124 + 0.124 = 0.248 rounded to nearest two decimals gives '''0.25''' (we sum the amount without tax for each lines, calculate vat rate on this and subsequently we round the value to 2 decimals)
+
*Total inc tax (we sum each line without tax and add the total tax): 2.48 + 0.25 = '''2.73'''
The first point to note is that the result of Method 1 differs from the result of method 2 by 0.01. If you have n times the same line, the difference can be higher but is always lower than/equal to (n-1)*0.01.
The first point to note is that the result of Method 1 differs from the result of method 2 by 0.01. If you have n times the same line, the difference can be higher but is always lower than/equal to (n-1)*0.01.
Line 40:
Line 42:
'''So what to do ?'''
'''So what to do ?'''
−
* In some countries, calculations must always be done using method 1 for generating invoices. As this is the default calculation rule for Dolibarr, there is nothing to change from the default configuration..
−
* In other countries (rarely), calculations must always be done using method 2 for generating invoices. To avoid having the total shown at the top of the invoice that differs from the totals of detailed lines, just do not show column I on invoice. This is the case with Dolibarr default invoice templates, so that's not a problem. To enable this rule of calculation, you must use Dolibarr version 3.5+ and add/override the constant MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND to 1 (in Home - Setup - Other).
−
* In most countries, both methods are possible. In this case just use method 1 that will be more accurate for accounting (since if you use method 2, the total of vat collected on your invoice will not be the sum of F, nor the sum of G and this may create confusion subsequently). If you prefer to use method 2, use Dolibarr version 3.5+ and set constant MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND to 1 (Home - Setup - Other).
−
= Second or Third Tax =
+
*In some countries, calculations must always be done using method 1 for generating invoices. As this is the default calculation rule for Dolibarr, there is nothing to change from the default configuration..
+
*In other countries (rarely), calculations must always be done using method 2 for generating invoices. To avoid having the total shown at the top of the invoice that differs from the totals of detailed lines, just do not show column I on invoice. This is the case with Dolibarr default invoice templates, so that's not a problem. To enable this rule of calculation, you must use Dolibarr version 3.5+ and add/override the constant MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND to 1 (in Home - Setup - Other).
+
*In most countries, both methods are possible. In this case just use method 1 that will be more accurate for accounting (since if you use method 2, the total of vat collected on your invoice will not be the sum of F, nor the sum of G and this may create confusion subsequently). If you prefer to use method 2, use Dolibarr version 3.5+ and set constant MAIN_ROUNDOFTOTAL_NOT_TOTALOFROUND to 1 (Home - Setup - Other).
+
+
=Second or Third Tax=
Some countries may apply two or three taxes on each invoice line. This can be setup in the Dictionary (Home - Setup - Dictionaries - Sales taxes).
Some countries may apply two or three taxes on each invoice line. This can be setup in the Dictionary (Home - Setup - Dictionaries - Sales taxes).
Line 55:
Line 58:
6: local tax is applied to services only including vat (localtax is calculated on amount + tax)
6: local tax is applied to services only including vat (localtax is calculated on amount + tax)
−
== For Brazil ==
+
==For Brazil==
See page [[BrasilTaxes]]
See page [[BrasilTaxes]]
−
== For Canada ==
+
==For Canada==
'''Lexical'''
'''Lexical'''
−
* GST = Goods and Services Tax (TPS = Taxe sur les Produit et Services for Quebec)
+
*GST = Goods and Services Tax (TPS = Taxe sur les Produit et Services for Quebec)
−
* PST = Provincial sales taxes (TVQ = Taxe de Vente Québecoise for Quebec = QST = Quebec Sale Tax)
+
*PST = Provincial sales taxes (TVQ = Taxe de Vente Québecoise for Quebec = QST = Quebec Sale Tax)
'''Setup'''
'''Setup'''
Line 71:
Line 74:
The GST is applied automatically on each lines (when added or edited).
The GST is applied automatically on each lines (when added or edited).
Value of rate for second tax PST is automatically extracted by system from the dictionary table of VAT rates, for the GST vat rate line used and your country ([[Table llx_c_tva]]).
Value of rate for second tax PST is automatically extracted by system from the dictionary table of VAT rates, for the GST vat rate line used and your country ([[Table llx_c_tva]]).
−
* [[File:Warning.png]] Note that the second tax will be added only if you setup your company into '''Home - Setup - Company - Use 2nd tax to yes''' (this option is visible for country whose a second tax is defined into dictionary tables of vats).
+
+
*[[File:Warning.png]] Note that the second tax will be added only if you setup your company into '''Home - Setup - Company - Use 2nd tax to yes''' (this option is visible for country whose a second tax is defined into dictionary tables of vats).
Line 82:
Line 86:
'''Example of calculation'''
'''Example of calculation'''
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate GST||D2<br>Vat rate PST||E<br>Total without tax<br>=(B*C)||F<br>Tax GST<br>=(B*C*D1)=(D1*E)||nowrap="nowrap"|G<br>Tax PST (B*C*D2)=(D2*E)||nowrap="nowrap"|H<br>Price inc GST + PST=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate GST||D2<br>Vat rate PST||E<br>Total without tax<br>=(B*C)||F<br>Tax GST<br>=(B*C*D1)=(D1*E)|| nowrap="nowrap" |G<br>Tax PST (B*C*D2)=(D2*E)|| nowrap="nowrap" |H<br>Price inc GST + PST=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||10||5%||9.975%||100||5||9.98||114.98
+
||1|| nowrap="nowrap" |Product alpha||10||10||5%||9.975%||100||5||9.98||114.98
|}
|}
−
== For Congo ==
+
==For Congo==
In Congo, alias Republic of Congo or Congo-Brazzaville, there is another tax of 5% on the amount of VAT.
In Congo, alias Republic of Congo or Congo-Brazzaville, there is another tax of 5% on the amount of VAT.
Line 101:
Line 105:
'''Example of calculation'''
'''Example of calculation'''
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>Tax 2 rate||E<br>Total without tax<br>=(B*C)||F<br>Tax<br>=(B*C*D1)=(D1*E)||nowrap="nowrap"|G<br>Tax 2 (B*C*D2)=(D2*E)||nowrap="nowrap"|H<br>Price inc both tax=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>Tax 2 rate||E<br>Total without tax<br>=(B*C)||F<br>Tax<br>=(B*C*D1)=(D1*E)|| nowrap="nowrap" |G<br>Tax 2 (B*C*D2)=(D2*E)|| nowrap="nowrap" |H<br>Price inc both tax=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||10||18%||0.9%||100||18||0.9||118.9
+
||1|| nowrap="nowrap" |Product alpha||10||10||18%||0.9%||100||18||0.9||118.9
|}
|}
−
== For India ==
+
==For India==
There is SGST, CGST and IGST. Setup is available by default with 6.0+:
There is SGST, CGST and IGST. Setup is available by default with 6.0+:
Line 116:
Line 120:
−
== For Italy ==
+
==For Italy==
You may need to add a negative withholding tax calculated on net amount.
You may need to add a negative withholding tax calculated on net amount.
Line 127:
Line 131:
'''Example or calculation'''
'''Example or calculation'''
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>Vat rate withholding tax||E<br>Total without tax<br>=(B*C)||F<br>Tax VAT<br>=(B*C*D1)||nowrap="nowrap"|G<br>Tax 2 (B*C*D2)||nowrap="nowrap"|H<br>Price inc VAT + Tax 2=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>Vat rate withholding tax||E<br>Total without tax<br>=(B*C)||F<br>Tax VAT<br>=(B*C*D1)|| nowrap="nowrap" |G<br>Tax 2 (B*C*D2)|| nowrap="nowrap" |H<br>Price inc VAT + Tax 2=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||10||22%||-20%||100||22||-20||102
+
||1|| nowrap="nowrap" |Product alpha||10||10||22%||-20%||100||22||-20||102
|}
|}
−
== For Spain ==
+
==For Spain==
Specific tax rules for Spain are supported from Dolibarr 3.0.
Specific tax rules for Spain are supported from Dolibarr 3.0.
In Spain, there are two additional vat rates possible for each line:
In Spain, there are two additional vat rates possible for each line:
−
* The vat rate RE. Recargo de Equivalencia - a vat rate calculated on the total without tax for '''products''', and '''added''' to the invoice total to obtain a total with tax.
+
−
* The vat rate IRPF. Impuesto sobre la Renta de las Personas Físicas - a vate rate calculated on total without tax for '''services''', and '''subtracted''' from the invoice total to obtain a total with tax.
+
*The vat rate RE. Recargo de Equivalencia - a vat rate calculated on the total without tax for '''products''', and '''added''' to the invoice total to obtain a total with tax.
+
*The vat rate IRPF. Impuesto sobre la Renta de las Personas Físicas - a vate rate calculated on total without tax for '''services''', and '''subtracted''' from the invoice total to obtain a total with tax.
Both additional taxes cannot be on the same invoice: RE is applied only for products and IRPF only for services. Because IRPF tax is always negative, in credit notes/invoices the total IRPF will be positive.
Both additional taxes cannot be on the same invoice: RE is applied only for products and IRPF only for services. Because IRPF tax is always negative, in credit notes/invoices the total IRPF will be positive.
Line 152:
Line 157:
'''Example of calculation'''
'''Example of calculation'''
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>RE||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(B*C*D1)=(D1*E)||nowrap="nowrap"|G<br>Tax RE (B*C*D2)=(D2*E)||nowrap="nowrap"|H<br>Price inc standard vat + RE=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>RE||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(B*C*D1)=(D1*E)|| nowrap="nowrap" |G<br>Tax RE (B*C*D2)=(D2*E)|| nowrap="nowrap" |H<br>Price inc standard vat + RE=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||10||10%||1.4%||100||10||1.4||111.4
+
||1|| nowrap="nowrap" |Product alpha||10||10||10%||1.4%||100||10||1.4||111.4
|}
|}
'''Example of calculation in credit notes'''
'''Example of calculation in credit notes'''
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>IRPF||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(B*C*D1)=(D1*E)||nowrap="nowrap"|G<br>Tax RE (B*C*D2)=(D2*E)||nowrap="nowrap"|H<br>Price inc standard vat + RE=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>IRPF||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(B*C*D1)=(D1*E)|| nowrap="nowrap" |G<br>Tax RE (B*C*D2)=(D2*E)|| nowrap="nowrap" |H<br>Price inc standard vat + RE=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||-10||21%||-21%||-100||0||21||100
+
||1|| nowrap="nowrap" |Product alpha||10||-10||21%||-21%||-100||0||21||100
|}
|}
Line 175:
Line 180:
−
== For Tunisia ==
+
==For Tunisia==
You may need to manage the fiscal thumb. For this, just enable the option into Home - Setup - Company/Organization.
You may need to manage the fiscal thumb. For this, just enable the option into Home - Setup - Company/Organization.
Line 187:
Line 192:
The solution is to create a VAT Rate that include bot the VAT rate + a delta to include the VAT based on FODEC.
The solution is to create a VAT Rate that include bot the VAT rate + a delta to include the VAT based on FODEC.
−
'''Exemple''': Imagine the VAT is 18% and the FODEC is 1%
+
'''Exemple''': Imagine the VAT is 18% and the FODEC is 1%. You must go into Setup - Dictionaries - VAT and tax rates. Create a new VAT rate with field Code = "18+FODEC", Rate="18.18", Use Tax2=Yes with type 1, Rate of Tax2="1", Note="VAT 18.0 including 1% FODEC, so 18.18%"
−
{|class="wikitable centre" width="80%"
+
{| class="wikitable centre" width="80%"
|- valign="top"
|- valign="top"
−
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>RE||E<br>Total without tax<br>=(B*C)||F<br>Exact tax amount<br>=(B*C*D1)=(D1*E)||nowrap="nowrap"|G<br>Tax RE (B*C*D2)=(D2*E)||nowrap="nowrap"|H<br>Price inc standard vat + RE=(E+F+G)
+
|| ||A<br>Description||B<br>Quantity||C<br>Unit price||D1<br>Vat rate||D2<br>FODEC||E<br>Total without tax<br>=(B*C)||F<br>Exact VAT amount<br>=(B*C*D1)=(D1*E)|| nowrap="nowrap" |G<br>Tax FODEC (B*C*D2)=(D2*E)|| nowrap="nowrap" |H<br>Price inc standard vat + FODEC=(E+F+G)
|-
|-
−
||1||nowrap="nowrap"|Product alpha||10||10||10%||1.4%||100||10||1.4||111.4
+
||1|| nowrap="nowrap" |Product alpha||10||10||18.18%||1%||100||18.18||1||119.18
|}
|}