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_itemized_payment_information, #add_master_carton_id, #add_master_carton_indicator, #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
45
46
47
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 45
def currency_code
element_with_value('CurrencyCode', opts[:currency_code])
end
|
#declaration_statement ⇒ Object
37
38
39
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 37
def declaration_statement
element_with_value('DeclarationStatement', opts[:declaration_statement])
end
|
#discount ⇒ Object
53
54
55
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 53
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
49
50
51
|
# File 'lib/ups/builders/international_invoice_builder.rb', line 49
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])
end
|
#product_container(opts = {}) ⇒ Object
#product_details ⇒ Object
57
58
59
60
61
|
# 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 ⇒ Object
41
42
43
|
# 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 ⇒ Object
33
34
35
|
# 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 ⇒ Ox::Element
Returns an XML representation of the current object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# 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
|