Example #1
0
    def test_0030_gb_gb_saturday(self):
        "GB to GB UPS Standard with 2 packages and Saturday delivery"
        ship_confirm_request = ShipmentConfirm.shipment_confirm_request_type(
            Helper.get_shipper(self.shipper_number, "GB"),
            Helper.get_ship_to("GB"),
            Helper.get_ship_from("GB"),

            # Package 1
            Helper.get_package(
                "GB", weight='15.0',
                package_type_code='02'),  # Customer Supplied Package

            # Package 2
            Helper.get_package(
                "GB", weight='15.0',
                package_type_code='02'),  # Customer Supplied Package
            ShipmentConfirm.shipment_service_option_type(SaturdayDelivery="1"),
            Helper.get_payment_info(AccountNumber=self.shipper_number),
            ShipmentConfirm.service_type(Code='11'),  # UPS Standard
            Description=__doc__[:50])
        response = self.shipment_confirm_api.request(ship_confirm_request)
        digest = self.shipment_confirm_api.extract_digest(response)

        # now accept the package
        accept_request = ShipmentAccept.shipment_accept_request_type(digest)
        result = self.shipment_accept_api.request(accept_request)
    def test_0030_gb_gb_saturday(self):
        "GB to GB UPS Standard with 2 packages and Saturday delivery"
        ship_confirm_request = ShipmentConfirm.shipment_confirm_request_type(
            Helper.get_shipper(self.shipper_number, "GB"),
            Helper.get_ship_to("GB"),
            Helper.get_ship_from("GB"),

            # Package 1
            Helper.get_package("GB", weight='15.0', 
                package_type_code='02'),    # Customer Supplied Package

            # Package 2
            Helper.get_package("GB", weight='15.0', 
                package_type_code='02'),    # Customer Supplied Package

            ShipmentConfirm.shipment_service_option_type(SaturdayDelivery="1"),

            Helper.get_payment_info(AccountNumber=self.shipper_number),
            ShipmentConfirm.service_type(Code='11'),    # UPS Standard
            Description = __doc__[:50]
            )
        response = self.shipment_confirm_api.request(ship_confirm_request)
        digest = self.shipment_confirm_api.extract_digest(response)

        # now accept the package
        accept_request = ShipmentAccept.shipment_accept_request_type(digest)
        result = self.shipment_accept_api.request(accept_request)
Example #3
0
    def _add_packages(self, cursor, user, register_id, context=None):
        """
        Adds the UPS style packages and return the XML element

        :param cursor: Database Cursor
        :param user: ID of User
        :param register_id: Shipment Register ID
        :param context: Context directly uses active id.
        """
        company_obj = self.pool.get('res.company')

        packages = []
        ups_uoms = company_obj.get_ups_uoms(cursor, user, context)
        register_record = self.browse(cursor, user, register_id, context)

        for package in register_record.package_det:
            package_type = ShipmentConfirm.packaging_type(
                Code=package.package_type.code)
            package_weight = ShipmentConfirm.package_weight_type(
                Weight=str(package.weight),
                Code=ups_uoms[0],
                Description=package.description or 'None')
            package_service_options = \
                ShipmentConfirm.package_service_options_type(
                    ShipmentConfirm.insured_value_type(
                        MonetaryValue=str(package.insured_value) or ''))
            if package.length and package.height and package.width:
                package_dimension = ShipmentConfirm.dimensions_type(
                    Code=ups_uoms[1],
                    Length=str(package.length),
                    Height=str(package.height),
                    Width=str(package.width),
                    Description=package.description or 'None')
            else:
                raise osv.except_osv(('Error : '),
                                     ("Package Dimensions are required"))
            package_container = ShipmentConfirm.package_type(
                package_type, package_weight, package_dimension,
                package_service_options)
            packages.append(package_container)
        shipment_service = ShipmentConfirm.shipment_service_option_type(
            SaturdayDelivery=1 if register_record.saturday_delivery \
            else 'None')
        return (packages, shipment_service)
    def _add_packages(self, cursor, user, register_id, context=None):
        """
        Adds the UPS style packages and return the XML element

        :param cursor: Database Cursor
        :param user: ID of User
        :param register_id: Shipment Register ID
        :param context: Context directly uses active id.
        """
        company_obj = self.pool.get('res.company')

        packages = []
        ups_uoms = company_obj.get_ups_uoms(cursor, user, context)
        register_record = self.browse(cursor, user, register_id, context)

        for package in register_record.package_det:
            package_type = ShipmentConfirm.packaging_type(
                Code=package.package_type.code)
            package_weight = ShipmentConfirm.package_weight_type(
                Weight=str(package.weight), Code=ups_uoms[0],
                Description=package.description or 'None')
            package_service_options = \
                ShipmentConfirm.package_service_options_type(
                    ShipmentConfirm.insured_value_type(
                        MonetaryValue=str(package.insured_value) or ''))
            if package.length and package.height and package.width:
                package_dimension = ShipmentConfirm.dimensions_type(
                    Code=ups_uoms[1], Length=str(package.length),
                    Height=str(package.height), Width=str(package.width),
                    Description=package.description or 'None')
            else:
                raise osv.except_osv(('Error : '),
                    ("Package Dimensions are required"))
            package_container = ShipmentConfirm.package_type(
                package_type,
                package_weight,
                package_dimension,
                package_service_options)
            packages.append(package_container)
        shipment_service = ShipmentConfirm.shipment_service_option_type(
            SaturdayDelivery=1 if register_record.saturday_delivery \
            else 'None')
        return (packages, shipment_service)
Example #5
0
    def _add_packages(self, cr, uid, omni, package, weight, context=None):
        """
        Adds the UPS style packages and return the XML element

        """
        picking_obj = self.pool.get('stock.picking')
        package_obj = self.pool.get('stock.out.package')

        ups_package = None
        omni_obj = self.pool.get('omniship')
        ups_uoms = omni_obj.get_ups_uoms(cr, uid, omni, context)

        #Solves a bug where weight is rejected by UPS api for being too low
        if weight < 0.5:
            weight = 0.5

        package_type = ShipmentConfirm.packaging_type(Code='02')

        package_weight = ShipmentConfirm.package_weight_type(
            Weight=str(weight), Code=ups_uoms[0], Description='None')

        #Shipment References
        ref1 = str(12345)
        package_referencenumber1 = \
            ShipmentConfirm.reference_type(Code='02', Value=ref1)

        #Ignore ref2 for now
        #       ref2 = str(package.move_id.product_id.sku)
        #      package_referencenumber2 = \
        #         ShipmentConfirm.reference_type(Code='02', Value=ref2)

        #REVIEW: Value set to 0
        package_service_options = \
            ShipmentConfirm.package_service_options_type(
                ShipmentConfirm.insured_value_type(
                    MonetaryValue='0'))

        if package.length > 0.1 and package.width > 0.1 and package.height > 0.1:
            length = package.length
            width = package.width
            height = package.height

        elif package.shape_dimension:
            dims = package.shape_dimension
            length = dims.length
            width = dims.width
            height = dims.height

        else:
            length = 1.0
            width = 1.0
            height = 1.0

        package_dimension = ShipmentConfirm.dimensions_type(Code=ups_uoms[1],
                                                            Length=str(length),
                                                            Height=str(height),
                                                            Width=str(width),
                                                            Description='None')

        xml_package = ShipmentConfirm.package_type(package_type,
                                                   package_weight,
                                                   package_dimension,
                                                   package_service_options,
                                                   package_referencenumber1)
        #    package_referencenumber2)

        shipment_service = ShipmentConfirm.shipment_service_option_type(
            SaturdayDelivery='None')

        return ([xml_package], shipment_service)
Example #6
0
    def _add_packages(self, cr, uid, omni, package, weight, context=None):
        """
        Adds the UPS style packages and return the XML element

        """
	picking_obj = self.pool.get('stock.picking')
	package_obj = self.pool.get('stock.out.package')

	ups_package = None
	omni_obj = self.pool.get('omniship')
        ups_uoms = omni_obj.get_ups_uoms(cr, uid, omni, context)

	#Solves a bug where weight is rejected by UPS api for being too low
	if weight < 0.5:
	    weight = 0.5

        package_type = ShipmentConfirm.packaging_type(
            Code='02')

        package_weight = ShipmentConfirm.package_weight_type(
            Weight=str(weight), Code=ups_uoms[0],
            Description='None')

	#Shipment References
	ref1 = str(12345)
	package_referencenumber1 = \
	    ShipmentConfirm.reference_type(Code='02', Value=ref1)

	#Ignore ref2 for now
#       ref2 = str(package.move_id.product_id.sku)
 #      package_referencenumber2 = \
  #         ShipmentConfirm.reference_type(Code='02', Value=ref2)


	#REVIEW: Value set to 0
        package_service_options = \
            ShipmentConfirm.package_service_options_type(
                ShipmentConfirm.insured_value_type(
                    MonetaryValue='0'))

        if ups_package and ups_package.length and ups_package.height and ups_package.width:

            package_dimension = ShipmentConfirm.dimensions_type(
                Code=ups_uoms[1], Length=str(ups_package.length),
                Height=str(ups_package.height), Width=str(ups_package.width),
                Description='None')
        else:
	    #Hardcode a failsafe here so there are no complaints!
            package_dimension = ShipmentConfirm.dimensions_type(
                Code=ups_uoms[1], Length=str(6.0),
                Height=str(6.0), Width=str(6.0),
                Description='None')

        xml_package = ShipmentConfirm.package_type(
            package_type,
            package_weight,
            package_dimension,
            package_service_options,
	    package_referencenumber1)
	#    package_referencenumber2)

        shipment_service = ShipmentConfirm.shipment_service_option_type(
            SaturdayDelivery='None')
        return ([xml_package], shipment_service)