valken-shipping 2.0.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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