class ShipCompliant::GetSalesOrderExtendedResult
ShipCompliant::GetSalesOrderExtendedResult
¶ ↑
Wraps the response of GetSalesOrderExtended
and provides methods to quickly access compliace rules of a shipment, the billing address, shipments, and channel details.
Public Instance Methods
bill_to()
click to toggle source
Returns a ShipCompliant::Address
with the customer's billing information.
puts sales_order.bill_to.state #=> 'AK'
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 34 def bill_to Address.new(response[:sales_order][:bill_to]) end
channel_details()
click to toggle source
Returns the OrderChannelDetails
node as an instance of ShipCompliant::ChannelDetails
.
puts sales_order.channel_details.order_channel #=> 'MyOrders'
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 61 def channel_details ChannelDetails.new(response[:order_channel_details]) end
compliance_rules_for_shipment(shipment_key)
click to toggle source
Finds all the compliance rules for a shipment. Returns an instance of ShipmentCompliance
.
shipment_compliance = sales_order.compliance_rules_for_shipment('SHIPMENT-KEY') puts shipment_compliance.compliant? #=> false
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 26 def compliance_rules_for_shipment(shipment_key) shipment = shipment_compliance_rules.select { |s| s[:key] == shipment_key }.first ShipmentCompliance.new(shipment) end
find_shipment(shipment_key)
click to toggle source
Finds a shipment by ShipmentKey
. Returns an instance of ShipCompliant::Shipment
.
shipment = sales_order.find_shipment('1') puts shipment.ship_date #=> DateTime
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 53 def find_shipment(shipment_key) shipment = shipments.select { |s| s[:shipment_key] == shipment_key }.first Shipment.new(shipment) end
shipment_compliance_rules()
click to toggle source
Returns an array of the ShipmentComplianceResponse
node as a Hash.
sales_order.shipment_compliance_rules.each do |shipment| puts "SHIPMENT '#{shipment[:key]}' IS NOT COMPLIANT" unless shipment[:is_compliant] end
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 15 def shipment_compliance_rules Array.wrap(response[:compliance_results][:sales_order][:shipments][:shipment_compliance_response]).map do |shipment| shipment end end
shipments()
click to toggle source
Returns an array of Shipment
nodes as a Hash.
sales_order.shipments.each do |shipment| puts shipment[:ship_date] #=> DateTime end
# File lib/ship_compliant/get_sales_order_extended_result.rb, line 43 def shipments Array.wrap(response[:sales_order][:shipments]).map do |shipment| shipment[:shipment] end end