item_builder 0.1.45 → 0.1.49

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: 1f1e518425d71626cb31d4b52998fdfdd6c57adc7d31bae47ae53524f6869331
4
- data.tar.gz: ad533c38093f28b2f85e7c043c423d9541ec4aca9cd861e2d3ce49a6631a964d
3
+ metadata.gz: 1421dc54be5e9e7fb14a672880d344f1bcb43c21d89ab88053698e99c87517c6
4
+ data.tar.gz: c522e0c4f84d85bdf6e3a3b1a8c8b2806547de1493a66d3ea72d0c9e63fef4fd
5
5
  SHA512:
6
- metadata.gz: 1a8863826c68c15b5fa2ba7caba19586f85b6997e146c329a575293407ae7f698d545749b08f3ecdbecba6298fb520552cc69beaadf4334ef19cfdef4087d645
7
- data.tar.gz: 38ce7ec15247a53d55afb769e4a702ac78d954561677c6b411501b84b494b48aeb2cf756cf2eb420020496cc2223b1bd7e580e25608214605ea027304aad7713
6
+ metadata.gz: 4b19e2cbba75d2071214591d15617f24ac8c40cdf41029f4b0e4cce3d1b1ccb2a5f4354a1fc2d0308caf490a2d065b500c9d092380f0c3e616cdb25c154bb917
7
+ data.tar.gz: 61dfeadba2714e4f4322b7887d559d7cc12748e94cc6b8b31ed74e8aeda0e48f85c0297abb87821c252232839146c7a1ceeaf395c3783e629c90a8b60857a1e8
@@ -49,7 +49,7 @@ class ItemBuilder
49
49
  qty = sku['multiWarehouseInventories'][0]
50
50
  hash[sku['SellerSku']] = qty['occupyQuantity'] + qty['withholdQuantity']
51
51
  end
52
- end
52
+ end if resp['data'].present?
53
53
  hash
54
54
  end
55
55
 
@@ -21,6 +21,7 @@ class ItemBuilder
21
21
  attr_reader :lazada_quantity
22
22
  attr_reader :zalora_reserved_stock
23
23
  attr_reader :shopify_inventory_location
24
+ attr_reader :wh_id
24
25
  def initialize(args)
25
26
  @listing = args.fetch(:listing)
26
27
  @wh_spaces = args.fetch(:wh_spaces, [])
@@ -35,6 +36,7 @@ class ItemBuilder
35
36
  @lazada_quantity = args.fetch(:lazada_quantity, [])
36
37
  @zalora_reserved_stock = args.fetch(:zalora_reserved_stock, [])
37
38
  @shopify_inventory_location = args.fetch(:shopify_inventory_location, [])
39
+ @wh_id = args.fetch(:wh_id, [])
38
40
  end
39
41
 
40
42
  def base
@@ -73,7 +75,11 @@ class ItemBuilder
73
75
  end
74
76
 
75
77
  def warehouse
76
- wh_spaces.select { |ws| ws.item_variant_id == listing.variant_id }.first
78
+ if wh_id.present?
79
+ wh_spaces.where(warehouse_id: wh_id).where(item_variant_id: listing.variant_id).first
80
+ else
81
+ wh_spaces.select { |ws| ws.item_variant_id == listing.variant_id }.first
82
+ end
77
83
  end
78
84
 
79
85
  def variant
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ItemBuilder
4
- VERSION = '0.1.45'
4
+ VERSION = '0.1.49'
5
5
  end
@@ -58,7 +58,7 @@ class ItemBuilder
58
58
  hash = {}
59
59
  resp.dig('SuccessResponse', 'Body', 'ProductStocks', 'ProductStock').each do |sku|
60
60
  hash[sku['SellerSku']] = sku['ReservedStock']
61
- end
61
+ end if resp.dig('SuccessResponse').present?
62
62
  hash
63
63
  end
64
64
 
@@ -46,7 +46,7 @@ class ItemBuilder
46
46
  hash = {}
47
47
  resp['zilingoSKUQuantities'].each do |sku|
48
48
  hash[sku['zilingoSKUId']] = sku['quantity'] + sku['frozenQuantity']
49
- end
49
+ end if resp['zilingoSKUQuantities'].present?
50
50
  hash
51
51
  end
52
52
 
data/lib/item_builder.rb CHANGED
@@ -23,6 +23,8 @@ class ItemBuilder
23
23
  attr_reader :wh_spaces
24
24
  attr_reader :variants
25
25
  attr_reader :variant_ids
26
+ attr_reader :wh_mapping
27
+ attr_reader :wh_id
26
28
 
27
29
  def initialize(listing_ids, mode)
28
30
  @listing_ids = listing_ids
@@ -41,29 +43,23 @@ class ItemBuilder
41
43
  listings.map do |listing|
42
44
  next unless listing.local_id.present?
43
45
 
44
- if listing.channel_id == 18
45
- new_param = qty_simple_params(listing)
46
- .merge(zilingo_quantity: zilingo_quantity)
47
-
48
- modes[mode].new(new_param).perform
49
- elsif listing.channel_id == 13
50
- new_param = qty_simple_params(listing)
51
- .merge(zalora_reserved_stock: zalora_reserved_stock)
52
-
53
- modes[mode].new(new_param).perform
54
- elsif listing.channel_id == 2
55
- new_param = qty_simple_params(listing)
56
- .merge({shopify_inventory_location: shopify_inventory_location})
57
-
58
- modes[mode].new(new_param).perform
59
- elsif listing.channel_id == 3
60
- new_param = qty_simple_params(listing)
61
- .merge({lazada_quantity: lazada_quantity})
62
-
63
- modes[mode].new(new_param).perform
64
- else
65
- modes[mode].new(qty_simple_params(listing)).perform
66
- end
46
+ param =
47
+ if listing.channel_id == 18
48
+ qty_simple_params(listing)
49
+ .merge(zilingo_quantity: @zilingo_quantity)
50
+ elsif listing.channel_id == 13
51
+ qty_simple_params(listing)
52
+ .merge(zalora_reserved_stock: @zalora_reserved_stock)
53
+ elsif listing.channel_id == 2
54
+ qty_simple_params(listing)
55
+ .merge({shopify_inventory_location: @shopify_inventory_location})
56
+ elsif listing.channel_id == 3
57
+ qty_simple_params(listing)
58
+ .merge({lazada_quantity: @lazada_quantity})
59
+ else
60
+ qty_simple_params(listing)
61
+ end
62
+ modes[mode].new(param).perform
67
63
  end.compact
68
64
  end
69
65
 
@@ -73,7 +69,7 @@ class ItemBuilder
73
69
  stock_allocs: stock_allocs, variant_listings: variant_listings,
74
70
  bundles: bundles, item_bundle_variants: item_bundle_variants,
75
71
  existing_alloc_stocks: existing_alloc_stocks,
76
- reserved_stocks: reserved_stocks
72
+ reserved_stocks: reserved_stocks, wh_id: @wh_id
77
73
  }
78
74
  end
79
75
 
@@ -85,7 +81,7 @@ class ItemBuilder
85
81
  modes[mode].new(qty_simple_params(listing)).perform
86
82
  elsif listing.channel_id == 18 && mode == :active
87
83
  modes[mode].new(qty_simple_params(listing)
88
- .merge(zilingo_quantity: zilingo_quantity)
84
+ .merge(zilingo_quantity: @zilingo_quantity)
89
85
  ).perform
90
86
  else
91
87
  modes[mode].new(listing: listing).perform
@@ -187,7 +183,7 @@ class ItemBuilder
187
183
  end
188
184
 
189
185
  def reserved_params
190
- "account_id=#{listings[0].profile_channel_association_id}
186
+ "account_id=#{account_id}
191
187
  &item_variant_ids=#{variant_ids.join(',')}"
192
188
  end
193
189
 
@@ -196,4 +192,18 @@ class ItemBuilder
196
192
  "#{order_host}?#{reserved_params}"
197
193
  ).body) if [3].include?(listings[0].channel_id)
198
194
  end
195
+
196
+ def wh_mapping
197
+ @wh_mapping ||= WarehouseMapping.where(
198
+ profile_channel_association_id: account_id
199
+ ).first
200
+ end
201
+
202
+ def account_id
203
+ account_id ||= listings[0].profile_channel_association_id
204
+ end
205
+
206
+ def wh_id
207
+ @wh_id ||= wh_mapping&.warehouse_id
208
+ end
199
209
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: item_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.45
4
+ version: 0.1.49
5
5
  platform: ruby
6
6
  authors:
7
7
  - okaaryanata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-03 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler