From cc2494444d488ec84ec93af5118f8a1b521f3f5e Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Mon, 18 Jul 2005 13:53:27 +0000 Subject: [PATCH] Bug fix: the implementation of edit in FakeMovement broke the simulation. setter method like setDeliveryRatio have to be called on FakeMovement. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3460 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/MovementGroup.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/product/ERP5/MovementGroup.py b/product/ERP5/MovementGroup.py index 62c105423f..8c6bbe9f05 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 -- 2.30.9