def test_rate(self):
        pickup_service = FedexCreatePickupRequest(CONFIG_OBJ)

        pickup_service.OriginDetail.PickupLocation.Contact.PersonName = 'Sender Name'
        pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = '*****@*****.**'
        pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = 'Acme Inc.'
        pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = '9012638716'
        pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = 'SC'
        pickup_service.OriginDetail.PickupLocation.Address.PostalCode = '29631'
        pickup_service.OriginDetail.PickupLocation.Address.CountryCode = 'US'
        pickup_service.OriginDetail.PickupLocation.Address.StreetLines = ['155 Old Greenville Hwy', 'Suite 103']
        pickup_service.OriginDetail.PickupLocation.Address.City = 'Clemson'
        # pickup_service.OriginDetail.PickupLocation.Address.UrbanizationCode = ''  # For Puerto Rico only
        pickup_service.OriginDetail.PickupLocation.Address.Residential = False

        # FRONT, NONE, REAR, SIDE
        # pickup_service.OriginDetail.PackageLocation = 'NONE'

        # APARTMENT, BUILDING, DEPARTMENT, FLOOR, ROOM, SUITE
        # pickup_service.OriginDetail.BuildingPart = 'SUITE'

        # Identifies the date and time the package will be ready for pickup by FedEx.
        pickup_service.OriginDetail.ReadyTimestamp = datetime.datetime.now().replace(microsecond=0).isoformat()

        # Identifies the latest time at which the driver can gain access to pick up the package(s)
        pickup_service.OriginDetail.CompanyCloseTime = '23:00:00'

        pickup_service.CarrierCode = 'FDXE'

        pickup_service.TotalWeight.Units = 'LB'
        pickup_service.TotalWeight.Value = '1'
        pickup_service.PackageCount = '1'
        # pickup_service.OversizePackageCount = '1'

        # pickup_service.CommodityDescription = ''

        # DOMESTIC or INTERNATIONAL
        # pickup_service.CountryRelationship = 'DOMESTIC'

        # See PickupServiceCategoryType
        # pickup_service.PickupServiceCategory = 'FEDEX_DISTANCE_DEFERRED'

        pickup_service.send_request()

        assert pickup_service.response.HighestSeverity == 'SUCCESS', pickup_service.response.Notifications[0].Message
	def schedule_pickup_service (self, credentials, from_address_doc, \
		from_country_doc, transporter_doc):
		from_state_doc = frappe.get_doc("State", from_address_doc.state_rigpl)
		from fedex.services.pickup_service import FedexCreatePickupRequest
		customer_transaction_id = self.name  # Optional transaction_id
		pickup_service = FedexCreatePickupRequest(credentials)
		pickup_service.OriginDetail.PickupLocation.Contact.PersonName = \
			from_address_doc.address_title[0:35]
		pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = from_address_doc.email_id
		pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = from_address_doc.address_title[0:35]
		pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = from_address_doc.phone[0:15]
		pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = from_state_doc.state_code
		pickup_service.OriginDetail.PickupLocation.Address.PostalCode = from_address_doc.pincode[0:10]
		pickup_service.OriginDetail.PickupLocation.Address.CountryCode = from_country_doc.code
		pickup_service.OriginDetail.PickupLocation.Address.StreetLines = [from_address_doc.address_line1[0:35],\
																	 str(from_address_doc.address_line2)[0:35]]
		pickup_service.OriginDetail.PickupLocation.Address.City = from_address_doc.city[0:20]
		pickup_service.OriginDetail.PickupLocation.Address.Residential = True if from_address_doc.is_residential \
																			else False
		pickup_service.OriginDetail.PackageLocation = 'NONE'
		pickup_service.OriginDetail.ReadyTimestamp = get_datetime(self.ready_time).replace(microsecond=0).isoformat()
		pickup_service.OriginDetail.CompanyCloseTime = self.last_time if self.last_time else '20:00:00'
		pickup_service.CarrierCode = 'FDXE'
		pickup_service.PackageCount = self.no_of_packages

		package_weight = pickup_service.create_wsdl_object_of_type('Weight')
		package_weight.Units = 'KG'
		package_weight.Value = '1'
		pickup_service.TotalWeight = package_weight

		# DOMESTIC or INTERNATIONAL
		if transporter_doc.is_export_only == 1 or transporter_doc.is_imports_only == 1:
			dom_type = 'INTERNATIONAL'
		elif transporter_doc.is_domestic_only == 1:
			dom_type = 'DOMESTIC'
		else:
			frappe.throw("Error Transporter should be either DOMESTIC or INTERNATIONAL")
		pickup_service.CountryRelationship = dom_type

		#frappe.msgprint(str(sobject_to_json(pickup_service)))
		pickup_service.send_request()
		if pickup_service.response.HighestSeverity not in ["SUCCESS", "NOTE", "WARNING"]:
			self.show_notification(pickup_service)
			#frappe.throw(_('Pickup service scheduling failed.'))
			frappe.msgprint(str(pickup_service.response.HighestSeverity))
			frappe.msgprint(str(pickup_service.response.PickupConfirmationNumber))
			frappe.msgprint(str(pickup_service.response.Location))
		return { "response": pickup_service.response.HighestSeverity,
				  "pickup_id": pickup_service.response.PickupConfirmationNumber,
				  "location_no": pickup_service.response.Location
				}
    def schedule_pickup(self, request_data):
        shipper_details, closing_time = self.get_company_data(
            request_data, "closing_time")

        pickup_service = FedexCreatePickupRequest(self.config_obj)
        pickup_service.OriginDetail.PickupLocation.Contact.PersonName = shipper_details.get(
            "address_title")
        pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = shipper_details.get(
            "email_id")
        pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = shipper_details.get(
            "company")
        pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = shipper_details.get(
            "phone")
        pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = shipper_details.get(
            "state_code")
        pickup_service.OriginDetail.PickupLocation.Address.PostalCode = shipper_details.get(
            "pincode")
        pickup_service.OriginDetail.PickupLocation.Address.CountryCode = shipper_details.get(
            "country_code")
        pickup_service.OriginDetail.PickupLocation.Address.StreetLines = [shipper_details.get("address_line1"),\
                        shipper_details.get("address_line2")]
        pickup_service.OriginDetail.PickupLocation.Address.City = shipper_details.get(
            "city")
        pickup_service.OriginDetail.PickupLocation.Address.Residential = True if shipper_details.get("is_residential_address") \
                         else False
        pickup_service.OriginDetail.PackageLocation = 'NONE'
        pickup_service.OriginDetail.ReadyTimestamp = get_datetime(
            request_data.get("ready_time")).replace(microsecond=0).isoformat()
        pickup_service.OriginDetail.CompanyCloseTime = closing_time if closing_time else '20:00:00'
        pickup_service.CarrierCode = 'FDXE'
        pickup_service.PackageCount = request_data.get("package_count")

        package_weight = pickup_service.create_wsdl_object_of_type('Weight')
        package_weight.Units = FedexController.uom_mapper.get(
            request_data.get("uom"))
        package_weight.Value = request_data.get("gross_weight")
        pickup_service.TotalWeight = package_weight

        pickup_service.send_request()
        if pickup_service.response.HighestSeverity not in [
                "SUCCESS", "NOTE", "WARNING"
        ]:
            self.show_notification(pickup_service)
            frappe.throw(_('Pickup service scheduling failed.'))
        return {
            "response": pickup_service.response.HighestSeverity,
            "pickup_id": pickup_service.response.PickupConfirmationNumber,
            "location_no": pickup_service.response.Location
        }
Beispiel #4
0
    def test_pickup_request(self):
        pickup_service = FedexCreatePickupRequest(self.config_obj)

        pickup_service.OriginDetail.PickupLocation.Contact.PersonName = 'Sender Name'
        pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = '*****@*****.**'
        pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = 'Acme Inc.'
        pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = '9012638716'
        pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = 'SC'
        pickup_service.OriginDetail.PickupLocation.Address.PostalCode = '29631'
        pickup_service.OriginDetail.PickupLocation.Address.CountryCode = 'US'
        pickup_service.OriginDetail.PickupLocation.Address.StreetLines = [
            '155 Old Greenville Hwy', 'Suite 103'
        ]
        pickup_service.OriginDetail.PickupLocation.Address.City = 'Clemson'
        # pickup_service.OriginDetail.PickupLocation.Address.UrbanizationCode = ''  # For Puerto Rico only
        pickup_service.OriginDetail.PickupLocation.Address.Residential = False

        # FRONT, NONE, REAR, SIDE
        # pickup_service.OriginDetail.PackageLocation = 'NONE'

        # APARTMENT, BUILDING, DEPARTMENT, FLOOR, ROOM, SUITE
        # pickup_service.OriginDetail.BuildingPart = 'SUITE'

        # Identifies the date and time the package will be ready for pickup by FedEx.
        pickup_service.OriginDetail.ReadyTimestamp = datetime.datetime.now(
        ).replace(microsecond=0).isoformat()

        # Identifies the latest time at which the driver can gain access to pick up the package(s)
        pickup_service.OriginDetail.CompanyCloseTime = '23:00:00'

        pickup_service.CarrierCode = 'FDXE'

        pickup_service.TotalWeight.Units = 'LB'
        pickup_service.TotalWeight.Value = '1'
        pickup_service.PackageCount = '1'
        # pickup_service.OversizePackageCount = '1'

        # pickup_service.CommodityDescription = ''

        # DOMESTIC or INTERNATIONAL
        # pickup_service.CountryRelationship = 'DOMESTIC'

        # See PickupServiceCategoryType
        # pickup_service.PickupServiceCategory = 'FEDEX_DISTANCE_DEFERRED'

        pickup_service.send_request()

        assert pickup_service.response.HighestSeverity == 'SUCCESS', pickup_service.response.Notifications[
            0].Message
#!/usr/bin/env python
"""
This example shows how to create a pickup request
"""
import datetime

from example_config import CONFIG_OBJ
from fedex.services.pickup_service import FedexCreatePickupRequest

customer_transaction_id = "*** PickupService Request v11 using Python ***"  # Optional transaction_id
pickup_service = FedexCreatePickupRequest(CONFIG_OBJ, customer_transaction_id)

pickup_service.OriginDetail.PickupLocation.Contact.PersonName = 'Sender Name'
pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = '*****@*****.**'
pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = 'Acme Inc.'
pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = '9012638716'
pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = 'SC'
pickup_service.OriginDetail.PickupLocation.Address.PostalCode = '29631'
pickup_service.OriginDetail.PickupLocation.Address.CountryCode = 'US'
pickup_service.OriginDetail.PickupLocation.Address.StreetLines = ['155 Old Greenville Hwy', 'Suite 103']
pickup_service.OriginDetail.PickupLocation.Address.City = 'Clemson'
# pickup_service.OriginDetail.PickupLocation.Address.UrbanizationCode = ''  # For Puerto Rico only
pickup_service.OriginDetail.PickupLocation.Address.Residential = False

# FRONT, NONE, REAR, SIDE
# pickup_service.OriginDetail.PackageLocation = 'NONE'

# APARTMENT, BUILDING, DEPARTMENT, FLOOR, ROOM, SUITE
# pickup_service.OriginDetail.BuildingPart = 'SUITE'

# Identifies the date and time the package will be ready for pickup by FedEx.
Beispiel #6
0
#!/usr/bin/env python
"""
This example shows how to create a pickup request and then cancel it
"""
import datetime

from example_config import CONFIG_OBJ
from fedex.services.pickup_service import FedexCreatePickupRequest

pickup_date = datetime.datetime.now().replace(microsecond=0)

customer_transaction_id = "*** PickupService Request v11 using Python ***"  # Optional transaction_id
pickup_service = FedexCreatePickupRequest(CONFIG_OBJ, customer_transaction_id)

pickup_service.OriginDetail.PickupLocation.Contact.PersonName = 'Sender Name'
pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = '*****@*****.**'
pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = 'Acme Inc.'
pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = '9012638716'
pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = 'SC'
pickup_service.OriginDetail.PickupLocation.Address.PostalCode = '29631'
pickup_service.OriginDetail.PickupLocation.Address.CountryCode = 'US'
pickup_service.OriginDetail.PickupLocation.Address.StreetLines = [
    '155 Old Greenville Hwy', 'Suite 103'
]
pickup_service.OriginDetail.PickupLocation.Address.City = 'Clemson'
# pickup_service.OriginDetail.PickupLocation.Address.UrbanizationCode = ''  # For Puerto Rico only
pickup_service.OriginDetail.PickupLocation.Address.Residential = False

# FRONT, NONE, REAR, SIDE
# pickup_service.OriginDetail.PackageLocation = 'NONE'
    def schedule_pickup_service (self, credentials, from_address_doc, \
     from_country_doc, transporter_doc):
        from_state_doc = frappe.get_doc("State", from_address_doc.state_rigpl)
        from fedex.services.pickup_service import FedexCreatePickupRequest
        customer_transaction_id = self.name  # Optional transaction_id
        pickup_service = FedexCreatePickupRequest(credentials)
        pickup_service.OriginDetail.PickupLocation.Contact.PersonName = \
         from_address_doc.address_title[0:35]
        pickup_service.OriginDetail.PickupLocation.Contact.EMailAddress = from_address_doc.email_id
        pickup_service.OriginDetail.PickupLocation.Contact.CompanyName = from_address_doc.address_title[
            0:35]
        pickup_service.OriginDetail.PickupLocation.Contact.PhoneNumber = from_address_doc.phone[
            0:15]
        pickup_service.OriginDetail.PickupLocation.Address.StateOrProvinceCode = from_state_doc.state_code
        pickup_service.OriginDetail.PickupLocation.Address.PostalCode = from_address_doc.pincode[
            0:10]
        pickup_service.OriginDetail.PickupLocation.Address.CountryCode = from_country_doc.code
        pickup_service.OriginDetail.PickupLocation.Address.StreetLines = [from_address_doc.address_line1[0:35],\
                        str(from_address_doc.address_line2)[0:35]]
        pickup_service.OriginDetail.PickupLocation.Address.City = from_address_doc.city[
            0:20]
        pickup_service.OriginDetail.PickupLocation.Address.Residential = True if from_address_doc.is_residential \
                         else False
        pickup_service.OriginDetail.PackageLocation = 'NONE'
        pickup_service.OriginDetail.ReadyTimestamp = get_datetime(
            self.ready_time).replace(microsecond=0).isoformat()
        pickup_service.OriginDetail.CompanyCloseTime = self.last_time if self.last_time else '20:00:00'
        pickup_service.CarrierCode = 'FDXE'
        pickup_service.PackageCount = self.no_of_packages

        package_weight = pickup_service.create_wsdl_object_of_type('Weight')
        package_weight.Units = 'KG'
        package_weight.Value = '1'
        pickup_service.TotalWeight = package_weight

        # DOMESTIC or INTERNATIONAL
        if transporter_doc.is_export_only == 1 or transporter_doc.is_imports_only == 1:
            dom_type = 'INTERNATIONAL'
        elif transporter_doc.is_domestic_only == 1:
            dom_type = 'DOMESTIC'
        else:
            frappe.throw(
                "Error Transporter should be either DOMESTIC or INTERNATIONAL")
        pickup_service.CountryRelationship = dom_type

        #frappe.msgprint(str(sobject_to_json(pickup_service)))
        pickup_service.send_request()
        if pickup_service.response.HighestSeverity not in [
                "SUCCESS", "NOTE", "WARNING"
        ]:
            self.show_notification(pickup_service)
            #frappe.throw(_('Pickup service scheduling failed.'))
            frappe.msgprint(str(pickup_service.response.HighestSeverity))
            frappe.msgprint(
                str(pickup_service.response.PickupConfirmationNumber))
            frappe.msgprint(str(pickup_service.response.Location))
        return {
            "response": pickup_service.response.HighestSeverity,
            "pickup_id": pickup_service.response.PickupConfirmationNumber,
            "location_no": pickup_service.response.Location
        }