item_builder_mwh 0.1.31 → 0.1.35

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: '05372970b369a4a3600e27649c65c533c3234ab4be22f6626ee54661bedcd148'
4
- data.tar.gz: 32b67a281c340c239e6a6f2e2ec4a9906bab6bd1fd5d44661fc95691fa365277
3
+ metadata.gz: e6e3082e38984413f2942fed08a34c618c7e339370ec2588d9ea77f10d87bd73
4
+ data.tar.gz: f9fb2aaaac8d9f04fa96bf4789c36deace83b951a48dec0c5699120f583c4e0a
5
5
  SHA512:
6
- metadata.gz: d9ccaca56ca1183b1bfa1943e88e0e14d5343949bd03004bb12f33533be31b1393b76594b64ad44cbd6b24a44622f7ba8978a6d07cd0709d94c7aa01d3b9f279
7
- data.tar.gz: 77fecc6feb7ff0e039a7cdf5fd7f389d79defa10d956d7a6df93702f5ca4707478ecce991ca1683a3a124eb1f61f8d0af8ff787812f72bdb8854ac23c9f15c22
6
+ metadata.gz: 91b379fbfa791e74b353c47551c4b9ed2082a2134396298a189370fcbdb75f8be0dba771ba6bd52e1f95620ad9c3f7d47b18fd5d11cb0aba009f334f3d827612
7
+ data.tar.gz: 227e620bcc4b847bdf0ffd3626e82192c0356d098585634a893fb5626b5b7a68ce5c550b27438d84927535fb5882699767a1659ab8059a53ca60f86d3821f3f8
@@ -13,6 +13,7 @@ class ItemBuilderMwh
13
13
  @existing_allocated_stock = args.fetch(:existing_allocated_stock)
14
14
  @listing_wh_sp_quantity = args.fetch(:listing_wh_sp_quantity)
15
15
  @wh_routing = args.fetch(:wh_routing, 0)
16
+ @selected_warehouse_space = args.fetch(:selected_warehouse_space)
16
17
  end
17
18
 
18
19
  def perform
@@ -96,9 +97,8 @@ class ItemBuilderMwh
96
97
  if @bundle_variants.present?
97
98
  qty_list = []
98
99
  @bundle_variants.each do |bvr|
99
- warehouse_space = wh_space.select {|ws| ws.item_variant_id == bvr.variant_id }.first
100
- qty = warehouse_space.quantity if warehouse_space.present?
101
- qty ||= 0
100
+ qty_wh_spaces = wh_space.select {|ws| ws.item_variant_id == bvr.variant_id }
101
+ qty = qty_wh_spaces.sum(&:quantity)
102
102
  qty = qty / bvr.unit
103
103
  qty_list.push(qty)
104
104
  end
@@ -109,7 +109,7 @@ class ItemBuilderMwh
109
109
  end
110
110
 
111
111
  def wh_space
112
- @wh_space ||= WarehouseSpace.where(item_variant_id: variant_ids)
112
+ @wh_space ||= WarehouseSpace.where(item_variant_id: variant_ids, warehouse_id: @selected_warehouse_space.warehouse_id)
113
113
  end
114
114
 
115
115
  def variant_ids
@@ -6,7 +6,7 @@ class ItemBuilderMwh
6
6
  module Quantity
7
7
  class LazadaService < Base
8
8
  def perform
9
- available_quantity + local_qty
9
+ available_quantity
10
10
  end
11
11
  end
12
12
  end
@@ -43,24 +43,24 @@ class ItemBuilderMwh
43
43
 
44
44
  def real_quantity(warehouse_space)
45
45
  if channel_name == 'Zilingo'
46
- qty(warehouse_space.quantity)
46
+ qty(warehouse_space)
47
47
  else
48
- [qty(warehouse_space.quantity), 0].sort[1]
48
+ [qty(warehouse_space), 0].sort[1]
49
49
  end
50
50
  end
51
51
 
52
- def qty(qty)
52
+ def qty(warehouse_space)
53
53
  if channel_name.empty? || channel_name == "Shopify"
54
- available_quantity(qty)
54
+ available_quantity(warehouse_space)
55
55
  else
56
- qty_channel(qty)
56
+ qty_channel(warehouse_space)
57
57
  end
58
58
  end
59
59
 
60
- def qty_channel(qty)
60
+ def qty_channel(warehouse_space)
61
61
  class_name = "ItemBuilderMwh::Modes::Quantity::#{channel_name}Service"
62
62
  qty_channel_service = class_name.constantize
63
- qty_channel_service.new(listing, available_quantity(qty), local_qty.to_i).perform
63
+ qty_channel_service.new(listing, available_quantity(warehouse_space), local_qty.to_i).perform
64
64
  end
65
65
 
66
66
  def channel_name
@@ -95,12 +95,13 @@ class ItemBuilderMwh
95
95
  0
96
96
  end
97
97
 
98
- def available_quantity(qty)
98
+ def available_quantity(warehouse_space)
99
99
  ItemBuilderMwh::GetQuantityService.new(
100
100
  listing: listing, stock_alloc: stock_alloc,
101
101
  variant: variant, bundle_variants: bundle_variants,
102
102
  existing_allocated_stock: existing_allocated_stock,
103
- listing_wh_sp_quantity: qty, wh_routing: wh_routing
103
+ listing_wh_sp_quantity: warehouse_space.quantity, wh_routing: wh_routing,
104
+ selected_warehouse_space: warehouse_space
104
105
  ).perform
105
106
  end
106
107
  end
@@ -98,14 +98,21 @@ class ItemBuilderMwh
98
98
  WarehouseSpace
99
99
  .joins('JOIN warehouse_mappings ON
100
100
  warehouse_spaces.warehouse_id = warehouse_mappings.warehouse_id')
101
+ .joins('JOIN warehouses ON
102
+ warehouse_spaces.warehouse_id = warehouses.id')
101
103
  .where("warehouse_mappings.profile_channel_association_id=#{pca}")
102
- .where("warehouse_spaces.item_variant_id=#{listing.variant_id}")
104
+ .where("warehouse_spaces.item_variant_id=#{variant_id}")
105
+ .where('warehouses.consignment = 0')
103
106
  end
104
107
 
105
108
  def pca
106
109
  listing.profile_channel_association_id.to_s
107
110
  end
108
111
 
112
+ def variant_id
113
+ bundle_variants&.first&.variant_id || listing.variant_id
114
+ end
115
+
109
116
  def warehouse_mapping(warehouse_id)
110
117
  WarehouseMapping
111
118
  .where(profile_channel_association_id:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ItemBuilderMwh
4
- VERSION = '0.1.31'
4
+ VERSION = '0.1.35'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: item_builder_mwh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.31
4
+ version: 0.1.35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Ivander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
11
+ date: 2021-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler