[Bug #996] fixing bug in desconsolidation action.
it only removes and adds the new day assignments that have been reassigned. FEA: ItEr74S04BugFixing
This commit is contained in:
parent
b6f76b9ee4
commit
77bf52ee44
1 changed files with 26 additions and 1 deletions
|
|
@ -1211,15 +1211,40 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
private void updateAssignments(AllocationInterval interval,
|
||||
List<T> assignmentsCreated) {
|
||||
|
||||
/*
|
||||
* removes assignments except those that are consolidated
|
||||
*/
|
||||
removingAssignments(withoutConsolidated(interval
|
||||
.getAssignmentsOnInterval()));
|
||||
addingAssignments(assignmentsCreated);
|
||||
/*
|
||||
* add the assignments except those that already are consolidated. At
|
||||
* this moment all the assignments in the interval are consolidated. So
|
||||
* that it removes the created assignments that have got same date and
|
||||
* therefore are already added.
|
||||
*/
|
||||
addingAssignments(subtractAssignmentsWithSameDate(assignmentsCreated,
|
||||
interval.getAssignmentsOnInterval()));
|
||||
|
||||
updateConsolidatedAssignments(interval);
|
||||
updateOriginalTotalAssigment();
|
||||
updateResourcesPerDay();
|
||||
}
|
||||
|
||||
private Collection<? extends T> subtractAssignmentsWithSameDate(
|
||||
List<T> assignmentsCreated,
|
||||
List<DayAssignment> assignmentsOnInterval) {
|
||||
List<T> toRemove = new ArrayList<T>();
|
||||
for (DayAssignment each : assignmentsOnInterval) {
|
||||
for (T assignment : assignmentsCreated) {
|
||||
if (each.getDay().compareTo(assignment.getDay()) == 0) {
|
||||
toRemove.add(assignment);
|
||||
}
|
||||
}
|
||||
}
|
||||
assignmentsCreated.removeAll(toRemove);
|
||||
return assignmentsCreated;
|
||||
}
|
||||
|
||||
private void updateConsolidatedAssignments(AllocationInterval interval) {
|
||||
for (DayAssignment day : interval.getAssignmentsOnInterval()) {
|
||||
day.setConsolidated(false);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue