ItEr58S17AsignacionConsolidacion: Prevent the allocation of hours in a date that has already been consolidated.
This commit is contained in:
parent
5f579bebb7
commit
d2fda3046b
2 changed files with 35 additions and 3 deletions
|
|
@ -48,6 +48,7 @@ import org.navalplanner.business.planner.entities.CalculatedValue;
|
|||
import org.navalplanner.business.planner.entities.GenericResourceAllocation;
|
||||
import org.navalplanner.business.planner.entities.ResourceAllocation;
|
||||
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.StretchesFunction.Type;
|
||||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
|
|
@ -1398,8 +1399,10 @@ class Row {
|
|||
|
||||
Component hoursOnInterval(DetailItem item) {
|
||||
Component result =
|
||||
isGroupingRow() || isBeforeTaskStartDate(item) ? new Label() :
|
||||
disableIfNeeded(item, noNegativeIntbox());
|
||||
isGroupingRow() || isBeforeTaskStartDate(item) ||
|
||||
isBeforeLatestConsolidation(item) ?
|
||||
new Label() :
|
||||
disableIfNeeded(item, noNegativeIntbox());
|
||||
reloadHoursOnInterval(result, item);
|
||||
componentsByDetailItem.put(item, result);
|
||||
addListenerIfNeeded(item, result);
|
||||
|
|
@ -1419,7 +1422,8 @@ class Row {
|
|||
|
||||
private void addListenerIfNeeded(final DetailItem item,
|
||||
final Component component) {
|
||||
if (isGroupingRow() || isBeforeTaskStartDate(item)) {
|
||||
if (isGroupingRow() || isBeforeTaskStartDate(item) ||
|
||||
isBeforeLatestConsolidation(item)) {
|
||||
return;
|
||||
}
|
||||
final Intbox intbox = (Intbox) component;
|
||||
|
|
@ -1452,6 +1456,10 @@ class Row {
|
|||
Label label = (Label) component;
|
||||
label.setValue(getHoursForDetailItem(item) + "");
|
||||
label.setClass("unmodifiable-hours");
|
||||
} else if (isBeforeLatestConsolidation(item)) {
|
||||
Label label = (Label) component;
|
||||
label.setValue(getHoursForDetailItem(item) + "");
|
||||
label.setClass("consolidated-hours");
|
||||
} else {
|
||||
Intbox intbox = (Intbox) component;
|
||||
intbox.setValue(getHoursForDetailItem(item));
|
||||
|
|
@ -1467,6 +1475,17 @@ class Row {
|
|||
return item.getEndDate().compareTo(taskStartDate) < 0;
|
||||
}
|
||||
|
||||
private boolean isBeforeLatestConsolidation(DetailItem item) {
|
||||
if(!((Task)task).hasConsolidations()) {
|
||||
return false;
|
||||
}
|
||||
LocalDate d = ((Task)task).getFirstDayNotConsolidated();
|
||||
DateTime firstDayNotConsolidated =
|
||||
new DateTime(d.getYear(), d.getMonthOfYear(),
|
||||
d.getDayOfMonth(), 0, 0, 0, 0);
|
||||
return item.getStartDate().compareTo(firstDayNotConsolidated) < 0;
|
||||
}
|
||||
|
||||
private ResourceAllocation<?> getAllocation() {
|
||||
if (isGroupingRow()) {
|
||||
throw new IllegalStateException("is grouping row");
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ import org.navalplanner.business.planner.entities.DayAssignment;
|
|||
import org.navalplanner.business.planner.entities.ResourceAllocation;
|
||||
import org.navalplanner.business.planner.entities.Task;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
import org.navalplanner.business.planner.entities.consolidations.ConsolidatedValue;
|
||||
import org.navalplanner.business.planner.entities.consolidations.Consolidation;
|
||||
import org.navalplanner.business.resources.daos.IResourceDAO;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
import org.navalplanner.web.calendars.BaseCalendarModel;
|
||||
|
|
@ -85,6 +87,17 @@ public class AdvancedAllocationTabCreator {
|
|||
|
||||
private void loadNeededDataOfTask() {
|
||||
BaseCalendarModel.forceLoadBaseCalendar(task.getCalendar());
|
||||
loadConsolidationRelatedData(task);
|
||||
}
|
||||
|
||||
private void loadConsolidationRelatedData(Task task) {
|
||||
Consolidation consolidation = task.getConsolidation();
|
||||
if (consolidation != null) {
|
||||
for (ConsolidatedValue consolidatedValue : consolidation
|
||||
.getConsolidatedValues()) {
|
||||
consolidatedValue.getPendingConsolidatedHours().size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Set<Resource> getAssociatedResources(Task task) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue