Commit 00657d70 authored by Jean-Paul Smets's avatar Jean-Paul Smets

Initial upload.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@30607 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent a392b9d0
# -*- coding: utf-8 -*-
##############################################################################
#
# 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 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 advised 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 IMovementCollection(Interface):
"""Movement Collection interface specification
Documents which implement IMovementCollection provide
a list access to all movements which they contain.
IMovementCollection is the abstraction of all classes
which contain movements. This includes Deliveries,
Applied Rules, etc.
TODO:
- extract from Delivery.py class all methods
which are common to ApplieRule.py
- should IMovementCollection be designed
in such way that DeliveryLine is also
an IMovementCollection ?
"""
def getMovementList(portal_type=None, **kw):
"""
Returns all movements of the collection
"""
# -*- coding: utf-8 -*-
##############################################################################
#
# 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 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 advised 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 IMovementCollectionDiff(Interface):
"""Movement Collection Diff interface specification
Documents which implement IMovementCollectionDiff
are used to represent the movements which should be
added, updated or deleted in an IMovementCollection.
They are usually generated and used by
IMovementCollectionUpdater.
"""
def getDeletableMovementList():
"""
Returns the list of movements which need
to be deleted.
"""
def getNewMovementList():
"""
Returns a list temp movements which represent new
movements to add to an existing IMovementCollection.
"""
def getUpdatableMovementList():
"""
Returns the list of movements which need
to be updated.
"""
def getMovementPropertyDict(movement):
"""
Returns a dict of all properties and values
to update an existing movement.
"""
# -*- coding: utf-8 -*-
##############################################################################
#
# 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 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 advised 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 IMovementCollectionUpdater(Interface):
"""Movement Collection Updater interface specification
Documents which implement IMovementCollectionUpdater
usually invoke an IMovementGenerator to generate
an IMovementList and compare it to another IMovementList
obtained from an IMovementCollection, thus generating
an IMovementCollectionDiff.
"""
def getMovementCollectionDiff(context, rounding=False, movement_generator=None):
"""
Return a IMovementCollectionDiff by comparing movements
the list of movements of context and the list of movements
generated by movement_generator on context.
context -- an IMovementCollection usually, possibly
an IMovementList or an IMovement
movement_generator -- an optional IMovementGenerator
(if not specified, a context implicit
IMovementGenerator will be used)
"""
def updateMovementCollection(context, rounding=False, movement_generator=None):
"""
Invoke getMovementCollectionDiff and update context with
the resulting IMovementCollectionDiff.
context -- an IMovementCollection usually, possibly
an IMovementList or an IMovement
movement_generator -- an optional IMovementGenerator
(if not specified, a context implicit
IMovementGenerator will be used)
"""
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
# Jean-Paul Smets-Solanes <jp@nexedi.com>
# Łukasz Nowak <luke@nexedi.com>
#
# 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 advised 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 IMovementGenerator(Interface):
"""Movement Generator interface specification
Documents which implement IMovementGenerator
can be used to generate an IMovementList from
an existing IMovementCollection, IMovementList or
IMovement. Typical IMovementGenerator are Rules
and Trade Conditions.
"""
def getAggregatedMovementList(context, movement_list=None, rounding=False):
"""
Returns an IMovementList generated by a model a model applied to the
context.
context - an IMovementCollection, an IMovementList or an IMovement
movement_list - optional IMovementList which can be passed explicitely
whenever context is an IMovementCollection and whenever
we want to filter context.geMovementList
rounding - boolean argument, which controls if rounding shall be applied on
generated movements or not
NOTE:
- implement rounding appropriately (True or False seems
simplistic)
"""
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