From 7440ad4d5241b412cd008e9cb6df6475b98c0854 Mon Sep 17 00:00:00 2001
From: Kazuhiko Shiozaki <kazuhiko@nexedi.com>
Date: Tue, 26 Jan 2010 14:17:18 +0000
Subject: [PATCH] remove an obsolete experimental code.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@31983 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/NewOrderRule.py | 153 --------------------------
 1 file changed, 153 deletions(-)
 delete mode 100644 product/ERP5/Document/NewOrderRule.py

diff --git a/product/ERP5/Document/NewOrderRule.py b/product/ERP5/Document/NewOrderRule.py
deleted file mode 100644
index 23c4df6e70..0000000000
--- a/product/ERP5/Document/NewOrderRule.py
+++ /dev/null
@@ -1,153 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2009 Nexedi SARL and Contributors. All Rights Reserved.
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsibility of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# guarantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-##############################################################################
-"""
-XXX This file is experimental for new simulation implementation, and
-will replace OrderRule.
-"""
-
-import zope.interface
-from AccessControl import ClassSecurityInfo
-from Products.ERP5Type import Permissions, PropertySheet, interfaces
-from Products.ERP5.Document.Predicate import Predicate
-from Products.ERP5.mixin.rule import RuleMixin
-from Products.ERP5.mixin.movement_collection_updater import \
-     MovementCollectionUpdaterMixin
-from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
-
-# XXX this class should be moved to Rule.py once new simulation is fully
-# integrated.
-class Rule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
-  # Declarative security
-  security = ClassSecurityInfo()
-  security.declareObjectProtected(Permissions.AccessContentsInformation)
-
-  # Declarative interfaces
-  zope.interface.implements(interfaces.IRule,
-                            interfaces.IDivergenceController,
-                            interfaces.IMovementCollectionUpdater,)
-
-  # Default Properties
-  property_sheets = (
-    PropertySheet.Base,
-    PropertySheet.XMLObject,
-    PropertySheet.CategoryCore,
-    PropertySheet.DublinCore,
-    PropertySheet.Task,
-    PropertySheet.Predicate,
-    PropertySheet.Reference,
-    PropertySheet.Version,
-    PropertySheet.Rule
-    )
-
-  security.declareProtected(Permissions.View, 'getDivergenceList')
-  def getDivergenceList(self, movement):
-    """
-    Returns a list of divergences of the movements provided
-    in delivery_or_movement.
-
-    movement -- a movement, a delivery, a simulation movement,
-                or a list thereof
-    """
-    if movement.getDelivery() is None:
-      return []
-    result_list = []
-    for divergence_tester in self._getDivergenceTesterList(
-      exclude_quantity=False):
-      result = divergence_tester.explain(movement)
-      if isinstance(result, (list, tuple)): # for compatibility
-        result_list.extend(result)
-      elif result is not None:
-        result_list.append(result)
-    return result_list
-
-class NewOrderRule(Rule):
-  """
-  Order Rule object make sure an Order in the simulation
-  is consistent with the real order
-
-  WARNING: what to do with movement split ?
-  """
-  # CMF Type Definition
-  meta_type = 'ERP5 New Order Rule'
-  portal_type = 'New Order Rule'
-
-  # XXX this method is missing in interface.
-  def isOrderable(self, movement):
-    return 1
-
-  # XXX this method is missing in interface.
-  def isDeliverable(self, movement):
-    if movement.getSimulationState() in movement.getPortalDraftOrderStateList():
-      return 0
-    return 1
-
-  def _getMovementGenerator(self):
-    """
-    Return the movement generator to use in the expand process
-    """
-    return OrderRuleMovementGenerator()
-
-  def _getMovementGeneratorContext(self, context):
-    """
-    Return the movement generator context to use for expand
-    """
-    return context
-
-  def _getMovementGeneratorMovementList(self):
-    """
-    Return the movement lists to provide to the movement generator
-    """
-    return []
-
-  def _isProfitAndLossMovement(self, movement):
-    # For a kind of trade rule, a profit and loss movement lacks source
-    # or destination.
-    return (movement.getSource() is None or movement.getDestination() is None)
-
-class OrderRuleMovementGenerator(object):
-  def getGeneratedMovementList(self, context, movement_list=None,
-                                rounding=False):
-    """
-    Input movement list comes from order
-
-    XXX This implementation is very primitive, and does not support BPM,
-    i.e. business paths are not taken into account.
-    """
-    order = context.getDefaultCausalityValue()
-    if order is None:
-      return []
-    ret = []
-    for movement in order.getMovementList(
-      portal_type=order.getPortalOrderMovementTypeList()):
-      kw = _getPropertyAndCategoryList(movement)
-      simulation_movement = context.newContent(
-        portal_type=RuleMixin.movement_type,
-        temp_object=True,
-        order_value=movement,
-        **kw)
-      ret.append(simulation_movement)
-    return ret
-- 
2.30.9