[Erp5-report] r9866 - /erp5/trunk/products/ERP5/Document/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Sep 13 14:50:23 CEST 2006
Author: romain
Date: Wed Sep 13 14:50:19 2006
New Revision: 9866
URL: http://svn.erp5.org?rev=9866&view=rev
Log:
Copy properties on the Simulation Movement, instead of using acquisition.
Thanks to Rafael Monnerat.
Modified:
erp5/trunk/products/ERP5/Document/OrderRule.py
erp5/trunk/products/ERP5/Document/ProductionOrderRule.py
Modified: erp5/trunk/products/ERP5/Document/OrderRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderRule.py?rev=9866&r1=9865&r2=9866&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderRule.py (original)
+++ erp5/trunk/products/ERP5/Document/OrderRule.py Wed Sep 13 14:50:19 2006
@@ -95,10 +95,11 @@
else:
existing_movement_list.append(movement)
immutable_movement_list.append(movement)
-
+
# Create or modify movements
for movement in order_movement_list:
related_order = movement.getOrderRelatedValue()
+ property_dict = self._getExpandablePropertyDict(applied_rule, movement)
if related_order is None:
if movement.getParentUid() == movement.getExplanationUid():
# We are on a line
@@ -107,7 +108,6 @@
# We are on a cell
new_id = "%s_%s" % (movement.getParentId(), movement.getId())
# Generate a simulation movement
- LOG("OrderRule, expand", WARNING, "Hardcoded state list")
applied_rule.newContent(
portal_type=movement_type,
id=new_id,
@@ -115,34 +115,15 @@
order_ratio=1,
delivery_ratio=1,
deliverable=1,
-# source=movement.getSource(),
-# source_section=movement.getSourceSection(),
-# destination=movement.getDestination(),
-# destination_section=movement.getDestinationSection(),
-# quantity=movement.getQuantity(),
-# resource=movement.getResource(),
-# variation_category_list=movement.getVariationCategoryList(),
-# variation_property_dict=movement.getVariationPropertyDict(),
-# start_date=movement.getStartDate(),
-# stop_date=movement.getStopDate(),
- **kw)
-
+ **property_dict )
+
elif related_order in existing_movement_list:
if related_order not in immutable_movement_list:
# modification allowed
related_order.edit(
order_value=movement,
-# source=movement.getSource(),
-# source_section=movement.getSourceSection(),
-# destination=movement.getDestination(),
-# destination_section=movement.getDestinationSection(),
-# quantity=movement.getQuantity(),
-# resource=movement.getResource(),
-# variation_category_list=movement.getVariationCategoryList(),
-# variation_property_dict=movement.getVariationPropertyDict(),
-# start_date=movement.getStartDate(),
-# stop_date=movement.getStopDate(),
- **kw)
+ **property_dict)
+
#related_order.setLastExpandSimulationState(order.getSimulationState())
else:
@@ -169,3 +150,26 @@
Checks that the movement is divergent
"""
return Rule.isDivergent(self, movement)
+
+ security.declareProtected(Permissions.AccessContentsInformation,
+ '_getExpandablePropertyDict')
+ def _getExpandablePropertyDict(self, applied_rule, movement,
+ default_property_list=None, **kw):
+ """
+ Return a Dictionary with the Properties used to edit
+ the simulation movement
+ """
+ property_dict = {}
+
+ if default_property_list is None:
+ LOG("Order Rule , _getPropertiesTo", WARNING,
+ "Hardcoded properties set")
+ default_property_list = (
+ 'source_section', 'destination_section', 'source',
+ 'destination', 'resource', 'variation_category_list',
+ 'aggregate_list', 'start_date', 'stop_date')
+
+ for prop in default_property_list:
+ property_dict[prop] = movement.getProperty(prop)
+
+ return property_dict
Modified: erp5/trunk/products/ERP5/Document/ProductionOrderRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/ProductionOrderRule.py?rev=9866&r1=9865&r2=9866&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/ProductionOrderRule.py (original)
+++ erp5/trunk/products/ERP5/Document/ProductionOrderRule.py Wed Sep 13 14:50:19 2006
@@ -33,7 +33,7 @@
from Products.ERP5.Document.TransformationSourcingRule import\
TransformationSourcingRuleMixin
-from zLOG import LOG
+from zLOG import LOG, WARNING
class ProductionOrderRule(OrderRule):
"""
@@ -60,14 +60,26 @@
)
# Simulation workflow
- security.declareProtected(Permissions.ModifyPortalContent, 'expand')
- def expand(self, applied_rule, force=0, **kw):
+ security.declareProtected(Permissions.AccessContentsInformation,
+ '_getExpandablePropertyDict')
+ def _getExpandablePropertyDict(self, applied_rule, movement,
+ default_property_list=None, **kw):
"""
- Expands the current movement downward.
- -> new status -> expanded
- An applied rule can be expanded only if its parent movement
- is expanded.
+ Return a Dictionary with the Properties used to edit
+ the simulation movement.
"""
+ property_dict = {}
+
+ if default_property_list is None:
+ LOG("Order Rule , _getExpandablePropertyDict", WARNING,
+ "Hardcoded properties set")
+ default_property_list = (
+ 'destination_section',
+ 'destination', 'resource',
+ 'variation_category_list',
+ 'aggregate_list',
+ 'start_date', 'stop_date')
+
supply_chain = self.getSupplyChain(applied_rule)
# We got a supply chain
# Try to get the last SupplyLink
@@ -76,14 +88,17 @@
# Now, we have to generate Simulation Movement, in order to
# create a ProductionPackingList.
destination_node = last_link.getDestinationValue()
- source_value = destination_node.getDestinationValue()
- source_section_value = last_link.getDestinationSectionValue()
+ source_value = destination_node.getDestination()
+ source_section_value = last_link.getDestinationSection()
if source_value is not None:
- kw["source_value"] = source_value
+ property_dict["source"] = source_value
if source_section_value is not None:
- kw["source_section_value"] = source_section_value
- # Pass to base class
- OrderRule.expand(self, applied_rule, force=force, **kw)
+ property_dict["source_section"] = source_section_value
+
+ for prop in default_property_list:
+ property_dict[prop] = movement.getProperty(prop)
+
+ return property_dict
from Products.ERP5Type.Utils import monkeyPatch
monkeyPatch(TransformationSourcingRuleMixin, ProductionOrderRule)
More information about the Erp5-report
mailing list