ItEr59S04ValidacionEProbasFuncionaisItEr58S04 : [Bug #478] Fixing Bug.
shows the percentage, and the units if it is not of percentage type, in the consolidated lines.
This commit is contained in:
parent
945d8f40bf
commit
1efafd864b
5 changed files with 94 additions and 12 deletions
|
|
@ -128,4 +128,9 @@ public class AdvanceConsolidationController extends GenericForwardComposer {
|
|||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public boolean isUnitType() {
|
||||
return advanceConsolidationModel.isUnitType();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,12 +21,15 @@
|
|||
package org.navalplanner.web.planner.consolidations;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.advance.entities.AdvanceAssignment;
|
||||
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
|
||||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.planner.entities.consolidations.ConsolidatedValue;
|
||||
|
||||
/**
|
||||
|
|
@ -48,7 +51,9 @@ public class AdvanceConsolidationDTO {
|
|||
|
||||
private Date date;
|
||||
|
||||
private BigDecimal value;
|
||||
private BigDecimal units;
|
||||
|
||||
private BigDecimal percentage;
|
||||
|
||||
private boolean consolidated;
|
||||
|
||||
|
|
@ -82,7 +87,8 @@ public class AdvanceConsolidationDTO {
|
|||
this.setConsolidatedValue(consolidatedValue);
|
||||
initConsolidated();
|
||||
initDate();
|
||||
initValue();
|
||||
initPercentage();
|
||||
initUnits();
|
||||
}
|
||||
|
||||
private void initConsolidated() {
|
||||
|
|
@ -99,11 +105,19 @@ public class AdvanceConsolidationDTO {
|
|||
}
|
||||
}
|
||||
|
||||
private void initValue() {
|
||||
private void initPercentage() {
|
||||
if (consolidatedValue != null) {
|
||||
this.value = this.consolidatedValue.getValue();
|
||||
this.percentage = this.consolidatedValue.getValue();
|
||||
} else if (advanceMeasurement != null) {
|
||||
this.value = this.advanceMeasurement.getValue();
|
||||
this.percentage = calculatePercentageAdvanceMeasurement(advanceMeasurement);
|
||||
}
|
||||
}
|
||||
|
||||
private void initUnits(){
|
||||
if (advanceMeasurement != null) {
|
||||
this.units = advanceMeasurement.getValue();
|
||||
} else {
|
||||
this.units = BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -174,8 +188,8 @@ public class AdvanceConsolidationDTO {
|
|||
return date;
|
||||
}
|
||||
|
||||
public BigDecimal getValue() {
|
||||
return value;
|
||||
public BigDecimal getPercentage() {
|
||||
return percentage;
|
||||
}
|
||||
|
||||
public static void setAllReadOnly(boolean allReadOnly) {
|
||||
|
|
@ -186,4 +200,47 @@ public class AdvanceConsolidationDTO {
|
|||
return allReadOnly;
|
||||
}
|
||||
|
||||
private BigDecimal calculatePercentageAdvanceMeasurement(
|
||||
AdvanceMeasurement advanceMeasurement) {
|
||||
AdvanceAssignment assignment = advanceMeasurement
|
||||
.getAdvanceAssignment();
|
||||
if (assignment == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
BigDecimal maxValue = ((DirectAdvanceAssignment) assignment)
|
||||
.getMaxValue();
|
||||
|
||||
if (maxValue.compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
BigDecimal value = advanceMeasurement.getValue();
|
||||
if (value == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
return value.setScale(2).divide(maxValue, RoundingMode.DOWN).multiply(
|
||||
new BigDecimal(100));
|
||||
}
|
||||
|
||||
public String getLabelPercentage() {
|
||||
if (getPercentage() != null) {
|
||||
return getPercentage().toString() + " %";
|
||||
} else {
|
||||
return (BigDecimal.ZERO).toString() + " %";
|
||||
}
|
||||
}
|
||||
|
||||
public BigDecimal getUnits() {
|
||||
return units;
|
||||
}
|
||||
|
||||
public String getLabelUnits() {
|
||||
if (getUnits() != null) {
|
||||
return getUnits().toString();
|
||||
} else {
|
||||
return (BigDecimal.ZERO).toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import org.joda.time.LocalDate;
|
|||
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
|
||||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.planner.daos.ITaskElementDAO;
|
||||
import org.navalplanner.business.planner.entities.DayAssignment;
|
||||
|
|
@ -67,6 +68,9 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
@Autowired
|
||||
private ITaskElementDAO taskElementDAO;
|
||||
|
||||
@Autowired
|
||||
private IOrderElementDAO orderElementDAO;
|
||||
|
||||
private Task task;
|
||||
|
||||
private PlanningState planningState;
|
||||
|
|
@ -77,6 +81,8 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
|
||||
private DirectAdvanceAssignment spreadAdvance;
|
||||
|
||||
private boolean isUnitType = false;
|
||||
|
||||
private OrderElement orderElement;
|
||||
|
||||
private Date firstConsolidatedDate;
|
||||
|
|
@ -261,11 +267,12 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
|
||||
if (consolidation.isCalculated()) {
|
||||
return CalculatedConsolidatedValue.create(LocalDate
|
||||
.fromDateFields(dto.getDate()), dto.getValue(),
|
||||
.fromDateFields(dto.getDate()), dto.getPercentage(),
|
||||
LocalDate.fromDateFields(task.getEndDate()));
|
||||
} else {
|
||||
return NonCalculatedConsolidatedValue.create(LocalDate
|
||||
.fromDateFields(dto.getDate()), dto.getValue(), dto
|
||||
.fromDateFields(dto.getDate()), dto.getPercentage(),
|
||||
dto
|
||||
.getAdvanceMeasurement(), LocalDate.fromDateFields(task
|
||||
.getEndDate()));
|
||||
}
|
||||
|
|
@ -354,13 +361,17 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
|
||||
private void initAdvanceConsolidationsDTOs(Task task) {
|
||||
orderElement = task.getOrderElement();
|
||||
orderElementDAO.reattachUnmodifiedEntity(orderElement);
|
||||
|
||||
spreadAdvance = orderElement.getReportGlobalAdvanceAssignment();
|
||||
|
||||
consolidation = task.getConsolidation();
|
||||
if (consolidation != null) {
|
||||
consolidation.getConsolidatedValues().size();
|
||||
}
|
||||
|
||||
if (spreadAdvance != null) {
|
||||
isUnitType = (!spreadAdvance.getAdvanceType().getPercentage());
|
||||
createAdvanceConsolidationDTOs();
|
||||
initConsolidatedDates();
|
||||
addNonConsolidatedAdvances();
|
||||
|
|
@ -482,4 +493,8 @@ public class AdvanceConsolidationModel implements IAdvanceConsolidationModel {
|
|||
AdvanceConsolidationDTO.setAllReadOnly(hasLimitingResourceAllocation());
|
||||
}
|
||||
|
||||
public boolean isUnitType() {
|
||||
return this.isUnitType;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public interface IAdvanceConsolidationModel {
|
|||
|
||||
boolean isVisibleMessages();
|
||||
|
||||
boolean isUnitType();
|
||||
|
||||
List<AdvanceConsolidationDTO> getConsolidationDTOs();
|
||||
|
||||
String infoMessages();
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
|
||||
<window id="advanceWindow"
|
||||
apply="${advanceController}"
|
||||
title="${i18n:_('Advance consolidation')}" width="600px"
|
||||
title="${i18n:_('Advance consolidation')}" width="700px"
|
||||
closable="true" visible="false">
|
||||
|
||||
<vbox>
|
||||
|
|
@ -110,13 +110,16 @@
|
|||
fixedLayout="true"
|
||||
sclass="@{advanceController.readOnlySclass}">
|
||||
<columns>
|
||||
<column label="${i18n:_('Value')}" width="150px" align="center"/>
|
||||
<column label="${i18n:_('Value')}" width="150px" align="center" visible="@{advanceController.unitType}"/>
|
||||
<column label="${i18n:_('Percentage')}" width="150px" align="center"/>
|
||||
<column label="${i18n:_('Date')}" width="150px" align="center"/>
|
||||
<column label="${i18n:_('Consolidated')}" width="150px" align="center"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row self="@{each='advanceConsolidationDTO'}" value="@{advanceConsolidationDTO}">
|
||||
<label value="@{advanceConsolidationDTO.value}" />
|
||||
<label value="@{advanceConsolidationDTO.labelUnits}"
|
||||
visible="@{advanceController.unitType}"/>
|
||||
<label value="@{advanceConsolidationDTO.labelPercentage}" />
|
||||
<label value="@{advanceConsolidationDTO.date,converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
|
||||
<checkbox checked="@{advanceConsolidationDTO.consolidated}"
|
||||
onCheck="advanceController.reloadAdvanceGrid();"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue