From 4f7bd65748a251e881cfdf54bab1b7513ada24da Mon Sep 17 00:00:00 2001 From: Jared Norman Date: Tue, 5 Feb 2019 10:51:08 -0800 Subject: Introduce configurable taxable address check --- lib/super_good/solidus_taxjar.rb | 2 ++ lib/super_good/solidus_taxjar/tax_calculator.rb | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'lib/super_good') 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 -- cgit v1.2.3