[Erp5-report] r13859 - /erp5/trunk/products/ERP5/Tool/SimulationTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Apr 2 17:51:00 CEST 2007
Author: romain
Date: Mon Apr 2 17:50:59 2007
New Revision: 13859
URL: http://svn.erp5.org?rev=13859&view=rev
Log:
SequenceItem is now composed of SequenceItem instead of tuple.
Modified:
erp5/trunk/products/ERP5/Tool/SimulationTool.py
Modified: erp5/trunk/products/ERP5/Tool/SimulationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SimulationTool.py?rev=13859&r1=13858&r2=13859&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Mon Apr 2 17:50:59 2007
@@ -1788,17 +1788,19 @@
if portal_type == []:
portal_type = self.getPortalCalendarPeriodTypeList()
- result = self.Person_zGetAvailableTime(
+ sql_result = self.Person_zGetAvailableTime(
from_date=from_date,
to_date=to_date,
portal_type=portal_type,
node=node,
resource=resource,
- src__=src__, **kw)[0].total_quantity
- if src__:
- return result_list
- elif (result is None) or (result < 0):
+ src__=src__, **kw)
+ if not src__:
result = 0
+ if len(sql_result) == 1:
+ result = sql_result[0].total_quantity
+ else:
+ result = sql_result
return result
security.declareProtected(Permissions.AccessContentsInformation,
@@ -1818,6 +1820,9 @@
portal_type - only take rows in stock table which portal_type
is in portal_type parameter
+ resource - only take rows in stock table which resource_uid is
+ equivalent to resource
+
from_date (>=) - return period which start >= from_date
to_date (<) - return period which start < to_date
@@ -1830,18 +1835,29 @@
if portal_type == []:
portal_type = self.getPortalCalendarPeriodTypeList()
- result_list = self.Person_zGetAvailableTimeSequence(
- period_list=Sequence(from_date, to_date, **kw),
- portal_type=portal_type,
- node=node,
- resource=resource,
- src__=src__)
- for x in result_list:
- if x.total_quantity < 0:
- x.total_quantity = 0
- return result_list
+ sequence = Sequence(from_date, to_date, **kw)
+ for sequence_item in sequence:
+ setattr(sequence_item, 'total_quantity',
+ self.getAvailableTime(
+ from_date=sequence_item.from_date,
+ to_date=sequence_item.to_date,
+ portal_type=portal_type,
+ node=node,
+ resource=resource,
+ src__=src__))
+ return sequence
from Products.ERP5Type.DateUtils import addToDate
+
+class SequenceItem:
+ """
+ SequenceItem define a time period.
+ period.
+ """
+ def __init__(self, from_date, to_date):
+ self.from_date = from_date
+ self.to_date = to_date
+
class Sequence:
"""
Sequence is a iterable object, which calculate a range of time
@@ -1878,8 +1894,8 @@
day=day,
month=month,
year=year)
- self.item_list.append((current_from_date,
- current_to_date))
+ self.item_list.append(SequenceItem(current_from_date,
+ current_to_date))
current_from_date = current_to_date
def __len__(self):
@@ -1897,5 +1913,7 @@
InitializeClass(Sequence)
allow_class(Sequence)
+InitializeClass(SequenceItem)
+allow_class(SequenceItem)
InitializeClass(SimulationTool)
More information about the Erp5-report
mailing list