Ejemplo n.º 1
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)
Ejemplo n.º 2
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)