Commit dc99420c authored by Jean-Paul Smets's avatar Jean-Paul Smets

Changed a bit the API

git-svn-id: https://svn.erp5.org/repos/public/erp5/sandbox/amount_generator@37438 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 42b81d32
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
############################################################################## ##############################################################################
# #
# Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved. # Copyright (c) 2009 Nexedi SA and Contributors. All Rights Reserved.
# Łukasz Nowak <luke@nexedi.com> # ?ukasz Nowak <luke@nexedi.com>
# #
# WARNING: This program as such is intended to be used by professional # WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential # programmers who take the whole responsibility of assessing all potential
...@@ -34,6 +34,7 @@ from Products.ERP5.MovementGroup import MovementGroupNode ...@@ -34,6 +34,7 @@ from Products.ERP5.MovementGroup import MovementGroupNode
from Products.ERP5Type.TransactionalVariable import getTransactionalVariable from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from Products.ERP5Type.CopySupport import CopyError, tryMethodCallWithTemporaryPermission from Products.ERP5Type.CopySupport import CopyError, tryMethodCallWithTemporaryPermission
from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
from Products.ERP5.ExplanationCache import _getExplanationCache
from Acquisition import aq_parent, aq_inner from Acquisition import aq_parent, aq_inner
class CollectError(Exception): pass class CollectError(Exception): pass
...@@ -41,6 +42,8 @@ class MatrixError(Exception): pass ...@@ -41,6 +42,8 @@ class MatrixError(Exception): pass
class DuplicatedPropertyDictKeysError(Exception): pass class DuplicatedPropertyDictKeysError(Exception): pass
class SelectMethodError(Exception): pass class SelectMethodError(Exception): pass
from zLOG import LOG
class BPMBuilder(Alarm): class BPMBuilder(Alarm):
"""Top class for builders. """Top class for builders.
XXX-JPS Wrong Naming - Abbreviation (BPM) XXX-JPS Wrong Naming - Abbreviation (BPM)
...@@ -83,7 +86,8 @@ class BPMBuilder(Alarm): ...@@ -83,7 +86,8 @@ class BPMBuilder(Alarm):
security.declareProtected(Permissions.View, 'build') security.declareProtected(Permissions.View, 'build')
def build(self, tag=None, input_movement_list=None, def build(self, tag=None, input_movement_list=None,
existing_delivery_list=None, select_method_dict=None, **kwargs): existing_delivery_list=None, select_method_dict=None,
explanation=None, business_link=None, **kwargs):
"""Builds document according to self configuration mixed with passed parameters """Builds document according to self configuration mixed with passed parameters
Selecting parameters (like input movement list) might be passed directly Selecting parameters (like input movement list) might be passed directly
...@@ -100,15 +104,27 @@ class BPMBuilder(Alarm): ...@@ -100,15 +104,27 @@ class BPMBuilder(Alarm):
self.callBeforeBuildingScript() self.callBeforeBuildingScript()
# Select movements # Select movements
if input_movement_list is None: if input_movement_list is None:
if not select_method_dict.has_key('causality_uid'): if explanation is not None:
explanation_cache = _getExplanationCache(explanation)
path = explanation_cache.getSimulationPathPatternList()
else:
path = select_method_dict.get('path', None)
if business_link is not None:
causality_uid = business_link.getUid()
else:
causality_uid = select_method_dict.get('causality_uid', None)
select_method_dict.update(dict(causality_uid=causality_uid, path=path))
if select_method_dict.get('causality_uid') is None:
business_link_value_list = self.getRelatedBusinessLinkValueList() business_link_value_list = self.getRelatedBusinessLinkValueList()
if len(business_link_value_list) > 0: if len(business_link_value_list) > 0:
# use only Business Link related movements # use only Business Link related movements
select_method_dict['causality_uid'] = [q.getUid() for q in business_link_value_list] select_method_dict['causality_uid'] = [q.getUid() for q in business_link_value_list]
# do search # do search
LOG('select_method_dict', 0, repr(select_method_dict))
input_movement_value_list = self.searchMovementList( input_movement_value_list = self.searchMovementList(
delivery_relative_url_list=existing_delivery_list, delivery_relative_url_list=existing_delivery_list, # XXX-JPS what is the purpose of existing_delivery_list
**select_method_dict) **select_method_dict)
LOG('input_movement_value_list', 0, repr(input_movement_value_list))
else: else:
# movements were passed directly either by url or by value # movements were passed directly either by url or by value
if isinstance(input_movement_list[0], str): if isinstance(input_movement_list[0], str):
......
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