Browse Source

Account validation logic changed

master
Preyea Regmi 5 years ago
parent
commit
fb017d8119
  1. 42
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/RecipientDetailValidatorV3.java
  2. 4
      app/src/main/java/com/gmeremit/online/gmeremittance_native/recipientV3/presenter/recipientaddeditV3/edit/RecipientEditV3Presenter.java

42
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);
}

4
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)))

Loading…
Cancel
Save