provide way to replace any including None product taxes with fiscal position taxes

Bug #1197773 reported by Mark Draheim
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Confirmed
Wishlist
OpenERP R&D Addons Team 3

Bug Description

There should be a way to replace the list of taxes attached to a product by a list of taxes attached to a partner as defined by a fiscal position. This should work even if there are no taxes attached to a product.

This is a feature request that could be implemented by introducing new (config) options for fiscal positions allowing for more flexibility and removing the need to attach (dummy) taxes to products.

Use case: firms exporting worldwide who are keeping all tax info at the partner account.

Requested Features: config options in fiscal positions, additional logic in tax mapping according to the config options

1) keep src taxes, replace by rule, this is current implementation
2) delete all src taxes if existent, use full list of dest taxes, requires ability to specify replacement rule with empty src field and the mapping code needs to be reversed by looping over dest taxes

Main problem in current implementation: taxes are attached to products and fiscal positions only replace taxes, if they are listed in the src field of the fiscal position. If there is no tax attached to a product, then the mapping immediately returns [] without even considering taxes in the fiscal position. Also, it is impossible to add a tax for a partner because empty src fields are not allowed. The mapping logic is odd because the starting condition is taxes at the product (src) where it should be taxes at the fiscal position (dest), ie map if dest.

The whole tax system requiring taxes at the product is not optimal. The main use case is probably VAT. But VAT is not tied to a product but to a transaction, ie the combination of seller-buyer-product, the key component being the location of the buyer, at least here in Germany. Linking VAT to products is shortcircuiting the chain of tests for taxability of a transaction by assuming the buyer is local. This may be true for shops or other over the counter businesses but it is not true for many mid-sized production firms who have no outlets but deliver to possibly foreign destinations. These businesses keep all tax info at the partner account.

There are valid use cases for product taxes like tobacco or alcohol taxes charged at the first sale of the producer. Linking taxes to products should thus be possible but not mandatory.

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Mark,

You can assign the default taxes on the account also instead of the product only and it will be affect on invoice only.
Taxes on product will be apply sales order as well as purchase order.

I could not understand about the blank taxes on the product, would you please elaborate more on this, So either we can take the "Opinion" or "Wishlist" .

Thank you!

Changed in openobject-addons:
status: New → Incomplete
Revision history for this message
Mark Draheim (mdraheim) wrote :

Amit,

thank you for pointing out that taxes can be tied to financial accounts. I will have to check how that influences our setup.

Blank taxes at the product mean that with our intended setup there is no tax, certainly not VAT, tied to the product. We want VAT to be taken from customer info, not from product info. Let me give an example:

Current:

Product [ADPT] has an entry 19% VAT under its Finance tab
Place Agrolait in Germany, so 19% VAT is valid, no fiscal position
Place Agrolait outside EU, so 19% VAT is not applicable, create fiscal position that s/19% VAT//, VAT is replaced, ie deleted

Requested:

Product [ADPT] has no tax in its Finance tab
Agrolait, like all other customers, has a fiscal position denoting only the target VAT, ie fp->s/.*/19% VAT/, or a list of taxes according to the tax laws applicable to the partner

This is currently impossible because one cannot define a rule with empty src or some kind of catch-all placeholder in fiscal positions. The code in partner.py for map_tax backs that by its starting condition that immediately returns, if there is no tax at the product. The workaround would be to define a dummy tax "N/A" at the product in order to replace it with the customer tax in a fiscal position. This is awkward and error prone.

My main point - call that an opinion - is that here in Germany and probably most of the EU, VAT is not tied to products but depends on the destination of delivery which is most of the time tied to the customer. Local sales are VAT taxable, exports are not, EU deliveries are a bit more complicated but mainly follow the destination rule. Placing VAT at the product is a shortcut that in most cases leads to correct results but it defines a logic that assumes a sale is local where it should not do that.

product_with_vat -> check_destination -> replace_or_delete_vat should be
product -> check_destination -> place_correct_vat_on_product is what VAT is at its core

I know that this is a fundamental design issue and probably not easy to change because it would require sensible defaults placed on any customer which in turn requires a default customer in case of over the counter businesses that do not have name and address of customers. That is why I requested a small scale solution that adds config options in fiscal positions allowing for, at least, s/None/VAT/.

Thanks

Mark

Revision history for this message
Amit Parik (amit-parik) wrote :

Hello Mark,

Thanks for the detailed explanation.

Consider as a improvement.

Changed in openobject-addons:
assignee: nobody → OpenERP R&D Addons Team 3 (openerp-dev-addons3)
importance: Undecided → Wishlist
status: Incomplete → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.