class UPS::Builders::InternationalInvoiceBuilder

The {InternationalInvoiceBuilder} class builds UPS XML International invoice Objects.

@author Calvin Hughes @since 0.9.3 @attr [String] name The Containing XML Element Name @attr [Hash] opts The international invoice parts

Attributes

name[RW]
opts[RW]

Public Class Methods

new(name, opts = {}) click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 16
def initialize(name, opts = {})
  self.name = name
  self.opts = opts
end

Public Instance Methods

currency_code() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 45
def currency_code
  element_with_value('CurrencyCode', opts[:currency_code])
end
declaration_statement() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 37
def declaration_statement
  element_with_value('DeclarationStatement', opts[:declaration_statement])
end
discount() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 53
def discount
  multi_valued('Discount', MonetaryValue: opts[:discount])
end
form_type() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 21
def form_type
  element_with_value('FormType', '01')
end
freight_charge() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 49
def freight_charge
  multi_valued('FreightCharges', MonetaryValue: opts[:freight_charge])
end
invoice_date() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 29
def invoice_date
  element_with_value('InvoiceDate', opts[:invoice_date])
end
invoice_number() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 25
def invoice_number
  element_with_value('InvoiceNumber', opts[:invoice_number])
end
product_container(opts = {}) click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 63
def product_container(opts = {})
  InternationalInvoiceProductBuilder.new('Product', opts).to_xml
end
product_details() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 57
def product_details
  opts[:products].map do |product_opts|
    product_container(product_opts)
  end
end
reason_for_export() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 41
def reason_for_export
  element_with_value('ReasonForExport', opts[:reason_for_export])
end
terms_of_shipment() click to toggle source
# File lib/ups/builders/international_invoice_builder.rb, line 33
def terms_of_shipment
  element_with_value('TermsOfShipment', opts[:terms_of_shipment])
end
to_xml() click to toggle source

Returns an XML representation of the current object

@return [Ox::Element] XML representation of the current object

# File lib/ups/builders/international_invoice_builder.rb, line 70
def to_xml
  Element.new(name).tap do |international_form|
    international_form << form_type
    international_form << invoice_number if opts[:invoice_number]
    international_form << invoice_date
    international_form << terms_of_shipment if opts[:terms_of_shipment]
    international_form << declaration_statement if opts[:declaration_statement]
    international_form << reason_for_export
    international_form << currency_code
    international_form << freight_charge
    international_form << discount

    product_details.each do |product_detail|
      international_form << product_detail
    end
  end
end