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/20 10:16:36 UTC

svn commit: r706144 - in /ofbiz/trunk/specialpurpose/projectmgr: entitydef/entitymodel.xml script/org/ofbiz/project/ProjectServices.xml widget/forms/ProjectForms.xml

Author: hansbak
Date: Mon Oct 20 01:16:36 2008
New Revision: 706144

URL: http://svn.apache.org/viewvc?rev=706144&view=rev
Log:
 fixed the list of resources on a project summary

Modified:
    ofbiz/trunk/specialpurpose/projectmgr/entitydef/entitymodel.xml
    ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
    ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml

Modified: ofbiz/trunk/specialpurpose/projectmgr/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/entitydef/entitymodel.xml?rev=706144&r1=706143&r2=706144&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/entitydef/entitymodel.xml Mon Oct 20 01:16:36 2008
@@ -172,7 +172,7 @@
     <alias entity-alias="WEPH" field="workEffortId" name="phaseId"/>
     <alias entity-alias="WEPH" field="workEffortName" name="phaseName"/>
     <alias entity-alias="TS" field="statusId" name="timesheetStatusId"/>
-    <alias entity-alias="TS" field="partyId" name="resourcePartyId"/>
+    <alias entity-alias="TS" field="partyId" name="timesheetPartyId"/>
     <view-link entity-alias="WEP" rel-entity-alias="WEPH">
       <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/>
     </view-link>

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=706144&r1=706143&r2=706144&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Mon Oct 20 01:16:36 2008
@@ -758,49 +758,106 @@
     </simple-method>
     
     <simple-method method-name="getPartiesByProject" short-description="get Project information" login-required="true">
-        <entity-condition entity-name="WorkEffortPartyAssignView" list-name="resources" filter-by-date="true">
-            <condition-expr field-name="workEffortId" operator="equals" env-name="parameters.projectId"/>
-            <order-by field-name="roleTypeId"/>
+        <!-- list of actual hours by party -->
+        <entity-condition entity-name="ProjectPhaseTaskAndTimeEntryTimeSheet" list-name="tasks">
+            <condition-list combine="and">
+                <condition-expr field-name="projectId" operator="equals" env-name="parameters.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="timesheetPartyId" operator="equals" env-name="parameters.partyId" ignore-if-empty="true"/>
+                <condition-expr field-name="timesheetPartyId" operator="not-equals" env-name="null"/>
+            </condition-list>
+            <order-by field-name="projectId"/>
+            <order-by field-name="timesheetPartyId"/>
         </entity-condition>
-        <if-not-empty field="resources">
-            <iterate entry-name="resource" list-name="resources">
-                <clear-field field-name="projectParty"/>
-	            <clear-field field-name="highInfo"/>
-	            <set field="projectParty.partyId" from-field="resource.partyId"/>
-	            <entity-one entity-name="PartyNameView" value-name="partyNameView">
-	                <field-map field-name="partyId" env-name="resource.partyId"/>
-	            </entity-one>
-	            <if-not-empty field="partyNameView">
-	                <set field="projectParty.partyName" value="${partyNameView.lastName},${partyNameView.firstName} ${partyNameView.middleName}${partyNameView.groupName}"/>
-	            </if-not-empty>
-	            <set field="projectParty.roleTypeId" from-field="resource.roleTypeId"/>
-	            <set field="projectParty.fromDate" from-field="resource.fromDate"/>
-	            <set field="projectParty.thruDate" from-field="resource.thruDate"/>
-	            <entity-condition entity-name="ProjectAndPhaseAndTaskParty" list-name="tasks">
-	                <condition-list combine="and">
-	                    <condition-expr field-name="projectId" operator="equals" env-name="parameters.projectId"/>
-	                    <condition-expr field-name="partyId" operator="equals" env-name="parameters.partyId"/>
-	                </condition-list>
-	                <order-by field-name="partyId"/>
-	            </entity-condition>
-	            <if-not-empty field="tasks">
-                    <iterate entry-name="task" list-name="tasks">
-                        <!-- get the planned/actual hours -->
-                        <set field="lowInfo" from-field="task"/>
-                        <set field="parameters.hoursPartyId" from-field="task.partyId"/>
-                        <call-simple-method method-name="getHours"/>
-                        <set field="projectParty.plannedHours" from-field="highInfo.plannedHours"/>                    
-                        <set field="projectParty.actualHours" from-field="highInfo.actualHours"/>                    
-                    </iterate>
+        <if-not-empty field="tasks">
+            <iterate entry-name="task" list-name="tasks">
+                <if>
+                    <condition>
+                        <and>
+                            <not><if-empty field="projectParty"/></not>
+                            <if-compare-field field="projectParty.partyId" operator="not-equals" to-field="task.timesheetPartyId"/>
+                        </and>
+                    </condition>
+                    <then>
+                        <entity-one entity-name="PartyNameView" value-name="partyNameView">
+                            <field-map field-name="partyId" env-name="projectParty.partyId"/>
+                        </entity-one>
+                        <if-not-empty field="partyNameView">
+                            <set field="projectParty.partyName" value="${partyNameView.lastName},${partyNameView.firstName} ${partyNameView.middleName}${partyNameView.groupName}"/>
+                        </if-not-empty>
+                        <entity-and entity-name="WorkEffortPartyAssignment" list-name="resources" filter-by-date="true">
+                            <field-map field-name="workEffortId" env-name="task.projectId"/>
+                            <field-map field-name="partyId" env-name="projectParty.partyId"/>
+                        </entity-and>
+                        <if-not-empty field="resources">
+                            <iterate list-name="resources" entry-name="resource">
+                                <set field="projectParty.roleTypeId" from-field="resource.roleTypeId"/>
+                                <set field="projectParty.fromDate" from-field="resource.fromDate"/>
+                                <set field="projectParty.thruDate" from-field="resource.thruDate"/>
+                            </iterate>
+                        </if-not-empty>                       
+                        <field-to-list field-name="projectParty" list-name="projectParties"/>
+                        <log level="always" message="=====writing party: ${projectParty.partyId} Hours: ${projectParty.actualHours}"></log>
+                        <clear-field field-name="projectParty"/>                        
+                    </then>
+                </if>
+                <set field="projectParty.projectId" from-field="task.projectId"/>
+                <set field="projectParty.partyId" from-field="task.timesheetPartyId"/>
+                <calculate field-name="projectParty.actualHours">
+                    <calcop operator="get" field-name="projectParty.actualHours"/>
+                    <calcop operator="add" field-name="task.hours"/>
+                </calculate>
+            </iterate>
+            <if-not-empty field="projectParty">
+                <entity-one entity-name="PartyNameView" value-name="partyNameView">
+                    <field-map field-name="partyId" env-name="projectParty.partyId"/>
+                </entity-one>
+                <if-not-empty field="partyNameView">
+                    <set field="projectParty.partyName" value="${partyNameView.lastName},${partyNameView.firstName} ${partyNameView.middleName}${partyNameView.groupName}"/>
                 </if-not-empty>
+                <entity-and entity-name="WorkEffortPartyAssignment" list-name="resources" filter-by-date="true">
+                    <field-map field-name="workEffortId" env-name="projectParty.projectId"/>
+                    <field-map field-name="partyId" env-name="projectParty.partyId"/>
+                </entity-and>
+                <if-not-empty field="resources">
+                    <first-from-list entry-name="resource" list-name="resources"/>
+                    <set field="projectParty.roleTypeId" from-field="resource.roleTypeId"/>
+                    <set field="projectParty.fromDate" from-field="resource.fromDate"/>
+                    <set field="projectParty.thruDate" from-field="resource.thruDate"/>
+                </if-not-empty>                       
                 <field-to-list field-name="projectParty" list-name="projectParties"/>
-            </iterate>
-            <field-to-result field-name="projectParties"/>                                                                                       
+            </if-not-empty>
         </if-not-empty>
+        <entity-condition entity-name="WorkEffortPartyAssignment" list-name="resources" filter-by-date="true">
+            <condition-expr field-name="workEffortId" operator="equals" env-name="parameters.projectId" ignore-if-empty="true"/>
+            <order-by field-name="roleTypeId"/>
+        </entity-condition>
+        <!-- now add all project parties who did not yet register time  -->
+        <iterate entry-name="resource" list-name="resources">
+            <entity-condition entity-name="ProjectPhaseTaskAndTimeEntryTimeSheet" list-name="tasks">
+                <condition-list combine="and">
+                    <condition-expr field-name="projectId" operator="equals" env-name="resource.workEffortId" ignore-if-empty="true"/>
+                    <condition-expr field-name="timesheetPartyId" operator="equals" env-name="resource.partyId"/>
+                </condition-list>
+            </entity-condition>
+            <if-empty field="tasks">
+                <clear-field field-name="projectParty"/>                        
+                <set field="projectParty.partyId" from-field="resource.partyId"/>
+                <entity-one entity-name="PartyNameView" value-name="partyNameView">
+                    <field-map field-name="partyId" env-name="resource.partyId"/>
+                </entity-one>
+                <if-not-empty field="partyNameView">
+                    <set field="projectParty.partyName" value="${partyNameView.lastName},${partyNameView.firstName} ${partyNameView.middleName}${partyNameView.groupName}"/>
+                </if-not-empty>
+                <set field="projectParty.roleTypeId" from-field="resource.roleTypeId"/>
+                <set field="projectParty.fromDate" from-field="resource.fromDate"/>
+                <set field="projectParty.thruDate" from-field="resource.thruDate"/>
+                <field-to-list field-name="projectParty" list-name="projectParties"/>
+            </if-empty>            
+        </iterate>
+        <order-value-list list-name="projectParties" order-by-list-name="partyName"/>
+        <field-to-result field-name="projectParties"/>                                                                                       
     </simple-method>
 
-
-
     <simple-method method-name="getTasksByParties" short-description="get task information by party member" login-required="true">
         <!-- get the list of tasks optionaly selected for a party -->
         <if-empty field="parameters.partyId">

Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml?rev=706144&r1=706143&r2=706144&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml Mon Oct 20 01:16:36 2008
@@ -310,10 +310,10 @@
         <field name="partyName" title="${uiLabelMap.CommonName}">
             <hyperlink target="viewprofile?partyId=${partyId}" description="${partyName}"/>
         </field>
+        <field name="actualHours"><display/></field>
         <field name="roleTypeId" title="${uiLabelMap.ProjectMgrPartyRoleTypeId}"><display-entity entity-name="RoleType" description="${description}"/></field>
         <field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display type="date"/></field>
         <field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field>
-        <field name="actualHours"><display/></field>
     </form>
     <form name="EditProjectSkills" type="list" target="updateProjectSkillStandard" list-name="workEffortSkillStandardList" paginate-target="EditProjectSkills"
         odd-row-style="alternate-row" default-table-style="basic-table hover-bar">