workarea-avatax 4.2.0 → 4.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -2
- data/app/models/workarea/pricing/calculators/avalara_tax_calculator.rb +33 -0
- data/lib/workarea/avatax/version.rb +1 -1
- data/test/models/workarea/pricing/calculators/exempt_tax_calculator_test.rb +56 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 713fe2f7c3c7676ee8e2ecf1c8ef1eafd6febd8b138b09ab72998ab70aad9300
|
4
|
+
data.tar.gz: 2f0523ea4a27aa522c05db4b5a55b329e9c55596039ab1ba7b6e3e7934c4ac30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e6c9ca74441bb3d82772de4bffc30d65b1891e59bb28d6bd3f3a81165c601a6a57b68a207165ed391310b39306f73322b4551f6b50beebc6949674e4db801a0
|
7
|
+
data.tar.gz: 7bcbad121322c508dffbc5fd24c690d9d0f9b3d16bc1ce5368e343015bc19ed71632981dd06769f2c30cd2fbc8e25251e12169f3b74985803709bac9ca264171
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
Workarea Avatax 4.2.1 (2020-03-05)
|
2
|
+
--------------------------------------------------------------------------------
|
3
|
+
|
4
|
+
* Respect the tax exempt flag on b2b account
|
5
|
+
|
6
|
+
Checks for the installation for b2b plugin and creates zero dollar
|
7
|
+
price adjustments for tax exempt organizations
|
8
|
+
|
9
|
+
AVATAX-2
|
10
|
+
Jeff Yucis
|
11
|
+
|
12
|
+
|
13
|
+
|
1
14
|
Workarea Avatax 4.2.0 (2019-11-26)
|
2
15
|
--------------------------------------------------------------------------------
|
3
16
|
|
data/Gemfile
CHANGED
@@ -2,7 +2,7 @@ source "https://rubygems.org"
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
gem 'workarea', git: 'https://github.com/workarea-commerce/workarea.git'
|
5
|
+
gem 'workarea', git: 'https://github.com/workarea-commerce/workarea.git', branch: 'v3.5-stable'
|
6
6
|
gem 'workarea-oms', git: "https://x-access-token:#{ENV['GITHUB_ACCESS_TOKEN']}@github.com/workarea-commerce/workarea-oms.git"
|
7
7
|
|
8
8
|
group :test do
|
data/Rakefile
CHANGED
@@ -38,10 +38,9 @@ task :release do
|
|
38
38
|
Rake::Task["workarea:changelog"].execute
|
39
39
|
system "git add CHANGELOG.md"
|
40
40
|
system 'git commit -m "Update CHANGELOG"'
|
41
|
-
system "git push origin HEAD"
|
42
41
|
|
43
42
|
system "git tag -a v#{Workarea::Avatax::VERSION} -m 'Tagging #{Workarea::Avatax::VERSION}'"
|
44
|
-
system "git push --tags"
|
43
|
+
system "git push origin HEAD --follow-tags"
|
45
44
|
|
46
45
|
system "gem build workarea-avatax.gemspec"
|
47
46
|
system "gem push workarea-avatax-#{Workarea::Avatax::VERSION}.gem"
|
@@ -7,6 +7,29 @@ module Workarea
|
|
7
7
|
include Calculator
|
8
8
|
|
9
9
|
def adjust
|
10
|
+
if organization_tax_exempt?
|
11
|
+
shippings.each do |tmp_shipping|
|
12
|
+
next unless tmp_shipping.address.present?
|
13
|
+
|
14
|
+
price_adjustments_for(tmp_shipping).each do |adjustment|
|
15
|
+
tmp_shipping.adjust_pricing(
|
16
|
+
price: 'tax',
|
17
|
+
calculator: self.class.name,
|
18
|
+
description: 'Item Tax',
|
19
|
+
amount: 0.to_m,
|
20
|
+
data: {
|
21
|
+
'adjustment' => adjustment.id,
|
22
|
+
'order_item_id' => adjustment._parent.id,
|
23
|
+
'tax_code' => adjustment.data['tax_code'],
|
24
|
+
'tax_exempt' => true
|
25
|
+
}
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
10
33
|
response = Avatax::TaxRequest.new(
|
11
34
|
order: order,
|
12
35
|
shippings: shippings,
|
@@ -62,6 +85,16 @@ module Workarea
|
|
62
85
|
|
63
86
|
private
|
64
87
|
|
88
|
+
def organization_tax_exempt?
|
89
|
+
return false unless Workarea::Plugin.installed?(:b2b)
|
90
|
+
|
91
|
+
account = Organization::Account.find(order.account_id) rescue nil
|
92
|
+
|
93
|
+
return unless account.present?
|
94
|
+
|
95
|
+
account.tax_exempt?
|
96
|
+
end
|
97
|
+
|
65
98
|
def request_options
|
66
99
|
{ timeout: 2 }
|
67
100
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
module Workarea
|
4
|
+
module Pricing
|
5
|
+
module Calculators
|
6
|
+
class ExemptTaxCalculatorTest < Workarea::TestCase
|
7
|
+
if Workarea::Plugin.installed?(:b2b)
|
8
|
+
def test_adjust
|
9
|
+
account = create_account(tax_exempt: true)
|
10
|
+
|
11
|
+
create_pricing_sku(
|
12
|
+
id: 'SKU',
|
13
|
+
tax_code: '001',
|
14
|
+
prices: [{ regular: 5.to_m }]
|
15
|
+
)
|
16
|
+
|
17
|
+
create_tax_category(
|
18
|
+
code: '001',
|
19
|
+
rates: [{ percentage: 0.06, region: 'PA', country: 'US' }]
|
20
|
+
)
|
21
|
+
|
22
|
+
order = Order.new(
|
23
|
+
account_id: account.id,
|
24
|
+
items: [
|
25
|
+
{
|
26
|
+
price_adjustments: [
|
27
|
+
{
|
28
|
+
price: 'item',
|
29
|
+
amount: 5.to_m,
|
30
|
+
data: { 'tax_code' => '001' }
|
31
|
+
}
|
32
|
+
]
|
33
|
+
}
|
34
|
+
]
|
35
|
+
)
|
36
|
+
|
37
|
+
shipping = Shipping.new
|
38
|
+
|
39
|
+
shipping.set_address(
|
40
|
+
postal_code: '19106',
|
41
|
+
region: 'PA',
|
42
|
+
country: 'US'
|
43
|
+
)
|
44
|
+
|
45
|
+
AvalaraTaxCalculator.test_adjust(order, shipping)
|
46
|
+
|
47
|
+
assert_equal(1, shipping.price_adjustments.length)
|
48
|
+
assert_equal('tax', shipping.price_adjustments.last.price)
|
49
|
+
assert_equal(0.to_m, shipping.price_adjustments.first.amount)
|
50
|
+
assert(shipping.price_adjustments.first.data["tax_exempt"])
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-avatax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Pigeon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- test/lib/workarea/avatax_test.rb
|
145
145
|
- test/models/workarea/avatax/usage_type_test.rb
|
146
146
|
- test/models/workarea/pricing/calculators/avalara_tax_calculator_test.rb
|
147
|
+
- test/models/workarea/pricing/calculators/exempt_tax_calculator_test.rb
|
147
148
|
- test/support/avatax_test_settings.rb
|
148
149
|
- test/system/workarea/storefront/avatax_system_test.rb
|
149
150
|
- test/test_helper.rb
|