diff --git a/libreplan-business/src/main/java/org/libreplan/business/costcategories/daos/CostCategoryDAO.java b/libreplan-business/src/main/java/org/libreplan/business/costcategories/daos/CostCategoryDAO.java index 7ecf2c4bc..4dd2fb360 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/costcategories/daos/CostCategoryDAO.java +++ b/libreplan-business/src/main/java/org/libreplan/business/costcategories/daos/CostCategoryDAO.java @@ -102,8 +102,7 @@ public class CostCategoryDAO extends IntegrationEntityDAO for (ResourcesCostCategoryAssignment each : resource .getResourcesCostCategoryAssignments()) { - if ((date.isAfter(each.getInitDate())) - && (!date.isBefore(each.getInitDate()))) { + if (each.isActiveAtDate(date)) { for (HourCost hourCost : each.getCostCategory().getHourCosts()) { if (hourCost.isActiveAtDate(date) && hourCost.getType().getCode().equals(type)) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/HourCost.java b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/HourCost.java index 9830ccdcc..754783c3f 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/HourCost.java +++ b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/HourCost.java @@ -136,13 +136,20 @@ public class HourCost extends IntegrationEntity { } public boolean isActiveAtDate(LocalDate date) { - if ((date.isAfter(this.getInitDate())) - && (!date.isBefore(this.getInitDate()))) { + if (isEqualOrAfter(date) && isEqualOrBefore(date)) { return true; } return false; } + private boolean isEqualOrAfter(LocalDate date) { + return (!date.isBefore(this.getInitDate())); + } + + private boolean isEqualOrBefore(LocalDate date) { + return (this.getEndDate() == null || !date.isAfter(this.getEndDate())); + } + @AssertTrue(message="The end date cannot be before the init date") public boolean checkPositiveTimeInterval() { if (initDate == null) { diff --git a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java index 3dc63f061..49aca28a7 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java +++ b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/ResourcesCostCategoryAssignment.java @@ -168,4 +168,18 @@ public class ResourcesCostCategoryAssignment extends IntegrationEntity { return Registry.getResourcesCostCategoryAssignmentDAO(); } + public boolean isActiveAtDate(LocalDate date) { + if (isEqualOrAfter(date) && isEqualOrBefore(date)) { + return true; + } + return false; + } + + private boolean isEqualOrAfter(LocalDate date) { + return (!date.isBefore(this.getInitDate())); + } + + private boolean isEqualOrBefore(LocalDate date) { + return (this.getEndDate() == null || !date.isAfter(this.getEndDate())); + } }