diff --git a/product/ERP5/MovementGroup.py b/product/ERP5/MovementGroup.py index 62c105423f58a8a7cea319595164a533be6e6479..8c6bbe9f056c171c44eeaf1337af5cc170d6b65a 100755 --- a/product/ERP5/MovementGroup.py +++ b/product/ERP5/MovementGroup.py @@ -519,12 +519,12 @@ class FakeMovement: if total_quantity != 0: for movement in self.__movement_list: quantity = movement.getQuantity() - movement.setDeliveryRatio(quantity*delivery_ratio/total_quantity) + movement.edit(delivery_ratio=quantity*delivery_ratio/total_quantity) else: # Distribute equally ratio to all movement mvt_ratio = 1 / len(self.__movement_list) for movement in self.__movement_list: - movement.setDeliveryRatio(mvt_ratio) + movement.edit(delivery_ratio=mvt_ratio) def getPrice(self): """ @@ -616,8 +616,14 @@ class FakeMovement: def edit(self, **kw): """ - Simple call to each movement edit() method + Written in order to call edit in delivery builder, + as it is the generic way to modify object. """ - for movement in self.getMovementList(): - movement.edit(**kw) - + for key in kw.keys(): + if key == 'delivery_ratio': + self.setDeliveryRatio(kw[key]) + elif key == 'delivery_value': + self.setDeliveryValue(kw[key]) + else: + raise "FakeMovementError",\ + "Could not call edit on Fakeovement with parameters: %r" % key