Module: Workarea::Tax
- Defined in:
- app/models/workarea/tax.rb,
app/models/workarea/tax/rate.rb,
app/models/workarea/tax/category.rb,
app/models/workarea/tax/rate_lookup.rb
Defined Under Namespace
Classes: Category, Rate, RateLookup
Class Method Summary collapse
-
.find_rate(code, price, address) ⇒ Workarea::Tax::Rate
Finds the appropriate tax rate for a code/price/location.
Class Method Details
.find_rate(code, price, address) ⇒ Workarea::Tax::Rate
Finds the appropriate tax rate for a code/price/location
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/models/workarea/tax.rb', line 10 def self.find_rate(code, price, address) category = Workarea::Tax::Category.find_by_code(code) return Workarea::Tax::Rate.new unless category.present? has_address_requirements = [:country, :region, :postal_code].inject(true) do |memo, detail| memo && address.send(detail).present? end return Workarea::Tax::Rate.new unless has_address_requirements rate = category.find_rate( price, address.country, address.region, address.postal_code ) rate || Workarea::Tax::Rate.new end |