Class: UPS::Builders::InternationalInvoiceBuilder
- Inherits:
-
BuilderBase
- Object
- BuilderBase
- UPS::Builders::InternationalInvoiceBuilder
show all
- Includes:
- Ox
- Defined in:
- lib/ups/builders/international_invoice_builder.rb
Overview
Instance Attribute Summary collapse
Attributes inherited from BuilderBase
#access_request, #document, #license_number, #password, #root, #shipment_root, #user_id
Instance Method Summary
collapse
Methods inherited from BuilderBase
#add_access_request, #add_insurance_charge, #add_package, #add_payment_information, #add_rate_information, #add_request, #add_ship_from, #add_ship_to, #add_shipment_delivery_confirmation, #add_shipment_direct_delivery_only, #add_shipper, #add_sold_to
Constructor Details
Returns a new instance of InternationalInvoiceBuilder.
16
17
18
19
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 16
def initialize(name, opts = {})
self.name = name
self.opts = opts
end
|
Instance Attribute Details
#name ⇒ String
The Containing XML Element Name
11
12
13
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 11
def name
@name
end
|
#opts ⇒ Hash
The international invoice parts
11
12
13
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 11
def opts
@opts
end
|
Instance Method Details
#currency_code ⇒ Object
37
38
39
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 37
def currency_code
element_with_value('CurrencyCode', opts[:currency_code])
end
|
#discount ⇒ Object
45
46
47
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 45
def discount
multi_valued('Discount', MonetaryValue: opts[:discount])
end
|
21
22
23
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 21
def form_type
element_with_value('FormType', '01')
end
|
#freight_charge ⇒ Object
41
42
43
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 41
def freight_charge
multi_valued('FreightCharges', MonetaryValue: opts[:freight_charge])
end
|
#invoice_date ⇒ Object
29
30
31
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 29
def invoice_date
element_with_value('InvoiceDate', opts[:invoice_date])
end
|
#invoice_number ⇒ Object
25
26
27
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 25
def invoice_number
element_with_value('InvoiceNumber', opts[:invoice_number]) if opts[:invoice_number]
end
|
#product_container(opts = {}) ⇒ Object
55
56
57
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 55
def product_container(opts = {})
InternationalInvoiceProductBuilder.new('Product', opts).to_xml
end
|
#product_details ⇒ Object
49
50
51
52
53
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 49
def product_details
opts[:products].map do |product_opts|
product_container(product_opts)
end
end
|
#reason_for_export ⇒ Object
33
34
35
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 33
def reason_for_export
element_with_value('ReasonForExport', opts[:reason_for_export])
end
|
#to_xml ⇒ Ox::Element
Returns an XML representation of the current object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 62
def to_xml
Element.new(name).tap do |international_form|
international_form << form_type
international_form << invoice_number
international_form << invoice_date
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
|