Use cases for Taxes, Discounts, Commissions and similar interfaces.
Table of Contents
Tax as a stamp¶
There is need to put stamp on every invoice. This stamp is bought in Inland Revenue, and this is "document tax".
This tax is not related to price, quantity, amount of sold resources. It is document depended.
Example Every stamp is 1€
Order
- Line ressource A price 10 quantity 1
- Line Resource B price 3 quantity 2
- Tax Line Resource StampTax price 1 quantity 1 (added manually, no base_application?)
Invoice
- Line ressource A price 10 quantity 1
- Line Resource B price 3 quantity 2
- Tax Line Resource StampTax price 1 quantity 1 (from simulation)
but when it is split:
Order
- Line ressource A price 10 quantity 1
- Line Resource B price 3 quantity 2
- Tax Line Resource StampTax price 1 quantity 1 (added manually, no base_application?)
Invoice A
- Line ressource A price 10 quantity 1
- Tax Line Resource StampTax price 1 quantity 1 (from simulation)
Invoice B
- Line Resource B price 3 quantity 2
- Tax Line Resource StampTax price 1 quantity 1
Tax Line in invoice B comes from nothing. It might be added manualy, but it shall come from simulation.
Date changing Tax rate¶
Situation:
- zulutime = 2009/01/01
- t < zulutime: tax rate = 17%
- t >= zulutime: tax rate = 19%
- this is correctly defined on t < zulutime
Possibilities:
- Order dates < zulutime, invoice dates < zulutime - no problem, use 17%
- Order dates >= zulutime, invoice dates >= zulutime - no problem, use 19%
- Order dates < zulutime, invoice dates >= zulutime - case A
- Initially order dates < zulutime, invoice dates < zulutime, invoice dates changed to >= zulutime, case B
For Case A there is possible to use Simulation and properly configured rules.
For Case A, after accepting decision to simulation, Tax Line movements shall diverge by its vat ratio.
Tax Inclusive¶
Look at Tax Inclusive¶ System for more discussion.
This is not implemented yet price system in ERP5, but shall be supported by such interface.
Notes:
- might be (or not?) solved by negative tax rate + script to solve rounding issues
Tax rate Invoice price depended¶
For Invoice with total_price <= 5000 €: Tax Rate 12% For Invoice with total_price > 5000 €: Tax Rate 15%
Notes:
- some place (predicate, price depended tax value?) to define
- and proper choose
Tax rate sum of Invoices price depended¶
Example condition:
- sum of started sale invoice transactions <= 100 000 €: Tax Rate 9%
- sum of started sale invoice transactions > 100 000 €: Tax Rate 11%
Notes:
- might require recalculation of all invoices
- OR logic, to be sure, that for invoice n, where n is last before limit, n+1 will use tax rate
Splitting with different taxes¶
Case 1:
- Sale Order 1
- Sale Order Line 1 Resource A Tax 3%
- Sale Order Line 2 Resource B Tax 5%
Case 2:
- Sale Order 1
- Sale Order Line 1 Resource A Tax 3%
- Sale Order 2
- Sale Order Line 2 Resource B Tax 5%
Case 1 & Case 2 produce:
- Invoice 1
- Invoice Line 1 Resource A Tax 3%
- Invoice Line 2 Resource B Tax 5%
Notes:
Manual Tax divergence solving¶
If trade condition is correctly defined, than tax is correct, so no tax related changes have to be done on Invoice.
Case of wrong Purchase Invoice Transaction from supplier:
- Purchase Order price 100€ VAT rate 10% VAT amount 10€
- Purchase Invoice Transaction price 100€ VAT rate 10% VAT amount 10€
Notes:
- there have to be possibility of changing VAT rate and updating simulation with new value (no new divergence shall appear)
- similar problem with "not so perfect system" which gathers many Purchase Orders from supplier into one invoice
Builder updating invoice¶
Phase 1:
- Sale Order 1
- Sale Order Line 1 Resource A price 10 € Tax 10%
Invoice 1 generated, system configured to support merging.
- Sale Order 2
- Sale Order Line 2 Resource B price 12 € Tax 10 %
Invoice 1 updated.
Taxes are equal.
Notes:
- only builder configuration
Line added to packing list¶
New line with taxable resource added to packing list
--
if you consider the packing list is just about saying "I moved this from here to there", you don't care about taxes yet and it's on the invoice that this has to be done. -jerome
Two orders with same resource, distinct vat rate¶
Order 1
- Resource A price 10 quantity 10 TAX: 10%, base_contribution/base_amount/tax/normal
Order 2
- Resource A price 10 quantity 20 TAX: 5%, base_contribution/base_amount/tax/reduced
Both orders' movements are merged at Invoice. Wanted behaviour: Invoice:
- Invoice Line 1 Resource A price 10 quantity 10 base_contribution/base_amount/tax/normal
- Tax Line 1 TAX: 10% base_application/base_amount/tax/normal
- Invoice Line 2 Resource A price 10 quantity 20 base_contribution/base_amount/tax/reduced
- Tax Line 2 TAX: 5% base_application/base_amount/tax/reduced
Same shall apply if there would be one order with such lines.
-- There is a category movement group for base_contribution at cell / line level on invoice builder -jerome
Related Articles¶