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)
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)