summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/super_good/solidus_taxjar.rb2
-rw-r--r--lib/super_good/solidus_taxjar/tax_calculator.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb
index 663b3d8..1ab40ec 100644
--- a/lib/super_good/solidus_taxjar.rb
+++ b/lib/super_good/solidus_taxjar.rb
@@ -14,6 +14,7 @@ module SuperGood
attr_accessor :discount_calculator
attr_accessor :test_mode
attr_accessor :exception_handler
+ attr_accessor :taxable_address_check
end
self.discount_calculator = ::SuperGood::SolidusTaxJar::DiscountCalculator
@@ -21,5 +22,6 @@ module SuperGood
self.exception_handler = ->(e) {
Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}"
}
+ self.taxable_address_check = ->(address) { true }
end
end
diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb
index a3c0690..d2b7b74 100644
--- a/lib/super_good/solidus_taxjar/tax_calculator.rb
+++ b/lib/super_good/solidus_taxjar/tax_calculator.rb
@@ -13,6 +13,7 @@ module SuperGood
def calculate
return no_tax if SuperGood::SolidusTaxJar.test_mode
return no_tax if order.tax_address.empty? || order.line_items.none?
+ return no_tax unless taxable_address? order.tax_address
cache do
next no_tax unless taxjar_breakdown
@@ -128,6 +129,10 @@ module SuperGood
def exception_handler
SuperGood::SolidusTaxJar.exception_handler
end
+
+ def taxable_address?(address)
+ SuperGood::SolidusTaxJar.taxable_address_check.(address)
+ end
end
end
end