17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/friendly_shipping/services/usps_international/serialize_rate_request.rb', line 17
def call(shipment:, login:, options:)
xml_builder = Nokogiri::XML::Builder.new do |xml|
xml.IntlRateV2Request('USERID' => login) do
xml.Revision("2")
shipment.packages.each_with_index do |package, index|
xml.Package('ID' => index) do
xml.Pounds(pounds_for(package))
xml.Ounces(ounces_for(package))
xml.Machinable(machinable(package))
package_options = options.options_for_package(package)
xml.MailType(package_options.mail_type)
xml.ValueOfContents(package.items_value)
xml.Country(shipment.destination.country)
xml.Container(package_options.container)
if package_options.transmit_dimensions && package_options.container == 'VARIABLE'
xml.Width("%<width>0.2f" % { width: package.width.convert_to(:inches).value.to_f })
xml.Length("%<length>0.2f" % { length: package.length.convert_to(:inches).value.to_f })
xml.Height("%<height>0.2f" % { height: package.height.convert_to(:inches).value.to_f })
unless package_options.rectangular
xml.Girth("%<girth>0.2f" % { girth: girth(package) })
end
xml.CommercialFlag(package_options.commercial_pricing)
xml.CommercialPlusFlag(package_options.commercial_plus_pricing)
end
end
end
end
end
xml_builder.to_xml
end
|