untilAllocating now returns a IntraDayDate
FEA: ItEr60S19TimeUnitDataType
This commit is contained in:
parent
0159438d56
commit
ab6417fcf6
5 changed files with 19 additions and 14 deletions
|
|
@ -219,7 +219,7 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
}
|
||||
}
|
||||
|
||||
public LocalDate untilAllocating(int hoursToAllocate) {
|
||||
public IntraDayDate untilAllocating(int hoursToAllocate) {
|
||||
AllocatorForSpecifiedResourcesPerDayAndHours allocator = new AllocatorForSpecifiedResourcesPerDayAndHours(
|
||||
task, allocations) {
|
||||
|
||||
|
|
@ -266,9 +266,7 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
}
|
||||
|
||||
};
|
||||
IntraDayDate result = allocator
|
||||
.untilAllocating(hours(hoursToAllocate));
|
||||
return result.getDate();
|
||||
return allocator.untilAllocating(hours(hoursToAllocate));
|
||||
}
|
||||
|
||||
public void allocateOnTaskLength() {
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ import org.navalplanner.business.resources.entities.Resource;
|
|||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.util.deepcopy.AfterCopy;
|
||||
import org.navalplanner.business.workingday.IntraDayDate;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -498,10 +499,10 @@ public class Task extends TaskElement implements ITaskLeafConstraint {
|
|||
.allocateOnTaskLength();
|
||||
break;
|
||||
case END_DATE:
|
||||
LocalDate end = ResourceAllocation
|
||||
IntraDayDate end = ResourceAllocation
|
||||
.allocating(allocations)
|
||||
.untilAllocating(getAssignedHours());
|
||||
setEndDate(end.toDateTimeAtStartOfDay().toDate());
|
||||
setIntraDayEndDate(end);
|
||||
break;
|
||||
case RESOURCES_PER_DAY:
|
||||
List<HoursModification> hoursModified = strategy
|
||||
|
|
|
|||
|
|
@ -25,7 +25,9 @@ import static org.easymock.classextension.EasyMock.createNiceMock;
|
|||
import static org.easymock.classextension.EasyMock.replay;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.navalplanner.business.test.planner.entities.DayAssignmentMatchers.haveHours;
|
||||
import static org.navalplanner.business.workingday.EffortDuration.hours;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -42,6 +44,7 @@ import org.navalplanner.business.planner.entities.allocationalgorithms.Resources
|
|||
import org.navalplanner.business.resources.entities.Criterion;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
import org.navalplanner.business.resources.entities.Worker;
|
||||
import org.navalplanner.business.workingday.IntraDayDate;
|
||||
import org.navalplanner.business.workingday.ResourcesPerDay;
|
||||
|
||||
public class AllocationUntilFillingHoursTest {
|
||||
|
|
@ -75,17 +78,19 @@ public class AllocationUntilFillingHoursTest {
|
|||
@Test
|
||||
public void theEndDateIsTheDayAfterAllTheHoursAreAllocatedIfItIsCompletelyFilled() {
|
||||
givenSpecificAllocations(ResourcesPerDay.amount(2));
|
||||
LocalDate endDate = ResourceAllocation.allocating(allocations)
|
||||
IntraDayDate endDate = ResourceAllocation.allocating(allocations)
|
||||
.untilAllocating(32);
|
||||
assertThat(endDate, equalTo(startDate.plusDays(2)));
|
||||
assertThat(endDate.getDate(), equalTo(startDate.plusDays(2)));
|
||||
assertTrue(endDate.isStartOfDay());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void theEndDateIsTheSameDayIfItIsNotCompletelyFilled() {
|
||||
givenSpecificAllocations(ResourcesPerDay.amount(2));
|
||||
LocalDate endDate = ResourceAllocation.allocating(allocations)
|
||||
IntraDayDate endDate = ResourceAllocation.allocating(allocations)
|
||||
.untilAllocating(31);
|
||||
assertThat(endDate, equalTo(startDate.plusDays(1)));
|
||||
assertThat(endDate.getDate(), equalTo(startDate.plusDays(1)));
|
||||
assertThat(endDate.getEffortDuration(), equalTo(hours(15)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -770,7 +770,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
for(TaskElement task : parentElementsToBeUpdated) {
|
||||
TaskElement parent = task;
|
||||
while(parent != null) {
|
||||
parent.setEndDate(null);
|
||||
parent.setIntraDayEndDate(null);
|
||||
parent.initializeEndDateIfDoesntExist();
|
||||
taskDAO.save(parent);
|
||||
parent = parent.getParent();
|
||||
|
|
|
|||
|
|
@ -39,16 +39,17 @@ 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.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;
|
||||
import org.navalplanner.business.planner.entities.consolidations.Consolidation;
|
||||
import org.navalplanner.business.planner.entities.consolidations.NonCalculatedConsolidatedValue;
|
||||
import org.navalplanner.business.planner.entities.consolidations.NonCalculatedConsolidation;
|
||||
import org.navalplanner.business.workingday.IntraDayDate;
|
||||
import org.navalplanner.web.planner.order.PlanningState;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
|
|
@ -240,11 +241,11 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
.setOnDayAssignmentRemoval(new DetachDayAssignmentOnRemoval());
|
||||
|
||||
if (value.getDate().compareTo(endExclusive.minusDays(1)) >= 0) {
|
||||
LocalDate date = ResourceAllocation.allocating(
|
||||
IntraDayDate date = ResourceAllocation.allocating(
|
||||
Arrays.asList(resourceAllocation
|
||||
.asResourcesPerDayModification()))
|
||||
.untilAllocating(pendingHours);
|
||||
task.setEndDate(date.toDateTimeAtStartOfDay().toDate());
|
||||
task.setIntraDayEndDate(date);
|
||||
} else {
|
||||
reassign(resourceAllocation, startInclusive, endExclusive,
|
||||
pendingHours);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue