[Bug #617] sets the scale of advances to 4, so it are shown its decimals.

FEA: ItEr60S04ValidacionEProbasFuncionaisItEr59S04
This commit is contained in:
Susana Montes Pedreira 2010-09-08 09:14:47 +02:00
parent 01cfac51f1
commit 5fd712a4ed
6 changed files with 47 additions and 39 deletions

View file

@ -139,7 +139,7 @@ public class DirectAdvanceAssignment extends AdvanceAssignment {
if (advanceMeasurement == null) {
return BigDecimal.ZERO;
}
return advanceMeasurement.getValue().divide(maxValue, 2,
return advanceMeasurement.getValue().divide(maxValue, 4,
RoundingMode.DOWN);
}

View file

@ -384,9 +384,9 @@ public class OrderLineGroup extends OrderElement implements
result = result.add(childPercentage.multiply(new BigDecimal(
childHours)));
}
result = result.setScale(2).divide(new BigDecimal(hours),
result = result.divide(new BigDecimal(hours).setScale(2), 4,
RoundingMode.DOWN);
}
return result;

View file

@ -25,7 +25,7 @@
type="org.navalplanner.business.workingday.hibernate.EffortDurationType"/>
</component>
<property name="deadline" type="org.joda.time.contrib.hibernate.PersistentLocalDate" />
<property name="advancePercentage" column="ADVANCE_PERCENTAGE" />
<property name="advancePercentage" column="ADVANCE_PERCENTAGE" access="field" scale="4"/>
<!-- Indexed -->
<many-to-one name="parent" class="TaskGroup" cascade="none" column="parent"

View file

@ -258,7 +258,7 @@ public class OrderElementTest {
new BigDecimal(600), false);
assertThat(orderLine.getAdvancePercentage(), equalTo(new BigDecimal(10)
.setScale(2).divide(new BigDecimal(100))));
.setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -273,7 +273,7 @@ public class OrderElementTest {
new BigDecimal(200), true, future);
assertThat(orderLine.getAdvancePercentage(), equalTo(new BigDecimal(10)
.setScale(2).divide(new BigDecimal(100))));
.setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -291,7 +291,7 @@ public class OrderElementTest {
1000), new BigDecimal(600), true);
assertThat(orderLine.getAdvancePercentage(), equalTo(new BigDecimal(60)
.setScale(2).divide(new BigDecimal(100))));
.setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -313,7 +313,7 @@ public class OrderElementTest {
new BigDecimal(600), false);
assertThat(orderLine.getAdvancePercentage(), equalTo(new BigDecimal(20)
.setScale(2).divide(new BigDecimal(100))));
.setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -347,7 +347,7 @@ public class OrderElementTest {
}
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
40).setScale(2).divide(new BigDecimal(100))));
40).setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -381,7 +381,7 @@ public class OrderElementTest {
}
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
10).setScale(2).divide(new BigDecimal(100))));
10).setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -404,7 +404,7 @@ public class OrderElementTest {
new BigDecimal(2000), new BigDecimal(200), true);
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
20).divide(new BigDecimal(100)).setScale(2)));
20).divide(new BigDecimal(100)).setScale(4)));
}
@Test
@ -435,7 +435,7 @@ public class OrderElementTest {
}
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
20).setScale(2).divide(new BigDecimal(100))));
20).setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -467,7 +467,7 @@ public class OrderElementTest {
}
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
22).divide(new BigDecimal(100))));
22).divide(new BigDecimal(100)).setScale(4)));
}
@Test
@ -492,7 +492,7 @@ public class OrderElementTest {
100), new BigDecimal(90), true);
assertThat(orderLineGroup.getAdvancePercentage(),
equalTo(new BigDecimal(90).setScale(2).divide(
equalTo(new BigDecimal(90).setScale(4).divide(
new BigDecimal(100))));
}
@ -516,7 +516,7 @@ public class OrderElementTest {
100), new BigDecimal(90), false);
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
20).divide(new BigDecimal(100)).setScale(2)));
20).divide(new BigDecimal(100)).setScale(4)));
}
@Test
@ -544,8 +544,12 @@ public class OrderElementTest {
new BigDecimal(1000), two, new BigDecimal(100), three,
new BigDecimal(350), four, new BigDecimal(400));
System.out.println("advance " + orderElement.getAdvancePercentage());
System.out.println("otro "
+ new BigDecimal(4333).divide(new BigDecimal(10000))
.setScale(4));
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
43).divide(new BigDecimal(100)).setScale(2)));
4333).divide(new BigDecimal(10000)).setScale(4)));
Set<DirectAdvanceAssignment> directAdvanceAssignments = orderElement
.getDirectAdvanceAssignments();
@ -700,7 +704,7 @@ public class OrderElementTest {
new BigDecimal(350), four, new BigDecimal(400));
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
43).divide(new BigDecimal(100)).setScale(2)));
4333).divide(new BigDecimal(10000)).setScale(4)));
Set<DirectAdvanceAssignment> directAdvanceAssignments = orderElement
.getDirectAdvanceAssignments();
@ -734,23 +738,27 @@ public class OrderElementTest {
AdvanceMeasurement next = iterator.next();
assertThat(next.getDate(), equalTo(one));
assertThat(next.getValue(), equalTo(new BigDecimal(6).setScale(2)));
assertThat(next.getValue(), equalTo(new BigDecimal(66600).setScale(4)
.divide(new BigDecimal(10000))));
next = iterator.next();
assertThat(next.getDate(), equalTo(two));
assertThat(next.getValue(), equalTo(new BigDecimal(13).setScale(2)));
assertThat(next.getValue(), equalTo(new BigDecimal(133300).setScale(4)
.divide(new BigDecimal(10000))));
next = iterator.next();
assertThat(next.getDate(), equalTo(three));
assertThat(next.getValue(), equalTo(new BigDecimal(36).setScale(2)));
assertThat(next.getValue(), equalTo(new BigDecimal(366600).setScale(4)
.divide(new BigDecimal(10000))));
next = iterator.next();
assertThat(next.getDate(), equalTo(four));
assertThat(next.getValue(), equalTo(new BigDecimal(40).setScale(2)));
assertThat(next.getValue(), equalTo(new BigDecimal(40).setScale(4)));
next = iterator.next();
assertThat(next.getDate(), equalTo(five));
assertThat(next.getValue(), equalTo(new BigDecimal(43).setScale(2)));
assertThat(next.getValue(), equalTo(new BigDecimal(4333).setScale(4)
.divide(new BigDecimal(100))));
}
@Test
@ -789,7 +797,7 @@ public class OrderElementTest {
assertThat(orderLineGroup_1.getIndirectAdvanceAssignments().size(),
equalTo(3));
assertThat(orderLineGroup_1.getAdvancePercentage(),
equalTo(new BigDecimal(50).setScale(2).divide(
equalTo(new BigDecimal(50).setScale(4).divide(
new BigDecimal(100))));
}
@ -826,7 +834,7 @@ public class OrderElementTest {
assertThat(orderLineGroup_1.getIndirectAdvanceAssignments().size(),
equalTo(3));
assertThat(orderLineGroup_1.getAdvancePercentage(),
equalTo(new BigDecimal(20).setScale(2).divide(
equalTo(new BigDecimal(20).setScale(4).divide(
new BigDecimal(100))));
}
@ -847,7 +855,7 @@ public class OrderElementTest {
new BigDecimal(100), new BigDecimal(20), true);
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
26).divide(new BigDecimal(100))));
2666).divide(new BigDecimal(10000)).setScale(4)));
Set<IndirectAdvanceAssignment> indirectAdvanceAssignments = ((OrderLineGroup) orderElement)
.getIndirectAdvanceAssignments();
@ -861,7 +869,7 @@ public class OrderElementTest {
}
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
26).divide(new BigDecimal(100))));
26).setScale(4).divide(new BigDecimal(100))));
}
@Test
@ -890,7 +898,7 @@ public class OrderElementTest {
new BigDecimal(20), five, new BigDecimal(50));
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
46).divide(new BigDecimal(100)).setScale(2)));
4666).setScale(4).divide(new BigDecimal(10000))));
Set<DirectAdvanceAssignment> directAdvanceAssignments = orderElement
.getDirectAdvanceAssignments();
@ -969,7 +977,7 @@ public class OrderElementTest {
new BigDecimal(1000), three, new BigDecimal(5000));
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
8).divide(new BigDecimal(100)).setScale(2)));
833).divide(new BigDecimal(10000)).setScale(4)));
Set<IndirectAdvanceAssignment> indirectAdvanceAssignments = ((OrderLineGroup) orderElement)
.getIndirectAdvanceAssignments();
@ -990,8 +998,8 @@ public class OrderElementTest {
assertThat(advanceAssignment.getLastAdvanceMeasurement().getValue(),
equalTo(new BigDecimal(5000)));
assertThat(advanceAssignment.getAdvancePercentage(),
equalTo(new BigDecimal(45).divide(new BigDecimal(100))
.setScale(2)));
equalTo(new BigDecimal(4545).divide(new BigDecimal(10000))
.setScale(4)));
}
@Test
@ -1016,7 +1024,7 @@ public class OrderElementTest {
new BigDecimal(1000), true);
assertThat(orderElement.getAdvancePercentage(), equalTo(new BigDecimal(
8).divide(new BigDecimal(100)).setScale(2)));
833).divide(new BigDecimal(10000)).setScale(4)));
Set<IndirectAdvanceAssignment> indirectAdvanceAssignments = ((OrderLineGroup) orderElement)
.getIndirectAdvanceAssignments();
@ -1037,8 +1045,8 @@ public class OrderElementTest {
assertThat(advanceAssignment.getLastAdvanceMeasurement().getValue(),
equalTo(new BigDecimal(5000)));
assertThat(advanceAssignment.getAdvancePercentage(),
equalTo(new BigDecimal(45).divide(new BigDecimal(100))
.setScale(2)));
equalTo(new BigDecimal(4545).divide(new BigDecimal(10000))
.setScale(4)));
}
public static void removeReportGlobalAdvanceFromChildrenAdvance(

View file

@ -600,9 +600,11 @@ public class ManageOrderElementAdvancesModel implements
return BigDecimal.ZERO;
}
BigDecimal division = value.divide(maxValue, 2, RoundingMode.DOWN);
return (division.multiply(new BigDecimal(100))).setScale(0,
BigDecimal division = value.divide(maxValue.setScale(2), 4,
RoundingMode.DOWN);
return (division.multiply(new BigDecimal(100))).setScale(2,
RoundingMode.DOWN);
}
@Override

View file

@ -38,7 +38,6 @@ import java.util.Map.Entry;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Hibernate;
import org.joda.time.LocalDate;
import org.navalplanner.business.common.IAdHocTransactionService;
import org.navalplanner.business.common.IOnTransaction;
@ -63,8 +62,6 @@ import org.navalplanner.business.planner.entities.Dependency.Type;
import org.navalplanner.business.resources.daos.ICriterionDAO;
import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.Machine;
import org.navalplanner.business.resources.entities.MachineWorkersConfigurationUnit;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.scenarios.entities.Scenario;
import org.springframework.beans.factory.annotation.Autowired;
@ -492,7 +489,8 @@ public class TaskElementAdapter implements ITaskElementAdapter {
StringBuilder result = new StringBuilder();
result.append(_("Name: {0}", getName()) + "<br/>");
result.append(_("Advance") + ": ").append(
getAdvancePercentage().multiply(new BigDecimal(100)))
(getAdvancePercentage().multiply(new BigDecimal(100)))
.setScale(2, RoundingMode.DOWN))
.append("% , ");
result.append(_("Hours invested") + ": ").append(