diff --git a/app/models/spree/tax_rate_decorator.rb b/app/models/spree/tax_rate_decorator.rb index 4e256a2cce..79a7da9679 100644 --- a/app/models/spree/tax_rate_decorator.rb +++ b/app/models/spree/tax_rate_decorator.rb @@ -1,6 +1,13 @@ module Spree TaxRate.class_eval do class << self + def match(order) + return [] unless order.tax_zone + all.select do |rate| + rate.zone == order.tax_zone || rate.zone.contains?(order.tax_zone) || rate.zone.default_tax + end + end + def match_with_sales_tax_registration(order) return [] if order.distributor && !order.distributor.charges_sales_tax diff --git a/spec/models/spree/tax_rate_spec.rb b/spec/models/spree/tax_rate_spec.rb index a51b0fa34f..e2f7e7eb65 100644 --- a/spec/models/spree/tax_rate_spec.rb +++ b/spec/models/spree/tax_rate_spec.rb @@ -1,3 +1,5 @@ +require 'spec_helper' + module Spree describe TaxRate do describe "selecting tax rates to apply to an order" do