account_fr: Properly handle EU-sales and EU-purchases in the VAT report
The current handling of the EU-sales and EU-purchases is wrong and doesn't allow to fill all the data that the VAT report requires us to provide. We have to provide data for goods and service (both for sales and for purchases). Getting the situation straight thus requires to create separate taxes for goods and for services.
I have a branch fixing all this and I'm submitting it here in this ticket with multiple reviews. Here's the "git log" (from oldest commit to newest one) to explain the different steps:
http://codereview.tryton.org/7931002
Differentiate VAT sales taxes between goods and services
The current taxes are dedicated for the goods and we create
new taxes dedicated to services.
http://codereview.tryton.org/6061002
Differentiate VAT purchase taxes between goods and services
The current purchase taxes are dedicated for the goods and we create
new taxes dedicated to services.
This split is not needed for national purchases but it's required
so that we can properly map them to different taxes for purchases
in Europe.
http://codereview.tryton.org/6071002
Split the tax for sales without VAT within Europe in goods and services
And also:
* Fix the associated accounts and tax codes:
- the invoice_account doesn't matter since the rate is 0, but we
use the standard account for collected VAT (44571 TVA collectée)
- the invoice_tax_code/credit_note_tax_code are set to None since
there's no point to assign a zero value anywhere
- the invoice_base_code varies between services (0033 Autres opérations
non imposables) and goods (0034 Livraisons intracommunautaires)
- the credit_note_base_code is set to 0039 (Régularisations sur
opérations non-imposables)
* Expand the tax rule for sales without VAT in Europe to map the new
taxes. Each tax for goods maps to tva_vente_intracommunautaire_0,
each tax for services maps to tva_vente_intracommunautaire_services_0.
http://codereview.tryton.org/6071003
Define and fix taxes for purchase of goods in Europe
* Dedicate the pre-existing taxes to purchase of goods.
* Create the missing taxes for the "Taux intermédiaire".
* Drop the credit_note_base_code and credit_note_tax_code as
credit note on EU purchases do not change the amount of VAT
to pay (since they are auto-liquidated). However we still
cancel the amount recorded in 0032/0044.
* Fix all the invoice_base_code and invoice_tax_code to match
the legal requirements and the logic explained in the
newly added comment.
http://codereview.tryton.org/6081002
Create taxes for purchase of services in Europe
Basically we copy the taxes for purchases of goods, changing the tax codes
as appropriate.
The base amount is now recorded in 0044 instead of 0031, and the tax
amount doesn't need to be counted separately (there's no
service-equivalent of the 0035 field). This enables us to do everything
with 2 sub-taxes only.
http://codereview.tryton.org/14011002
Add a tax rule for purchase in Europe
http://codereview.tryton.org/7941002
Add a tax rule for purchase outside Europe
The tax rule cancels all the purchase VAT: there is no need to account or
declare this.
http://codereview.tryton.org/14011003
Remove tax rule "Ventes intracommunautaires" and associated taxes
There is no need for these taxes: in case of sale of goods in Europe
where there is no VAT exemption (i.e. sales to individuals), we have
to record and declare this sale and the VAT as if the sale was made in
France.