From 4c605d429012f25b38f8176815c76f6028cd4972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Mon, 27 Apr 2009 09:16:08 +0000 Subject: [PATCH] - interfaces for Business Process Modelling git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26647 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Interface/IBusinessBuildable.py | 67 ++++++++++++++ .../ERP5/Interface/IBusinessCompletable.py | 64 ++++++++++++++ product/ERP5/Interface/IBusinessPath.py | 57 ++++++++++++ product/ERP5/Interface/IBusinessProcess.py | 87 +++++++++++++++++++ product/ERP5/Interface/IBusinessState.py | 33 +++++++ 5 files changed, 308 insertions(+) create mode 100644 product/ERP5/Interface/IBusinessBuildable.py create mode 100644 product/ERP5/Interface/IBusinessCompletable.py create mode 100644 product/ERP5/Interface/IBusinessPath.py create mode 100644 product/ERP5/Interface/IBusinessProcess.py create mode 100644 product/ERP5/Interface/IBusinessState.py diff --git a/product/ERP5/Interface/IBusinessBuildable.py b/product/ERP5/Interface/IBusinessBuildable.py new file mode 100644 index 0000000000..a16247385d --- /dev/null +++ b/product/ERP5/Interface/IBusinessBuildable.py @@ -0,0 +1,67 @@ +############################################################################## +# +# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets-Solanes <jp@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 zope.interface import Interface + +class IBusinessBuildable(Interface): + """Business Buildable interface specification + """ + def isBuildable(explanation): + """Returns True if any of the related Simulation Movement + is buildable and if the predecessor state is completed. + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def isPartiallyBuildable(explanation): + """Returns True if any of the related Simulation Movement + is buildable and if the predecessor state is partially completed. + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def isFrozen(explanation): + """Returns True if all related movements in the simulation + are frozen + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + + XXX - could be redundant with isBuildable + (isFrozen = not isBuildable ?) + """ + + def build(explanation): + """Builds all related movements in the simulation + using the builders of Business Path + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ diff --git a/product/ERP5/Interface/IBusinessCompletable.py b/product/ERP5/Interface/IBusinessCompletable.py new file mode 100644 index 0000000000..9dad669adc --- /dev/null +++ b/product/ERP5/Interface/IBusinessCompletable.py @@ -0,0 +1,64 @@ +############################################################################## +# +# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets-Solanes <jp@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 zope.interface import Interface + +class IBusinessCompletable(Interface): + """Business Completable interface specification + + Business states and path can be completed or partially completed. + """ + def isCompleted(explanation): + """True if all related simulation movements for this explanation + document are delivered and in simulation state which is considered + as finished. + """ + + def isPartiallyCompleted(explanation): + """True if some related simulation movements for this explanation + document are delivered and in simulation state which is considered + as finished. + """ + + def getExpectedCompletionDate(task): + """Returns the date at which the given state is expected to + be completed, based on the start_date and stop_date of + the given task document. + + 'task' is a document which follows the ITaskGetter interface + (getStartDate, getStopDate) + """ + + def getExpectedCompletionDuration(task): + """Returns the duration at which the the state + if expected to be completed, based on the start_date + and stop_date of the explanation document. + + 'task' is a document which follows the ITaskGetter interface + (getStartDate, getStopDate) + """ \ No newline at end of file diff --git a/product/ERP5/Interface/IBusinessPath.py b/product/ERP5/Interface/IBusinessPath.py new file mode 100644 index 0000000000..a72178cb6a --- /dev/null +++ b/product/ERP5/Interface/IBusinessPath.py @@ -0,0 +1,57 @@ +############################################################################## +# +# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets-Solanes <jp@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 Products.ERP5.Interface.IBusinessCompletable import IBusinessCompletable +from Products.ERP5.Interface.IBusinessBuildable import IBusinessBuildable + +class IBusinessPath(IBusinessCompletable, IBusinessBuildable): + """Business Path interface specification + """ + def getExpectedStartDate(task, predecessor_date=None): + """Returns the expected start date for this + path based on the task and provided predecessor_date. + + 'task' is a document which follows the ITaskGetter interface + (getStartDate, getStopDate) and defined the reference dates + for the business process execution + + 'predecessor_date' can be provided as predecessor date and + to override the date provided in the task + """ + + def getExpectedStopDate(task, predecessor_date=None): + """Returns the expected stop date for this + path based on the task and provided predecessor_date. + + 'task' is a document which follows the ITaskGetter interface + (getStartDate, getStopDate) and defined the reference dates + for the business process execution + + 'predecessor_date' can be provided as predecessor date and + to override the date provided in the task + """ diff --git a/product/ERP5/Interface/IBusinessProcess.py b/product/ERP5/Interface/IBusinessProcess.py new file mode 100644 index 0000000000..1acc3631c0 --- /dev/null +++ b/product/ERP5/Interface/IBusinessProcess.py @@ -0,0 +1,87 @@ +############################################################################## +# +# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets-Solanes <jp@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 Products.ERP5.Interface.IBusinessCompletable import IBusinessCompletable +from Products.ERP5.Interface.IBusinessBuildable import IBusinessBuildable + +class IBusinessProcess(IBusinessCompletable, IBusinessBuildable): + """Business Process interface specification + """ + def getBuildablePathValueList(explanation): + """Returns the list of Business Path which are buildable + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getCompletedStateValueList(explanation): + """Returns the list of Business States which are completed + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getPartiallyCompletedStateValueList(explanation): + """Returns the list of Business States which are partially + completed + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getLatestCompletedStateValue(explanation): + """Returns a completed Business State with no succeeding + completed Business Path + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getLatestPartiallyCompletedStateValue(explanation): + """Returns a partially completed Business State with no + succeeding partially completed Business Path + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getLatestCompletedStateValueList(explanation): + """Returns all completed Business State with no succeeding + completed Business Path + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ + + def getLatestPartiallyCompletedStateValueList(explanation): + """Returns all partially completed Business State with no + succeeding partially completed Business Path + + 'explanation' is the Order or Item or Document which is the + cause of a root applied rule in the simulation + """ diff --git a/product/ERP5/Interface/IBusinessState.py b/product/ERP5/Interface/IBusinessState.py new file mode 100644 index 0000000000..1715947a1c --- /dev/null +++ b/product/ERP5/Interface/IBusinessState.py @@ -0,0 +1,33 @@ +############################################################################## +# +# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. +# Jean-Paul Smets-Solanes <jp@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 Products.ERP5.Interface.IBusinessCompletable import IBusinessCompletable + +class IBusinessState(IBusinessCompletable): + """Business State interface specification + """ -- 2.30.9