Support list as search operand on shipment measurements
Closes #13437 (grafted from 254da45259dc2b75b57f55c0e4d873d7c57e87a0) --HG-- branch : 7.0
This commit is contained in:
@@ -279,12 +279,24 @@ class MeasurementsMixin(object):
|
||||
measurement = Sum(move.internal_weight)
|
||||
if value is not None:
|
||||
kg = Uom(ModelData.get_id('product', 'uom_kilogram'))
|
||||
value = Uom.compute_qty(uom, value, kg, round=False)
|
||||
if isinstance(value, (int, float)):
|
||||
value = Uom.compute_qty(uom, value, kg, round=False)
|
||||
else:
|
||||
value = [
|
||||
Uom.compute_qty(uom, v, kg, round=False)
|
||||
if v is not None else v
|
||||
for v in value]
|
||||
else:
|
||||
measurement = Sum(move.internal_volume)
|
||||
if value is not None:
|
||||
liter = Uom(ModelData.get_id('product', 'uom_liter'))
|
||||
value = Uom.compute_qty(uom, value, liter, round=False)
|
||||
if isinstance(value, (int, float)):
|
||||
value = Uom.compute_qty(uom, value, liter, round=False)
|
||||
else:
|
||||
value = [
|
||||
Uom.compute_qty(uom, v, liter, round=False)
|
||||
if v is not None else v
|
||||
for v in value]
|
||||
|
||||
query = table.join(
|
||||
move, type_='LEFT',
|
||||
|
||||
@@ -187,8 +187,10 @@ class StockShipmentMeasurementsTestCase(CompanyTestMixin, ModuleTestCase):
|
||||
for clause, result in [
|
||||
([('weight', '=', 10)], [shipment]),
|
||||
([('weight', '=', 5)], []),
|
||||
([('weight', 'in', [10, 5])], [shipment]),
|
||||
([('volume', '=', 2)], [shipment]),
|
||||
([('volume', '=', 3)], []),
|
||||
([('volume', 'in', [2, 3])], [shipment]),
|
||||
]:
|
||||
msg = 'clause: %s' % clause
|
||||
self.assertEqual(Shipment.search(clause), result, msg=msg)
|
||||
|
||||
Reference in New Issue
Block a user