From 07482dd72dbcc6944b43e5153c059492b020f48e Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Mon, 7 Jun 2010 09:28:05 +0200 Subject: [PATCH] ItEr59S04ValidacionEProbasFuncionaisItEr58S04 : Fixing bug. Fixes the rounding mode of the division to calculate the percentage of a advance. --- .../ManageOrderElementAdvancesController.java | 32 +++++++++++-------- .../ManageOrderElementAdvancesModel.java | 5 +-- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesController.java index 70e806995..793510b68 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesController.java @@ -868,23 +868,26 @@ public class ManageOrderElementAdvancesController extends Listitem listItem = (Listitem) editAdvances.getChildren().get(i); AdvanceAssignment advance = (AdvanceAssignment) listItem .getValue(); - if (advance.getAdvanceType() == null) { - throw new WrongValueException(getComboboxTypeBy(listItem), + if (advance != null) { + if (advance.getAdvanceType() == null) { + throw new WrongValueException( + getComboboxTypeBy(listItem), _("Value is not valid, the type must be not empty")); - } + } - DirectAdvanceAssignment directAdvanceAssignment; - if (advance instanceof IndirectAdvanceAssignment) { - directAdvanceAssignment = manageOrderElementAdvancesModel + DirectAdvanceAssignment directAdvanceAssignment; + if (advance instanceof IndirectAdvanceAssignment) { + directAdvanceAssignment = manageOrderElementAdvancesModel .calculateFakeDirectAdvanceAssignment((IndirectAdvanceAssignment) advance); - } else { - directAdvanceAssignment = (DirectAdvanceAssignment) advance; - } - if (directAdvanceAssignment != null + } else { + directAdvanceAssignment = (DirectAdvanceAssignment) advance; + } + if (directAdvanceAssignment != null && directAdvanceAssignment.getMaxValue() == null) { - throw new WrongValueException( - getDecimalboxMaxValueBy(listItem), - _("Value is not valid, the current value must be not empty")); + throw new WrongValueException( + getDecimalboxMaxValueBy(listItem), + _("Value is not valid, the current value must be not empty")); + } } } } @@ -942,7 +945,8 @@ public class ManageOrderElementAdvancesController extends AdvanceAssignment advanceAssignment = (AdvanceAssignment) listItem .getValue(); existItems = true; - if (advanceAssignment.getReportGlobalAdvance()) { + if ((advanceAssignment != null) + && (advanceAssignment.getReportGlobalAdvance())) { return true; } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java index 4c4a4a81b..2685b945f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java @@ -601,8 +601,9 @@ public class ManageOrderElementAdvancesModel implements return BigDecimal.ZERO; } - return value.setScale(2).divide(maxValue, RoundingMode.DOWN).multiply( - new BigDecimal(100)); + BigDecimal division = value.divide(maxValue, 2, RoundingMode.DOWN); + return (division.multiply(new BigDecimal(100))).setScale(0, + RoundingMode.DOWN); } @Override