Modified automatic budget cell calculations and rearranged report
The manually introduced budget cell will be representing the total amount for the budget on that item, and the expenses cell will show the difference between that total and the resources costs for the task hours and required criteria. FEA: ItEr77S17AutomaticBudgeting
This commit is contained in:
parent
8c2c7996a2
commit
a8eefaaa29
6 changed files with 166 additions and 105 deletions
|
|
@ -50,10 +50,10 @@ public class ProjectStatusReportDTO {
|
|||
|
||||
private BigDecimal budget;
|
||||
|
||||
private BigDecimal expensesBudget;
|
||||
|
||||
private BigDecimal resourcesBudget;
|
||||
|
||||
private BigDecimal expensesBudget;
|
||||
|
||||
private BigDecimal hoursCost;
|
||||
|
||||
private BigDecimal expensesCost;
|
||||
|
|
@ -64,11 +64,14 @@ public class ProjectStatusReportDTO {
|
|||
|
||||
public ProjectStatusReportDTO(EffortDuration estimatedHours,
|
||||
EffortDuration plannedHours, EffortDuration imputedHours,
|
||||
BigDecimal resourcesBudget, BigDecimal expensesBudget,
|
||||
BigDecimal budget, BigDecimal hoursCost, BigDecimal expensesCost,
|
||||
BigDecimal totalCost) {
|
||||
this.estimatedHours = estimatedHours;
|
||||
this.plannedHours = plannedHours;
|
||||
this.imputedHours = imputedHours;
|
||||
this.resourcesBudget = resourcesBudget;
|
||||
this.expensesBudget = expensesBudget;
|
||||
this.budget = budget;
|
||||
this.hoursCost = hoursCost;
|
||||
this.expensesCost = expensesCost;
|
||||
|
|
@ -77,9 +80,11 @@ public class ProjectStatusReportDTO {
|
|||
|
||||
public ProjectStatusReportDTO(String code, String name,
|
||||
EffortDuration estimatedHours, EffortDuration plannedHours,
|
||||
EffortDuration imputedHours, BigDecimal budget,
|
||||
EffortDuration imputedHours, BigDecimal resourcesBudget,
|
||||
BigDecimal expensesBudget, BigDecimal budget,
|
||||
BigDecimal hoursCost, BigDecimal expensesCost, BigDecimal totalCost) {
|
||||
this(estimatedHours, plannedHours, imputedHours, budget, hoursCost,
|
||||
this(estimatedHours, plannedHours, imputedHours, resourcesBudget,
|
||||
expensesBudget, budget, hoursCost,
|
||||
expensesCost, totalCost);
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
|
|
@ -291,8 +296,9 @@ public class ProjectStatusReportDTO {
|
|||
*/
|
||||
private void calculateCostMark() {
|
||||
if (totalCost != null) {
|
||||
if (budget != null && (budget.compareTo(BigDecimal.ZERO) > 0)) {
|
||||
if (totalCost.compareTo(budget) > 0) {
|
||||
if (expensesBudget != null
|
||||
&& (expensesBudget.compareTo(BigDecimal.ZERO) > 0)) {
|
||||
if (totalCost.compareTo(expensesBudget) > 0) {
|
||||
costMark = EXCLAMATION_MARK;
|
||||
}
|
||||
}
|
||||
|
|
@ -307,4 +313,4 @@ public class ProjectStatusReportDTO {
|
|||
return costMark;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="resourcesList" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" resourceBundle="projectStatus" uuid="17a95f07-ce2e-43c0-8da8-bfe1b9d826c2">
|
||||
<property name="ireport.zoom" value="2.0"/>
|
||||
<property name="ireport.x" value="560"/>
|
||||
<property name="ireport.x" value="640"/>
|
||||
<property name="ireport.y" value="0"/>
|
||||
<style name="dejavu-sans" isDefault="true" fontName="DejaVu Sans" fontSize="8"/>
|
||||
<style name="row-grey" style="dejavu-sans">
|
||||
|
|
@ -47,6 +47,8 @@
|
|||
<parameter name="plannedHours" class="java.lang.String"/>
|
||||
<parameter name="imputedHours" class="java.lang.String"/>
|
||||
<parameter name="hoursMark" class="java.lang.String"/>
|
||||
<parameter name="resourcesBudget" class="java.lang.String"/>
|
||||
<parameter name="expensesBudget" class="java.lang.String"/>
|
||||
<parameter name="budget" class="java.lang.String"/>
|
||||
<parameter name="hoursCost" class="java.lang.String"/>
|
||||
<parameter name="expensesCost" class="java.lang.String"/>
|
||||
|
|
@ -75,7 +77,7 @@
|
|||
<band splitType="Stretch"/>
|
||||
</background>
|
||||
<title>
|
||||
<band height="57" splitType="Stretch">
|
||||
<band height="64" splitType="Stretch">
|
||||
<textField>
|
||||
<reportElement uuid="283b2e5a-b1fc-4fff-bdef-6d342b537b72" x="0" y="0" width="622" height="14"/>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle" markup="none">
|
||||
|
|
@ -124,117 +126,145 @@
|
|||
<textFieldExpression><![CDATA[$P{filter}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="0" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="0" y="28" width="120" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_estimated_hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="100" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="120" y="28" width="27" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{estimatedHours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="200" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="184" y="28" width="122" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_planned_hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="300" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="306" y="28" width="32" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{plannedHours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="400" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="394" y="28" width="124" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_imputed_hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" style="project-hours-red" x="500" y="28" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" style="project-hours-red" x="518" y="28" width="27" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{imputedHours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="16348737-c53b-4739-8f53-2d68cc499821" style="project-hours-red" x="600" y="28" width="5" height="12"/>
|
||||
<reportElement uuid="16348737-c53b-4739-8f53-2d68cc499821" style="project-hours-red" x="545" y="28" width="5" height="12"/>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{hoursMark}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="0" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="0" y="40" width="100" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="100" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="517" y="40" width="68" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="200" y="41" width="100" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_hours_cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="300" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="306" y="52" width="70" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{hoursCost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="400" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="394" y="52" width="123" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_expenses_cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="500" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" x="517" y="52" width="68" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{expensesCost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="600" y="41" width="100" height="12"/>
|
||||
<reportElement uuid="9048c4a2-964c-4863-a30e-36b520a9d54b" x="0" y="52" width="100" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_total_cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" style="project-cost-red" x="700" y="41" width="97" height="12"/>
|
||||
<reportElement uuid="a0596a94-5c29-4eb0-940a-3b561ce5893d" style="project-cost-red" x="100" y="52" width="58" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{totalCost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="16348737-c53b-4739-8f53-2d68cc499821" style="project-cost-red" x="797" y="41" width="5" height="12"/>
|
||||
<reportElement uuid="16348737-c53b-4739-8f53-2d68cc499821" style="project-cost-red" x="158" y="52" width="5" height="12"/>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{costMark}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="00b6dcc9-ee92-4009-b85b-f7ff711c7574" x="185" y="52" width="121" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_hours_cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="cfd40822-a7a8-4f50-855b-58ba8d8039d9" x="306" y="40" width="70" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{resourcesBudget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="3f65ce0d-8c9b-470a-8e2e-60adda68dfde" x="185" y="40" width="121" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_resources_budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="e4dbda70-64af-41bc-8397-c5e57fd63789" x="394" y="40" width="123" height="12"/>
|
||||
<textElement>
|
||||
<font size="10"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{project_expenses_budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="75a9cad8-f33f-4a43-bc46-267e403bda38" x="100" y="40" width="70" height="12"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle">
|
||||
<font size="9" isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$P{expensesBudget}]]></textFieldExpression>
|
||||
</textField>
|
||||
</band>
|
||||
</title>
|
||||
<pageHeader>
|
||||
|
|
@ -256,8 +286,7 @@
|
|||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="82352929-5e6a-4feb-9f54-fd2c97eb7cea" x="100" y="17" width="300" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -267,9 +296,7 @@
|
|||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="400" y="17" width="33" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -279,8 +306,7 @@
|
|||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="433" y="17" width="32" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -290,8 +316,8 @@
|
|||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="465" y="17" width="37" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -299,10 +325,10 @@
|
|||
<textFieldExpression><![CDATA[$R{imputed_hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="597" y="17" width="50" height="15"/>
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="597" y="2" width="100" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -310,33 +336,10 @@
|
|||
<textFieldExpression><![CDATA[$R{expenses}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="647" y="17" width="50" height="15"/>
|
||||
<reportElement uuid="9c1fc16f-f844-4506-a2cb-def34c039d1e" x="697" y="2" width="105" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="697" y="17" width="50" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{expenses}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="faae6657-606f-49ed-b11f-1085bc10a38a" x="747" y="17" width="55" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -344,23 +347,10 @@
|
|||
<textFieldExpression><![CDATA[$R{total}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="9c1fc16f-f844-4506-a2cb-def34c039d1e" x="551" y="17" width="46" height="15"/>
|
||||
<reportElement uuid="fa84e2c6-ce40-4e3b-aac5-15258e0dc0bb" x="502" y="2" width="95" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{total}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="fa84e2c6-ce40-4e3b-aac5-15258e0dc0bb" x="502" y="17" width="49" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.25"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
|
|
@ -370,32 +360,73 @@
|
|||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="cbc9f7bf-3f4e-431d-9448-64db5c896033" x="400" y="2" width="102" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Bottom">
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{hours}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="7332931d-1315-42be-bd72-36c7ba06c3b7" x="502" y="2" width="145" height="15"/>
|
||||
<reportElement uuid="7332931d-1315-42be-bd72-36c7ba06c3b7" x="502" y="17" width="49" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Bottom">
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="d31937c3-04d7-4e91-8eaf-1eeefdc109df" x="647" y="2" width="155" height="15"/>
|
||||
<reportElement uuid="d31937c3-04d7-4e91-8eaf-1eeefdc109df" x="551" y="17" width="46" height="15"/>
|
||||
<box>
|
||||
<pen lineWidth="0.0"/>
|
||||
<leftPen lineWidth="0.0"/>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Bottom">
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="f0ee3ba8-091f-4e9e-8e47-bfa46d5d8670" x="597" y="17" width="50" height="15"/>
|
||||
<box>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="e2527ad6-038b-4393-9d53-3730d64e4103" x="697" y="17" width="50" height="15"/>
|
||||
<box>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{budget}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="5569c9c0-9854-4e7f-bafa-7b58c8d94253" x="747" y="17" width="55" height="15"/>
|
||||
<box>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{cost}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField isBlankWhenNull="true">
|
||||
<reportElement uuid="12306622-67ce-4633-ba6a-d068ad7c7b55" x="647" y="17" width="50" height="15"/>
|
||||
<box>
|
||||
<bottomPen lineWidth="0.5"/>
|
||||
<rightPen lineWidth="0.5"/>
|
||||
</box>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<textFieldExpression><![CDATA[$R{cost}]]></textFieldExpression>
|
||||
|
|
@ -447,22 +478,22 @@
|
|||
<textFieldExpression><![CDATA[$F{budgetFractionalPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern="#" isBlankWhenNull="true">
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="647" y="0" width="35" height="15"/>
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="551" y="0" width="34" height="15"/>
|
||||
<textElement textAlignment="Right" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{hoursCostIntegerPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern=".##" isBlankWhenNull="true">
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="682" y="0" width="15" height="15"/>
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="585" y="0" width="12" height="15"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{hoursCostFractionalPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern="#" isBlankWhenNull="true">
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="697" y="0" width="35" height="15"/>
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="647" y="0" width="35" height="15"/>
|
||||
<textElement textAlignment="Right" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{expensesCostIntegerPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern=".##" isBlankWhenNull="true">
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="732" y="0" width="15" height="15"/>
|
||||
<reportElement uuid="1fe3ef4c-0cfe-45d2-96b1-c7f58d835509" style="row-grey" x="682" y="0" width="15" height="15"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{expensesCostFractionalPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
|
|
@ -494,12 +525,12 @@
|
|||
<textFieldExpression><![CDATA[$F{resourcesBudgetFractionalPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern="#" isBlankWhenNull="true">
|
||||
<reportElement uuid="d6f1af93-e3f3-4793-ad8f-4a7e9d5afd9b" style="row-grey" x="551" y="0" width="35" height="15"/>
|
||||
<reportElement uuid="d6f1af93-e3f3-4793-ad8f-4a7e9d5afd9b" style="row-grey" x="697" y="0" width="39" height="15"/>
|
||||
<textElement textAlignment="Right" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{expensesBudgetIntegerPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern=".##" isBlankWhenNull="true">
|
||||
<reportElement uuid="bdad83d7-df4a-49c6-b655-7cce935b4a53" style="row-grey" x="586" y="0" width="11" height="15"/>
|
||||
<reportElement uuid="bdad83d7-df4a-49c6-b655-7cce935b4a53" style="row-grey" x="736" y="0" width="11" height="15"/>
|
||||
<textElement textAlignment="Left" verticalAlignment="Middle"/>
|
||||
<textFieldExpression><![CDATA[$F{expensesBudgetFractionalPart}]]></textFieldExpression>
|
||||
</textField>
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ estimated_hours = Est.
|
|||
planned_hours = Plan.
|
||||
imputed_hours = Done
|
||||
project_budget = Budget:
|
||||
project_resources_budget = Hours budget\:
|
||||
project_expenses_budget = Expenses budget\:
|
||||
project_hours_cost = Hours cost:
|
||||
project_expenses_cost = Expenses cost:
|
||||
project_total_cost = Total cost:
|
||||
|
|
|
|||
|
|
@ -11,10 +11,12 @@ estimated_hours = Est.
|
|||
planned_hours = Planif.
|
||||
imputed_hours = Hechas
|
||||
project_budget = Presupuesto\:
|
||||
project_resources_budget = Presupuesto horas\:
|
||||
project_expenses_budget = Presupuesto gastos\:
|
||||
project_hours_cost = Coste horas\:
|
||||
project_expenses_cost = Coste gastos\:
|
||||
project_total_cost = Coste total\:
|
||||
budget = Presupuesto
|
||||
budget = Presup.
|
||||
hours_cost = Coste horas
|
||||
expenses_cost = Coste gastos
|
||||
total_cost = Coste total
|
||||
|
|
|
|||
|
|
@ -151,6 +151,11 @@ public class ProjectStatusReportController extends LibrePlanReportController {
|
|||
result.put("hoursMark", totalDTO.getHoursMark());
|
||||
|
||||
result.put("budget", Util.addCurrencySymbol(totalDTO.getBudget()));
|
||||
result.put("resourcesBudget",
|
||||
Util.addCurrencySymbol(totalDTO.getResourcesBudget()));
|
||||
result.put("expensesBudget",
|
||||
Util.addCurrencySymbol(totalDTO.getExpensesBudget()));
|
||||
|
||||
result.put("hoursCost", Util.addCurrencySymbol(totalDTO.getHoursCost()));
|
||||
result.put("expensesCost",
|
||||
Util.addCurrencySymbol(totalDTO.getExpensesCost()));
|
||||
|
|
|
|||
|
|
@ -178,6 +178,9 @@ public class ProjectStatusReportModel implements IProjectStatusReportModel {
|
|||
EffortDuration imputedHours = originalDto.getImputedHoursAsEffortDuration();
|
||||
|
||||
BigDecimal budget = originalDto.getBudget();
|
||||
BigDecimal resourcesBudget = originalDto.getResourcesBudget();
|
||||
BigDecimal expensesBudget = originalDto.getExpensesBudget();
|
||||
|
||||
BigDecimal hoursCost = originalDto.getHoursCost();
|
||||
BigDecimal expensesCost = originalDto.getExpensesCost();
|
||||
BigDecimal totalCost = originalDto.getTotalCost();
|
||||
|
|
@ -190,7 +193,11 @@ public class ProjectStatusReportModel implements IProjectStatusReportModel {
|
|||
imputedHours = subtractIfNotNull(imputedHours,
|
||||
each.getImputedHoursAsEffortDuration());
|
||||
|
||||
resourcesBudget = subtractIfNotNull(budget,
|
||||
each.getResourcesBudget());
|
||||
expensesBudget = subtractIfNotNull(budget, each.getExpensesBudget());
|
||||
budget = subtractIfNotNull(budget, each.getBudget());
|
||||
|
||||
hoursCost = subtractIfNotNull(hoursCost, each.getHoursCost());
|
||||
expensesCost = subtractIfNotNull(expensesCost,
|
||||
each.getExpensesCost());
|
||||
|
|
@ -199,7 +206,8 @@ public class ProjectStatusReportModel implements IProjectStatusReportModel {
|
|||
|
||||
ProjectStatusReportDTO projectStatusReportDTO = new ProjectStatusReportDTO(
|
||||
originalDto.getCode(), originalDto.getName(), estimatedHours,
|
||||
plannedHours, imputedHours, budget, hoursCost, expensesCost,
|
||||
plannedHours, imputedHours, resourcesBudget, expensesBudget,
|
||||
budget, hoursCost, expensesCost,
|
||||
totalCost);
|
||||
return projectStatusReportDTO;
|
||||
}
|
||||
|
|
@ -224,6 +232,9 @@ public class ProjectStatusReportModel implements IProjectStatusReportModel {
|
|||
EffortDuration imputedHours = EffortDuration.zero();
|
||||
|
||||
BigDecimal budget = BigDecimal.ZERO.setScale(2);
|
||||
BigDecimal hoursBudget = BigDecimal.ZERO.setScale(2);
|
||||
BigDecimal expensesBudget = BigDecimal.ZERO.setScale(2);
|
||||
|
||||
BigDecimal hoursCost = BigDecimal.ZERO.setScale(2);
|
||||
BigDecimal expensesCost = BigDecimal.ZERO.setScale(2);
|
||||
BigDecimal totalCost = BigDecimal.ZERO.setScale(2);
|
||||
|
|
@ -236,14 +247,18 @@ public class ProjectStatusReportModel implements IProjectStatusReportModel {
|
|||
imputedHours = addIfNotNull(imputedHours,
|
||||
dto.getImputedHoursAsEffortDuration());
|
||||
|
||||
hoursBudget = addIfNotNull(budget, dto.getResourcesBudget());
|
||||
expensesBudget = addIfNotNull(budget, dto.getExpensesBudget());
|
||||
budget = addIfNotNull(budget, dto.getBudget());
|
||||
|
||||
hoursCost = addIfNotNull(hoursCost, dto.getHoursCost());
|
||||
expensesCost = addIfNotNull(expensesCost, dto.getExpensesCost());
|
||||
totalCost = addIfNotNull(totalCost, dto.getTotalCost());
|
||||
}
|
||||
|
||||
totalDTO = new ProjectStatusReportDTO(estimatedHours, plannedHours,
|
||||
imputedHours, budget, hoursCost, expensesCost, totalCost);
|
||||
imputedHours, hoursBudget, expensesBudget, budget,
|
||||
hoursCost, expensesCost, totalCost);
|
||||
totalDTO.calculateMarks();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue