From a7befa9c98f4863edc617ef791c7518e5b1fe168 Mon Sep 17 00:00:00 2001 From: Jared Norman Date: Tue, 28 May 2019 15:52:40 -0700 Subject: Add configuration option for order tax check This will allow apps to use properties of an order to determine whether an order is taxable. --- lib/super_good/solidus_taxjar.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/super_good') diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb index 6d6c47c..af2c7e8 100644 --- a/lib/super_good/solidus_taxjar.rb +++ b/lib/super_good/solidus_taxjar.rb @@ -19,6 +19,7 @@ module SuperGood attr_accessor :shipping_calculator attr_accessor :shipping_tax_label_maker attr_accessor :taxable_address_check + attr_accessor :taxable_order_check attr_accessor :test_mode end @@ -32,6 +33,7 @@ module SuperGood self.shipping_calculator = ->(order) { order.shipment_total } self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" } self.taxable_address_check = ->(address) { true } + self.taxable_order_check = ->(order) { true } self.test_mode = false end end -- cgit v1.2.3 From cc74b661b1654627c987bb9c3a1cdf5d599dbaec Mon Sep 17 00:00:00 2001 From: Jared Norman Date: Tue, 28 May 2019 15:55:39 -0700 Subject: Make use of taxable order check This just uses the taxable order check configuration added in the parent commit to provide a hook to short circuit order tax checks. --- lib/super_good/solidus_taxjar/tax_calculator.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/super_good') diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb index 0ddd50f..c7d44a9 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 incomplete_address?(order.tax_address) || order.line_items.none? + return no_tax unless taxable_order? order return no_tax unless taxable_address? order.tax_address cache do @@ -133,6 +134,10 @@ module SuperGood SuperGood::SolidusTaxJar.exception_handler end + def taxable_order?(order) + SuperGood::SolidusTaxJar.taxable_order_check.(order) + end + def taxable_address?(address) SuperGood::SolidusTaxJar.taxable_address_check.(address) end -- cgit v1.2.3