valken-shipping 2.0.5 → 2.1.0

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: 43d1c8ec3f7d6af25efe3e0a3acf25e439987772d8118e6775c0ee4f147a4bcf
4
- data.tar.gz: 156232c1e92cadbe56479771259ae8d1614f7cfbe1c0eb652824730af7841456
3
+ metadata.gz: 21051b703831eeb8b7db181812b3231971498df95778ce15ba3a8ba27fde910e
4
+ data.tar.gz: 751fcb5af0f175a504a61b4b08fabd6ea1db859b3f5b23d6c914cbeb7febebf1
5
5
  SHA512:
6
- metadata.gz: f83375a1ff6d916416599be7c2c4770b7abaaa9ee3f431e3e736ff69ec0bf3acd7b0c2551f91347769db7957235a138d4246fc56e30059a68f1291a877101313
7
- data.tar.gz: 1f4da466456726729188c7c802e9b295adc91196862172c33edf2e35634cfccd743b4032f7d2dc2ffa41911bed8b2999180faa71647b94ff4dff3b2653c64757
6
+ metadata.gz: 39793ffff0a296b60c70221ed76fdb19c1d8516f853efe6e773e779622f4c09bf6badcdf84dafec9676ed2791aee8f1119bcd5b0393143b109a06722b43a0d99
7
+ data.tar.gz: aa0d815b9d042f655377f468d8679dfa5d6572fe7776a4536fd877e29a717b2aac9cb889569560c782a882955399df48dd6a3ec9e090ce2f14771bfb2842c67d
@@ -12,7 +12,14 @@ module Workarea
12
12
  .map { |id, region| [region.translations[I18n.locale.to_s] || region.name, id] }
13
13
  .sort_by { |name, id| name || id }
14
14
 
15
- 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
16
23
  memo
17
24
  end
18
25
  end
@@ -40,7 +47,6 @@ module Workarea
40
47
  postalcode: address.postal_code,
41
48
  country: address.country.alpha2
42
49
  }
43
-
44
50
  address_format = address.country.address_format || Country['US'].address_format
45
51
  result = pieces.reduce(address_format) do |memo, (name, value)|
46
52
  memo.gsub(/{{#{name}}}/, html_escape(value.to_s))
@@ -12,5 +12,36 @@ module Workarea
12
12
  end
13
13
  end
14
14
 
15
+ # if configuration ON, show the free shipping
16
+ # Need to add the free shipping upfront to all options so that we can use that to get discounts
17
+ # if the dicount is not available we are removing the free shipping option
18
+ def available
19
+ @available ||=
20
+ begin
21
+ all_options
22
+ all_options.unshift(get_free_shipping)
23
+ free_discount = price_adjustments["Valken Economy"]
24
+ if (free_discount.present? && free_discount.any?) || Workarea.config.show_free_shipping
25
+ all_options.first.price_adjustments = free_discount
26
+ else
27
+ all_options.shift()
28
+ end
29
+ all_options.each do |option|
30
+ option.price_adjustments = price_adjustments[option.name] || []
31
+ end
32
+ end
33
+ end
34
+
35
+ def get_free_shipping
36
+ ShippingOption.new(
37
+ carrier: "Free Shipping",
38
+ name: "Valken Economy",
39
+ sub_name: "5 - 9 Business Days",
40
+ service_code: "Free",
41
+ price: Money.new(0.0, "USD"),
42
+ tax_code: "TAX01"
43
+ )
44
+ end
45
+
15
46
  end
16
47
  end
@@ -41,6 +41,10 @@ module Workarea
41
41
 
42
42
  return default_options(packaging.packages) if Workarea.config.gateways.ups_carrier.class == ActiveShipping::Workarea
43
43
 
44
+ if is_special_region?
45
+ return [get_shipping_for_special_region]
46
+ end
47
+
44
48
  shipping_options_api = get_final_shipping_options(collect_carrier_data)
45
49
  return [] if @error.present?
46
50
 
@@ -48,7 +52,6 @@ module Workarea
48
52
 
49
53
  if Workarea.config.gateways.ups_carrier.class != ActiveShipping::Workarea
50
54
  carrier_data.push(get_ltl_shipping)
51
- carrier_data.push(get_free_shipping) if Workarea.config.show_free_shipping
52
55
  else
53
56
  return []
54
57
  end
@@ -81,9 +84,10 @@ module Workarea
81
84
  # If the carrier is ups then it will print ups data...or if carrier is fedex then prinnt fedex data...
82
85
  # else if it is not both then choose cheapest price.
83
86
  def collect_carrier_data
84
- return get_ups_data if is_ups
85
- return get_fedex_data if is_fedex
86
- return get_none_data unless is_ups && is_fedex
87
+ return get_ups_data
88
+ # Temporarily disabling fedex and cheaper
89
+ # return get_fedex_data if is_fedex
90
+ # return get_none_data unless is_ups && is_fedex
87
91
  end
88
92
 
89
93
  # UPS data.
@@ -150,6 +154,30 @@ module Workarea
150
154
  )
151
155
  end
152
156
 
157
+ def get_shipping_for_special_region
158
+ puts "weight_convertion",weight_convertion
159
+ weight_price = 0
160
+ case weight_convertion
161
+ when 0..15
162
+ weight_price = 50
163
+ when 15..200
164
+ weight_price = (1 * weight_convertion)
165
+ when 200..2500
166
+ weight_price = 200
167
+ else
168
+ weight_price = ((weight_convertion / 2500).ceil()) * 200
169
+ end
170
+
171
+ ShippingOption.new(
172
+ carrier: "LTL Shipping",
173
+ name: "Valken Standard",
174
+ sub_name: "3 - 5 Business Days",
175
+ service_code: "LTL01",
176
+ price: Money.new(weight_price * 100, "USD"),
177
+ tax_code: "TAX01"
178
+ )
179
+ end
180
+
153
181
  # Returns the total weight.
154
182
  def weight_convertion
155
183
  packaging = Packaging.new(order, shipping)
@@ -252,7 +280,11 @@ module Workarea
252
280
  product_carrier_type = product_details.map{ |item| item[:en][ground_ship_attribute] }.flatten
253
281
  product_carrier_type.include?("true")
254
282
  end
255
-
283
+
284
+ def is_special_region?
285
+ Workarea.config.special_region.include?(@shipping.address.region)
286
+ end
287
+
256
288
  def product_details
257
289
  # product_attributes = @order.items.map(&:product_attributes)
258
290
 
@@ -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,5 +1,5 @@
1
1
  module Valken
2
2
  module Shipping
3
- VERSION = '2.0.5'
3
+ VERSION = '2.1.0'
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.5
4
+ version: 2.1.0
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-14 00:00:00.000000000 Z
11
+ date: 2020-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 3.0.6
75
+ rubygems_version: 3.0.8
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: shipping options