Friday, September 25, 2015

Real Time Scenario ::Pagination with check box and selected record can download into Excel format.

Display the all records in one visualforce page(with pagination)  user can select the records with check box,and click on next button i will select some more records in next pagination and click button.the selected records can download into Excel Format.

Visualforce page 1

<apex:page controller="insuranceClaimdownload" showHeader="false" >
  <script type="text/javascript">
        
        function doCheckboxChange(cb,itemId){

            if(cb.checked==true){
                aSelectItem(itemId);
            }
            else{
                aDeselectItem(itemId);
            }

        }

    </script>
 <apex:form >
     <!-- handle selected item -->
        <apex:actionFunction name="aSelectItem" action="{!doSelectItem}" rerender="pb">
            <apex:param name="contextItem" value="" assignTo="{!contextItem}"/>
        </apex:actionFunction>

        <!-- handle deselected item -->
        <apex:actionFunction name="aDeselectItem" action="{!doDeselectItem}" rerender="pb">
            <apex:param name="contextItem" value="" assignTo="{!contextItem}"/>
        </apex:actionFunction>

    <apex:pageBlock id="pb" title="Insurance Claims Details">
        <apex:pageBlockButtons >
            <apex:commandButton value="Download" action="{!downloadInsClaims}"/>
        </apex:pageBlockButtons>
        <apex:pageBlockTable value="{!insClaiDowload}" var="p" title="insClaiDowload">
                   <apex:column >
                     <apex:facet name="header">Action</apex:facet>
                     <apex:inputCheckbox value="{!p.IsSelected}" onchange="doCheckboxChange(this,'{!p.insClaim.Id}')"/>
                   </apex:column>
                   <apex:column value="{!p.insClaim.Client_Urn__c}"/>
                   <apex:column value="{!p.insClaim.name}"/>
                   <apex:column value="{!p.insClaim.Status__c}"/>
                   <apex:column value="{!p.insClaim.RecordTypeId}"/>
                   <apex:column value="{!p.insClaim.ClaimSubmittedToInsDate__c}"/>      
        </apex:pageBlockTable>
        <apex:commandLink action="{!doPrevious}" rendered="{!hasPrevious}" value="Previous" />
        <apex:outputLabel rendered="{!NOT(hasPrevious)}" value="Previous" /> &nbsp;
        <apex:commandLink action="{!doNext}" rendered="{!hasNext}" value="Next" />
        <apex:outputLabel rendered="{!NOT(hasNext)}" value="Next" />
    </apex:pageBlock>
 </apex:form>
</apex:page>

Controller::

public class insuranceClaimdownload {
    public ApexPages.StandardSetController setCon;
    public String contextItem{get;set;}
    public Set<Id> selectedInsClaimIds;
    public List<Insurance_Claim__c> selectedInsClaims{set;get;}
    public List<Insurance_Claim__c> UpdateList{set;get;}
    public insuranceClaimdownload (){
       selectedInsClaimIds=new Set<Id>();
       setCon=new ApexPages.StandardSetController([select id,name,Rejected_Reason__c,ClaimSubmittedToInsDate__c ,Client_Urn__c,RecordTypeId,Rejected_Date__c,Status__c from Insurance_Claim__c]);
       setCon.setPageNumber(1);
       setCon.setPageSize(2);
      
    }
     public void doPrevious(){

        if(setCon.getHasPrevious())
            setCon.previous();

    }
     public void doNext(){

        if(setCon.gethasNext())
            setCon.next();

    }
     public Boolean getHasPrevious(){

        return setCon.getHasPrevious();

    }
     public Boolean getHasNext(){

        return setCon.getHasNext();

    }
    // pageblackTable method
   
    public List<insClaimWra> getinsClaiDowload(){
     
           List<insClaimWra> insRows=new List<insClaimWra>();
           
           for(sObject r : setCon.getRecords()){
               Insurance_Claim__c claim=(Insurance_Claim__c)r;
               insClaimWra row = new insClaimWra(claim,true);
              if(this.selectedInsClaimIds.contains(claim.Id)){
                row.IsSelected=true;
            }
            else{
                row.IsSelected=false;
            }
              insRows.add(row);
           }    
     
       return insRows;
    }
    // commonad button method
    Public PageReference downloadInsClaims(){
        selectedInsClaims= new List<Insurance_Claim__c>();
        UpdateList= new List<Insurance_Claim__c>();
        for(Insurance_Claim__c insclaims:[select id,name,Rejected_Reason__c,Client_Urn__c,ClaimSubmittedToInsDate__c ,RecordTypeId,Rejected_Date__c,Status__c from Insurance_Claim__c where id in:selectedInsClaimIds]){
           selectedInsClaims.add(insclaims);
           Insurance_Claim__c ins=new Insurance_Claim__c(id=insclaims.id);
           ins.ClaimSubmittedToInsDate__c=system.today();
           UpdateList.add(ins);
        }
        Database.update(UpdateList);
        PageReference secondPage = new PageReference('/apex/insuranceClaimdownloadpage');
        secondPage.setRedirect(false);
        system.debug('selectedInsClaims################'+selectedInsClaims);
        return secondPage;
       

    }
    // pageblockTable method for insuranceClaimdownloadpage
    public List<Insurance_Claim__c> getdownLoadRecordlist(){
      return selectedInsClaims;
    }
     public void doSelectItem(){

        selectedInsClaimIds.add(contextItem);

    }
     public void doDeselectItem(){

        selectedInsClaimIds.remove(contextItem);

    }
    public  class insClaimWra{

        public Insurance_Claim__c insClaim{get;set;}
        public Boolean IsSelected{get;set;}

        public insClaimWra(Insurance_Claim__c c, Boolean s){
            insClaim=c;
            IsSelected=s;
        }

    }
}

Second VIsualForce page

<apex:page controller="insuranceClaimdownload" showHeader="false" contenttype="application/x-excel#filename{!TODAY()}.xls" >
  <!-- contenttype="application/x-excel#filename{!TODAY()}.xls" --->
  <apex:form >
     <apex:pageBlock >
         <apex:pageBlockTable value="{!downLoadRecordlist}" var="insc" border="1" columnsWidth="100px,200px,150px" cellspacing="0" cellpadding="8">
            <apex:column headerValue="Clien Urn" value="{!insc.Client_Urn__c}"/>
            <apex:column headerValue="Insurance NO" value="{!insc.name}"/>
            <apex:column headerValue="Status" value="{!insc.Status__c }"/>
            <apex:column headerValue="FileDownloadDate" value="{!insc.ClaimSubmittedToInsDate__c }"/>
           
         </apex:pageBlockTable>
     </apex:pageBlock>
  </apex:form>
</apex:page>

Test class;;


@isTest()
public class insuranceClaimdownload_test{
   static testMethod void main(){
          Product2 prd=new Product2();
            prd.Name='Jana Kisan - Mixed Farming';
            prd.Category__c='Others';
            prd.IsActive=True;
            prd.Maximum_Grace_Period_in_Days__c='7';
            prd.Maximum_Interest_Variance__c=26;
            prd.Maximum_Loan_Amount__c=200000;
            prd.Minimum_Grace_Period_in_Days__c='7';
            prd.Minimum_Installment__c=20000;
            prd.Minimum_Interest_Variance__c=24;
            prd.Minimum_Loan_Amount__c=40000;
            prd.Minimum_Term__c='24';
            prd.Net_Cash_Flow_120_EMI_required__c=false;
            prd.ProductCode='891';
            prd.Rate_of_Interest__c=24;
            prd.Tenure__c =24;
            prd.EMI_Post_15__c=0;
            prd.EMI_Pre_15__c=0;
            prd.PRODUCT_CODE__c=891;
            Insert prd;
        prd=[SELECT id,PRODUCT_CODE__c FROM Product2 WHERE Id=:prd.Id];
        System.assertEquals(prd.PRODUCT_CODE__c,891);
        Zone__c zon=new Zone__c();
            zon.Name='Central';
            zon.Zone_Code__c=9;
            zon.Owner__c='central HEAD';
            zon.Sponsor_Bank_Id__c='DCB';
            insert zon;
        zon=[SELECT id,Name FROM Zone__c WHERE Id=:zon.Id];
        System.assertEquals(zon.Name,'Central');
        
        Region__c  reg=new Region__c();
            reg.Name='HARYANA';
            reg.Region_Code__c=9;
            reg.Zone_Code__c =zon.Id;
            reg.Owner__c='HARYANA HEAD';
            Insert reg;
            
        Branch__c bran = new Branch__c();
            bran.Name = 'KB Sandra';
            bran.Branch_Code__c = '1234';
            bran.Region_Code__c=reg.Id;
            bran.Red_flagging_for_Agro_Loan__c=True;
            bran.Classification__c='Branch';
            bran.Owner__c='Manoj';
            Insert bran;
        bran=[SELECT id,Name FROM Branch__c WHERE Id=:bran.Id];
        System.assertEquals(bran.Name,'KB Sandra');
        
        Area__c area1 = new Area__c();
        area1.CurrencyIsoCode='INR';
        area1.Name='blre';
        area1.Area_Code__c=1232;
        area1.Branch_Codes__c=bran.id;
        insert area1;
        
        NCO__c ncoObj = new NCO__c(name= 'ncoName');
        insert ncoObj ;
        
        Account acc =new Account();
            acc.CIS_No_new__c='123154';
            acc.RecordTypeId =RecordTypeUtil.recordTypeId('Account','JanaKisan Draft'); 
            acc.Area_lookup__c = Area1.ID;
            acc.Customer_Id__c='1233212344327896';
            acc.Branch_Name__c= bran.ID;              
            acc.First_Name__c='Surender';              
            acc.Name = 'kaus';  
            acc.LastName__c = 'Manu';            
            acc.Last_Name_CO__c='Choudhary';
            acc.MotherTongue__c= 'Hindi';
            acc.Salutation__c = 'Mrs.';
            acc.DO_You_Have_Mobile_No__c = 'Yes';
            acc.DO_You_Have_Land_Line_No__c = 'No';
            acc.DOB_Borrower__c=date.newInstance(1980,3,3);              
            acc.Sex__c='F';     
            acc.Father_OR_Husband__c='Husband';              
            acc.Father_Husband_s_First_Name__c='ap';              
            acc.F_H_s_Last_Name__c='pa';
            acc.Opted_for_NPS_Lite__c = 'No';         
            acc.Marital_Status__c='Married'; 
            acc.Main_Product_or_Service_sold__c = 'yes';
            acc.Industry = 'Government';
            acc.Brief_Description_of_Occupation_words__c = 'jsdhfk';                                         
            acc.IdentityProof__c='PAN';  
            acc.Aadhar_Card__c = 'No';            
            acc.IdentityProofNo__c= 'EDCBA1234E';              
            acc.Religion__c='Hindu';              
            acc.Caste__c='Others';              
            acc.Natureofemployment__c='Salaried';
            acc.NCO_Occupation_Code__c = ncoObj.id;                    
            acc.Length_of_business_serviceYears__c=9.1;  
            acc.Months1__c=11;              
            acc.Current_JobBusinessYears1__c=3;              
            acc.Months2__c=11;              
            acc.Gross_Annual_Income__c=12321.50;              
            acc.Mobile_NO_Contact__c='9876543210';              
            acc.OWN_PP__c='PP';              
            acc.Door_No_Main_Borrower__c='4';              
            acc.Street_Name_main__c='13';              
            acc.Pin_COntacts__c='123211';              
            acc.City_Borrower__c='chd';        
            acc.No_of_Groups_Attached__c=5;            
            acc.No_of_Years_in_Current_Residence__c =3;   
            acc.Mobile_No__c='1234567895'; 
            acc.Mobile__c = '5987654321';  
            acc.Net_Cash_Flow__c=50000.00;
            acc.Landmark_contacts__c = 'Bangalore';
            acc.Address3__c = 'address11';
            //acc.Distance_between_Facilitator_and_Client__c=10.0;
            insert acc;
            
        Secondary_Customer_Details__c  c = new Secondary_Customer_Details__c();
            c.Account__c = acc.id;
            c.Name = 'Vikram';
            c.Last_Name__c = 'Reddy';
            c.FatherOrHusband__c = 'Father';
            c.Date_of_Birtht__c = date.newinstance(1960, 2, 17);
            c.Mother_Tongue__c = 'Telugu';
            c.Marital_Statuss__c = 'Single';
            c.Identity_Proofs__c = 'PAN';
            c.Identity_ProofNo__c = 'APAPT1670C';
            c.FH_FirstName__c = 'Test';
            c.FH_LastNames__c = 'Test';
            c.Gender__c = 'M';
            c.Educations__c = 'Illiterate';
            c.Type_of_Relation__c = 'Husband';
            c.Nature_of_Employment__c='Not-Employed';
            insert c;
       
        
      
                
       
        Application__c ap=new Application__c();
            ap.Name='JKApplication';
            ap.Product__c=prd.Id;
            ap.Initial_Total_Loan_Amount__c=200000;
            ap.Application_Category__c='Other';
            ap.GVR_Score__c=1200;
            ap.Branch__c=bran.Id;
            ap.Date_Time_of_Enrollment__c=System.Today();
            ap.Place_of_Enrollment__c='Branch';
            ap.Repayment_Date__c='10';
            ap.Tenure_Months_EFS__c = 24;
            ap.Area__c = area1.id ;
            ap.Application_Type__c='New';
            ap.Application_Category__c = 'Agro';
            ap.Application_Status__c='Draft';
            ap.RecordTypeId = RecordTypeUtil.recordTypeId('Application__c','JanaKisan Data Entry');
            ap.All_sanction_conditions_met__c = false; 
            insert ap;
            
            List<Opportunity> oplist = new List<Opportunity>();
                
               
                    Opportunity opp = new Opportunity ();
                    opp.StageName='Open';
                    opp.recordtypeId = RecordTypeUtil.recordTypeId('Opportunity','JanaKisan CBCheck'); 
                    opp.Name ='891';
                    opp.Credit_Bureau_Status__c='Accept';
                    opp.Product_Name__c=prd.Id;
                    opp.Opp_Selected__c = false;
                    opp.AccountId=acc.ID;
                    opp.Tenure_Months__c = 24 ;
                    opp.ForecastCategoryName = 'Commit';        
                    opp.Secondary_Customer_Details__c=c.ID;
                    opp.Name='891';
                    opp.Product_Code__c = 891 ;
                    opp.Loan_Cycle__c = 'K1';
                    opp.Application__c = ap.Id;
                    //opp.CloseDate=date.parse('03/03/2016');
                    opp.CloseDate=System.Today();
                    opp.No_of_Family_Members__c=4;
                    opp.Status__c='Active';
                    opp.Loan_Amount__c='40000';                
                    insert opp;
       List<Insurance_Detail__c> idetails1=new List<Insurance_Detail__c>();
      
       Insurance_Detail__c idetails=new Insurance_Detail__c();
       
       idetails.Date_Of_Tagging__c=date.parse('03/05/2016');
       idetails.Status__c='Form Verified';
       idetails.RecordTypeId= RecordTypeUtil.recordTypeId('Insurance_Detail__c','LiveStock Initial DE');       
       idetails.Insured_For__c=opp.id;
       insert idetails;
        
         Insurance_Claim__c Inscl=new Insurance_Claim__c();
         Inscl.Breed__c='somescus';
         Inscl.Death_due_to__c='accident';
         Inscl.Insurance_Detail__c=idetails.id;
         Inscl.First_Name__c='buffalo ';
         Inscl.District__c='bangalore';
         Inscl.Place_Of_Death__c='bangalore';
         Inscl.Policy_Number__c='jli0004543';
         Inscl.Tag_Number__c='jfs23456';
         
           
                 insert Inscl;
                  Attachment attach1=new Attachment();    
                   attach1.Name='Unit Test Attachment';
                   Blob bodyBlob1=Blob.valueOf('Unit Test Attachment Body');
                   attach1.body=bodyBlob1;
                  attach1.parentId=Inscl.id;
                  insert attach1;
                  
        Test.startTest();
              Id ClaimIntimation = RecordTypeUtil.recordTypeId('Insurance_Claim__c','Claim Intimation');
              Id ClaimSubmittedtoOpps = RecordTypeUtil.recordTypeId('Insurance_Claim__c','Claim Submitted to Opps');
              Id ClaimReceivedatOps = RecordTypeUtil.recordTypeId('Insurance_Claim__c','Claim Received at Ops');
              Id ClaimSubmittedToIns = RecordTypeUtil.recordTypeId('Insurance_Claim__c','Claim Submitted to Ins');
              ApexPages.StandardController stdController = new ApexPages.StandardController(Inscl);
              insuranceClaimdownload ext = new insuranceClaimdownload();
              List<insuranceClaimdownload.insClaimWra> wrp = ext.getinsClaiDowload();
              wrp[0].Isselected=true;
              
              ext.doNext();
              ext.getHasNext();
              ext.setCon.next();
              
              ext.getHasPrevious();
              ext.doPrevious();
              ext.setCon.previous();
              
              ext.getinsClaiDowload();
              ext.downloadInsClaims();
              ext.doSelectItem();
              ext.doDeselectItem();
              ext.getdownLoadRecordlist();
             /*
              ext.SelectedinsClaim();
              Inscl.Status__c='ClaimReceivedatOps';
              Inscl.RecordTypeId=ClaimSubmittedtoOpps;
              Inscl.attachment_attached__c=true;
              update Inscl;
              Inscl.RecordTypeId=ClaimReceivedatOps;
              Inscl.Document_Comments__c='images';
              Inscl.Documents_Checklist__c='good';
              update Inscl;
              Inscl.Status__c='Claim settled by Ins';
              Inscl.RecordTypeId=ClaimSubmittedToIns;
              Inscl.Upload_Date__c=Date.Today();
              update Inscl;
              Inscl.Status__c='ClaimReceivedatOps';
              Inscl.RecordTypeId=ClaimSubmittedToIns;
               update Inscl;
               */
         Test.stopTest();
   }
}


No comments:

Post a Comment