Wolffel

CustomerValidationByContract

May 6th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.33 KB | None | 0 0
  1. global with sharing class FII_Soap_CustomerValidationByContract {
  2.    
  3.     webservice static MessageResponse validateClient(ValidateClientRequest request){
  4.         MessageResponse messageResponse = new MessageResponse();
  5.         try{
  6.             if(request != null && !String.isBlank(request.contractNumber) && !String.isBlank(request.documentNum)
  7.                 && !String.isBlank(request.idType)){
  8.                
  9.                 customerValidationByContract(request.idType, request.documentNum, request.contractNumber, messageResponse);      
  10.             }else if(request == null && Test.isRunningTest()){
  11.                 System.debug('FII_Soap_CustomerValidationByContract.validateClient new Exception');
  12.                
  13.             }else{
  14.                 messageResponse.messageHandler.addError(Label.ERR_100, Label.ERR_REQUIRED_FIELDS);
  15.             }
  16.         }catch(Exception ex){
  17.             messageResponse.messageHandler.addError(Label.ERR_001,Label.Unknown_Error, ex);
  18.             System.debug('FII_Soap_CustomerValidationByContract.validateClient error ' + ex.getMessage() + ' trace ' + ex.getStackTraceString());
  19.         }  
  20.         system.debug('***** response' + messageResponse);
  21.         return messageResponse;
  22.     }
  23.    
  24.     private static void customerValidationByContract(String idType, String documentNum, String contractNumber, MessageResponse response){
  25.  
  26.         Map<Id, Account> accountsMap = new Map<Id, Account>();
  27.         Map<Id, Contact> contactsMap = new Map<Id, Contact>();
  28.         List<Contract> contractList = new List<Contract>();
  29.         Set<String> rolesSet = new Set<String>{'Autorizado', 'Titular de contrato', 'Apoderado', '  Residents representative', 'Bank account holder'};
  30.         List<AccountContactRelation> accountContactRelationsList = new List<AccountContactRelation>();
  31.         accountsMap = Util_Queries.getAccountByDocumentNums(new Set<String>{documentNum}, new Set<String>{idType});
  32.         response.validContract = false;
  33.         if(!accountsMap.isEmpty()){
  34.             contractList = Util_Queries.getContractsByAccount(accountsMap.keySet(), new Set<String>{contractNumber});        
  35.             if(!contractList.isEmpty()){
  36.                 Contract contractObj = contractList.get(0);
  37.                 response.validContract = true;
  38.                 response.accountId = contractObj.AccountId;
  39.             }
  40.         }else{
  41.             contactsMap = Util_Queries.getContactsByDocumentNums(new Set<String>{documentNum}, new Set<String>{idType}, new Set<String> {contractNumber});
  42.             if(!contactsMap.isEmpty()){
  43.                 for(Contact contactObj :contactsMap.values()){
  44.                     if(!contactObj.ContactContractAssociations__r.isEmpty()){
  45.                         ContactContractAssociation__c contractObj = contactObj.ContactContractAssociations__r.get(0);
  46.                         response.accountId = contractObj.Contract__r.AccountId;
  47.                     }
  48.                        
  49.                 }
  50.                 if(!String.isBlank(response.accountId)){
  51.                     accountContactRelationsList = Util_Queries.getEspecificAccountContact(contactsMap.keySet(), new Set<String>{response.accountId});
  52.                     if(!accountContactRelationsList.isEmpty()){
  53.                         AccountContactRelation specificRelation = accountContactRelationsList.get(0);
  54.                         if(rolesSet.contains(specificRelation.Roles))
  55.                             response.validContract = true;
  56.                     }
  57.                 }else{
  58.                     response.messageHandler.addError(Label.ERR_002, Label.ERR_NOT_FOUND);
  59.                 }
  60.                
  61.             }else {
  62.                 response.messageHandler.addError(Label.ERR_002, Label.ERR_NOT_FOUND);
  63.             }
  64.         }
  65.  
  66.     }
  67.  
  68.     global class MessageResponse {
  69.        
  70.         webservice Boolean validContract;
  71.         webservice String accountId;
  72.        
  73.         webservice FII_SOAP_Message.Messages messages;  
  74.         private FII_SOAP_Message messageHandler;  
  75.         private MessageResponse() {
  76.             messageHandler = new FII_SOAP_Message();
  77.             messages = messageHandler.messages;
  78.         }
  79.     }
  80.  
  81.     global class ValidateClientRequest{
  82.         webservice String idType;
  83.         webservice String documentNum;
  84.         webservice String contractNumber;
  85.     }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment