From ea3662519b73a61342813df856bd1367ddf5ca4c Mon Sep 17 00:00:00 2001 From: John Woodlock Date: Mon, 5 Aug 2013 11:37:09 +0100 Subject: [PATCH] mifosx-567 fix externalId defaulting to blank string if not passed as a parameter --- .../mifosplatform/infrastructure/core/api/JsonCommand.java | 4 ++++ .../org/mifosplatform/organisation/staff/domain/Staff.java | 2 +- .../mifosplatform/portfolio/loanaccount/domain/Loan.java | 6 +++--- .../service/LoanWritePlatformServiceJpaRepositoryImpl.java | 4 ++-- .../portfolio/loanproduct/domain/LoanProduct.java | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java index eda5217d5..d6c81ed8a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/core/api/JsonCommand.java @@ -306,6 +306,10 @@ public final class JsonCommand { final String value = this.fromApiJsonHelper.extractStringNamed(parameterName, parsedCommand); return StringUtils.defaultIfEmpty(value, ""); } + + public String stringValueOfParameterNamedAllowingNull(final String parameterName) { + return this.fromApiJsonHelper.extractStringNamed(parameterName, parsedCommand); + } public boolean isChangeInBigDecimalParameterNamedDefaultingZeroToNull(final String parameterName, final BigDecimal existingValue) { boolean isChanged = false; diff --git a/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java b/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java index d23c69a45..2a82ef24a 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/organisation/staff/domain/Staff.java @@ -64,7 +64,7 @@ public class Staff extends AbstractPersistable { String lastname = command.stringValueOfParameterNamed(lastnameParamName); final String externalIdParamName = "externalId"; - String externalId = command.stringValueOfParameterNamed(externalIdParamName); + String externalId = command.stringValueOfParameterNamedAllowingNull(externalIdParamName); final String isLoanOfficerParamName = "isLoanOfficer"; final boolean isLoanOfficer = command.booleanPrimitiveValueOfParameterNamed(isLoanOfficerParamName); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java index 9b33ffb57..093a3579e 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/domain/Loan.java @@ -1332,7 +1332,7 @@ public class Loan extends AbstractPersistable { actualChanges.put("status", LoanEnumerations.status(this.loanStatus)); final LocalDate actualDisbursementDate = command.localDateValueOfParameterNamed("actualDisbursementDate"); - final String txnExternalId = command.stringValueOfParameterNamed("externalId"); + final String txnExternalId = command.stringValueOfParameterNamedAllowingNull("externalId"); this.actualDisbursementDate = actualDisbursementDate.toDate(); this.disbursedBy = currentUser; @@ -1832,7 +1832,7 @@ public class Loan extends AbstractPersistable { existingReversedTransactionIds.addAll(findExistingReversedTransactionIds()); final LocalDate writtenOffOnLocalDate = command.localDateValueOfParameterNamed("transactionDate"); - final String txnExternalId = command.stringValueOfParameterNamed("externalId"); + final String txnExternalId = command.stringValueOfParameterNamedAllowingNull("externalId"); this.closedOnDate = writtenOffOnLocalDate.toDate(); this.writtenOffOnDate = writtenOffOnLocalDate.toDate(); @@ -1879,7 +1879,7 @@ public class Loan extends AbstractPersistable { existingReversedTransactionIds.addAll(findExistingReversedTransactionIds()); final LocalDate closureDate = command.localDateValueOfParameterNamed("transactionDate"); - final String txnExternalId = command.stringValueOfParameterNamed("externalId"); + final String txnExternalId = command.stringValueOfParameterNamedAllowingNull("externalId"); this.closedOnDate = closureDate.toDate(); changes.put("closedOnDate", command.stringValueOfParameterNamed("transactionDate")); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index fb18ad442..02abb94d1 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -349,7 +349,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final LocalDate transactionDate = command.localDateValueOfParameterNamed("transactionDate"); final BigDecimal transactionAmount = command.bigDecimalValueOfParameterNamed("transactionAmount"); - final String txnExternalId = command.stringValueOfParameterNamed("externalId"); + final String txnExternalId = command.stringValueOfParameterNamedAllowingNull("externalId"); final Map changes = new LinkedHashMap(); changes.put("transactionDate", command.stringValueOfParameterNamed("transactionDate")); @@ -470,7 +470,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf final LocalDate transactionDate = command.localDateValueOfParameterNamed("transactionDate"); final BigDecimal transactionAmount = command.bigDecimalValueOfParameterNamed("transactionAmount"); - final String txnExternalId = command.stringValueOfParameterNamed("externalId"); + final String txnExternalId = command.stringValueOfParameterNamedAllowingNull("externalId"); final Map changes = new LinkedHashMap(); changes.put("transactionDate", command.stringValueOfParameterNamed("transactionDate")); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/domain/LoanProduct.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/domain/LoanProduct.java index ec000bbea..95716c966 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/domain/LoanProduct.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanproduct/domain/LoanProduct.java @@ -134,7 +134,7 @@ public class LoanProduct extends AbstractPersistable { final LocalDate startDate = command.localDateValueOfParameterNamed("startDate"); final LocalDate closeDate = command.localDateValueOfParameterNamed("closeDate"); - final String externalId = command.stringValueOfParameterNamed("externalId"); + final String externalId = command.stringValueOfParameterNamedAllowingNull("externalId"); return new LoanProduct(fund, loanTransactionProcessingStrategy, name, description, currency, principal, minPrincipal, maxPrincipal, interestRatePerPeriod, minInterestRatePerPeriod, maxInterestRatePerPeriod, interestFrequencyType, annualInterestRate,