diff --git a/product/ERP5/Document/OpenOrderRule.py b/product/ERP5/Document/OpenOrderRule.py index f692ecdcf1cf7e7e0732595c11b82c6d4d607356..daa11d130bd2a979a0d7d5fe7f35ba77fef1eb90 100644 --- a/product/ERP5/Document/OpenOrderRule.py +++ b/product/ERP5/Document/OpenOrderRule.py @@ -32,7 +32,6 @@ from Products.ERP5.Document.DeliveryRule import DeliveryRule from zLOG import LOG, WARNING from DateTime import DateTime - class OpenOrderRule(DeliveryRule): """ Order Rule object make sure an Order in the simulation @@ -73,8 +72,12 @@ class OpenOrderRule(DeliveryRule): delivered child, and is in order, it can be modified. Else, it cannot be modified. """ - movement_type = 'Simulation Movement' order = applied_rule.getDefaultCausalityValue() + if getattr(order, 'expandOpenOrderRule', None) is not None: + # Delegate implementation of expand to the SubscriptionItem or + # to the OpenOrder instance + return order.expandOpenOrderRule(applied_rule, force=force, **kw) + movement_type = 'Simulation Movement' if order is not None: order_movement_list = order.getMovementList( portal_type=order.getPortalOrderMovementTypeList()) @@ -184,4 +187,4 @@ class OpenOrderRule(DeliveryRule): for periodicity_line in periodicity_line_list: result.extend(periodicity_line.getDatePeriodList(schedule_start_date, schedule_stop_date)) - return result + return result \ No newline at end of file