Class: ONIX::Price

Inherits:
SubsetDSL show all
Defined in:
lib/onix/price.rb

Instance Attribute Summary

Attributes included from Attributes

#attributes

High level collapse

Shortcuts collapse

Low level collapse

Instance Method Summary collapse

Methods inherited from SubsetDSL

element, elements, #get_class, get_class, inherited, #initialize, n, #parse, ref_to_short, register_elements, register_scopes, #register_subset_array, registered_elements, #registered_elements, registered_scopes, scope, short_to_ref

Methods inherited from Subset

parse, #parse, #tag_match, #unsupported

Methods included from Attributes

attribute_class, #parse_attributes, #serialized_attributes

Constructor Details

This class inherits a constructor from ONIX::SubsetDSL

Instance Method Details

#amountFloat

shortcut for #price_amount

Returns:

  • (Float)


32
33
34
35
36
37
38
# File 'lib/onix/price.rb', line 32

element "PriceAmount", :float,
{
  :shortcut => :amount,
  :parse_lambda => lambda { |v| (v * 100).round },
  :serialize_lambda => lambda { |v| format("%.2f", v / 100.0) },
  :cardinality => 0..1
}

#comparison_product_pricesArray<ComparisonProductPrice>

Returns:



44
# File 'lib/onix/price.rb', line 44

elements "ComparisonProductPrice", :subset, :cardinality => 0..n

#currencyString

shortcut for #currency_code

Returns:

  • (String)


42
# File 'lib/onix/price.rb', line 42

element "CurrencyCode", :text, :shortcut => :currency, :cardinality => 0..1

#currency_codeString

Returns:

  • (String)


42
# File 'lib/onix/price.rb', line 42

element "CurrencyCode", :text, :shortcut => :currency, :cardinality => 0..1

#datesArray<PriceDate>

shortcut for #price_dates

Returns:



45
# File 'lib/onix/price.rb', line 45

elements "PriceDate", :subset, :shortcut => :dates, :cardinality => 0..n

#discountDiscountCoded

FIXME discount_coded != discount

Returns:



51
52
53
# File 'lib/onix/price.rb', line 51

def discount
  self.discount_codeds.first
end

#discount_codedsArray<DiscountCoded>

Returns:



29
# File 'lib/onix/price.rb', line 29

elements "DiscountCoded", :subset, :cardinality => 0..n

#discountsArray<Discount>

Returns:



30
# File 'lib/onix/price.rb', line 30

elements "Discount", :subset, :cardinality => 0..n

#epub_licenseEpubLicense

Returns:



20
# File 'lib/onix/price.rb', line 20

element "EpubLicense", :subset, :cardinality => 0..1

#epub_technical_protectionsArray<EpubTechnicalProtection>

Returns:



15
# File 'lib/onix/price.rb', line 15

elements "EpubTechnicalProtection", :subset, :cardinality => 0..n

#from_dateDate

price from date

Returns:

  • (Date)


59
60
61
62
63
64
# File 'lib/onix/price.rb', line 59

def from_date
  dt = @price_dates.from_date.first
  if dt
    dt.date
  end
end

#including_tax?Boolean

does the price include taxes ?

Returns:

  • (Boolean)


77
78
79
80
81
82
83
# File 'lib/onix/price.rb', line 77

def including_tax?
  if self.type.human =~ /IncludingTax/
    true
  else
    false
  end
end

#position_on_productPositionOnProduct

Returns:



47
# File 'lib/onix/price.rb', line 47

element "PositionOnProduct", :subset, :cardinality => 0..1

#price_amountFloat

Returns:

  • (Float)


32
33
34
35
36
37
38
# File 'lib/onix/price.rb', line 32

element "PriceAmount", :float,
{
  :shortcut => :amount,
  :parse_lambda => lambda { |v| (v * 100).round },
  :serialize_lambda => lambda { |v| format("%.2f", v / 100.0) },
  :cardinality => 0..1
}

#price_datesArray<PriceDate>

Returns:



45
# File 'lib/onix/price.rb', line 45

elements "PriceDate", :subset, :shortcut => :dates, :cardinality => 0..n

#price_qualifierPriceQualifier

Returns:



14
# File 'lib/onix/price.rb', line 14

element "PriceQualifier", :subset, :shortcut => :qualifier, :cardinality => 0..1

#price_statusPriceStatus

Returns:



31
# File 'lib/onix/price.rb', line 31

element "PriceStatus", :subset

#price_typePriceType

Returns:



13
# File 'lib/onix/price.rb', line 13

element "PriceType", :subset, :shortcut => :type, :cardinality => 0..1

#price_type_descriptionString

Returns:

  • (String)


21
# File 'lib/onix/price.rb', line 21

element "PriceTypeDescription", :text, :cardinality => 0..n

#printed_on_productPrintedOnProduct

Returns:



46
# File 'lib/onix/price.rb', line 46

element "PrintedOnProduct", :subset, :cardinality => 0..1

#qualifierPriceQualifier

shortcut for #price_qualifier

Returns:



14
# File 'lib/onix/price.rb', line 14

element "PriceQualifier", :subset, :shortcut => :qualifier, :cardinality => 0..1

#taxTax

Returns:



39
# File 'lib/onix/price.rb', line 39

element "Tax", :subset, :cardinality => 0..n

#tax_exemptBoolean

Returns:

  • (Boolean)


40
# File 'lib/onix/price.rb', line 40

element "TaxExempt", :bool, :cardinality => 0..1

#territoryTerritory

Returns:



43
# File 'lib/onix/price.rb', line 43

element "Territory", :subset, :cardinality => 0..1

#typePriceType

shortcut for #price_type

Returns:



13
# File 'lib/onix/price.rb', line 13

element "PriceType", :subset, :shortcut => :type, :cardinality => 0..1

#unpriced_item_typeUnpricedItemType

Returns:



41
# File 'lib/onix/price.rb', line 41

element "UnpricedItemType", :subset, :cardinality => 0..1

#until_dateDate

price until date

Returns:

  • (Date)


68
69
70
71
72
73
# File 'lib/onix/price.rb', line 68

def until_date
  dt = @price_dates.until_date.first
  if dt
    dt.date
  end
end