Add total column in the monthly timesheet grid
FEA: ItEr76S28UserDashboard
This commit is contained in:
parent
f80258f627
commit
1302e9b962
3 changed files with 46 additions and 0 deletions
|
|
@ -76,4 +76,10 @@ public interface IMonthlyTimesheetModel {
|
|||
*/
|
||||
void cancel();
|
||||
|
||||
/**
|
||||
* Returns the {@link EffortDuration} in the current monthly timesheet for
|
||||
* the specified <code>orderElement</code>.
|
||||
*/
|
||||
EffortDuration getEffortDuration(OrderElement orderElement);
|
||||
|
||||
}
|
||||
|
|
@ -71,6 +71,8 @@ public class MonthlyTimesheetController extends GenericForwardComposer
|
|||
Util.appendLabel(row, orderElement.getName());
|
||||
|
||||
appendInputsForDays(row, orderElement);
|
||||
|
||||
appendTotalColumn(row, orderElement);
|
||||
}
|
||||
|
||||
private void appendInputsForDays(Row row,
|
||||
|
|
@ -106,13 +108,35 @@ public class MonthlyTimesheetController extends GenericForwardComposer
|
|||
}
|
||||
monthlyTimesheetModel.setEffortDuration(orderElement,
|
||||
textboxDate, effortDuration);
|
||||
updateTotalColumn(orderElement);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
row.appendChild(textbox);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void appendTotalColumn(Row row, final OrderElement orderElement) {
|
||||
Textbox textbox = new Textbox();
|
||||
textbox.setId(getTotalColumnTextboxId(orderElement));
|
||||
textbox.setDisabled(true);
|
||||
row.appendChild(textbox);
|
||||
|
||||
updateTotalColumn(orderElement);
|
||||
}
|
||||
|
||||
private String getTotalColumnTextboxId(final OrderElement orderElement) {
|
||||
return "textbox-total-" + orderElement.getId();
|
||||
}
|
||||
|
||||
private void updateTotalColumn(OrderElement orderElement) {
|
||||
Textbox textbox = (Textbox) timesheet.getFellow(getTotalColumnTextboxId(orderElement));
|
||||
textbox.setValue(monthlyTimesheetModel.getEffortDuration(
|
||||
orderElement).toFormattedString());
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
|
|
@ -154,6 +178,7 @@ public class MonthlyTimesheetController extends GenericForwardComposer
|
|||
private void createColumns(LocalDate date) {
|
||||
createProjectAndTaskColumns();
|
||||
createColumnsForDays(date);
|
||||
createTotalColumn();
|
||||
}
|
||||
|
||||
private void createProjectAndTaskColumns() {
|
||||
|
|
@ -173,6 +198,10 @@ public class MonthlyTimesheetController extends GenericForwardComposer
|
|||
}
|
||||
}
|
||||
|
||||
private void createTotalColumn() {
|
||||
columns.appendChild(new Column(_("Total")));
|
||||
}
|
||||
|
||||
public String getDate() {
|
||||
return monthlyTimesheetModel.getDate().toString("MMMM y");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -233,4 +233,15 @@ public class MonthlyTimesheetModel implements IMonthlyTimesheetModel {
|
|||
workReport = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EffortDuration getEffortDuration(OrderElement orderElement) {
|
||||
EffortDuration result = EffortDuration.zero();
|
||||
for (WorkReportLine line : workReport.getWorkReportLines()) {
|
||||
if (line.getOrderElement().equals(orderElement)) {
|
||||
result = result.plus(line.getEffort());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue