Guest User

Untitled

a guest
Oct 17th, 2017
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.68 KB | None | 0 0
  1. global class UpdateLastWorkedDate_onContactBatch implements Database.Batchable<sObject>, Schedulable {
  2.      public EmailTemplate et{get;set;}
  3.       
  4.     global DataBase.QueryLocator start(Database.BatchableContext bc){
  5.                        system.debug('>>>>');
  6.  
  7.         return DataBase.getQueryLocator([select id,owner.email,TR1__Candidate_Status__c,Last_Day_Worked__c,TRSCHED__Compliance_Owner__r.email from contact where Last_Day_Worked__c!=null]);
  8.         }
  9.     global void execute(Database.BatchableContext BC, List<contact> scope)
  10.        {
  11.                       system.debug('>>>>');
  12.  
  13.        list<contact> conlist=new list<contact>();
  14.        et=[select id,Name FROM EmailTemplate where Name='3monthsgap' Limit 1];
  15.        list<string> to=new list<string>();
  16.        List<Messaging.SingleEmailMessage> mailsList = new List<Messaging.SingleEmailMessage>();
  17.  
  18.        for(contact c:scope){
  19.                system.debug('>>>>');
  20.  
  21.         integer i;
  22.         //i=system.today().monthsBetween(c.Last_Day_Worked__c);
  23.         i=c.Last_Day_Worked__c.monthsBetween(system.today());
  24.  
  25.         system.debug('>>>>'+i);
  26.         if(i==3){
  27.         c.TR1__Candidate_Status__c='InActive';
  28.         conlist.add(c);
  29.         }
  30.         if(i==2)
  31.         {
  32.                        system.debug('>>>>');
  33.  
  34.         Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
  35.                to.add(c.owner.email);
  36.                  to.add(c.TRSCHED__Compliance_Owner__r.email);
  37.  
  38.                  mail.setTargetObjectId(c.id);
  39.                  mail.setSaveAsActivity(false);
  40.                  mail.setTreatTargetObjectAsRecipient(false);
  41.                  mail.setTemplateId(et.id);
  42.                  //mail.setWhatId(AQ.id);
  43.                  mail.setToAddresses(to);
  44.           mailsList.add(mail);
  45.         
  46.         }
  47.        }
  48.       if(conlist.Size()>0){
  49.  
  50.        update conlist;
  51.        }
  52.         if(mailsList.Size()>0){
  53.                        system.debug('>>>>');
  54.  
  55.             Messaging.sendEmail(mailsList);
  56.             }  
  57.        
  58.        }   
  59.     
  60.     global void finish(Database.BatchableContext BC){
  61.         }
  62.        global void execute(SchedulableContext sc) {
  63.         UpdateLastWorkedDate_onContactBatch b1 = new UpdateLastWorkedDate_onContactBatch();
  64.         ID batchprocessid = Database.executeBatch(b1,200);    
  65.     }
  66.     
  67. }
  68.  
  69. Test class: 59% coverage
  70.  
  71. @isTest
  72. public class Test_UpdateLastWorkedDate_onContactBatch {
  73. public static testMethod void test() 
  74.      {
  75.    /*   Profile p = [SELECT Id FROM Profile WHERE Name='system administrator'];
  76.          
  77.     User us = new User(Alias='Admin',Email='test@gamil.com',LastName='Testing',Username='standardus@testorg.com',LanguageLocaleKey='en_US',LocaleSidKey='en_US',ProfileId = p.Id, 
  78.            TimeZoneSidKey='America/Los_Angeles',EmailEncodingKey='UTF-8');
  79.     insert us;*/
  80.    User us = [Select id from User where Id = :UserInfo.getUserId()];
  81.          
  82.     Account acc = new Account(Name = 'test13');
  83.     insert acc;
  84.     
  85.     Contact con = new Contact(LastName = 'One', Last_Day_Worked__c=system.today().adddays(-90), Email ='test.user@gmail.com',  TR1__Candidate_Status__c ='DNU', TRSCHED__Compliance_Owner__c=us.id,  AccountId=acc.id);
  86.     insert con;
  87.          
  88.  //     EmailTemplate eT = new EmailTemplate (developerName = 'X3monthsgap', subject='test', FolderId = UserInfo.getUserId(), TemplateType= 'Text', Name = '3monthsgap'); 
  89.      //    insert eT;
  90.    System.runAs(us)
  91.    {
  92.    Test.startTest();
  93.      UpdateLastWorkedDate_onContactBatch obj = new UpdateLastWorkedDate_onContactBatch();
  94.      DataBase.executeBatch(obj); 
  95.          
  96.    Test.stopTest();
  97.    }  
  98.     }
  99.     
  100. }
  101.  
  102. Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
  103.                to.add(c.owner.email);
  104.                  to.add(c.TRSCHED__Compliance_Owner__r.email);
  105.  
  106.                  mail.setTargetObjectId(c.id);
  107.                  mail.setSaveAsActivity(false);
  108.                  mail.setTreatTargetObjectAsRecipient(false);
  109.                  mail.setTemplateId(et.id);
  110.                  //mail.setWhatId(AQ.id);
  111.                  mail.setToAddresses(to);
  112.           mailsList.add(mail);
  113.        
  114.  global void execute(SchedulableContext sc) {
  115.         UpdateLastWorkedDate_onContactBatch b1 = new UpdateLastWorkedDate_onContactBatch();
  116.         ID batchprocessid = Database.executeBatch(b1,200);
Add Comment
Please, Sign In to add comment