[IMP] delivery_gls_nl: update to convert imperial units to metric units

For clients with Odoo databases that use imperial units for gross weight and want to create labels to using the gls connector.

H4321
This commit is contained in:
Leighton Pennicott
2020-11-23 19:07:32 -05:00
committed by Leo Pinedo
parent 3c9b3cf380
commit 6ef048e06a

View File

@@ -232,21 +232,23 @@ class ProviderGLSNL(models.Model):
# }
if picking.package_ids:
for package in picking.package_ids:
rate = self._gls_nl_rate(to.country_id.code, package.shipping_weight or 0.0)
converted_weight = self._gls_convert_weight(package.shipping_weight)
rate = self._gls_nl_rate(to.country_id.code, converted_weight or 0.0)
if rate and rate != self.GLS_NL_COUNTRY_NOT_FOUND:
total_rate += rate
unit = {
'unitId': package.name,
'weight': package.shipping_weight,
'weight': converted_weight
}
request_body['units'].append(unit)
else:
rate = self._gls_nl_rate(to.country_id.code, picking.shipping_weight or 0.0)
converted_weight = self._gls_convert_weight(picking.shipping_weight)
rate = self._gls_nl_rate(to.country_id.code, converted_weight or 0.0)
if rate and rate != self.GLS_NL_COUNTRY_NOT_FOUND:
total_rate += rate
unit = {
'unitId': picking.name,
'weight': picking.shipping_weight,
'weight': converted_weight,
}
request_body['units'].append(unit)
@@ -292,3 +294,11 @@ class ProviderGLSNL(models.Model):
picking.write({'carrier_tracking_ref': '', 'carrier_price': 0.0})
except HTTPError as e:
raise ValidationError(e)
def _gls_convert_weight(self, weight):
get_param = self.env['ir.config_parameter'].sudo().get_param
product_weight_in_lbs_param = get_param('product.weight_in_lbs')
if product_weight_in_lbs_param == '1':
return weight / 2.20462
else:
return weight