diff options
author | Jared Norman <jared@super.gd> | 2019-02-05 11:51:39 -0800 |
---|---|---|
committer | Jared Norman <jared@super.gd> | 2019-02-05 11:52:28 -0800 |
commit | b31fa3208a08f39a161f76437b968aebb93f9d2d (patch) | |
tree | 0a410a7268fb62227791a4d7822e0e5297bd4db2 | |
parent | 399ab4c613b8e1ec010e4991629b403ba852badd (diff) |
Make shipping tax label configurable
-rw-r--r-- | lib/super_good/solidus_taxjar.rb | 2 | ||||
-rw-r--r-- | lib/super_good/solidus_taxjar/tax_calculator.rb | 11 | ||||
-rw-r--r-- | spec/super_good/solidus_taxjar_spec.rb | 7 |
3 files changed, 18 insertions, 2 deletions
diff --git a/lib/super_good/solidus_taxjar.rb b/lib/super_good/solidus_taxjar.rb index 1ab40ec..9a32d9f 100644 --- a/lib/super_good/solidus_taxjar.rb +++ b/lib/super_good/solidus_taxjar.rb @@ -15,6 +15,7 @@ module SuperGood attr_accessor :test_mode attr_accessor :exception_handler attr_accessor :taxable_address_check + attr_accessor :shipping_tax_label_maker end self.discount_calculator = ::SuperGood::SolidusTaxJar::DiscountCalculator @@ -23,5 +24,6 @@ module SuperGood Rails.logger.error "An error occurred while fetching TaxJar tax rates - #{e}: #{e.message}" } self.taxable_address_check = ->(address) { true } + self.shipping_tax_label_maker = ->(shipment, shipping_tax) { "Sales Tax" } end end diff --git a/lib/super_good/solidus_taxjar/tax_calculator.rb b/lib/super_good/solidus_taxjar/tax_calculator.rb index d2b7b74..a2eb8ca 100644 --- a/lib/super_good/solidus_taxjar/tax_calculator.rb +++ b/lib/super_good/solidus_taxjar/tax_calculator.rb @@ -67,7 +67,7 @@ module SuperGood tax_items << ::Spree::Tax::ItemTax.new( item_id: shipment.id, - label: "Sales Tax", + label: shipping_tax_label(shipment, shipping_tax), tax_rate: tax_rate, amount: shipping_tax, included_in_price: false @@ -76,7 +76,7 @@ module SuperGood tax_items << ::Spree::Tax::ItemTax.new( item_id: shipments.last.id, - label: "Sales Tax", + label: shipping_tax_label(shipments.last, remaining_tax), tax_rate: tax_rate, amount: remaining_tax, included_in_price: false @@ -133,6 +133,13 @@ module SuperGood def taxable_address?(address) SuperGood::SolidusTaxJar.taxable_address_check.(address) end + + def shipping_tax_label(shipment, shipping_tax) + SuperGood::SolidusTaxJar.shipping_tax_label_maker.( + shipment, + shipping_tax + ) + end end end end diff --git a/spec/super_good/solidus_taxjar_spec.rb b/spec/super_good/solidus_taxjar_spec.rb index 4586f39..36ab3b3 100644 --- a/spec/super_good/solidus_taxjar_spec.rb +++ b/spec/super_good/solidus_taxjar_spec.rb @@ -36,5 +36,12 @@ RSpec.describe SuperGood::SolidusTaxJar do it { is_expected.to eq true } end + + describe ".shipping_tax_label_maker" do + subject { described_class.shipping_tax_label_maker.(shipment, shipping_tax) } + let(:shipment) { Spree::Shipment.new } + let(:shipping_tax) { BigDecimal("3.25") } + it { is_expected.to eq "Sales Tax" } + end end end |