class IngramMicro::SalesOrder

Constants

TRANSMISSION_FILENAME

Attributes

business_name[RW]
carrier_name[RW]
credit_card_information[RW]
customer[RW]
customer_id[RW]
detail[RW]
purchase_order_information[RW]
sales_order_header[RW]
sales_order_shipment_information[RW]

Public Class Methods

new(options={}) click to toggle source
Calls superclass method IngramMicro::Transmission::new
# File lib/ingram_micro/transmissions/sales_order.rb, line 8
def initialize(options={})
  super(options)
  @transaction_name = 'sales-order-submission'
  @customer = options[:customer]
  @sales_order_shipment_information = options[:sales_order_shipment_information]
  @credit_card_information = options[:credit_card_information]
  @sales_order_header = options[:sales_order_header]
  @detail = options[:detail]
  @business_name = options[:business_name]
  @customer_id = options[:customer_id]
  @carrier_name = options[:carrier_name]
  @purchase_order_information = options[:purchase_order_information]

  validate_options(options)
end

Public Instance Methods

add_message_header(builder) click to toggle source
# File lib/ingram_micro/transmissions/sales_order.rb, line 34
def add_message_header(builder)
  message_header = IngramMicro::MessageHeaderPW.new({
    partner_name: IngramMicro.configuration.partner_name,
    transaction_name: transaction_name})
  builder.send('message-header') do
    message_header.build(builder)
  end
  message_header.valid?
end
add_sales_order_submission(builder) click to toggle source
# File lib/ingram_micro/transmissions/sales_order.rb, line 44
def add_sales_order_submission(builder)
  sos_options = {
    detail: detail,
    business_name: @business_name,
    customer_id: @customer_id,
    carrier_name: @carrier_name,
    customer: customer,
    sales_order_shipment_information: sales_order_shipment_information,
    sales_order_header: sales_order_header,
    credit_card_information: credit_card_information,
    purchase_order_information: purchase_order_information
  }
  sos = IngramMicro::SalesOrderSubmission.new(sos_options)
  builder.send('sales-order-submission') do
    sos.build(builder)
  end
  sos.valid?
end
validate_options(options) click to toggle source
# File lib/ingram_micro/transmissions/sales_order.rb, line 63
def validate_options(options)
  raise "use sales_order_shipment_information (IngramMicro::SalesOrderShipmentInformation" if options[:shipment_information]
  raise "use sales_order_header (IngramMicro::SalesOrderHeader" if options[:order_header]
end
xml_builder() click to toggle source
# File lib/ingram_micro/transmissions/sales_order.rb, line 24
def xml_builder
  @builder ||= Nokogiri::XML::Builder.new do |builder|
    builder.message do
      add_message_header(builder)
      add_sales_order_submission(builder)
      add_transaction_info(builder)
    end
  end
end