You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2008/10/19 15:17:43 UTC
svn commit: r706007 - in /ofbiz/trunk/specialpurpose/projectmgr:
script/org/ofbiz/project/ProjectPermissionServices.xml
script/org/ofbiz/project/ProjectServices.xml servicedef/secas.xml
servicedef/services.xml widget/forms/TaskForms.xml
Author: hansbak
Date: Sun Oct 19 06:17:42 2008
New Revision: 706007
URL: http://svn.apache.org/viewvc?rev=706007&view=rev
Log:
add testing/validation parties if a task is set to complete and there parties as defined in the project
Modified:
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectPermissionServices.xml
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
ofbiz/trunk/specialpurpose/projectmgr/servicedef/secas.xml
ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml
ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml
Modified: ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectPermissionServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectPermissionServices.xml?rev=706007&r1=706006&r2=706007&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectPermissionServices.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectPermissionServices.xml Sun Oct 19 06:17:42 2008
@@ -143,12 +143,21 @@
<!-- TASK -->
<if-compare field="sec_object" value="TASK" operator="equals">
- <set field="taskId" from-field="parameters.taskId" default-value="${parameters.workEffortId}"/>
- <if-empty field="taskId">
+ <if-not-empty field="parameters.workEffortParentId">
<set field="phaseId" from-field="parameters.workEffortParentId"/>
- </if-empty>
+ <else>
+ <if-not-empty field="parameters.taskId">
+ <set field="taskId" from-field="parameters.taskId"/>
+ <else>
+ <if-not-empty field="parameters.workEffortId">
+ <set field="taskId" from-field="parameters.workEfortId"/>
+ </if-not-empty>
+ </else>
+ </if-not-empty>
+ </else>
+ </if-not-empty>
<set field="partyId" from-field="parameters.userLogin.partyId"/>
- <call-simple-method method-name="checkProjectMembership"/>
+ <!--call-simple-method method-name="checkProjectMembership"/-->
<!-- log level="info" message="======ProjectMGR Security===== action: ${parameters.mainAction} object: ${sec_object} Id: ${parameters.taskId} PhaseId: ${parameters.workEffortParentId} resourceDescription: ${parameters.resourceDescription} isMember: ${isMember}"/-->
<entity-and list-name="custRequests" entity-name="WorkEffortCustRequestView">
<field-map field-name="workEffortId" env-name="taskId"/>
@@ -278,7 +287,7 @@
<set field="timesheetId" from-field="timesheet.timesheetId"/>
<set field="taskId" from-field="parameters.workEffortId"/>
<set field="partyId" from-field="timesheet.partyId"/>
- <call-simple-method method-name="checkProjectMembership"/>
+ <!-- call-simple-method method-name="checkProjectMembership"/-->
<!-- log level="info" message="======ProjectMGR Security===== action: ${mainAction} object: ${sec_object} timesheetId: ${timesheetId} from partyId: ${partyId} workEffortId: ${parameters.workEffortId} resourceDescription: ${parameters.resourceDescription}"/-->
<if>
<condition>
@@ -336,6 +345,7 @@
</simple-method>
<simple-method method-name="checkProjectMembership" short-description="check if a party is member of a project, input either 'taskId', 'phaseId' or 'projectId', returns 'isMember' ">
+ <!--log level="always" message="==========object = ${sec_object}, check project membershhip with the following data.. taskId: ${taskId} phaseId: ${phaseId} projectId: ${projectId} party: ${partyId}"></log-->
<if-not-empty field="taskId">
<entity-one entity-name="WorkEffort" value-name="task">
<field-map field-name="workEffortId" env-name="taskId"/>
Modified: ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=706007&r1=706006&r2=706007&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Sun Oct 19 06:17:42 2008
@@ -189,7 +189,6 @@
<now-date-to-env env-name="generalStartDate"/>
</else>
</if-not-empty>
- <log level="always" message="========== generalStartDate: ${generalStartDate}"></log>
<while>
<condition>
<if-empty field="generalStartDate"/>
@@ -385,15 +384,16 @@
</if-not-empty>
</loop>
- <!-- update the assignment status -->
+ <!-- update the assignment status if required -->
<if-compare field="parameters.checkComplete" value="Y" operator="equals">
<first-from-list entry-name="alreadyAssign" list-name="assigns"/>
<if-compare field="alreadyAssign.statusId" value="PAS_COMPLETED" operator="not-equals">
- <set field="parameters.partyId" from-field="timesheet.partyId"/>
- <set field="parameters.statusId" value="PAS_COMPLETED"/>
- <set field="parameters.roleTypeId" from-field="alreadyAssign.roleTypeId"/>
- <set field="parameters.fromDate" from-field="alreadyAssign.fromDate"/>
- <call-simple-method method-name="updateTaskAssigment"/>
+ <set field="upStat.partyId" from-field="timesheet.partyId"/>
+ <set field="upStat.statusId" value="PAS_COMPLETED"/>
+ <set field="upStat.roleTypeId" from-field="alreadyAssign.roleTypeId"/>
+ <set field="upStat.workEffortId" from-field="parameters.workEffortId"/>
+ <set field="upStat.fromDate" from-field="alreadyAssign.fromDate"/>
+ <call-service service-name="updateTaskAssigment" in-map-name="upStat"/>
</if-compare>
</if-compare>
</simple-method>
@@ -1198,4 +1198,55 @@
</if-empty>
</iterate>
</simple-method>
+
+ <simple-method method-name="addValidationPartiesToTask" short-description="SECA to add either project-testing or -approval parties to a task when a task is set to complete">
+ <!-- check if this is the last party which completed his task -->
+ <log level="always" message="============= check workEffort: ${parameters.workEffortId}"/>
+ <entity-condition entity-name="WorkEffortPartyAssignment" list-name="openTasks" filter-by-date="true">
+ <condition-list combine="and">
+ <condition-expr field-name="workEffortId" operator="equals" env-name="parameters.workEffortId"/>
+ <condition-expr field-name="statusId" operator="not-equals" value="PAS_COMPLETED"/>
+ <condition-expr field-name="partyId" operator="not-equals" env-name="parameters.partyId"/>
+ </condition-list>
+ </entity-condition>
+ <if-empty field="openTasks">
+ <set field="getProject.taskId" from-field="parameters.workEffortId"/>
+ <call-service service-name="getProjectIdAndNameFromTask" in-map-name="getProject">
+ <result-to-field result-name="projectId"/>
+ </call-service>
+ <!-- see who is reponsible for testing/validation in this project -->
+ <entity-condition entity-name="WorkEffortPartyAssignment" list-name="assigns" filter-by-date="true">
+ <condition-list combine="and">
+ <condition-expr field-name="workEffortId" operator="equals" env-name="projectId"/>
+ <condition-expr field-name="partyId" operator="not-equals" env-name="parameters.partyId"/><!-- should not test/val own work -->
+ <condition-list combine="or">
+ <condition-expr field-name="roleTypeId" operator="equals" value="PROVIDER_VALIDATOR"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="PROVIDER_TESTER"/>
+ </condition-list>
+ </condition-list>
+ </entity-condition>
+ <if-not-empty field="assigns">
+ <set field="addAssign.workEffortId" from-field="parameters.workEffortId"/>
+ <set field="addAssign.statusId" value="PAS_ASSIGNED"/>
+ <iterate entry-name="assign" list-name="assigns">
+ <make-value value-name="newAssign" entity-name="WorkEffortPartyAssignment"/>
+ <set field="newAssign.workEffortId" from-field="parameters.workEffortId"/>
+ <set field="newAssign.partyId" from-field="assign.partyId"/>
+ <set field="newAssign.roleTypeId" from-field="assign.roleTypeId"/>
+ <set field="newAssign.assignedByUserLoginId" value="system"/>
+ <now-date-to-env env-name="newAssign.fromDate"/>
+ <set field="newAssign.statusId" value="PAS_ASSIGNED"/>
+ <create-value value-name="newAssign"/>
+ </iterate>
+ <else>
+ <log level="info" message="No validation parties defined in this project: no validation parties added...."></log>
+ </else>
+ </if-not-empty>
+ <else>
+ <log level="info" message="Not the last party who completes his task: validation parties not added...."></log>
+ <log level="info" message="=====parties not completed: openTasks: ${openTasks}"></log>
+ </else>
+ </if-empty>
+ </simple-method>
+
</simple-methods>
Modified: ofbiz/trunk/specialpurpose/projectmgr/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/servicedef/secas.xml?rev=706007&r1=706006&r2=706007&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/servicedef/secas.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/servicedef/secas.xml Sun Oct 19 06:17:42 2008
@@ -21,10 +21,12 @@
<service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd">
- <!-- update task status, actual completion date when all assignments complete -->
- <!--eca service="updateTaskAssigment" event="commit">
- <condition field-name="statusId" operator="equals" value="PAS_COMPLETED"/>
- <action service="updateTaskStatus" mode="sync"/>
- </eca-->
-
+ <!-- check if testing or validation of completed tasks in this project is required, if so, assign the responsible party to the task -->
+ <eca service="updateTaskAssigment" event="invoke">
+ <condition field-name="statusId" operator="equals" value="PAS_COMPLETED"/>
+ <condition field-name="roleTypeId" operator="not-equals" value="PROVIDER_TESTER"/>
+ <condition field-name="roleTypeId" operator="not-equals" value="PROVIDER_VALIDATOR"/>
+ <action service="addValidationPartiesToTask" mode="sync"/>
+ </eca>
+
</service-eca>
Modified: ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml?rev=706007&r1=706006&r2=706007&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/servicedef/services.xml Sun Oct 19 06:17:42 2008
@@ -246,5 +246,13 @@
<attribute name="invoiceId" type="String" mode="INOUT" optional="true"/>
<attribute name="reCreate" type="String" mode="IN" optional="true"/>
</service>
-
+ <service name="addValidationPartiesToTask" engine="simple" auth="true"
+ location="org/ofbiz/project/ProjectServices.xml" invoke="addValidationPartiesToTask">
+ <description>SECA to add either project-testing or -approval parties to a task when a task is set to complete</description>
+ <attribute name="workEffortId" type="String" mode="IN" optional="true"/>
+ <attribute name="partyId" type="String" mode="IN" optional="true"/>
+ <attribute name="roleTypeId" type="String" mode="IN" optional="true"/>
+ <attribute name="statusId" type="String" mode="IN" optional="true"/>
+ </service>
+
</services>
Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml?rev=706007&r1=706006&r2=706007&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/TaskForms.xml Sun Oct 19 06:17:42 2008
@@ -530,7 +530,7 @@
<field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display type="date"/></field>
<field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field>
<field name="deleteButton" widget-style="smallSubmit"><submit button-type="button"/></field>
- <field name="complete"><hyperlink description="set to Complete" target="updateTaskPartyAssign?workEffortId=${workEffortId}&partyId=${partyId}&roleTypeId=${roleTypeId}&fromDate=${fromDate}&statusId=CAL_COMPLETED&thruDate=${nowDate}"/></field>
+ <field name="complete"><hyperlink description="set to Complete" target="updateTaskPartyAssign?workEffortId=${workEffortId}&partyId=${partyId}&roleTypeId=${roleTypeId}&fromDate=${fromDate}&statusId=PAS_COMPLETED&thruDate=${nowDate}"/></field>
</form>
<form name="ListTaskParties" type="list" list-name="taskParties"
odd-row-style="alternate-row" default-table-style="basic-table hover-bar">