[Bug #874] it does not reallocate resources if resource per day has 0 hours.

FEA : ItEr71S04BugFixing
This commit is contained in:
Susana Montes Pedreira 2011-03-09 10:21:45 +01:00
parent 499f60cb86
commit 838466ea22
2 changed files with 12 additions and 7 deletions

View file

@ -247,7 +247,7 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
}
}
private static boolean isZero(BigDecimal amount) {
public static boolean isZero(BigDecimal amount) {
return amount.movePointRight(amount.scale()).intValue() == 0;
}

View file

@ -40,10 +40,11 @@ import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.planner.daos.ITaskElementDAO;
import org.navalplanner.business.planner.entities.DayAssignment;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.planner.entities.ResourceAllocation.DetachDayAssignmentOnRemoval;
import org.navalplanner.business.planner.entities.SpecificResourceAllocation;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.business.planner.entities.ResourceAllocation.AllocationsSpecified;
import org.navalplanner.business.planner.entities.ResourceAllocation.DetachDayAssignmentOnRemoval;
import org.navalplanner.business.planner.entities.consolidations.CalculatedConsolidatedValue;
import org.navalplanner.business.planner.entities.consolidations.CalculatedConsolidation;
import org.navalplanner.business.planner.entities.consolidations.ConsolidatedValue;
@ -237,11 +238,15 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
.setOnDayAssignmentRemoval(new DetachDayAssignmentOnRemoval());
if (value.getDate().compareTo(endExclusive.minusDays(1)) >= 0) {
IntraDayDate date = ResourceAllocation.allocating(
Arrays.asList(resourceAllocation
.asResourcesPerDayModification()))
.untilAllocating(pendingHours);
task.setIntraDayEndDate(date);
if (!AllocationsSpecified.isZero(resourceAllocation
.asResourcesPerDayModification().getGoal()
.getAmount())) {
IntraDayDate date = ResourceAllocation.allocating(
Arrays.asList(resourceAllocation
.asResourcesPerDayModification()))
.untilAllocating(pendingHours);
task.setIntraDayEndDate(date);
}
} else {
reassign(resourceAllocation, startInclusive, endExclusive,
pendingHours);