Module: ItemBuilderMwh::Modes

Included in:
ActiveService, Price::SalePricePolicy, PriceService, QuantityService, Simple::SalePricePolicy, SimpleService
Defined in:
lib/item_builder_mwh/modes.rb,
lib/item_builder_mwh/modes/price/base.rb,
lib/item_builder_mwh/modes/simple/base.rb,
lib/item_builder_mwh/modes/base_service.rb,
lib/item_builder_mwh/modes/price_service.rb,
lib/item_builder_mwh/modes/quantity/base.rb,
lib/item_builder_mwh/modes/active_service.rb,
lib/item_builder_mwh/modes/simple_service.rb,
lib/item_builder_mwh/modes/price/jd_service.rb,
lib/item_builder_mwh/modes/quantity_service.rb,
lib/item_builder_mwh/modes/simple/jd_service.rb,
lib/item_builder_mwh/modes/price/blibli_service.rb,
lib/item_builder_mwh/modes/price/zalora_service.rb,
lib/item_builder_mwh/modes/price/shopify_service.rb,
lib/item_builder_mwh/modes/simple/blibli_service.rb,
lib/item_builder_mwh/modes/simple/lazada_service.rb,
lib/item_builder_mwh/modes/simple/shopee_service.rb,
lib/item_builder_mwh/modes/simple/zalora_service.rb,
lib/item_builder_mwh/modes/simple/shopify_service.rb,
lib/item_builder_mwh/modes/price/bukalapak_service.rb,
lib/item_builder_mwh/modes/price/sale_price_policy.rb,
lib/item_builder_mwh/modes/quantity/blibli_service.rb,
lib/item_builder_mwh/modes/quantity/lazada_service.rb,
lib/item_builder_mwh/modes/quantity/zalora_service.rb,
lib/item_builder_mwh/modes/simple/bukalapak_service.rb,
lib/item_builder_mwh/modes/simple/sale_price_policy.rb

Defined Under Namespace

Modules: Price, Quantity, Simple Classes: ActiveService, BaseService, PriceService, QuantityService, SimpleService

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#listingObject (readonly)

Returns the value of attribute listing.



10
11
12
# File 'lib/item_builder_mwh/modes.rb', line 10

def listing
  @listing
end

Instance Method Details

#baseObject



16
17
18
19
20
21
22
23
# File 'lib/item_builder_mwh/modes.rb', line 16

def base
  {
    id: listing.id,
    local_id: listing.local_id,
    local_item_id: listing.local_item_id,
    sku: listing.sku
  }
end

#initialize(args) ⇒ Object



11
12
13
14
# File 'lib/item_builder_mwh/modes.rb', line 11

def initialize(args)
  @listing = args.fetch(:listing)
  warehouse
end

#pcaObject



39
40
41
# File 'lib/item_builder_mwh/modes.rb', line 39

def pca
  listing.profile_channel_association_id.to_s
end

#warehouseObject



25
26
27
28
29
# File 'lib/item_builder_mwh/modes.rb', line 25

def warehouse
  warehouse_spaces.each do |warehouse_space|
    warehouses << to_h(warehouse_space)
  end
end

#warehouse_mapping(warehouse_id) ⇒ Object



43
44
45
46
47
48
# File 'lib/item_builder_mwh/modes.rb', line 43

def warehouse_mapping(warehouse_id)
  WarehouseMapping
    .where(profile_channel_association_id:
      listing.profile_channel_association_id,
           warehouse_id: warehouse_id)
end

#warehouse_spacesObject



31
32
33
34
35
36
37
# File 'lib/item_builder_mwh/modes.rb', line 31

def warehouse_spaces
  WarehouseSpace
    .joins('JOIN warehouse_mappings ON
      warehouse_spaces.warehouse_id = warehouse_mappings.warehouse_id')
    .where("warehouse_mappings.profile_channel_association_id=#{pca}")
    .where("warehouse_spaces.item_variant_id=#{listing.variant_id}")
end

#warehousesObject



57
58
59
# File 'lib/item_builder_mwh/modes.rb', line 57

def warehouses
  @warehouses ||= []
end

#wh_mapping(warehouse_id) ⇒ Object



50
51
52
53
54
55
# File 'lib/item_builder_mwh/modes.rb', line 50

def wh_mapping(warehouse_id)
  data = warehouse_mapping(warehouse_id)
  return nil if data.empty?

  warehouse_mapping(warehouse_id)[0].channel_warehouse_id
end