class FedexWebServices::ProcessShipmentRequest

Public Class Methods

new() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 5
def initialize
  @contents = soap_module::ProcessShipmentRequest.new
end
shipment_requests(service_type, from, to, label_specification, package_weights) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 71
def self.shipment_requests(service_type, from, to, label_specification, package_weights)
  package_weights.map.with_index do |weight, ndx|
    new.tap do |request|
      mod = request.soap_module

      request.contents.requestedShipment = mod::RequestedShipment.new.tap do |rs|
        rs.shipTimestamp = Time.now.iso8601
        rs.serviceType   = service_type
        rs.packagingType = mod::PackagingType::YOUR_PACKAGING

        rs.shipper   = from
        rs.recipient = to

        rs.labelSpecification = label_specification

        rs.packageCount = package_weights.size
        rs.requestedPackageLineItems = mod::RequestedPackageLineItem.new.tap do |rpli|
          rpli.sequenceNumber = ndx + 1
          rpli.weight = weight
        end
      end
    end
  end
end

Public Instance Methods

customer_invoice!(invoice_number) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 63
def customer_invoice!(invoice_number)
  mod = self.soap_module
  ref = mod::CustomerReference.new(mod::CustomerReferenceType::INVOICE_NUMBER, invoice_number)

  contents.requestedShipment.requestedPackageLineItems.customerReferences ||= []
  contents.requestedShipment.requestedPackageLineItems.customerReferences << ref
end
customer_reference!(reference) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 55
def customer_reference!(reference)
  mod = self.soap_module
  ref = mod::CustomerReference.new(mod::CustomerReferenceType::CUSTOMER_REFERENCE, reference)

  contents.requestedShipment.requestedPackageLineItems.customerReferences ||= []
  contents.requestedShipment.requestedPackageLineItems.customerReferences << ref
end
for_master_tracking_number!(tracking_number) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 49
def for_master_tracking_number!(tracking_number)
  contents.requestedShipment.masterTrackingId = soap_module::TrackingId.new.tap do |ti|
    ti.trackingNumber = tracking_number
  end
end
issue_request(port, credentials) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 25
def issue_request(port, credentials)
  ProcessShipmentResponse.new(port.send(remote_method, request_contents(credentials)))
end
list_rate!() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 45
def list_rate!
  contents.requestedShipment.rateRequestTypes = [ soap_module::RateRequestType::LIST ]
end
regular_pickup!() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 41
def regular_pickup!
  contents.requestedShipment.dropoffType = soap_module::DropoffType::REGULAR_PICKUP
end
remote_method() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 13
def remote_method
  :processShipment
end
sender_paid!(account_number) click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 29
def sender_paid!(account_number)
  mod = self.soap_module

  contents.requestedShipment.shippingChargesPayment = mod::Payment.new.tap do |scp|
    scp.paymentType = mod::PaymentType::SENDER

    scp.payor = mod::Payor.new
    scp.payor.responsibleParty = contents.requestedShipment.shipper.dup
    scp.payor.responsibleParty.accountNumber = account_number
  end
end
service_id() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 17
def service_id
  :ship
end
soap_module() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 9
def soap_module
  FedexWebServices::Soap::Ship
end
version() click to toggle source
# File lib/fedex_web_services/process_shipment_request.rb, line 21
def version
  12
end