From 983a61e939c801af4396300c5ff84b2d6e788363 Mon Sep 17 00:00:00 2001 From: Keith Woodlock Date: Mon, 16 Jul 2012 17:16:33 +0100 Subject: [PATCH] add check to ensure from and to office are not the same. --- .../org/mifosng/platform/DataValidatorBuilder.java | 14 ++++++++++++++ .../BranchMoneyTransferCommandValidator.java | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/DataValidatorBuilder.java b/mifosng-provider/src/main/java/org/mifosng/platform/DataValidatorBuilder.java index d8387ac35..5e591a2f2 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/DataValidatorBuilder.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/DataValidatorBuilder.java @@ -72,6 +72,20 @@ public class DataValidatorBuilder { return this; } + public DataValidatorBuilder notSameAsParameter(String linkedParameterName, Object linkedValue) { + if (value == null && linkedValue == null && ignoreNullValue) { + return this; + } + + if (value != null && value.equals(linkedValue)) { + StringBuilder validationErrorCode = new StringBuilder("validation.msg.").append(resource).append(".").append(linkedParameterName).append(".same.as.").append(parameter); + StringBuilder defaultEnglishMessage = new StringBuilder("The parameter ").append(linkedParameterName).append(" is same as ").append(parameter).append("."); + ApiParameterError error = ApiParameterError.parameterError(validationErrorCode.toString(), defaultEnglishMessage.toString(), linkedParameterName, linkedValue, value); + dataValidationErrors.add(error); + } + return this; + } + public DataValidatorBuilder notNull() { if (value == null && !ignoreNullValue) { StringBuilder validationErrorCode = new StringBuilder("validation.msg.").append(resource).append(".").append(parameter).append(".cannot.be.blank"); diff --git a/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/BranchMoneyTransferCommandValidator.java b/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/BranchMoneyTransferCommandValidator.java index 4841cb097..932e6cb94 100644 --- a/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/BranchMoneyTransferCommandValidator.java +++ b/mifosng-provider/src/main/java/org/mifosng/platform/organisation/service/BranchMoneyTransferCommandValidator.java @@ -33,6 +33,10 @@ public class BranchMoneyTransferCommandValidator { baseDataValidator.reset().parameter("fromOfficeId").value(command.getFromOfficeId()).notNull(); } + if (command.getFromOfficeId() != null && command.getToOfficeId() != null) { + baseDataValidator.reset().parameter("fromOfficeId").value(command.getFromOfficeId()).notSameAsParameter("toOfficeId", command.getToOfficeId()); + } + baseDataValidator.reset().parameter("transactionDate").value(command.getTransactionLocalDate()).notNull(); baseDataValidator.reset().parameter("currencyCode").value(command.getCurrencyCode()).notBlank(); baseDataValidator.reset().parameter("transactionAmount").value(command.getTransactionAmountValue()).notNull();