Calculate total assigned hours instead of relaying on getSumOfHoursAllocated.
FEA: ItEr75S27PerProjectDashboard
This commit is contained in:
parent
abcf0d5e83
commit
2b3fb8c573
4 changed files with 12 additions and 10 deletions
|
|
@ -46,18 +46,17 @@ public class AggregateOfDayAssignments {
|
|||
Date start,
|
||||
Date end) {
|
||||
|
||||
Collections.sort(assignments, new Comparator<DayAssignment>() {
|
||||
@Override
|
||||
public int compare(DayAssignment arg0, DayAssignment arg1) {
|
||||
return arg0.getDay().compareTo(arg1.getDay());
|
||||
}
|
||||
});
|
||||
assignments = DayAssignment.orderedByDay(assignments);
|
||||
|
||||
return new AggregateOfDayAssignments(
|
||||
DayAssignment.getAtInterval(assignments,
|
||||
new LocalDate(start), new LocalDate(end)));
|
||||
}
|
||||
|
||||
public static AggregateOfDayAssignments create(List<DayAssignment> assignments) {
|
||||
return new AggregateOfDayAssignments(assignments);
|
||||
}
|
||||
|
||||
private Set<DayAssignment> dayAssignments;
|
||||
|
||||
private AggregateOfDayAssignments(
|
||||
|
|
|
|||
|
|
@ -163,7 +163,8 @@ public class PlanningData extends BaseEntity {
|
|||
|
||||
for (Task each: criticalPath) {
|
||||
theoreticalNumHours += each.getTheoreticalCompletedHoursUntilDate(limit);
|
||||
totalNumHours += each.getSumOfHoursAllocated();
|
||||
totalNumHours += AggregateOfDayAssignments.create(
|
||||
each.getDayAssignments()).getTotalHours();
|
||||
}
|
||||
return divide(new BigDecimal(theoreticalNumHours), totalNumHours);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -704,7 +704,8 @@ public abstract class TaskElement extends BaseEntity {
|
|||
public abstract Integer getTheoreticalCompletedHoursUntilDate(Date date);
|
||||
|
||||
public BigDecimal getTheoreticalAdvancePercentageUntilDate(Date date) {
|
||||
int totalAllocatedHours = this.getSumOfHoursAllocated();
|
||||
int totalAllocatedHours = AggregateOfDayAssignments.create(
|
||||
this.getDayAssignments()).getTotalHours();
|
||||
int totalTheoreticalCompletedHours = this.getTheoreticalCompletedHoursUntilDate(date);
|
||||
if(Math.min(totalAllocatedHours, totalTheoreticalCompletedHours) == 0) {
|
||||
return BigDecimal.ZERO;
|
||||
|
|
|
|||
|
|
@ -348,7 +348,8 @@ public class TaskTest {
|
|||
@Test
|
||||
public void theoreticalPercentageIsOneIfDateIsLaterThanEndDate() {
|
||||
prepareTaskForTheoreticalAdvanceTesting();
|
||||
assertThat(task.getTheoreticalAdvancePercentageUntilDate(task.getEndDate()), equalTo(new BigDecimal(1)));
|
||||
assertThat(task.getTheoreticalAdvancePercentageUntilDate(task.getEndDate()),
|
||||
equalTo(new BigDecimal("1.00000000")));
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -357,7 +358,7 @@ public class TaskTest {
|
|||
prepareTaskForTheoreticalAdvanceTesting();
|
||||
LocalDate limit = task.getStartAsLocalDate().plusDays(1);
|
||||
assertThat(task.getTheoreticalAdvancePercentageUntilDate(limit.toDateTimeAtStartOfDay().toDate()),
|
||||
equalTo(new BigDecimal("0.2")));
|
||||
equalTo(new BigDecimal("0.20000000")));
|
||||
}
|
||||
|
||||
private void prepareTaskForTheoreticalAdvanceTesting() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue