That is not how VAT usually works.
To my knowledge (IANAL, but have coded quite a few systems to handle VAT)
VAT is always to be calculated on the total sum of an invoice (if you have different rates, you have to calculate one sum for every rate)
VAT is always rounded up.
Example:
This is simple: So let´s say you have an item that costs just 7 cent´s. That makes 1.4 cent rounded to 2 cents of VAT.
Now you have a customer ordering 100 of these for $7. The total VAT is $1.40
You give a 10% discount to $6.30, VAT is $1.26. -> Tax per piece would be 1.26 cent
But this: Customer changes his order to 103 for $7.21. Tax would be $1.45 (1.442 rounded up)
You give discount again $6.49. VAT is $1.30. Now if you calculate $6.49 / 103 pcs * 20% you get tax per piece of 1.26019417475728 cent
If you calculate $1.30 tax/ 103 pcs you get tax per piece of 1.26621359223301 cent
Makes for a total difference of 0.2 cents already for the 103 pieces. So what is correct, 20% on the individual rebated price or the 1.26621359223301 cent out of the $1.30?
Answer: Neither, VAT is a transaction fee - it is added to the value of the transaction (the invoice) not the item.
You can try to calculate back the per-item VAT then as a statistical value, but it may not be exactly 20% anymore. Don´t get that mixed up or you will acquire a lot of rounding errors down the road.
As per comments, example of a groceries bill taxed 7% and plastic bag taxed 19%:
Notice how the 0.95... cents of tax for the plastic bag are rounded up to a full cent, and this full cent is owed by the supermarket. Also note that in this example item prices are given including tax, so the supermarket has to deal with some fluctuations in net prices. In a B-to-B invoice this would be the other way around