Saturday 25 June 2016

Whenerver New Quote signed via DocuSign to changeEnvelope status Completed stage in opportunity to close won and to send email of the quote to user@gmail.com

Trigger

trigger CreateQuoteDocSignComp12 on dsfs__DocuSign_Status__c(after insert,after update){
List<Messaging.SingleEmailMessage> sendMails = new List<Messaging.SingleEmailMessage>();
List<Messaging.EmailFileAttachment> attachmentList = new List<Messaging.EmailFileAttachment>();
  set<Id> docusignID = new set<Id>();
   for(dsfs__DocuSign_Status__c dsfs : trigger.new){
         if(dsfs.dsfs__Envelope_Status__c == 'Completed'){
            docusignID.add(dsfs.ID);
            }
      }
      system.debug('@@@@@@@@@@@@'+docusignID);
      user currentUserID = [select id,email from user where id=:userinfo.getuserid()];
      list<string> UserEmail = new list<string>();
      UserEmail.add(currentUserID.Email);
   
      list<string> email = new list<string>();
      email.add(currentUserID.email);
       system.debug('#######################'+email);
   
      for( Attachment att : [ Select Id, Parentid, Body, Name from attachment where parentid IN: docusignID ]) {
      system.debug('22222222222222'+att);
      system.debug('888888888888'+email);
      Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment();
      efa.setFileName(att.Name);
      efa.setBody(att.body);
      efa.setInline(false);
      attachmentList.add(efa);
   
      Messaging.SingleEmailMessage singleMail = new Messaging.SingleEmailMessage();
      singleMail.setToAddresses(email);
      singleMail.setTargetObjectId(currentUserID.ID);
      singleMail.setSaveAsActivity(false);
      singleMail.setTreatTargetObjectAsRecipient(false);
      singleMail.setPlainTextBody('Your Email has been sent');
      singleMail.setFileAttachments(attachmentList);
      sendMails.add(singleMail);
      }

      //Messaging.sendEmail(sendMails);
     }

whenever new Quote signed via DocuSign to Envelope status Completed change stage in opportunity to close won

Trigger.


trigger DocusignstageupdateEnvelopeStatus on dsfs__DocuSign_Status__c (after update) {

   //   List<dsfs__DocuSign_Status__c> oppListnew = new List<dsfs__DocuSign_Status__c>();
      
       List<Opportunity> oppListnew = new List<Opportunity>();
        set<Id> oppIds = new set<Id>();
        
             for(dsfs__DocuSign_Status__c dc:trigger.new){
             if(dc.dsfs__Envelope_Status__c!=null)
             oppIds.add(dc.dsfs__Envelope_Status__c);
      
        }
        
            List<Opportunity> oppList = [select id, Name , StageName  from Opportunity where id IN:oppIds];
              
                 for(Opportunity op : oppList){
                  op.StageName ='Closed Won';
                  oppListnew.add(op);
        }
                 update oppListnew;


         }

whenever new Quote signed via DocuSign to Envelope status Completed change stage in opportunity to close won

Trigger.


trigger DocusignstageupdateEnvelopeStatus on dsfs__DocuSign_Status__c (after update) {

   //   List<dsfs__DocuSign_Status__c> oppListnew = new List<dsfs__DocuSign_Status__c>();
      
       List<Opportunity> oppListnew = new List<Opportunity>();
        set<Id> oppIds = new set<Id>();
        
             for(dsfs__DocuSign_Status__c dc:trigger.new){
             if(dc.dsfs__Envelope_Status__c!=null)
             oppIds.add(dc.dsfs__Envelope_Status__c);
      
        }
        
            List<Opportunity> oppList = [select id, Name , StageName  from Opportunity where id IN:oppIds];
              
                 for(Opportunity op : oppList){
                  op.StageName ='Closed Won';
                  oppListnew.add(op);
        }
                 update oppListnew;


         }

Whenever New Quote sent via DocuSign to change opportunity status to proposal



trigger DocusignExpirationDate on dsfs__DocuSign_Status__c (after update) {

    List<Quote> Docusign = new List<Quote>();
    set<Id> quoteid =new set<Id>();
    set<Id> oppId = new set<Id>();
    set<Id> envelopeId = new set<Id>();
    List<Opportunity> oppListUpdate =new List<Opportunity>();  
  
    map<ID,dsfs__DocuSign_Status__c>  docSignMap = new map<ID,dsfs__DocuSign_Status__c>();
    
         for(dsfs__DocuSign_Status__c Expdate:Trigger.new){
            if(Expdate.Quote__c !=null)
            quoteid.add(Expdate.Quote__c);
            
          }
      list<Quote>  QuoteList = [select id,name,ExpirationDate,Opportunityid  from Quote where id IN :quoteid]; 
        system.debug('/////////////'+QuoteList );
        for(Quote qu :QuoteList ){
          if(qu.Opportunityid !=null){
          oppId.add(qu.Opportunityid );
          }
            qu.ExpirationDate =date.valueof(System.now());
            Docusign.add(qu);
            system.debug('////rrrrrr/////////'+Docusign);
       
        } 
       List<Opportunity> oppList = [select id,StageName from Opportunity where id in:oppId]; 
           for(Opportunity op:oppList ){
            op.stageName = 'Proposal/Price Quote';
             
            oppListUpdate.add(op);        
           }  
           
       
      
      update oppListUpdate;  
      update Docusign;

      }

Whenever New Quote sent via DocuSign to change opportunity status to proposal



trigger DocusignExpirationDate on dsfs__DocuSign_Status__c (after update) {

    List<Quote> Docusign = new List<Quote>();
    set<Id> quoteid =new set<Id>();
    set<Id> oppId = new set<Id>();
    set<Id> envelopeId = new set<Id>();
    List<Opportunity> oppListUpdate =new List<Opportunity>();  
  
    map<ID,dsfs__DocuSign_Status__c>  docSignMap = new map<ID,dsfs__DocuSign_Status__c>();
    
         for(dsfs__DocuSign_Status__c Expdate:Trigger.new){
            if(Expdate.Quote__c !=null)
            quoteid.add(Expdate.Quote__c);
            
          }
      list<Quote>  QuoteList = [select id,name,ExpirationDate,Opportunityid  from Quote where id IN :quoteid]; 
        system.debug('/////////////'+QuoteList );
        for(Quote qu :QuoteList ){
          if(qu.Opportunityid !=null){
          oppId.add(qu.Opportunityid );
          }
            qu.ExpirationDate =date.valueof(System.now());
            Docusign.add(qu);
            system.debug('////rrrrrr/////////'+Docusign);
       
        } 
       List<Opportunity> oppList = [select id,StageName from Opportunity where id in:oppId]; 
           for(Opportunity op:oppList ){
            op.stageName = 'Proposal/Price Quote';
             
            oppListUpdate.add(op);        
           }  
           
       
      
      update oppListUpdate;  
      update Docusign;

      }

Whenever new docusign send Status of the envelope in account layout

TRIGGER
 

trigger accountUpdate on dsfs__DocuSign_Status__c (after insert) {
    List<dsfs__DocuSign_Status__c> docStatusList=new List<dsfs__DocuSign_Status__c>();
    String OppName;
    //Boolean test=false;
    Opportunity opLIst=new Opportunity();
    List<Id> quoteId = new List<Id>();
    if(trigger.isInsert){
        for(dsfs__DocuSign_Status__c dStatus:Trigger.new){
            quoteId.add(dStatus.Quote__c);
        
    
    system.debug('DDDDDDDDDDD'+quoteId);
    if(quoteId!=null){
        Quote quoteRec=[select id, OpportunityId from Quote where id =:quoteId];
        OppName=quoteRec.OpportunityId;
        system.debug('XXXXXXXXXx'+OppName);
        
        if(OppName!=null)
        opLIst=[select id,AccountId from Opportunity where id =:OppName];
        system.debug('ZZZZZZZZz'+opLIst);
            dsfs__DocuSign_Status__c DD=new dsfs__DocuSign_Status__c();
            DD.Id=dStatus.Id;
            DD.dsfs__Company__c=opLIst.AccountId;
            
            update DD;
            system.debug('EEEEEEEEEE'+DD);
        }    
       }
    }
    
   

}