For now, this roadmap is work in Progress.
Solidus' VAT system has been very crazy, and I'm working slowly on reducing that crazyness. In the past weeks, I've been slowly moving parts of the taxation system into service objects, as well removing some duplicate and terse logic.
Much of the refactoring is done, from here on we're mostly looking at extracting logic into service objects and adding functionality for handling VAT pricing more elegantly.
Refactoring
Bugfixes
Introduce service objects
Untangling of the "default zone"
Necessary new features
For now, this roadmap is work in Progress.
Solidus' VAT system has been very crazy, and I'm working slowly on reducing that crazyness. In the past weeks, I've been slowly moving parts of the taxation system into service objects, as well removing some duplicate and terse logic.
Much of the refactoring is done, from here on we're mostly looking at extracting logic into service objects and adding functionality for handling VAT pricing more elegantly.
Refactoring
contains?in tax_rate.rb #657 (Use Zone#contains? rather than checking for zone equality)Spree::TaxRate#compute_amount#684 (Minor refactoring)ReturnItems useamountinstead ofpre_tax_amount, making the return items having to know much less about taxes)Bugfixes
Spree::Product#pricesreturn all prices)Introduce service objects
Untangling of the "default zone"
Spree::Storeobject #933 (Relieve the default tax zone of cart taxation responsibilies, make cart behaviour store-dependent)Necessary new features