Commit 4c605d42 authored by Łukasz Nowak's avatar Łukasz Nowak

- interfaces for Business Process Modelling


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26647 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 872df53d
##############################################################################
#
# 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
"""
##############################################################################
#
# 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
##############################################################################
#
# 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
"""
##############################################################################
#
# 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
"""
##############################################################################
#
# 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
"""
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment