Modified cost tab on project/task details to include criteria based budget

FEA: ItEr77S17AutomaticBudgeting
This commit is contained in:
Lorenzo Tilve Álvaro 2013-06-12 09:28:01 +02:00
parent 4baa93d790
commit f895d18acb
4 changed files with 65 additions and 8 deletions

View file

@ -24,6 +24,8 @@ package org.libreplan.web.orders;
import java.math.BigDecimal;
import java.util.List;
import org.libreplan.business.common.Registry;
import org.libreplan.business.common.daos.ConfigurationDAO;
import org.libreplan.business.expensesheet.entities.ExpenseSheetLine;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.reports.dtos.WorkReportLineDTO;
@ -104,6 +106,14 @@ public class AssignedHoursToOrderElementController extends
return assignedHoursToOrderElementModel.getBudget();
}
public BigDecimal getResourcesBudget() {
return assignedHoursToOrderElementModel.getResourcesBudget();
}
public BigDecimal getTotalBudget() {
return assignedHoursToOrderElementModel.getTotalBudget();
}
public BigDecimal getMoneyCost() {
return assignedHoursToOrderElementModel.getMoneyCost();
}

View file

@ -30,6 +30,8 @@ import java.util.List;
import org.apache.commons.lang.Validate;
import org.joda.time.LocalDate;
import org.libreplan.business.common.Registry;
import org.libreplan.business.common.daos.ConfigurationDAO;
import org.libreplan.business.expensesheet.daos.IExpenseSheetLineDAO;
import org.libreplan.business.expensesheet.entities.ExpenseSheetLine;
import org.libreplan.business.expensesheet.entities.ExpenseSheetLineComparator;
@ -242,6 +244,24 @@ public class AssignedHoursToOrderElementModel implements IAssignedHoursToOrderEl
return orderElement.getBudget();
}
@Override
@Transactional(readOnly = true)
public BigDecimal getTotalBudget() {
if (orderElement == null) {
return BigDecimal.ZERO;
}
return getBudget().add(getResourcesBudget());
}
@Override
@Transactional(readOnly = true)
public BigDecimal getResourcesBudget() {
if (orderElement == null) {
return BigDecimal.ZERO;
}
return orderElement.getResourcesBudget();
}
@Override
@Transactional(readOnly = true)
public BigDecimal getMoneyCost() {
@ -292,9 +312,8 @@ public class AssignedHoursToOrderElementModel implements IAssignedHoursToOrderEl
return BigDecimal.ZERO;
}
return MoneyCostCalculator.getMoneyCostProportion(
moneyCostCalculator.getTotalMoneyCost(orderElement), orderElement.getBudget())
.multiply(
new BigDecimal(100));
moneyCostCalculator.getTotalMoneyCost(orderElement),
orderElement.getTotalBudget()).multiply(new BigDecimal(100));
}
@Override

View file

@ -64,4 +64,8 @@ public interface IAssignedHoursToOrderElementModel{
public BigDecimal getCostOfHours();
public BigDecimal getTotalBudget();
public BigDecimal getResourcesBudget();
}

View file

@ -199,7 +199,7 @@
<column />
</columns>
<rows>
<row>
<row>
<grid fixedLayout="true">
<columns>
<column width="20px" />
@ -208,15 +208,39 @@
</columns>
<rows>
<row>
<label/>
<detailrow open="true">
<grid fixedLayout="true">
<columns>
<column width="200px" />
<column align="right"/>
</columns>
<rows>
<row>
<label value="${i18n:_('Resources budget')}:" />
<hbox>
<label value="@{assignedHoursToOrderElementController.resourcesBudget}" />
<label value="@{assignedHoursToOrderElementController.currencySymbol}" />
</hbox>
</row>
<row>
<label value="${i18n:_('Expenses budget')}:" />
<hbox>
<label value="@{assignedHoursToOrderElementController.budget}" />
<label value="@{assignedHoursToOrderElementController.currencySymbol}" />
</hbox>
</row>
</rows>
</grid>
</detailrow>
<label
value="${i18n:_('Budget in money')}:" />
value="${i18n:_('Total calculated budget')}:" />
<hbox>
<label
value="@{assignedHoursToOrderElementController.budget}" />
<label value="@{assignedHoursToOrderElementController.totalBudget}" />
<label value="@{assignedHoursToOrderElementController.currencySymbol}" />
</hbox>
</row>
<row>
<detailrow open="true">
<grid fixedLayout="true">