From 38b47b1fea05e8f2dc9b58a0ebc6a90ca852a0f6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 28 Aug 2012 13:55:58 +0200 Subject: [PATCH] Fix the remaining bits where periodicity was not taken into account FEA: ItEr77S07PersonalTimesheetsPeriodictyConfiguration --- .../business/workreports/entities/WorkReport.java | 14 +++++++++----- .../web/users/dashboard/IMyTasksAreaModel.java | 8 ++++++++ .../web/users/dashboard/MyTasksAreaController.java | 7 +++++-- .../web/users/dashboard/MyTasksAreaModel.java | 12 ++++++++++++ 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java index 17b4befaa..b1d501fba 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReport.java @@ -34,10 +34,10 @@ import org.hibernate.validator.AssertTrue; import org.hibernate.validator.NotNull; import org.hibernate.validator.Valid; import org.joda.time.LocalDate; -import org.joda.time.LocalDate.Property; import org.libreplan.business.common.IntegrationEntity; import org.libreplan.business.common.Registry; import org.libreplan.business.common.entities.EntitySequence; +import org.libreplan.business.common.entities.PersonalTimesheetsPeriodicityEnum; import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.labels.entities.Label; import org.libreplan.business.labels.entities.LabelType; @@ -502,10 +502,14 @@ public class WorkReport extends IntegrationEntity implements return true; } - Property dayOfMonth = LocalDate.fromDateFields( - workReportLines.iterator().next().getDate()).dayOfMonth(); - LocalDate min = dayOfMonth.withMinimumValue(); - LocalDate max = dayOfMonth.withMaximumValue(); + LocalDate workReportDate = LocalDate.fromDateFields(workReportLines + .iterator().next().getDate()); + PersonalTimesheetsPeriodicityEnum periodicity = Registry + .getConfigurationDAO() + .getConfigurationWithReadOnlyTransaction() + .getPersonalTimesheetsPeriodicity(); + LocalDate min = periodicity.getStart(workReportDate); + LocalDate max = periodicity.getEnd(workReportDate); for (WorkReportLine line : workReportLines) { LocalDate date = LocalDate.fromDateFields(line.getDate()); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/IMyTasksAreaModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/IMyTasksAreaModel.java index 7a1388b6b..18b15674a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/IMyTasksAreaModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/IMyTasksAreaModel.java @@ -21,6 +21,8 @@ package org.libreplan.web.users.dashboard; import java.util.List; +import org.libreplan.business.common.entities.Configuration; +import org.libreplan.business.common.entities.PersonalTimesheetsPeriodicityEnum; import org.libreplan.business.planner.entities.SpecificResourceAllocation; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; @@ -40,4 +42,10 @@ public interface IMyTasksAreaModel { */ List getTasks(); + /** + * Returns the {@link PersonalTimesheetsPeriodicityEnum} from + * {@link Configuration}. + */ + PersonalTimesheetsPeriodicityEnum getPersonalTimesheetsPeriodicity(); + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java index d08f9d8e3..75b214b94 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaController.java @@ -29,6 +29,7 @@ import javax.annotation.Resource; import org.joda.time.LocalDate; import org.libreplan.business.advance.entities.AdvanceMeasurement; import org.libreplan.business.advance.entities.DirectAdvanceAssignment; +import org.libreplan.business.common.entities.PersonalTimesheetsPeriodicityEnum; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.SumChargedEffort; import org.libreplan.business.planner.entities.Task; @@ -121,8 +122,10 @@ public class MyTasksAreaController extends GenericForwardComposer { LocalDate end = task.getEndAsLocalDate(); LocalDate currentDate = new LocalDate(); - LocalDate min = currentDate.dayOfMonth().withMinimumValue(); - LocalDate max = currentDate.dayOfMonth().withMaximumValue(); + PersonalTimesheetsPeriodicityEnum periodicity = myTasksAreaModel + .getPersonalTimesheetsPeriodicity(); + LocalDate min = periodicity.getStart(currentDate); + LocalDate max = periodicity.getEnd(currentDate); if (dateBetween(start, min, max)) { return start; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaModel.java index b1cb9eff3..5b6675d78 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/MyTasksAreaModel.java @@ -26,6 +26,8 @@ import java.util.List; import org.libreplan.business.advance.entities.AdvanceMeasurement; import org.libreplan.business.advance.entities.DirectAdvanceAssignment; +import org.libreplan.business.common.daos.IConfigurationDAO; +import org.libreplan.business.common.entities.PersonalTimesheetsPeriodicityEnum; import org.libreplan.business.planner.daos.IResourceAllocationDAO; import org.libreplan.business.planner.entities.SpecificResourceAllocation; import org.libreplan.business.planner.entities.Task; @@ -53,6 +55,9 @@ public class MyTasksAreaModel implements IMyTasksAreaModel { @Autowired private IScenarioManager scenarioManager; + @Autowired + private IConfigurationDAO configurationDAO; + @Override @Transactional(readOnly = true) public List getTasks() { @@ -103,4 +108,11 @@ public class MyTasksAreaModel implements IMyTasksAreaModel { } } + @Override + @Transactional(readOnly = true) + public PersonalTimesheetsPeriodicityEnum getPersonalTimesheetsPeriodicity() { + return configurationDAO.getConfiguration() + .getPersonalTimesheetsPeriodicity(); + } + }