Use related sale line on update_sale process.

This commit is contained in:
Sergio Morillo 2019-11-28 13:03:41 +01:00
parent 7be685c5ff
commit fa01bc0fed
1 changed files with 8 additions and 2 deletions

10
load.py
View File

@ -250,7 +250,7 @@ class LoadOrder(metaclass=PoolMeta):
if not _add and len(uls) == len(self.unit_loads):
self.raise_user_error('unload_cancel', self.rec_name)
keyfunc = partial(self._group_line_key, uls)
keyfunc = partial(self._group_sale_line_key, uls)
items = sorted(uls, key=keyfunc)
for key, grouped_items in groupby(items, key=keyfunc):
_groupitems = list(grouped_items)
@ -269,7 +269,7 @@ class LoadOrder(metaclass=PoolMeta):
sale_line = None
if self.sale:
sale_line = [l for l in self.sale.lines
if get_line_values(l) == list(key_dict.values())]
if get_line_values(l) == list(key_dict.values())]
if self.type == 'out':
if not sale_line:
@ -513,6 +513,12 @@ class LoadOrder(metaclass=PoolMeta):
return res + (('id', item.load_line.origin.id), )
return res
@classmethod
def _group_sale_line_key(cls, items, item):
if getattr(item, 'sale_line', None):
return (('id', item.sale_line.id), )
return cls._group_line_key(items, item)
class LoadOrderLine(metaclass=PoolMeta):
__name__ = 'carrier.load.order.line'