diff --git a/product/ERP5/PropertySheet/Arrow.py b/product/ERP5/PropertySheet/Arrow.py index c74e623c6e2105c46f5e165206c59adef848fe4e..e8efd0e0db670e29dbb8f6ef0ffe873071b3e412 100644 --- a/product/ERP5/PropertySheet/Arrow.py +++ b/product/ERP5/PropertySheet/Arrow.py @@ -325,6 +325,7 @@ class Arrow: 'source_carrier', 'destination_carrier', 'source_referral', 'destination_referral', 'source_account', 'destination_account', + 'source_funding', 'destination_funding', #'source_advice', 'destination_advice', #'source_transport', 'destination_transport', # Virtual categories diff --git a/product/ERP5/Tool/SimulationTool.py b/product/ERP5/Tool/SimulationTool.py index c0d4188dcb817b72e336de6aa11039c44c153ce8..b7cc31d130e687f5b5f9a7519d0f3d4e0e3ecb98 100644 --- a/product/ERP5/Tool/SimulationTool.py +++ b/product/ERP5/Tool/SimulationTool.py @@ -575,13 +575,13 @@ class SimulationTool(BaseTool): # instances resource=None, node=None, payment=None, section=None, mirror_section=None, item=None, - function=None, project=None, transformed_resource=None, + function=None, project=None, funding=None, transformed_resource=None, # used for tracking input=0, output=0, # categories resource_category=None, node_category=None, payment_category=None, section_category=None, mirror_section_category=None, - function_category=None, project_category=None, + function_category=None, project_category=None, funding_category=None, # categories with strict membership resource_category_strict_membership=None, node_category_strict_membership=None, @@ -590,6 +590,7 @@ class SimulationTool(BaseTool): mirror_section_category_strict_membership=None, function_category_strict_membership=None, project_category_strict_membership=None, + funding_category_strict_membership=None, # simulation_state strict_simulation_state=0, simulation_state=None, transit_simulation_state = None, omit_transit=0, @@ -602,7 +603,7 @@ class SimulationTool(BaseTool): # uids resource_uid=None, node_uid=None, section_uid=None, payment_uid=None, mirror_node_uid=None, mirror_section_uid=None, function_uid=None, - project_uid=None, + project_uid=None, funding_uid=None, # omit input and output omit_input=0, omit_output=0, @@ -631,6 +632,9 @@ class SimulationTool(BaseTool): group_by_project=0, group_by_project_category=0, group_by_project_category_strict_membership=0, + group_by_funding=0, + group_by_funding_category=0, + group_by_funding_category_strict_membership=0, group_by_function=0, group_by_function_category=0, group_by_function_category_strict_membership=0, @@ -694,6 +698,7 @@ class SimulationTool(BaseTool): column_value_dict.set('resource_uid', resource_uid) column_value_dict.set('payment_uid', payment_uid) column_value_dict.set('project_uid', project_uid) + column_value_dict.set('funding_uid', funding_uid) column_value_dict.set('function_uid', function_uid) if column_value_dict.set('section_uid', section_uid): sql_kw['section_filtered'] = 1 @@ -705,6 +710,7 @@ class SimulationTool(BaseTool): column_value_dict.setUIDList('node_uid', node) column_value_dict.setUIDList('payment_uid', payment) column_value_dict.setUIDList('project_uid', project) + column_value_dict.setUIDList('funding_uid', funding) column_value_dict.setUIDList('function_uid', function) sql_kw['transformed_uid'] = self._generatePropertyUidList(transformed_resource) @@ -723,6 +729,7 @@ class SimulationTool(BaseTool): related_key_dict.setUIDList('resource_category_uid', resource_category) related_key_dict.setUIDList('node_category_uid', node_category) related_key_dict.setUIDList('project_category_uid', project_category) + related_key_dict.setUIDList('funding_category_uid', funding_category) related_key_dict.setUIDList('function_category_uid', function_category) related_key_dict.setUIDList('payment_category_uid', payment_category) if related_key_dict.setUIDList('section_category_uid', @@ -737,6 +744,8 @@ class SimulationTool(BaseTool): node_category_strict_membership) related_key_dict.setUIDList('project_category_strict_membership_uid', project_category_strict_membership) + related_key_dict.setUIDList('funding_category_strict_membership_uid', + funding_category_strict_membership) related_key_dict.setUIDList('function_category_strict_membership_uid', function_category_strict_membership) related_key_dict.setUIDList('payment_category_strict_membership_uid', @@ -839,6 +848,8 @@ class SimulationTool(BaseTool): column_group_by_expression_list.append('resource_uid') if group_by_project: column_group_by_expression_list.append('project_uid') + if group_by_funding: + column_group_by_expression_list.append('funding_uid') if group_by_function: column_group_by_expression_list.append('function_uid') if group_by_date: @@ -902,6 +913,14 @@ class SimulationTool(BaseTool): 'project_category_strict_membership_uid') related_key_select_expression_list.append( 'project_category_strict_membership_uid') + if group_by_funding_category: + related_key_group_by_expression_list.append('funding_category_uid') + related_key_select_expression_list.append('funding_category_uid') + if group_by_funding_category_strict_membership: + related_key_group_by_expression_list.append( + 'funding_category_strict_membership_uid') + related_key_select_expression_list.append( + 'funding_category_strict_membership_uid') if related_key_group_by_expression_list: new_kw['related_key_group_by'] = related_key_group_by_expression_list @@ -1108,7 +1127,7 @@ class SimulationTool(BaseTool): def _getDefaultGroupByParameters(self, ignore_group_by=0, group_by_node=0, group_by_mirror_node=0, group_by_section=0, group_by_mirror_section=0, - group_by_payment=0, group_by_project=0, + group_by_payment=0, group_by_project=0, group_by_funding=0, group_by_function=0, group_by_variation=0, group_by_sub_variation=0, group_by_movement=0, group_by_date=0, @@ -1136,7 +1155,7 @@ class SimulationTool(BaseTool): new_group_by_dict = {} if not ignore_group_by and group_by is None: if group_by_node or group_by_mirror_node or group_by_section or \ - group_by_project or group_by_function or \ + group_by_project or group_by_funding or group_by_function or \ group_by_mirror_section or group_by_payment or \ group_by_sub_variation or group_by_variation or \ group_by_movement or group_by_date or group_by_section_category or\