Class: OpenBD::Resources::Onix::ProductSupply

Inherits:
BaseResource
  • Object
show all
Defined in:
lib/openbd/resources/onix/product_supply.rb

Overview

Block 6: Product supply

市場における商品の出版状況、供給等について記述する。

Instance Attribute Summary collapse

Attributes inherited from BaseResource

#src

Instance Method Summary collapse

Constructor Details

#initialize(src) ⇒ ProductSupply

Returns a new instance of ProductSupply.



30
31
32
33
34
35
36
37
38
# File 'lib/openbd/resources/onix/product_supply.rb', line 30

def initialize(src)
  super
  @returns_conditions_code = nil
  @price = nil
  @special_price = nil
  @special_price_from_date = nil
  @special_price_until_date = nil
  parse(src)
end

Instance Attribute Details

#priceObject (readonly)

Price Excluding Tax, JPY (希望小売価格, 定価)



19
20
21
# File 'lib/openbd/resources/onix/product_supply.rb', line 19

def price
  @price
end

#returns_conditions_codeObject (readonly)

Returns conditions (販売条件)

Onix codelists, List 204: ONIX Returns conditions code onix-codelists.io/codelist/204



16
17
18
# File 'lib/openbd/resources/onix/product_supply.rb', line 16

def returns_conditions_code
  @returns_conditions_code
end

#special_priceObject (readonly)

Special Price Excluding Tax, JPY (特価)



22
23
24
# File 'lib/openbd/resources/onix/product_supply.rb', line 22

def special_price
  @special_price
end

#special_price_from_dateObject (readonly)

Special Price From Date (特価開始日)



25
26
27
# File 'lib/openbd/resources/onix/product_supply.rb', line 25

def special_price_from_date
  @special_price_from_date
end

#special_price_until_dateObject (readonly)

Special Price Until Date (特価終了日)



28
29
30
# File 'lib/openbd/resources/onix/product_supply.rb', line 28

def special_price_until_date
  @special_price_until_date
end

Instance Method Details

#parse(ps) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/openbd/resources/onix/product_supply.rb', line 40

def parse(ps)
  if ps["SupplyDetail"]
    if ps["SupplyDetail"]["ReturnsConditions"]
      @returns_conditions_code = ps["SupplyDetail"]["ReturnsConditions"]["ReturnsCode"]
    end
    if ps["SupplyDetail"]["Price"]
      ps["SupplyDetail"]["Price"].each do |pr|
        price = price_mode = nil

        # Onix codelists, List 58: Price type code
        # https://onix-codelists.io/codelist/58
        case pr["PriceType"]
        when "01", "03" ## RRP(Recommended Retail Price) Excluding Tax, Fixed Retail Price Excluding Tax
          @price = pr["PriceAmount"]
          price_mode = :normal
        when "11", "13" ## Special sale RRP excluding tax, Special sale fixed retail price excluding tax
          @special_price = pr["PriceAmount"]
          price_mode = :special
        else
          next
        end
        if pr["PriceDate"]
          pr["PriceDate"].each do |pdi|

            # Onix codelists, List 173: Price date role
            # https://onix-codelists.io/codelist/173
            case pdi["PriceDateRole"]
            when "14" ## FromDate
              @special_price_from_date = pdi["Date"]
            when "15" ## UntilDate
              @special_price_until_date = pdi["Date"]
            end
          end
        end
      end
    end
  end
end