From ea395d430343e4896afd57b78aa72b2010010881 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 2 Mar 2010 12:18:32 +0100 Subject: [PATCH] ItEr49S04ValidacionEProbasFuncionaisItEr48S04: [Bug #358] Disabling "Max value" filed at advance assignments if percentage. --- .../business/advance/entities/AdvanceAssignment.java | 2 ++ .../advance/entities/DirectAdvanceAssignment.java | 12 ++++++++++++ .../orders/ManageOrderElementAdvancesController.java | 4 +++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceAssignment.java index 2193d2cb2..c8dea68ac 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/AdvanceAssignment.java @@ -20,6 +20,7 @@ package org.navalplanner.business.advance.entities; +import org.hibernate.validator.NotNull; import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.orders.entities.OrderLineGroup; @@ -60,6 +61,7 @@ public abstract class AdvanceAssignment extends BaseEntity { this.advanceType = advanceType; } + @NotNull(message = "advance type not specified") public AdvanceType getAdvanceType() { return this.advanceType; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/DirectAdvanceAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/DirectAdvanceAssignment.java index 5f0388e3c..03ae69790 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/DirectAdvanceAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/advance/entities/DirectAdvanceAssignment.java @@ -25,6 +25,7 @@ import java.math.RoundingMode; import java.util.SortedSet; import java.util.TreeSet; +import org.hibernate.validator.AssertTrue; import org.hibernate.validator.NotNull; import org.hibernate.validator.Valid; import org.joda.time.LocalDate; @@ -158,4 +159,15 @@ public class DirectAdvanceAssignment extends AdvanceAssignment { return fake; } + @AssertTrue(message = "max value of percentage advance type must be 100") + public boolean checkConstraintMaxValueMustBe100ForPercentage() { + AdvanceType advanceType = getAdvanceType(); + if ((advanceType != null) && (advanceType.getPercentage())) { + if (maxValue.compareTo(new BigDecimal(100)) != 0) { + return false; + } + } + return true; + } + } 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 d71881fcd..5cda42c44 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 @@ -346,7 +346,9 @@ public class ManageOrderElementAdvancesController extends final DirectAdvanceAssignment directAdvanceAssignment; if ((advanceAssignment instanceof IndirectAdvanceAssignment) - || isQualityForm) { + || isQualityForm + || (advanceAssignment.getAdvanceType() != null && advanceAssignment + .getAdvanceType().getPercentage())) { maxValue.setDisabled(true); } if (advanceAssignment instanceof IndirectAdvanceAssignment) {