Verschiedene BugFixes

git-svn-id: https://svn.libreccm.org/ccm/trunk@1320 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-12-06 20:54:50 +00:00
parent 16bb369677
commit 1ec33ceaaf
2 changed files with 171 additions and 157 deletions

View File

@ -6,7 +6,9 @@ import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
/**
@ -117,7 +119,21 @@ public class SciProject extends GenericOrganizationalUnit {
}
public Date getEnd() {
return (Date) get(END);
if (get(END) != null) {
final Date endDate = (Date) get(END);
final Calendar end = new GregorianCalendar();
end.setTime(endDate);
if (getEndSkipDay() && (end.get(Calendar.DAY_OF_MONTH) == 1)) {
end.add(Calendar.MONTH, 1);
end.add(Calendar.DAY_OF_MONTH, -1);
return end.getTime();
} else {
return (Date) get(END);
}
} else {
return (Date) get(END);
}
}
public void setEnd(Date end) {
@ -182,26 +198,25 @@ public class SciProject extends GenericOrganizationalUnit {
set(FUNDING_VOLUME, fundingVolume);
}
/*Method is not use commented out.
* @Override
public boolean hasContacts() {
boolean result = false;
boolean result = false;
final DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciProject");
query.setParameter("project", getID());
final DataQuery query =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfContactsOfSciProject");
query.setParameter("project", getID());
if (query.size() > 0) {
result = true;
} else {
result = false;
}
if (query.size() > 0) {
result = true;
} else {
result = false;
}
query.close();
query.close();
return result;
return result;
}*/
/*
@ -212,140 +227,139 @@ public class SciProject extends GenericOrganizationalUnit {
* @return
*/
/*public boolean hasMembers(final boolean merge,
final SciProjectMemberStatus status) {
String queryName;
final SciProjectMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciProject";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break;
default:
queryName = "";
break;
}
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfSciProject";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", getID());
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", getID());
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery projectsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
projectsQuery.setParameter("project", getID());
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery projectsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
projectsQuery.setParameter("project", getID());
if (query.size() > 0) {
BigDecimal projectId;
boolean result = false;
while (projectsQuery.next()) {
projectId = (BigDecimal) projectsQuery.get(
"projectId");
result = hasMembers(projectId, merge, status);
if (query.size() > 0) {
BigDecimal projectId;
boolean result = false;
while (projectsQuery.next()) {
projectId = (BigDecimal) projectsQuery.get(
"projectId");
result = hasMembers(projectId, merge, status);
if (result) {
break;
}
}
if (result) {
break;
}
}
projectsQuery.close();
return result;
} else {
projectsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
projectsQuery.close();
return result;
} else {
projectsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}*/
/*private boolean hasMembers(final BigDecimal projectId,
final boolean merge,
final SciProjectMemberStatus status) {
String queryName;
final boolean merge,
final SciProjectMemberStatus status) {
String queryName;
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfProject";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break;
default:
queryName = "";
break;
}
switch (status) {
case ALL:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfSciProject";
break;
case ACTIVE:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfActiveMembersOfSciProject";
break;
case ASSOCIATED:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfAssociatedMembersOfProject";
break;
case FORMER:
queryName =
"com.arsdigita.cms.contenttypes.getIdsOfFormerMembersOfSciProject";
break;
default:
queryName = "";
break;
}
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", projectId);
final DataQuery query = SessionManager.getSession().retrieveQuery(
queryName);
query.setParameter("project", projectId);
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery subProjectsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
subProjectsQuery.setParameter("project", projectId);
if (query.size() > 0) {
query.close();
return true;
} else {
if (merge) {
query.close();
DataQuery subProjectsQuery =
SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubProjectsOfSciProject");
subProjectsQuery.setParameter("project", projectId);
if (query.size() > 0) {
BigDecimal subprojectId;
boolean result = false;
while (subProjectsQuery.next()) {
subprojectId = (BigDecimal) subProjectsQuery.get(
"projectId");
result = hasMembers(subprojectId, merge, status);
if (query.size() > 0) {
BigDecimal subprojectId;
boolean result = false;
while (subProjectsQuery.next()) {
subprojectId = (BigDecimal) subProjectsQuery.get(
"projectId");
result = hasMembers(subprojectId, merge, status);
if (result) {
break;
}
}
if (result) {
break;
}
}
subProjectsQuery.close();
return result;
} else {
subProjectsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
subProjectsQuery.close();
return result;
} else {
subProjectsQuery.close();
return false;
}
} else {
query.close();
return false;
}
}
}*/
@Override
public List<ExtraXMLGenerator> getExtraXMLGenerators() {
final List<ExtraXMLGenerator> generators = super.getExtraXMLGenerators();