Class: IngramMicro::ShipmentStatus

Inherits:
BaseElement show all
Defined in:
lib/ingram_micro/elements/shipment_status.rb

Constant Summary collapse

DEFAULTS =
{
  customer_id: nil,
  business_name: nil,
  detail: nil,
  line_items: []
}

Instance Attribute Summary

Attributes inherited from BaseElement

#element

Instance Method Summary collapse

Methods inherited from BaseElement

format

Constructor Details

#initialize(options = {}) ⇒ ShipmentStatus

Returns a new instance of ShipmentStatus.



14
15
16
17
18
19
# File 'lib/ingram_micro/elements/shipment_status.rb', line 14

def initialize(options={})
  super
  @element[:order_header] ||= IngramMicro::SalesOrderHeader.new
  check_line_items
  @element[:detail] ||= IngramMicro::Detail.new({line_items: @element[:line_items]})
end

Instance Method Details

#build(builder) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ingram_micro/elements/shipment_status.rb', line 21

def build(builder)
  builder.send('header') do
    builder.send('customer-information') do
      builder.send 'customer-id', @element[:customer_id]
      builder.send 'business-name', @element[:business_name]
    end
  end
  builder.send('detail') do
    @element[:detail].build(builder)
  end
end

#check_line_itemsObject



33
34
35
36
37
38
# File 'lib/ingram_micro/elements/shipment_status.rb', line 33

def check_line_items
  if @element[:line_items].empty?
    ss_line_item = IngramMicro::ShipmentStatusLineItem.new
    @element[:line_items] << ss_line_item
  end
end

#defaultsObject



10
11
12
# File 'lib/ingram_micro/elements/shipment_status.rb', line 10

def defaults
  DEFAULTS
end

#valid?Boolean

Returns:

  • (Boolean)

Raises:



40
41
42
43
# File 'lib/ingram_micro/elements/shipment_status.rb', line 40

def valid?
    raise IngramMicro::InvalidType.new('customer_id must be a number') unless integer?(@element[:customer_id])
  true
end