[Erp5-report] r27774 - /erp5/trunk/products/ERP5/Document/TradeCondition.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Jun 23 12:54:50 CEST 2009
Author: luke
Date: Tue Jun 23 12:54:45 2009
New Revision: 27774
URL: http://svn.erp5.org?rev=27774&view=rev
Log:
- it is needed to apply models only two times - once for real input movements, second one for generated values globally
Modified:
erp5/trunk/products/ERP5/Document/TradeCondition.py
Modified: erp5/trunk/products/ERP5/Document/TradeCondition.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/TradeCondition.py?rev=27774&r1=27773&r2=27774&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/TradeCondition.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/TradeCondition.py [utf8] Tue Jun 23 12:54:45 2009
@@ -224,19 +224,15 @@
trade_model_line_composed_list = \
self.getTradeModelLineComposedList(context)
- need_to_run = 1
- while need_to_run: # XXX Dangerous code. This can leed to infinite loop
- need_to_run = 0
+ # initialise run then rerun only once, as trade_model_line_composed_list
+ # is sorted in good way to have simple algorithm
+ for pass_type in ['initialise', 'rerun']:
for model_line in trade_model_line_composed_list:
- model_line_result = model_line.getAggregatedAmountList(context,
+ result.extend(model_line.getAggregatedAmountList(context,
movement_list=movement_list,
current_aggregated_amount_list=result,
- **kw)
- result.extend(model_line_result)
- if len(result) != len(movement_list):
- # something was added
- need_to_run = 1
- movement_list = result
+ **kw))
+ movement_list = result # apply model again on generated movements
# remove movement that should not be created
movement_list = []
More information about the Erp5-report
mailing list