Class: IngramMicro::ReturnAuthorizationSubmission

Inherits:
BaseElement
  • Object
show all
Defined in:
lib/ingram_micro/elements/return_authorization_submission.rb

Constant Summary collapse

DEFAULTS =
{
  customer: nil,
  shipment_information: nil,
  credit_card_information: nil,
  order_header: nil,
  detail: nil,
  purchase_order_information: nil,
  customer_id: nil,
  business_name: nil,
  carrier_name: nil
}

Instance Attribute Summary

Attributes inherited from BaseElement

#element

Instance Method Summary collapse

Methods inherited from BaseElement

format, #parse

Constructor Details

#initialize(options = {}) ⇒ ReturnAuthorizationSubmission

Returns a new instance of ReturnAuthorizationSubmission.



19
20
21
22
23
24
25
26
27
# File 'lib/ingram_micro/elements/return_authorization_submission.rb', line 19

def initialize(options={})
  super
  @element[:customer] ||= IngramMicro::Customer.new
  @element[:shipment_information] ||= IngramMicro::ShipmentInformation.new
  @element[:credit_card_information] ||= IngramMicro::CreditCardInformation.new
  @element[:order_header] ||= IngramMicro::ReturnAuthorizationOrderHeader.new
  @element[:purchase_order_information] ||= IngramMicro::PurchaseOrderInformation.new
  @element[:detail] ||= IngramMicro::Detail.new
end

Instance Method Details

#build(builder) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ingram_micro/elements/return_authorization_submission.rb', line 29

def build(builder)
  builder.send('header') do
    builder.send 'customer-id', @element[:customer_id]
    builder.send 'business-name', @element[:business_name]
    builder.send 'carrier-name', @element[:carrier_name]
    builder.send('customer-information') do
      @element[:customer].build(builder)
    end
    builder.send('shipment-information') do
      @element[:shipment_information].build(builder)
    end
    builder.send('purchase-order-information') do
      @element[:purchase_order_information].build(builder)
    end
    builder.send('credit-card-information') do
      @element[:credit_card_information].build(builder)
    end
    builder.send('order-header') do
      @element[:order_header].build(builder)
    end
  end
  check_line_items
  builder.send('detail') do
    @element[:detail].build(builder)
  end
end

#check_line_itemsObject



56
57
58
59
60
61
# File 'lib/ingram_micro/elements/return_authorization_submission.rb', line 56

def check_line_items
  if @element[:detail].element[:line_items].empty?
    line_item = IngramMicro::ReturnAuthorizationLineItem.new
    @element[:detail].element[:line_items] << line_item
  end
end

#defaultsObject



15
16
17
# File 'lib/ingram_micro/elements/return_authorization_submission.rb', line 15

def defaults
  DEFAULTS
end

#valid?Boolean

Returns:

  • (Boolean)

Raises:



63
64
65
66
# File 'lib/ingram_micro/elements/return_authorization_submission.rb', line 63

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