valken-shipping 2.0.1 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f92653930081ded5658da35cbc0c04e556b15cf001fab963f589ebaf86501a88
4
- data.tar.gz: 7996b9957c6aec16a394f4a772aa650410613c88819569536a8cf1585567c5a2
3
+ metadata.gz: bdf90fc1027419e570161039b4015727c9c98e2f48cb25c2dc386eaf97adfe08
4
+ data.tar.gz: 12b3131e650b4fd8ff8378c634d7a016490db586cece0559cdce26158b329d7b
5
5
  SHA512:
6
- metadata.gz: 24df18e3b0c8db49d6074ecb675c59aa450b62cbfd7849a3446a65e21474f817ea51b82aef96b25a857dc2cd4b9fc7934edb59d465aeef8fe87954b91e38d492
7
- data.tar.gz: 8e6b3cce596b96e97f1ade2081b0fa54ed429581806e0d45f776d1a89ced2cb8279fc685341823628d901b839c74b90a1a9879d8d565319ff7da75f0de789828
6
+ metadata.gz: 59bdeb5734e355f53fa91aac81c6b6ae747dd30c6c3772e6e59e6f0134e26d46c78897c11d849d829db41e8d1a39948d7d724d26d42d8f7dd104f51c1f33152a
7
+ data.tar.gz: 84e5b3769cb38a9b4f750443d081b419459667aa65bd0a9b5292210b194d2e05aebe1031c0c7c036555c03eb8d4db5292c70ddb69900d9d5b4ff9105ad985f86
@@ -1,7 +1,6 @@
1
1
  module Workarea
2
2
  module AddressesHelper
3
3
  def country_options
4
- return [[Country['US'].name, Country['US'].alpha2]] if is_usa_only?
5
4
  Workarea.config.countries.map do |country|
6
5
  [country.name, country.alpha2]
7
6
  end
@@ -13,17 +12,29 @@ module Workarea
13
12
  .map { |id, region| [region.translations[I18n.locale.to_s] || region.name, id] }
14
13
  .sort_by { |name, id| name || id }
15
14
 
16
- memo << [country.name, regions]
15
+ if country.name == "United States of America"
16
+ region = regions.reject do |state|
17
+ Workarea.config.shipping_state_exclude.include?(state.last)
18
+ end
19
+ memo << [country.name, region]
20
+ else
21
+ memo << [country.name, regions]
22
+ end
17
23
  memo
18
24
  end
19
25
  end
20
26
 
21
27
  def is_usa_only?
22
- return false if current_order.blank? || current_order.items.blank?
28
+
29
+ orders = current_order rescue nil
30
+ return false if orders.blank? || orders.items.blank?
23
31
 
24
32
  usa_only_attribute = Workarea.config.shipping_attributes[:usa_only]
25
- product_attributes = current_order.items.map(&:product_attributes)
26
- return product_attributes.map{ |item| item[:details][:en][usa_only_attribute] }.flatten.include?("true")
33
+ return product_details(orders).map{ |item| item[:en][usa_only_attribute] }.flatten.include?("true")
34
+ end
35
+
36
+ def product_details(orders)
37
+ @product_details ||= Catalog::Product.in(id: orders.items.to_a.map(&:product_id)).pluck(:details)
27
38
  end
28
39
 
29
40
  def formatted_address(address)
@@ -36,7 +47,6 @@ module Workarea
36
47
  postalcode: address.postal_code,
37
48
  country: address.country.alpha2
38
49
  }
39
-
40
50
  address_format = address.country.address_format || Country['US'].address_format
41
51
  result = pieces.reduce(address_format) do |memo, (name, value)|
42
52
  memo.gsub(/{{#{name}}}/, html_escape(value.to_s))
@@ -15,12 +15,33 @@ module Workarea
15
15
  @shipping
16
16
  end
17
17
 
18
+
19
+ def default_options(packages)
20
+ return [] if address.blank? || packages.blank?
21
+ shipping_option = Workarea.config.gateways.shipping
22
+
23
+ origin = ActiveShipping::Location.new(Workarea.config.shipping_origin)
24
+ response = shipping_option.find_rates(
25
+ origin,
26
+ address.to_active_shipping,
27
+ packages
28
+ )
29
+ response.rates.sort_by(&:price).map do |rate|
30
+ ShippingOption.from_rate_estimate(rate)
31
+ end
32
+ end
33
+
18
34
  def find_method_options(order, shipping)
19
35
  @order ||= order
20
36
  @shipping ||= shipping
21
37
  carrier_data = []
22
- shipping_options_api = get_final_shipping_options(collect_carrier_data)
23
38
 
39
+ packaging = Packaging.new(order, shipping)
40
+ return [] if packaging.packages.blank?
41
+
42
+ return default_options(packaging.packages) if Workarea.config.gateways.ups_carrier.class == ActiveShipping::Workarea
43
+
44
+ shipping_options_api = get_final_shipping_options(collect_carrier_data)
24
45
  return [] if @error.present?
25
46
 
26
47
  carrier_data.push(shipping_options_api) if shipping_options_api.present? && shipping_options_api.any?
@@ -8,5 +8,10 @@ Workarea::Configuration.define_fields do
8
8
  'ground_shipping_only' => 'ground shipping only'
9
9
  },
10
10
  description: 'Mapping of product details keys with shipping logic. Note: This maps only the keys not the values.'
11
+
12
+ field 'Shipping State Exclude',
13
+ type: :array,
14
+ default: ["AK", "HI", "PR"],
15
+ description: 'Shipping Excluded States'
11
16
  end
12
17
  end
@@ -1,4 +1,7 @@
1
1
  Workarea.configure do |config|
2
+
3
+ config.countries = [Country['US']]
4
+
2
5
  ActiveShipping::Carriers.register :UPS, 'active_shipping/carriers/ups'
3
6
 
4
7
  config.weight_table = {"2": 5, "15": 15, "200": 1, "2500": 200}
@@ -1,5 +1,5 @@
1
1
  module Valken
2
2
  module Shipping
3
- VERSION = '2.0.1'
3
+ VERSION = '2.0.7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valken-shipping
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - sushmitha02
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-07 00:00:00.000000000 Z
11
+ date: 2020-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails