Author: hansbak
Date: Sat Jul 4 10:15:21 2009
New Revision: 791097
URL: http://svn.apache.org/viewvc?rev=791097&view=rev
Log:
calendar now also show party assigned event properly like project tasks and now
the actual dates override the estimated dates
Modified:
ofbiz/trunk/applications/workeffort/data/WorkEffortDemoData.xml
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml
ofbiz/trunk/applications/workeffort/widget/CalendarScreens.xml
Modified: ofbiz/trunk/applications/workeffort/data/WorkEffortDemoData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/data/WorkEffortDemoData.xml?rev=791097&r1=791096&r2=791097&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/data/WorkEffortDemoData.xml (original)
+++ ofbiz/trunk/applications/workeffort/data/WorkEffortDemoData.xml Sat Jul 4
10:15:21 2009
@@ -32,6 +32,7 @@
<WorkEffortPartyAssignment workEffortId="STAFF_MTG"
partyId="DemoEmployee1" statusId="PRTYASGN_ASSIGNED" roleTypeId="CAL_OWNER"
availabilityStatusId="WEPA_AV_BUSY" fromDate="2008-01-01 00:00:00.0"/>
<WorkEffortPartyAssignment workEffortId="STAFF_MTG"
partyId="DemoEmployee2" statusId="PRTYASGN_ASSIGNED" roleTypeId="CAL_ATTENDEE"
availabilityStatusId="WEPA_AV_BUSY" fromDate="2008-01-01 00:00:00.0"/>
<WorkEffortPartyAssignment workEffortId="STAFF_MTG"
partyId="DemoEmployee3" statusId="PRTYASGN_ASSIGNED" roleTypeId="CAL_ATTENDEE"
availabilityStatusId="WEPA_AV_BUSY" fromDate="2008-01-01 00:00:00.0"/>
+ <WorkEffortPartyAssignment workEffortId="STAFF_MTG" partyId="admin"
statusId="PRTYASGN_ASSIGNED" roleTypeId="CAL_ATTENDEE"
availabilityStatusId="WEPA_AV_BUSY" fromDate="2008-01-01 00:00:00.0"/>
<!-- Publish the staff meeting calendar event -->
<WorkEffort workEffortId="CALENDAR_PUB_DEMO"
workEffortTypeId="PUBLISH_PROPS" currentStatusId="CAL_CANCELLED"
scopeEnumId="WES_PRIVATE" description="Demo Project 1 Customer 1"
workEffortName="iCalendar Publish Demonstration"/>
Modified:
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java?rev=791097&r1=791096&r2=791097&view=diff
==============================================================================
---
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
(original)
+++
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
Sat Jul 4 10:15:21 2009
@@ -503,31 +503,86 @@
if (entityExprList == null) {
entityExprList = getDefaultWorkEffortExprList(partyIds,
facilityId, fixedAssetId, workEffortTypeId);
}
- entityExprList.add(EntityCondition.makeCondition("estimatedStartDate",
EntityOperator.LESS_THAN, endStamp));
- List<EntityCondition> completionExprList =
UtilMisc.<EntityCondition>toList(EntityCondition.makeCondition("estimatedCompletionDate",
EntityOperator.GREATER_THAN_EQUAL_TO, startStamp),
EntityCondition.makeCondition("estimatedCompletionDate", EntityOperator.EQUALS,
null));
- entityExprList.add(EntityCondition.makeCondition(completionExprList,
EntityJoinOperator.OR));
+
+ // cancelled status id's
+ List<EntityCondition> cancelledCheckAndList =
UtilMisc.<EntityCondition>toList(
+ EntityCondition.makeCondition("currentStatusId",
EntityOperator.NOT_EQUAL, "EVENT_CANCELLED"),
+ EntityCondition.makeCondition("currentStatusId",
EntityOperator.NOT_EQUAL, "CAL_CANCELLED"));
+
+ List<EntityCondition> periodCheckAndlList =
UtilMisc.<EntityCondition>toList(
+ // the taskstart should be less than the period end and
the taskEnd should be larger than the period start
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition("actualStartDate", EntityOperator.EQUALS, null),
+
EntityCondition.makeCondition("estimatedStartDate", EntityOperator.NOT_EQUAL,
null),
+
EntityCondition.makeCondition("estimatedStartDate",
EntityOperator.LESS_THAN_EQUAL_TO, endStamp)
+ ), EntityJoinOperator.AND),
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition("actualStartDate", EntityOperator.NOT_EQUAL,
null),
+
EntityCondition.makeCondition("actualStartDate",
EntityOperator.LESS_THAN_EQUAL_TO, endStamp)
+ ), EntityJoinOperator.AND)
+ ), EntityJoinOperator.OR),
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition("actualCompletionDate", EntityOperator.EQUALS,
null),
+
EntityCondition.makeCondition("estimatedCompletionDate",
EntityOperator.NOT_EQUAL, null),
+
EntityCondition.makeCondition("estimatedCompletionDate",
EntityOperator.GREATER_THAN_EQUAL_TO, startStamp)
+ ), EntityJoinOperator.AND),
+
EntityCondition.makeCondition(UtilMisc.<EntityCondition>toList(
+
EntityCondition.makeCondition("actualCompletionDate", EntityOperator.NOT_EQUAL,
null),
+
EntityCondition.makeCondition("actualCompletionDate",
EntityOperator.GREATER_THAN_EQUAL_TO, startStamp)
+ ), EntityJoinOperator.AND)
+ ), EntityJoinOperator.OR));
+
+ entityExprList.addAll(periodCheckAndlList);
+
+ // (non cancelled) recurring events
+ List<EntityCondition> recurringEvents =
UtilMisc.<EntityCondition>toList(EntityCondition.makeCondition("tempExprId",
EntityOperator.NOT_EQUAL, null));
+ if (filterOutCanceledEvents.booleanValue()) {
+ recurringEvents.addAll(cancelledCheckAndList);
+ }
+
+ // (non cancelled) public events
+ List<EntityCondition> publicEvents =
UtilMisc.<EntityCondition>toList(EntityCondition.makeCondition("scopeEnumId",
EntityOperator.EQUALS, "WES_PUBLIC"));
if (filterOutCanceledEvents.booleanValue()) {
-
entityExprList.add(EntityCondition.makeCondition("currentStatusId",
EntityOperator.NOT_EQUAL, "EVENT_CANCELLED"));
+ publicEvents.addAll(cancelledCheckAndList);
}
+
+ EntityCondition eclTotal =
EntityCondition.makeCondition(UtilMisc.toList(
+ EntityCondition.makeCondition(entityExprList,
EntityJoinOperator.AND),
+ EntityCondition.makeCondition(recurringEvents,
EntityJoinOperator.AND),
+ EntityCondition.makeCondition(publicEvents,
EntityJoinOperator.AND)
+ ), EntityJoinOperator.OR);
+
List<String> orderByList = UtilMisc.toList("estimatedStartDate");
if (partyIdsToUse.size() > 0 || UtilValidate.isNotEmpty(facilityId) ||
UtilValidate.isNotEmpty(fixedAssetId)) {
try {
List<GenericValue> tempWorkEfforts = null;
if (UtilValidate.isNotEmpty(partyIdsToUse)) {
- EntityConditionList<EntityCondition> ecl =
EntityCondition.makeCondition(entityExprList, EntityJoinOperator.AND);
- // Debug.log("=====conditions for party: " + ecl);
+ EntityConditionList<EntityCondition> ecl =
+ EntityCondition.makeCondition(UtilMisc.toList(
+ eclTotal,
+
EntityCondition.makeCondition("partyId", EntityOperator.IN, partyIdsToUse)
+ ), EntityJoinOperator.AND);
+ Debug.log("=====conditions for party: " + ecl);
tempWorkEfforts =
EntityUtil.filterByDate(delegator.findList("WorkEffortAndPartyAssign", ecl,
null, orderByList, null, false));
} else if (UtilValidate.isNotEmpty(fixedAssetId)) {
-
entityExprList.add(EntityCondition.makeCondition("fixedAssetId",
EntityOperator.EQUALS, fixedAssetId));
- EntityConditionList<EntityCondition> ecl =
EntityCondition.makeCondition(entityExprList, EntityJoinOperator.AND);
+ EntityConditionList<EntityCondition> ecl =
+ EntityCondition.makeCondition(UtilMisc.toList(
+ eclTotal,
+
EntityCondition.makeCondition("fixedAssetId", EntityOperator.EQUALS,
fixedAssetId)
+ ), EntityJoinOperator.AND);
// Get "old style" work efforts and "new style" work
efforts
- //Debug.log("=====conditions for fixed asset: " + ecl);
+ Debug.log("=====conditions for fixed asset: " + ecl);
tempWorkEfforts = delegator.findList("WorkEffort", ecl,
null, orderByList, null, false);
tempWorkEfforts.addAll(EntityUtil.filterByDate(delegator.findList("WorkEffortAndFixedAssetAssign",
ecl, null, orderByList, null, false)));
} else {
-
entityExprList.add(EntityCondition.makeCondition("facilityId",
EntityOperator.EQUALS, facilityId));
- EntityConditionList<EntityCondition> ecl =
EntityCondition.makeCondition(entityExprList, EntityJoinOperator.AND);
- // Debug.log("=====conditions for facility: " + ecl);
+ EntityConditionList<EntityCondition> ecl =
+ EntityCondition.makeCondition(UtilMisc.toList(
+ eclTotal,
+
EntityCondition.makeCondition("facilityId", EntityOperator.EQUALS, facilityId)
+ ), EntityJoinOperator.AND);
+ Debug.log("=====conditions for facility: " + ecl);
tempWorkEfforts = delegator.findList("WorkEffort", ecl,
null, UtilMisc.toList("estimatedStartDate"), null, false);
}
validWorkEfforts =
WorkEffortWorker.removeDuplicateWorkEfforts(tempWorkEfforts);
@@ -590,6 +645,8 @@
List<Map<String, Object>> curWorkEfforts =
FastList.newInstance();
Map<String, Object> entry = FastMap.newInstance();
for (GenericValue workEffort : validWorkEfforts) {
+ if (workEffort.getTimestamp("actualStartDate") != null)
workEffort.put("estimatedStartDate",
workEffort.getTimestamp("actualStartDate"));
+ if (workEffort.getTimestamp("actualCompletionDate") !=
null) workEffort.put("estimatedCompletionDate",
workEffort.getTimestamp("actualCompletionDate"));
DateRange weRange = new
DateRange(workEffort.getTimestamp("estimatedStartDate"),
workEffort.getTimestamp("estimatedCompletionDate"));
if (periodRange.intersectsRange(weRange)) {
Map<String, Object> calEntry = FastMap.newInstance();
Modified: ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml?rev=791097&r1=791096&r2=791097&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml (original)
+++ ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml Sat Jul 4
10:15:21 2009
@@ -36,7 +36,6 @@
<field name="partyId"><hidden
value="${parameters.userLogin.partyId}"/></field>
<field name="roleTypeId" use-when="workEffort==null"><hidden
value="CAL_OWNER"/></field>
<field name="statusId" use-when="workEffort==null"><hidden
value="PRTYASGN_ASSIGNED"/></field>
- <field name="currentStatusId"><hidden value="CAL_TENTATIVE"/></field>
<field name="workEffortName"
title="${uiLabelMap.WorkEffortEventName}"><text/></field>
<field name="description"
title="${uiLabelMap.CommonDescription}"><text/></field>
<field name="workEffortTypeId">
@@ -47,6 +46,10 @@
</entity-options>
</drop-down>
</field>
+ <field name="currentStatusId" use-when="workEffort!=null">
+ <display-entity entity-name="StatusItem"
description="${description}" key-field-name="statusId"/>
+ </field>
+ <field name="currentStatusId" use-when="workEffort==null"><hidden
value="CAL_TENTATIVE"/></field>
<field name="scopeEnumId">
<drop-down no-current-selected-key="WES_PRIVATE">
<entity-options entity-name="Enumeration"
key-field-name="enumId" description="${description}">
@@ -57,6 +60,8 @@
</field>
<field name="estimatedStartDate"><date-time
input-method="time-dropdown" /></field>
<field name="estimatedCompletionDate"><date-time
input-method="time-dropdown"/></field>
+ <field name="actualStartDate"
use-when="parentWorkEffortId!=null"><display type="date-time"/></field>
+ <field name="actualCompletionDate"
use-when="parentWorkEffortId!=null"><display type="date-time"/></field>
<field name="addButton" use-when="workEffort==null"><submit/></field>
<field name="updateButton"
use-when="workEffort!=null"><submit/></field>
</form>
@@ -71,11 +76,16 @@
<field name="workEffortTypeId">
<display-entity entity-name="WorkEffortType"
description="${description}"/>
</field>
+ <field name="currentStatusId" use-when="workEffort!=null">
+ <display-entity entity-name="StatusItem"
description="${description}" key-field-name="statusId"/>
+ </field>
<field name="scopeEnumId">
<display-entity entity-name="Enumeration" key-field-name="enumId"
description="${description}"/>
</field>
<field name="estimatedStartDate"><display
type="date-time"></display></field>
<field name="estimatedCompletionDate"><display
type="date-time"></display></field>
+ <field name="actualStartDate"
use-when="parentWorkEffortId!=null"><display type="date-time"/></field>
+ <field name="actualCompletionDate"
use-when="parentWorkEffortId!=null"><display type="date-time"/></field>
</form>
<form name="showCalEventRoles" type="list" list-name="roles"
odd-row-style="alternate-row" header-row-style="header-row-2"
default-table-style="basic-table hover-bar">
@@ -90,6 +100,9 @@
<display-entity entity-name="PartyNameView"
key-field-name="partyId" description="${groupName}${lastName} ${firstName}
${middleName}"/>
</field>
<field name="roleTypeId"><display-entity entity-name="RoleType"
description="${description}"/></field>
+ <field name="statusId" use-when="workEffort!=null">
+ <display-entity entity-name="StatusItem"
description="${description}"/>
+ </field>
</form>
<form name="showCalEventRolesDel" type="list" extends="showCalEventRoles"
target="deleteWorkEffortPartyAssign">
<field name="remove"><submit/></field>
Modified: ofbiz/trunk/applications/workeffort/widget/CalendarScreens.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/widget/CalendarScreens.xml?rev=791097&r1=791096&r2=791097&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/widget/CalendarScreens.xml (original)
+++ ofbiz/trunk/applications/workeffort/widget/CalendarScreens.xml Sat Jul 4
10:15:21 2009
@@ -142,10 +142,13 @@
<widgets>
<section><!-- check if edit form needs to be shown,
otherwise show view only form -->
<condition>
- <or>
- <if-compare field="isCalOwner"
operator="equals" value="true" type="Boolean"/>
- <if-has-permission
permission="WORKEFFORTMGR" action="ADMIN"/>
- </or>
+ <and>
+ <or>
+ <if-compare field="isCalOwner"
operator="equals" value="true" type="Boolean"/>
+ <if-has-permission
permission="WORKEFFORTMGR" action="ADMIN"/>
+ </or>
+ <if-compare
field="workEffort.currentStatusId" operator="not-equals" value="PTS_COMPLETED"/>
+ </and>
</condition>
<widgets><!-- edit section -->
<container style="lefthalf">