From c9a638e4f3d6309454f7668a510c4f35b2a79350 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 13 Nov 2012 12:22:49 +0100 Subject: [PATCH] Bug #1559: Remove WorkReportLines with zero effort in personal timesheets FEA: ItEr77S04BugFixing --- .../dashboard/PersonalTimesheetModel.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetModel.java index 81ed6ef82..16c2a0dcf 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/users/dashboard/PersonalTimesheetModel.java @@ -431,9 +431,14 @@ public class PersonalTimesheetModel implements IPersonalTimesheetModel { // saved as it will not be possible to find it later with // WorkReportDAO.getPersonalTimesheetWorkReport() method. } else { + Set deletedWorkReportLinesSet = removeWorkReportLinesWithEffortZero(); + Set orderElements = sumChargedEffortDAO .getOrderElementsToRecalculateTimsheetDates( - workReport.getWorkReportLines(), null); + workReport.getWorkReportLines(), + deletedWorkReportLinesSet); + sumChargedEffortDAO + .updateRelatedSumChargedEffortWithDeletedWorkReportLineSet(deletedWorkReportLinesSet); sumChargedEffortDAO .updateRelatedSumChargedEffortWithWorkReportLineSet(workReport .getWorkReportLines()); @@ -446,6 +451,19 @@ public class PersonalTimesheetModel implements IPersonalTimesheetModel { resetModifiedFields(); } + private Set removeWorkReportLinesWithEffortZero() { + Set toRemove = new HashSet(); + for (WorkReportLine line : workReport.getWorkReportLines()) { + if (line.getEffort().isZero()) { + toRemove.add(line); + } + } + for (WorkReportLine line : toRemove) { + workReport.removeWorkReportLine(line); + } + return toRemove; + } + private void resetModifiedFields() { modified = false; modifiedMap = new HashMap>();