diff --git a/product/ERP5Legacy/Document/ProductionOrderModelRootSimulationRule.py b/product/ERP5Legacy/Document/ProductionOrderModelRootSimulationRule.py new file mode 100644 index 0000000000000000000000000000000000000000..79817336c262563ec0e11dddd4a0f313f00f7ad1 --- /dev/null +++ b/product/ERP5Legacy/Document/ProductionOrderModelRootSimulationRule.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved. +# Romain Courteaud <romain@nexedi.com> +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability 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 +# garantees 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +from AccessControl import ClassSecurityInfo +from Products.ERP5Type import Permissions, interfaces +from Products.ERP5Legacy.Document.ProductionOrderModelRule import ProductionOrderModelRule + +class ProductionOrderModelRootSimulationRule(ProductionOrderModelRule): + """ + Prouction Order Model Simulation Rule object use a Supply Chain to expand a + Production Order. + """ + + # CMF Type Definition + meta_type = 'ERP5 Production Order Model Root Simulation Rule' + portal_type = 'Production Order Model Root Simulation Rule' + + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) + + def _getExpandablePropertyUpdateDict(self, applied_rule, movement, + business_link, current_property_dict): + """Order rule specific update dictionary""" + return { + 'delivery': movement.getRelativeUrl(), + } diff --git a/product/ERP5Legacy/Document/ProductionOrderRootSimulationRule.py b/product/ERP5Legacy/Document/ProductionOrderRootSimulationRule.py new file mode 100644 index 0000000000000000000000000000000000000000..b6cdeaa300b178b12fd1f4f90ea54c76dab8b85c --- /dev/null +++ b/product/ERP5Legacy/Document/ProductionOrderRootSimulationRule.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (c) 2005 Nexedi SARL and Contributors. All Rights Reserved. +# Romain Courteaud <romain@nexedi.com> +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability 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 +# garantees 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +from AccessControl import ClassSecurityInfo +from Products.ERP5Type import Permissions, interfaces +from Products.ERP5Legacy.Document.ProductionOrderRule import ProductionOrderRule + +class ProductionOrderRootSimulationRule(ProductionOrderRule): + """ + Prouction Order Simulation Rule object use a Supply Chain to expand a + Production Order. + """ + + # CMF Type Definition + meta_type = 'ERP5 Production Order Root Simulation Rule' + portal_type = 'Production Order Root Simulation Rule' + + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) + + def _getExpandablePropertyUpdateDict(self, applied_rule, movement, + business_link, current_property_dict): + """Order rule specific update dictionary""" + return { + 'delivery': movement.getRelativeUrl(), + } diff --git a/product/ERP5Legacy/Document/RootAppliedRuleCausalityMovementGroup.py b/product/ERP5Legacy/Document/RootAppliedRuleCausalityMovementGroup.py new file mode 100644 index 0000000000000000000000000000000000000000..f56f497d4e1f125fef02ef924bbfc5a92c57d4b8 --- /dev/null +++ b/product/ERP5Legacy/Document/RootAppliedRuleCausalityMovementGroup.py @@ -0,0 +1,53 @@ +############################################################################## +# +# Copyright (c) 2008 Nexedi SA 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. +# +############################################################################## + +from Products.ERP5.Document.MovementGroup import MovementGroup + +class RootAppliedRuleCausalityMovementGroup(MovementGroup): + """ + The purpose of MovementGroup is to define how movements are grouped, + and how values are updated from simulation movements. + + This movement group is used to group movements whose root apply rule + has the same causality. + """ + meta_type = 'ERP5 Root Applied Rule Causality Movement Group' + portal_type = 'Root Applied Rule Causality Movement Group' + + def _getPropertyDict(self, movement, **kw): + property_dict = {} + root_causality_value = self._getRootCausalityValue(movement) + property_dict['root_causality_value_list'] = [root_causality_value] + return property_dict + + def test(self, movement, property_dict, **kw): + # We can always update + return True, property_dict + + def _getRootCausalityValue(self, movement): + """ Get the causality value of the root applied rule for a movement """ + return movement.getRootAppliedRule().getCausalityValue() diff --git a/product/ERP5Legacy/Document/TradeModelSimulationRule.py b/product/ERP5Legacy/Document/TradeModelSimulationRule.py new file mode 100644 index 0000000000000000000000000000000000000000..8e4c3149999ce228a12ab82fa65253c754f0a83b --- /dev/null +++ b/product/ERP5Legacy/Document/TradeModelSimulationRule.py @@ -0,0 +1,43 @@ +############################################################################## +# +# Copyright (c) 2010 Nexedi SA 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. +# +############################################################################## + +from AccessControl import ClassSecurityInfo +from Products.ERP5Type import Permissions +from Products.ERP5Legacy.Document.TradeModelRule import TradeModelRule + +class TradeModelSimulationRule(TradeModelRule): + """ + Rule for Trade Model + """ + # CMF Type Definition + meta_type = 'ERP5 Trade Model Simulation Rule' + portal_type = 'Trade Model Simulation Rule' + add_permission = Permissions.AddPortalContent + + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation)