Class: SapModel::Sku

Inherits:
Object
  • Object
show all
Defined in:
lib/sap_model/sku.rb

Class Method Summary collapse

Class Method Details

.find_salespricelists_sku(source, id, skuid) ⇒ Object

Note:

根据来源,id获得单个商品

根据来源,id获得单个商品

Parameters:

  • source (string)


41
42
43
44
# File 'lib/sap_model/sku.rb', line 41

def self.find_salespricelists_sku(source, id, skuid)
  params = {skuid: skuid}
  Sap::SalesPriceList.new(source).find(id, params)
end

.find_sku(source, id) ⇒ Object

Note:

根据来源,id获得单个商品规格

根据来源,id获得单个商品规格

Parameters:

  • source (string)


49
50
51
# File 'lib/sap_model/sku.rb', line 49

def self.find_sku(source, id)
  Sap::Sku.new(source).find(id)
end

.find_sku_channelprice(source, id) ⇒ Object

Note:

根据来源,id获得单个商品

根据来源,id获得单个商品

Parameters:

  • source (string)


66
67
68
69
70
71
# File 'lib/sap_model/sku.rb', line 66

def self.find_sku_channelprice(source, id)
  params = {
      warehouseinfo: 'getChannelPrices'
  }
  Sap::Sku.new(source).find(id, params)
end

.find_sku_standprice(source, id) ⇒ Object

Note:

根据来源,id获得单个商品售价

根据来源,id获得单个商品售价

Parameters:

  • source (string)


76
77
78
79
80
81
# File 'lib/sap_model/sku.rb', line 76

def self.find_sku_standprice(source, id)
  params = {
      warehouseinfo: 'StandardPrice'
  }
  Sap::Sku.new(source).find(id, params)
end

.find_sku_warehouseinfo(source, id) ⇒ Object

Note:

根据来源,id获得单个商品库存

根据来源,id获得单个商品库存

Parameters:

  • source (string)


56
57
58
59
60
61
# File 'lib/sap_model/sku.rb', line 56

def self.find_sku_warehouseinfo(source, id)
  params = {
      warehouseinfo: 'WarehouseInfos'
  }
  Sap::Sku.new(source).find(id, params)
end

.find_variantvalue(source, id) ⇒ Object

Note:

根据来源,id获得单个商品variantvalue

根据来源,id获得单个商品variantvalue

Parameters:

  • source (string)


33
34
35
36
# File 'lib/sap_model/sku.rb', line 33

def self.find_variantvalue(source, id)

  Sap::VariantValue.new(source).find(id)
end

.get_salespricelists(source) ⇒ Object

Note:

根据来源获得商品价格

根据来源获得所有商品价格

Parameters:

  • source (string)


26
27
28
# File 'lib/sap_model/sku.rb', line 26

def self.get_salespricelists(source)
  Sap::SalesPriceList.new(source).list
end

.get_skus(source) ⇒ Object

Note:

根据来源获得所有商品规格

根据来源获得所有商品规格

Parameters:

  • source (string)


10
11
12
# File 'lib/sap_model/sku.rb', line 10

def self.get_skus(source)
  Sap::Sku.new(source).list
end

.get_variantvalues(source) ⇒ Object

Note:

根据来源获得所有商品规格variantvalue

根据来源获得所有商品规格variantvalue

Parameters:

  • source (string)


18
19
20
# File 'lib/sap_model/sku.rb', line 18

def self.get_variantvalues(source)
  Sap::VariantValue.new(source).list
end

.query(sku, source) ⇒ Object

Note:

为从sap接口获得的商品保存在云店家分装参数

为从sap接口获得的商品保存在云店家分装参数

Parameters:

  • sap_product (sap_product)


86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/sap_model/sku.rb', line 86

def self.query(sku, source)

 # if sku.try(:status) == 'Active'
 #   status = ::ProductVariant::Status::Published
 # else
 #   status = ::ProductVariant::Status::Closed
 # end

 sku_warehouseinfos = SapModel::Sku.find_sku_warehouseinfo(source, sku.id)
 inStocks = sku_warehouseinfos.warehouseInfoList.map(&:inStock).sum

 sku_standprice = SapModel::Sku.find_sku_standprice(source, sku.id).first

 price = sku_standprice.try(:price).present? ? sku_standprice.try(:price):0
 options = {
     # sku_code: sku.try(:code),
     inventory_quantity: inStocks,
     price: price,
     cost_price: sku.try(:grossPurchasePrice).present? ? sku.try(:grossPurchasePrice):0,
     market_price: price,
     art_no: sku.try(:code),
     weight: sku.try(:weight)
 }

 variantvalues = sku.try(:relatedVariantValues)
 if variantvalues.present?
   variantvalue_ids = variantvalues.map(&:id).first 3
 end


 if variantvalue_ids.present?
   variantvalue_ids.each_with_index  do |variantvalue_id, i|
    variantvalue = SapModel::Sku.find_variantvalue(source, variantvalue_id)
    key = variantvalue.try(:variant).try(:name)
    value = variantvalue.try(:value)
    options.merge!({"key#{i + 1}".to_sym => key, "value#{i + 1}".to_sym =>  value})
   end

 end

 Rails.logger.info "variantvalue.........#{options}"
 return options
end