From fb017d8119b49b0360620f7226be6d04386d12f8 Mon Sep 17 00:00:00 2001 From: Preyea Regmi Date: Fri, 6 Sep 2019 19:06:11 +0900 Subject: [PATCH] Account validation logic changed --- .../RecipientDetailValidatorV3.java | 42 +++++++++++++++++-- .../edit/RecipientEditV3Presenter.java | 4 ++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java index 502d563c..8432ca08 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java @@ -21,7 +21,6 @@ import com.gmeremit.online.gmeremittance_native.recipientV3.utils.EditTextConfig import com.gmeremit.online.gmeremittance_native.sendmoneyV2.model.payoutmode.BranchList; import com.gmeremit.online.gmeremittance_native.utils.Utils; -import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -448,8 +447,11 @@ public class RecipientDetailValidatorV3 { view.updateValueToWidgetBankName(selectedBank.toString()); view.setErrorOnWidgetBank(null); + //After successfull update of selected bank, determine weather it has corresponding dependency or not. // If dependency are there, override thee validation rule and manage the data + + //For Branch ValidationRuleModel branchValidationRule = validationRuleModelMap.get(FIELD_BRANCH_NAME); if (branchValidationRule != null && branchValidationRule.isFieldRequired() && "True".equalsIgnoreCase(selectedBank.getBranchRequired())) { view.updateValueToWidgetBranchName(null); @@ -464,6 +466,28 @@ public class RecipientDetailValidatorV3 { branchValidationRule.updateValidity(true); } + + //TODO Test necessary + //For Account + ValidationRuleModel accountValidationRule = validationRuleModelMap.get(FIELD_ACCOUNT_NO); + if (accountValidationRule != null) { + if ("True".equalsIgnoreCase(selectedBank.getIsAccountRequired())) { + view.updateValidationRuleToWidgetAccountNo(true, + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(accountValidationRule.getKeyboardType(), accountValidationRule.isLocalKeyboardAllowed(), + accountValidationRule.getMaxFieldLengthInt())); + updateAccountNo(recipientInfo.getAgent().getAccountNo()); + + + } else { + //We conclude that branch is not a required field + //Account number is removed from model just before sending to server using @clearAccountIfNotRequired() + accountValidationRule.updateValidity(false); + view.updateValidationRuleToWidgetAccountNo(false, + EditTextConfigurationFactory.getKeyboardTypeFromKeyword(accountValidationRule.getKeyboardType(), accountValidationRule.isLocalKeyboardAllowed(), + accountValidationRule.getMaxFieldLengthInt())); + } + } + validateAll(); } } @@ -566,6 +590,19 @@ public class RecipientDetailValidatorV3 { } } + public void clearAccountIfNotRequired() { + + AgentV3Model agentV3Model = recipientInfo.getAgent(); + if (agentV3Model != null) { + PaymentBankModel paymentBankModel = availableDynamicValidationModel.getBankFromId(agentV3Model.getId()); + + if (paymentBankModel != null && !"True".equalsIgnoreCase(paymentBankModel.getIsAccountRequired())) { + agentV3Model.setAccountNo(null); + } + } + + } + public boolean requiresAccountValidation() { @@ -1110,8 +1147,7 @@ public class RecipientDetailValidatorV3 { //Don't clear the data, just show error message and disable update button for the moment public void updateBankValidationWhenPartnerHasChanged() { ValidationRuleModel validationRuleModel = validationRuleModelMap.get(FIELD_BANK_NAME); - if(validationRuleModel!=null) - { + if (validationRuleModel != null) { view.setErrorOnWidgetBank("Please select a different bank"); view.setSubmitButtonEnabled(false); } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java index e4f0aa95..64bcf3ac 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java @@ -10,6 +10,7 @@ import com.gmeremit.online.gmeremittance_native.recipientV3.gateway.recipientadd import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.countryservice.CountryServiceModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.countryservice.ServiceTypeModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.dynamicvalidation.DynamicValidationModel; +import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.dynamicvalidation.PaymentBankModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientaddeditV3.dynamicvalidation.ValidationRuleModel; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.AgentV3Model; import com.gmeremit.online.gmeremittance_native.recipientV3.model.recipientlistingV3.BranchV3Model; @@ -112,6 +113,9 @@ public class RecipientEditV3Presenter extends RecipientAddEditBaseV3Presenter { } + //TODO Test Required + validator.clearAccountIfNotRequired(); + compositeDisposable.add( this.gateway.editRecipient(gateway.getAuth(), gateway.getUserIDNumber(), validator.getRecipientDetail().getReceiverId(), validator.getRecipientDetail()) .doOnSubscribe(disposable -> view.showProgressBar(true, getStringfromStringId(R.string.processing_request_text)))