• srikanth yeturu 5
  • NEWBIE
  • 20 Points
  • Member since 2020

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 17
    Questions
  • 11
    Replies
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
i wrote below code can anyone help me in this plzz., it is  ot working


global class Live_Date_Batch_Class implements Database.Batchable<sObject>{
            
            public List<Contact> conList {get;set;}
    
    global Live_Date_Batch_Class()
        {
           
        }
        global Database.QueryLocator start(Database.BatchableContext BC)
        {
            string query = 'select id,LastName from Contact WHERE Live_Date__c = TODAY';
            System.debug('aaaaaaaaaaaaaaaaaaaaaaaa'+query) ; 
            return Database.getQueryLocator(query);
        }
       global void execute(Database.BatchableContext BC, List<Contact>scope)
       {
            Set<Id> convertedIdSet = new Set<Id>();
            List<messaging.SingleEmailMessage>  emails = new List<messaging.SingleEmailMessage>();
            for(Contact contact : scope) 
       {
            convertedIdSet.add(contact.Id);
       }    
       
                   for(Contact contact : scope) 
       {
            conList = ([SELECT FirstName, LastName, Email, Phone, Account.Id
                        FROM Contact 
                        WHERE Id IN :convertedIdSet] );
  
       }    

           String userName = UserInfo.getUserName();

            User activeUser = [Select Email From User where Username = : userName limit 1];

            String userEmail = activeUser.Email;
           
           
       System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+convertedIdSet) ; 
       Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
       email.setToAddresses(new String[] {userEmail});
       email.setSubject('+convertedIdSet+'); 
       email.setPlainTextBody('details');
       emails.add(email);
       String body = 'Contact Details : ' +conList+ ' ';
       Messaging.sendEmail(emails);    
       }
            
       global void finish(Database.BatchableContext BC){
       }
    }
Below code is not working can anyone help me in this...?

global class Date_Batch_Class implements Database.Batchable<sObject>{

        global Date_Batch_Class(){
                   // Batch Constructor
        }
       
        // Start Method
        global Database.QueryLocator start(Database.BatchableContext BC){
        
            string query = 'select id,LastName from Contact where OldDate__c = LAST_N_DAYS:5';
               System.debug('aaaaaaaaaaaaaaaaaaaaaaaa'+query) ; 
            return Database.getQueryLocator(query);

        }

      
      // Execute Logic
       global void execute(Database.BatchableContext BC, List<Contact>scope){
             
        delete scope;
     
       }
     
       global void finish(Database.BatchableContext BC){
            // Logic to be Executed at finish
       }
    }
code 
public class AddPrimaryContact implements Queueable {
    
    private Contact s;
    private String State;
    
    public AddPrimaryContact(Contact s, String State) {
        this.s = s;
        this.state = State;
    }
    public void execute(QueueableContext context) {
                   List<Account> ListAccount = [SELECT ID, Name ,(Select id,FirstName,LastName from contacts ) FROM ACCOUNT WHERE BillingState = :state LIMIT 200];
             List<contact> con = new List<Contact>();
          for(Account acc: ListAccount)
          {
          
          Contact cont = s.clone(false,false,false,false);

               cont.AccountId =  acc.id;

                 con.add( cont );
          
          }
        insert con;
   
    }
}







what to wrire here in anonymous block ..?

AddPrimaryContact obi = new AddPrimaryContact(s,usa);

Database.executeBatch(obj);




 
How  to stop the page from refreshing continuously...?

apex page :

<apex:page controller="searchClass">
    <script>
    
    window.onload = function()
    {
        some();
        }
    
    </script>
    
    <apex:form >
        <apex:pageBlock>
            <apex:pageBlockSection >
               <apex:actionfunction action="{!searchContact}" name="some">            

            <apex:pageBlockTable value="{!Listcontacts}" var="con" id="abc">
                <apex:column value="{!con.Name}"/>
                
            </apex:pageBlockTable>
              </apex:actionfunction>

            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

apex class :

 public class searchClass
{
   
    public List<Contact> result{get;set;}
    public List<Contact> Listcontacts {get;set;}
    public searchClass()
    {
        
           Listcontacts = new List<Contact>();
    }
               

    public void searchContact()
    {
      
        Listcontacts = [ SELECT Name from Contact];
            System.debug('aaaaaaaaaaaaaaaaaaaaa'+Listcontacts);

    }
    
     }





 
 Right side block should display Account name as a heading and its related contacts under that account make those changes.
 page block 2 is not working ...?

// class

public class AccountSelectClassController {

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    public list<Contact> records{get;set;}
    public list<Account> names{get;set;}

    public AccountSelectClassController ()
    {
      
       if(wrapaccountList ==null)
            {
                 wrapaccountList =new list<wrapaccount>();
                 for(account a:[select id,name from account limit 10])
                 {
                 wrapaccountlist.add(new wrapaccount(a));
        
                  }
            }
     }
    
     public void ProcessSelected()
     {
       selectedAccounts=new list<account>();
       selectedrecordsIds =new list<id>();
       records =new List<Contact>();
       names =new List<Account>();
       for(wrapaccount wrapobj:wrapaccountlist)
          {
              if(wrapobj.isSelected==true)
                {
                   selectedAccounts.add(wrapobj.accn);
                }   
          }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);   
          }
                names = [SELECT Name,label__c FROM ACCOUNT WHERE Id IN :selectedrecordsIds];
         
             records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds];
               
             System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+records);

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
            System.debug('ccccccccccccccccccccccccccccccccccccccc'+names);

      }
      
  
   
   public class wrapaccount
   {
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a)
       {
     
         accn=a;
         isselected=false;
       }
   }
}


vf pafe :-
<apex:page sidebar="false" controller="AccountSelectClassController">
    
    
    <script type="text/javascript">
        function selectAllCheckboxes(obj,receivedInputID){
            var inputCheckBox = document.getElementsByTagName("input");
            for(var i=0; i<inputCheckBox.length; i++){
                if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){
                    inputCheckBox[i].checked = obj.checked;
                }
            }
        }
    
    </script>
 <apex:form >
    
     <apex:pageBlock id="block2">
       
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
              <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
           <apex:pageBlock >
           
   
          <apex:pageBlockTable value="{!names}" var="aaa">
             <apex:column value="{!aaa.Name}" headerValue="name"/>

                                
               
              <apex:pageBlockTable value="{!records}" var="qqq">
                  <apex:column value="{!qqq.name}"/>
              </apex:pageBlockTable>
              </apex:pageBlockTable>

           </apex:pageBlock>
       </apex:pageBlockSection>
         
         <apex:pageBlockButtons location="bottom">
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected Contacts" reRender="block2"/>
        </apex:pageBlockButtons>
         
     </apex:pageBlock>
    
   </apex:form>
</apex:page>


 
//apex class

public class AccountSelectClassController {

//CONTROLLER CLASS

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    
      public AccountSelectClassController (){
      
     //if(wrapaccountList ==null){
          wrapaccountList =new list<wrapaccount>();
          for(account a:[select id,name from account limit 10]){
           wrapaccountlist.add(new wrapaccount(a));
        
           }
        // }
      }

    //### SELECTED ACCOUNT SHOWN BY THIS METHOD
      public void ProcessSelected(){
     selectedAccounts=new list<account>();
     selectedrecordsIds =new list<id>();
      
      for(wrapaccount wrapobj:wrapaccountlist){
           if(wrapobj.isSelected==true){
           selectedAccounts.add(wrapobj.accn);
           }
            
         }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);    
          }
              List<Contact> records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds ];

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
      }
      
  //##THIS IS WRAPPER CLASS
   // account and checkbox taken in wrapper class
   
   public class wrapaccount{
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a){
     
         accn=a;
         isselected=false;
       }
  }
}


//apex page

<apex:page sidebar="false" controller="AccountSelectClassController">
   
 <!--VF PAGE BLOCK-->

 <apex:form >
     <apex:pageBlock >
        <apex:pageBlockButtons >
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected accounts" reRender="block2"/>
        </apex:pageBlockButtons>
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
             <apex:facet name="header">
               <apex:inputCheckbox />
             </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
         
          <apex:pageBlockTable value="{!records}" var="sa" id="block2">
            <apex:column value="{!sa.name}"/>
           </apex:pageBlockTable>
       
       </apex:pageBlockSection>
     </apex:pageBlock>
   </apex:form>
</apex:page>



 
<apex:page standardController="Account" extensions="newWrapperClass">
<apex:form >
<apex:pageBlock >
<apex:pageBlockButtons location="bottom">
<apex:commandButton value="Get Records" action="{!processedRecords}" reRender="table2"/>
</apex:pageBlockButtons>
<apex:pageBlockSection title="Detail Records">
<apex:pageBlockTable value="{!wrapperTaskList}" var="wrap">
<apex:column headerValue="custom object records" >
<apex:inputCheckbox value="{!wrap.selected}"/>
</apex:column>
<apex:column value="{!wrap.chg.Name}"/>
<apex:column value="{!wrap.chg.Phone__c}"/>

</apex:pageBlockTable>

<apex:pageBlockTable value="{!existingRecords}" var="sel" id="table2">
<apex:column value="{!sel.Name}" headerValue="Name"/>
<apex:column value="{!sel.Phone__c}" headerValue="phone"/>
</apex:pageBlockTable>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
public class taskSelectClassController {
     public  Account acct{get; set;}
       public string currentRecordId {get;set;}
       public  List<Id> tasksIds{set;get;} 
       public List<task__c> updatedRecords {get;set;}

        public taskSelectClassController(ApexPages.StandardController stdController) {
           currentRecordId  = ApexPages.CurrentPage().getparameters().get('id');
                tasksIds =new List<Id>();
        
            wraptaskList = new List<wraptask>();
            //-- if task is custom object then, you need to change this query
            //for(task a: [select AccountId,task Name from task limit 10]) 
     
           for(Task__c  a: [select Lookup_Account__c,Name from Task__c Where Lookup_Account__c = null limit 10])  {               
                wraptaskList.add(new wraptask(a));
            }
        }
    
    public List<wraptask> wraptaskList {get; set;}
    public List<task__c> selectedtasks{get;set;}
  
    public void processSelected() {
    selectedtasks = new List<task__c>();
      
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) { 
                
                selectedtasks.add(wraptaskObj.acc);
            }
            for(task__c var : selectedtasks)
            {
                tasksIds.add(var.Id);
            }
            List<task__c>taskRecords = [SELECT Lookup_Account__c from task__c where ID IN: tasksIds];
                updatedRecords = new List<task__c>();
            for( task__c chl : taskRecords ) {
            chl.Lookup_Account__c = currentRecordId;
            updatedRecords.add(chl);
               
        }
             update updatedRecords; 
    }
 
    public class wraptask
                          {
        public task__c acc {get; set;}
        public Boolean selected {get; set;}      
        public wraptask(task__c a) {
            acc = a;
            selected = false;
        }
    }
}
public class taskSelectClassController {
 
     
    public List<wraptask> wraptaskList {get; set;}
    public List<task> selectedtasks{get;set;}
     
    public taskSelectClassController(){
        if(wraptaskList == null) {
            wraptaskList = new List<wraptask>();
            for(task a: [select AccountId,task Name from task limit 10]) {
               
                wraptaskList.add(new wraptask(a));
            }
        }
    }
 
    public void processSelected() {
    selectedtasks = new List<task>();
 
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) {
                selectedtasks.add(wraptaskObj.acc);
            }
        }
    }
 
 
    
    public class wraptask {
        public task acc {get; set;}
        public Boolean selected {get; set;}
 
      
        public wraptask(task a) {
            acc = a;
            selected = false;
        }
    }
}
<apex:page controller="ContactsVisualforceController" standardStylesheets="false"> <apex:pageBlock> <apex:repeat value="{!displayAccounts}" var="acc"> <dl> <dt>Account Name:</dt> <dd><apex:outputText value="{!acc.Name}"/></dd> </dl> <dl><dt>Contacts:</dt></dl> <apex:repeat value="{!acc.Contacts}" var="cont"> <dl> <dd><apex:outputText value="{!cont.Name}"/></dd> </dl> </apex:repeat> </apex:repeat> </apex:pageBlock> </apex:page>
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
code 
public class AddPrimaryContact implements Queueable {
    
    private Contact s;
    private String State;
    
    public AddPrimaryContact(Contact s, String State) {
        this.s = s;
        this.state = State;
    }
    public void execute(QueueableContext context) {
                   List<Account> ListAccount = [SELECT ID, Name ,(Select id,FirstName,LastName from contacts ) FROM ACCOUNT WHERE BillingState = :state LIMIT 200];
             List<contact> con = new List<Contact>();
          for(Account acc: ListAccount)
          {
          
          Contact cont = s.clone(false,false,false,false);

               cont.AccountId =  acc.id;

                 con.add( cont );
          
          }
        insert con;
   
    }
}







what to wrire here in anonymous block ..?

AddPrimaryContact obi = new AddPrimaryContact(s,usa);

Database.executeBatch(obj);




 
How  to stop the page from refreshing continuously...?

apex page :

<apex:page controller="searchClass">
    <script>
    
    window.onload = function()
    {
        some();
        }
    
    </script>
    
    <apex:form >
        <apex:pageBlock>
            <apex:pageBlockSection >
               <apex:actionfunction action="{!searchContact}" name="some">            

            <apex:pageBlockTable value="{!Listcontacts}" var="con" id="abc">
                <apex:column value="{!con.Name}"/>
                
            </apex:pageBlockTable>
              </apex:actionfunction>

            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>

apex class :

 public class searchClass
{
   
    public List<Contact> result{get;set;}
    public List<Contact> Listcontacts {get;set;}
    public searchClass()
    {
        
           Listcontacts = new List<Contact>();
    }
               

    public void searchContact()
    {
      
        Listcontacts = [ SELECT Name from Contact];
            System.debug('aaaaaaaaaaaaaaaaaaaaa'+Listcontacts);

    }
    
     }





 
 Right side block should display Account name as a heading and its related contacts under that account make those changes.
 page block 2 is not working ...?

// class

public class AccountSelectClassController {

    public list<wrapaccount> wrapaccountList { get; set; }
    public list<account> selectedAccounts{get;set;}     
    public list<id> selectedrecordsIds{get;set;}
    public list<Contact> records{get;set;}
    public list<Account> names{get;set;}

    public AccountSelectClassController ()
    {
      
       if(wrapaccountList ==null)
            {
                 wrapaccountList =new list<wrapaccount>();
                 for(account a:[select id,name from account limit 10])
                 {
                 wrapaccountlist.add(new wrapaccount(a));
        
                  }
            }
     }
    
     public void ProcessSelected()
     {
       selectedAccounts=new list<account>();
       selectedrecordsIds =new list<id>();
       records =new List<Contact>();
       names =new List<Account>();
       for(wrapaccount wrapobj:wrapaccountlist)
          {
              if(wrapobj.isSelected==true)
                {
                   selectedAccounts.add(wrapobj.accn);
                }   
          }
          
          for(Account abc:selectedAccounts)
          {
            selectedrecordsIds.add(abc.id);   
          }
                names = [SELECT Name,label__c FROM ACCOUNT WHERE Id IN :selectedrecordsIds];
         
             records = [SELECT Name FROM Contact WHERE AccountId IN : selectedrecordsIds];
               
             System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+records);

          System.debug('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'+selectedrecordsIds);
            System.debug('ccccccccccccccccccccccccccccccccccccccc'+names);

      }
      
  
   
   public class wrapaccount
   {
    
    public account accn{get;set;}
    public boolean isSelected{get;set;}
     
       public wrapaccount(account a)
       {
     
         accn=a;
         isselected=false;
       }
   }
}


vf pafe :-
<apex:page sidebar="false" controller="AccountSelectClassController">
    
    
    <script type="text/javascript">
        function selectAllCheckboxes(obj,receivedInputID){
            var inputCheckBox = document.getElementsByTagName("input");
            for(var i=0; i<inputCheckBox.length; i++){
                if(inputCheckBox[i].id.indexOf(receivedInputID)!=-1){
                    inputCheckBox[i].checked = obj.checked;
                }
            }
        }
    
    </script>
 <apex:form >
    
     <apex:pageBlock id="block2">
       
       <apex:pageBlockSection columns="2">
         <apex:pageBlockTable value="{!wrapaccountList}" var="waccl">
            
           <apex:column >
              <apex:facet name="header">
                            <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                        </apex:facet>
            <apex:inputCheckbox value="{!waccl.isSelected}" id="InputId"/>
           </apex:column>
            
            <apex:column value="{!waccl.accn.name}"/>
         </apex:pageBlockTable>
           <apex:pageBlock >
           
   
          <apex:pageBlockTable value="{!names}" var="aaa">
             <apex:column value="{!aaa.Name}" headerValue="name"/>

                                
               
              <apex:pageBlockTable value="{!records}" var="qqq">
                  <apex:column value="{!qqq.name}"/>
              </apex:pageBlockTable>
              </apex:pageBlockTable>

           </apex:pageBlock>
       </apex:pageBlockSection>
         
         <apex:pageBlockButtons location="bottom">
          <apex:commandButton action="{!ProcessSelected}" value="Show Selected Contacts" reRender="block2"/>
        </apex:pageBlockButtons>
         
     </apex:pageBlock>
    
   </apex:form>
</apex:page>


 
public class taskSelectClassController {
     public  Account acct{get; set;}
       public string currentRecordId {get;set;}
       public  List<Id> tasksIds{set;get;} 
       public List<task__c> updatedRecords {get;set;}

        public taskSelectClassController(ApexPages.StandardController stdController) {
           currentRecordId  = ApexPages.CurrentPage().getparameters().get('id');
                tasksIds =new List<Id>();
        
            wraptaskList = new List<wraptask>();
            //-- if task is custom object then, you need to change this query
            //for(task a: [select AccountId,task Name from task limit 10]) 
     
           for(Task__c  a: [select Lookup_Account__c,Name from Task__c Where Lookup_Account__c = null limit 10])  {               
                wraptaskList.add(new wraptask(a));
            }
        }
    
    public List<wraptask> wraptaskList {get; set;}
    public List<task__c> selectedtasks{get;set;}
  
    public void processSelected() {
    selectedtasks = new List<task__c>();
      
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) { 
                
                selectedtasks.add(wraptaskObj.acc);
            }
            for(task__c var : selectedtasks)
            {
                tasksIds.add(var.Id);
            }
            List<task__c>taskRecords = [SELECT Lookup_Account__c from task__c where ID IN: tasksIds];
                updatedRecords = new List<task__c>();
            for( task__c chl : taskRecords ) {
            chl.Lookup_Account__c = currentRecordId;
            updatedRecords.add(chl);
               
        }
             update updatedRecords; 
    }
 
    public class wraptask
                          {
        public task__c acc {get; set;}
        public Boolean selected {get; set;}      
        public wraptask(task__c a) {
            acc = a;
            selected = false;
        }
    }
}
public class taskSelectClassController {
 
     
    public List<wraptask> wraptaskList {get; set;}
    public List<task> selectedtasks{get;set;}
     
    public taskSelectClassController(){
        if(wraptaskList == null) {
            wraptaskList = new List<wraptask>();
            for(task a: [select AccountId,task Name from task limit 10]) {
               
                wraptaskList.add(new wraptask(a));
            }
        }
    }
 
    public void processSelected() {
    selectedtasks = new List<task>();
 
        for(wraptask wraptaskObj : wraptaskList) {
            if(wraptaskObj.selected == true) {
                selectedtasks.add(wraptaskObj.acc);
            }
        }
    }
 
 
    
    public class wraptask {
        public task acc {get; set;}
        public Boolean selected {get; set;}
 
      
        public wraptask(task a) {
            acc = a;
            selected = false;
        }
    }
}