1.7 Alpha - Customer tax exemption does not work
It is possible to set what taxes the customer is exempt from. However, it does not work. If we take a simple setup with 10% GST set at the practice level, and we exempt the customer from it. Lets create a product called ztax with cost=10.00, markup=100 set for both fixed and unit prices. The system correctly calculates the tax-inc prices as 22 for each giving a total price of 44.
The we create an invoice for the customer and enter the first product as ztax.
The price details are the tax-inc numbers for the product, ie the $22 for each of fixed and unit.
The tax amount is correctly set to 0, but the customer will still be billed the tax-inc price.
The underlying problem is the fact that we hold tax-inc prices for the products. We really should hold ex-tax prices. This causes three problems:
- the 'customer tax exemption' one reported here
- the 'system not really suited to the US as all prices are shown as tax-inc' one
- the 'cannot handle a change in tax rate' one
The last is as follows: is the GST was increased from 10 to 15%, then all the prices held in the system are set for 10% GST. Changing the tax rate to 15% will only change the amount of tax shown on the invoices. The total amount will stay the same. Since the government expects 50% more tax, the practice will lose out because it has not increased its prices.
Increasing the prices is a massive job - every one has to be recalculated.
Actually the situation is more complicated than that because the practice may elect not to increase their prices as a result of the tax increase.
I think that the exempt customer problem is possible to fix. The invoice line item logic needs to be changed to:
- calculate total tax rate for product, Tp, as the sum of all the taxes applicable to the product
- calculate the total exemption rate for the customer, Tc, as the sum of the product taxes omitting the ones that the customer is exempt from
- calculate ex-tax price, Pe, from inc-tax price using Tp
- calculate customer's inc-tax price from Pe and Tc
The 'doesn't suit US' problem is probably best handled by adding a 'show ex-tax prices' flag at the practice level, and also adding an ex-tax fixed and unit price to the price archetypes. Then you need repricing utility that can do
- calculate ex-tax price from inc-tax price (for initial conversion)
- calculate inc-tax price from ex-tax price (for price changes after tax increase)
- select by product type
Then you need to tweak the code to display and use either the ex- or inc-price depending on the state of the 'show ex-tax prices' flag.
Finally I think you need to be able to support taxes set at the practice location level (and not just the practice level) so that you can cope with branches in different locations having different tax rates.
Apologies for the rant, but I have just been trying to document the tax handling for the CSH pages.
Regards, Tim G
Re: 1.7 Alpha - Customer tax exemption does not work
I've raised https://openvpms.atlassian.net/browse/OVPMS-1327 to address the first part of this.
There is a project to address US taxation: http://www.openvpms.org/project/add-support-invoice-level-taxation
I've just created a new project to address tax-ex product prices. It needs to be fleshed out somewhat, and the migration issues determined: http://www.openvpms.org/project/tax-exclusive-product-prices
-Tim