<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH . '/libraries/BaseController.php';

/**
 * Class : Employee  (Employee Controller)
 * User Class to control all user related operations.
 * @author : Gandhimathi
 * @version : 1.1
 * @since : 07 Apr 2017
 */
class employeedetails extends BaseController
{
    /**
     * This is default constructor of the class
     */
	 public function __construct()
    {
        parent::__construct();
        $this->load->model('employeedetails_model');
        $this->isLoggedIn();   
    }
	/**
     * This function used to load the first screen of the user
     */
	public function index()
    {
        $this->global['pageTitle'] = 'Siddharth : Employee Details';
        
        $this->loadViews("employeeListing", $this->global, NULL , NULL);
    }
	
	/**
     * This function is used to load the Employee details
     */
    function employeeListing()
    {
        if($this->isAdmin() == TRUE)
        {
            $this->loadThis();
        }
        else
        {
			
            $this->load->model('employeedetails_model');
        
            
            $data['userRecords'] = $this->employeedetails_model->employeeListing();
            
            $this->global['pageTitle'] = 'Siddharth : Employee Listing';
            
            $this->loadViews("employeeListing", $this->global, $data, NULL);
        }
    }
	/*
	 Validation for Gender status Dropdown
	*/
	function  Gender_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('Gender_validate', 'Please Select Gender.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
/*
	 Validation for Martial status Dropdown
	*/
	function  Martial_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('Martial_validate', 'Please Select Martial status.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
/*
	 Validation for BloodGroup Dropdown
	*/
	function  Blood_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('Blood_validate', 'Please Select Blood Group.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
	/*
	 Validation for Qualification Dropdown
	*/
	function  select_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('select_validate', 'Please Select Educational Qualification.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
/*
	 Validation for Department Dropdown
	*/
	function  Dep_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('Dep_validate', 'Please Select Department.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
/*
	 Validation for Desigination Dropdown
	*/
	function  Des_validate($selectValue)
{
	//echo 'select_validate  method called';
    // 'none' is the first option and the text says something like "-Choose one-"
    if($selectValue == '-1')
    {
        $this->form_validation->set_message('Des_validate', 'Please Select Desigination.');
        return false;
    }
    else // user picked something
    {
        return true;
    }
}
	/**
     * This function is used to save the  new Employee form in the database 
	 */
	 
	function AddNewEmployee()
    {
		 if($this->isAdmin() == TRUE)
        {
            $this->loadThis();
        }
		else
		{     
	            $this->load->library('form_validation');
            
				$this->form_validation->set_rules('ContactNumber', 'ContactNumber', 'trim|required|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('emailid', 'emailid', 'trim|required|valid_email');
				$this->form_validation->set_rules('gender', 'gender', 'callback_Gender_validate');	
				$this->form_validation->set_rules('MartialStatus', 'MartialStatus', 'callback_Martial_validate'); 
			
				$this->form_validation->set_rules('bloodgroup', 'bloodgroup', 'callback_Blood_validate');	
				
				$this->form_validation->set_rules('emergencycontactnumber', 'emergencycontactnumber', 'trim|required|min_length[10]|max_length[10]');
				
			    $this->form_validation->set_rules('desigination', 'Desigination', 'callback_Des_validate');				
				$this->form_validation->set_rules('departmentname', 'departmentname', 'callback_Dep_validate');				
			    $this->form_validation->set_rules('eduqualifaction', 'eduqualifaction', 'callback_select_validate');				
				$this->form_validation->set_rules('referrercontno', 'referrercontno', 'trim|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('aadharno', 'aadharno', 'trim|min_length[12]|max_length[12]');
				$this->form_validation->set_rules('panno', 'panno', 'trim|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('passportno', 'passportno', 'trim|min_length[8]|max_length[8]');
				$this->form_validation->set_rules('accountno', 'accountno', 'trim|min_length[10]|max_length[20]');
				
						
				if($this->form_validation->run() == FALSE)
            {
                $this->addemployee();
				//echo 'Validate method called';
            }
            else
            { 
		//echo 'Validate not method called';
			    $Picture = $this->add();		    
			 
			    $FirstName = $this->input->post('FirstName');
                $LastName = $this->input->post('LastName');
				$FatherName = $this->input->post('FatherName');
                $DateofBirth = $this->input->post('DateofBirth');
                $ContactNumber = $this->input->post('ContactNumber');
                $EmailId = $this->input->post('emailid');
				$Gender =  $this->input->post('gender');
				$MartialStatus =  $this->input->post('MartialStatus');

				$BloodGroup =  $this->input->post('bloodgroup');
				$CurrentAddress =  $this->input->post('currentaddress');
				$permanentaddress =  $this->input->post('permanentaddress');
				$emergencycontactname =  $this->input->post('emergencycontactname');
				$emergencycontactnumber =  $this->input->post('emergencycontactnumber');
				$desigination =  $this->input->post('desigination');
				$departmentCode =  $this->input->post('departmentname');
				$dateofjoining =  $this->input->post('dateofjoining');
				$Previousexperience =  $this->input->post('Previousexperience');				
				$eduqualifaction =  $this->input->post('eduqualifaction');
                $addqualification = $this->input->post('addqualification');
				$referredby = $this->input->post('referredby');
				$referrercontno = $this->input->post('referrercontno'); 
				$accountno = $this->input->post('accountno'); 
				$ifsccode = $this->input->post('ifsccode'); 
				$bankbranchname = $this->input->post('bankbranchname'); 
				$bankaddress = $this->input->post('bankaddress'); 
				$aadharno = $this->input->post('aadharno'); 
				$panno = $this->input->post('panno'); 
				$passportno = $this->input->post('passportno'); 
				$ValidTill = $this->input->post('ValidTill'); 
				$addinfo = $this->input->post('addinfo'); 
                 $IsActive = '1';          
				$createdby = $this->session->userdata ( 'userId' );
				
				
			    $DOB = $this->getDateformat($DateofBirth);
				$DOJ =  $this->getDateformat($dateofjoining);
				if($ValidTill != '')
				{
				$Valid =  $this->getDateformat($ValidTill);
				}
				else
				{
					$Valid = null;
				}
				
				//echo $DOB;
                $Employee = array('FirstName'=>$FirstName, 'LastName'=>$LastName,'FatherName'=>$FatherName,'Gender'=>$Gender,'DateofBirth'=>$DOB,'ContactNumber'=>$ContactNumber,'EmailId'=>$EmailId,'BloodGroup'=>$BloodGroup,'MartialStatus'=>$MartialStatus,'DateofJoining'=>$DOJ,'PreviousYearsOfExp'=>$Previousexperience,'Designation'=>$desigination,'Departmentcode'=>$departmentCode,'PresentAddress'=>$CurrentAddress,'PermanentAddress'=>$permanentaddress,'EmergencyContactName'=>$emergencycontactname,'EmergencyContactNumber'=>$emergencycontactnumber,'Edu_Qualification'=>$eduqualifaction,'Additional_Qualification'=>$addqualification,'AadharNo'=>$aadharno,'PANNo'=>$panno,'BankAccountNo'=>$accountno,'IFSCCode'=>$ifsccode,'BankBranchName'=>$bankbranchname,'BankAddress'=>$bankaddress,'PassportNo'=>$passportno,'Passport_Valid_till'=>$Valid,'IsActive'=>$IsActive,'ProfilePic'=>$Picture,'Reference_Name'=>$referredby,'Reference_ContactNumber'=>$referrercontno,'Remarks'=>$addinfo,'CreatedBy'=>$createdby);    
                
				$this->load->model('employeedetails_model');
                $result = $this->employeedetails_model->addNewemployee($Employee);
                
                if($result > 0)
                {
					
                  //  $this->session->set_flashdata('Success', 'New Employee created successfully!');
				    redirect('employeeListing','refresh');
echo "<script>alert('New Employee Created successfully!');</script>";
                }
                else
                {
					
                    $this->session->set_flashdata('Error', 'New Employee details not saved');
					 redirect('employeeListing','refresh');
echo "<script>alert('Record Not Saved!');</script>";
                }
                             
			}
		}
	}
	
	function getDateformat($Val)
	{
		       $date = new DateTime($Val);
				$retDate = $date->format('Y-m-d H:i:s');
				return $retDate;
	}
	
	/**
     * This function is used to load the add new Employee form with dropdown values    */
    function addemployee()
    {
        if($this->isAdmin() == TRUE)
        {
            $this->loadThis();
        }
        else
        {
            $this->load->model('employeedetails_model');
            $GenderConfigID = 'C013';
			$MartialConfigID = 'C012';
			$QualificationConfigID = 'C014';
			$DesignationConfigID = 'C010';
			$BloodGroupConfigID = 'C011';
			
			$data['Gender'] = $this->employeedetails_model->getConfigValue($GenderConfigID);
			$data['Martial'] = $this->employeedetails_model->getConfigValue($MartialConfigID);
			$data['Qualification'] = $this->employeedetails_model->getConfigValue($QualificationConfigID);
			$data['Designation'] = $this->employeedetails_model->getConfigValue($DesignationConfigID);
			$data['BloodGroup'] = $this->employeedetails_model->getConfigValue($BloodGroupConfigID);
            
            $data['Department'] = $this->employeedetails_model->getDepartment();
			 $this->global['pageTitle'] = 'Siddharth : Add New Employee';
            $this->loadViews("addemployee", $this->global, $data, NULL);
        }
    }	
	/**
     * This function is used to check whether the Employee is existing in the database or not    */
    function CheckEmail()
	{
		 $id = $this->input->post('id');
		  $this->load->model('employeedetails_model');
		  $query = $this->employeedetails_model->checkMailExists($id );
		   
		  	$query =  $query[0]['EmailId']; 
			print_r($query);	
		    
	}
	
    function pageNotFound()
    {
        $this->global['pageTitle'] = 'CodeInsect : 404 - Page Not Found';
        
        $this->loadViews("404", $this->global, NULL, NULL);
    }
	
	 function add(){
		  
		 
            $picture  = '';      
            //Check whether user upload picture
            if(!empty($_FILES['photo']['name']))
			{
				
                $config['upload_path'] = 'uploads/images/';
                $config['allowed_types'] = 'jpg|jpeg|png|gif';
                $config['file_name'] = $_FILES['photo']['name'];
                
                //Load upload library and initialize configuration
                $this->load->library('upload',$config);
                $this->upload->initialize($config);
                
                if($this->upload->do_upload('photo'))
				{
                    $uploadData = $this->upload->data();
                    $picture = $uploadData['file_name'];
                }
				else
				{
					  $error = array('error' => $this->upload->display_errors());
						$picture = '';
                }
            }
			else
			{
                $picture = '';
            }
            
           return $picture ;
    }
	
	 function ViewEmployee($EmpNO='')
	 {
		  if($this->isAdmin() == TRUE)
        {
            $this->loadThis();
        }
        else
        {
			if($EmpNO == '')
			{
			 $EmpID =  $_GET['EmpID']; 
			}
			else
			{
				
			 $EmpID  = $EmpNO;			}
			
			$GenderConfigID = 'C013';
			$MartialConfigID = 'C012';
			$QualificationConfigID = 'C014';
			$DesignationConfigID = 'C010';
			$BloodGroupConfigID = 'C011';
			 $this->load->model('employeedetails_model');
			$data['GenderList'] = $this->employeedetails_model->getConfigValue($GenderConfigID);
			$data['MartialList'] = $this->employeedetails_model->getConfigValue($MartialConfigID);
			$data['QualificationList'] = $this->employeedetails_model->getConfigValue($QualificationConfigID);
			$data['DesignationList'] = $this->employeedetails_model->getConfigValue($DesignationConfigID);
			$data['BloodGroupList'] = $this->employeedetails_model->getConfigValue($BloodGroupConfigID);
            
            $data['DepartmentList'] = $this->employeedetails_model->getDepartment();
			$data['EmpDetails'] = $this->employeedetails_model->viewemployee($EmpID);
			$this->global['pageTitle'] = 'Siddharth : View Employee';	
			  
			$this->loadViews("editEmployee", $this->global,  $data, NULL);
			 
		}
	 }
	  /* To Check the email exists in the database or not for the employee*/
	  function checkMailEmp()
	  {   
		  $Empid = $this->input->post('employeeid');
	      $EmailId = $this->input->post('emailid');
		 
		  $this->load->model('employeedetails_model');
		  $query = $this->employeedetails_model->checkMailExists($EmailId, $Empid);
		  if (count($query)> 0)
		  {
			 $this->form_validation->set_message('checkMailEmp', 'The Entered Email id is exists in the Database.');
			  return false;
		  }
		  else
		  {
			  return true;
		  }
	  }
	 /* To Update the employee details*/
	function UpdateEmployee()
    {
		 if($this->isAdmin() == TRUE)
        {
            $this->loadThis();
        }
		else
		{
			     $EmpId =  $this->input->post('employeeid'); 
			    $this->load->library('form_validation');
            
				$this->form_validation->set_rules('ContactNumber', 'ContactNumber', 'trim|required|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('emailid', 'emailid', 'trim|required|valid_email|callback_checkMailEmp');
				$this->form_validation->set_rules('gender', 'gender', 'callback_Gender_validate');	
				$this->form_validation->set_rules('MartialStatus', 'MartialStatus', 'callback_Martial_validate'); 
			
				$this->form_validation->set_rules('bloodgroup', 'bloodgroup', 'callback_Blood_validate');	
				
				$this->form_validation->set_rules('emergencycontactnumber', 'emergencycontactnumber', 'trim|required|min_length[10]|max_length[10]');
				
			    $this->form_validation->set_rules('desigination', 'Desigination', 'callback_Des_validate');				
				$this->form_validation->set_rules('departmentname', 'departmentname', 'callback_Dep_validate');				
			    $this->form_validation->set_rules('eduqualifaction', 'eduqualifaction', 'callback_select_validate');				
				$this->form_validation->set_rules('referrercontno', 'referrercontno', 'trim|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('aadharno', 'aadharno', 'trim|min_length[12]|max_length[12]');
				$this->form_validation->set_rules('panno', 'panno', 'trim|min_length[10]|max_length[10]');
				$this->form_validation->set_rules('passportno', 'passportno', 'trim|min_length[8]|max_length[8]');
				$this->form_validation->set_rules('accountno', 'accountno', 'trim|min_length[10]|max_length[20]');
				
				if($this->form_validation->run() == FALSE)
            {
                $this->ViewEmployee($EmpId);
				
            }
            else
            { 
		
				$this->load->model('employeedetails_model');
			    $EmpId =  $this->input->post('employeeid'); 
				$PictureName = $this->input->post('Image');
			     			
		        if ($PictureName != '')
				{
					//echo  'Exists';
					$Picture = $PictureName;  
				}
				else
				{
					 //echo  'Not Exists';
					 $Picture = $this->add();  
				}			
				//echo  $Picture;					
               						
			    $FirstName = $this->input->post('FirstName');
                $LastName = $this->input->post('LastName');
				$FatherName = $this->input->post('FatherName');
                $DateofBirth = $this->input->post('DateofBirth');
                $ContactNumber = $this->input->post('ContactNumber');
                $EmailId = $this->input->post('emailid');
				$Gender =  $this->input->post('gender');
				$MartialStatus =  $this->input->post('MartialStatus');
				$BloodGroup =  $this->input->post('bloodgroup');
				$CurrentAddress =  $this->input->post('currentaddress');
				$permanentaddress =  $this->input->post('permanentaddress');
				$emergencycontactname =  $this->input->post('emergencycontactname');
				$emergencycontactnumber =  $this->input->post('emergencycontactnumber');
				$desigination =  $this->input->post('desigination');
				$departmentCode =  $this->input->post('departmentname');
				$dateofjoining =  $this->input->post('dateofjoining');
				$Previousexperience =  $this->input->post('Previousexperience');				
				$eduqualifaction =  $this->input->post('eduqualifaction');
                $addqualification = $this->input->post('addqualification');
				$referredby = $this->input->post('referredby');
				$referrercontno = $this->input->post('referrercontno'); 
				$accountno = $this->input->post('accountno'); 
				$ifsccode = $this->input->post('ifsccode'); 
				$bankbranchname = $this->input->post('bankbranchname'); 
				$bankaddress = $this->input->post('bankaddress'); 
				$aadharno = $this->input->post('aadharno'); 
				$panno = $this->input->post('panno'); 
				$passportno = $this->input->post('passportno'); 
				$ValidTill = $this->input->post('ValidTill'); 
				$addinfo = $this->input->post('addinfo'); 
                 
                 $chked =  $this->input->post('isactive');
				// echo 'chkvalue'.  $chked ;
					if( $chked != '')
					{
						$IsActive = '1';
					}
					else
					{
						$IsActive = '0';
					}
					// echo 'chkvalue'. $IsActive ;
				$UpdatedBY = $this->session->userdata ( 'userId' );
				
				
			    $DOB = $this->getDateformat($DateofBirth);
				$DOJ =  $this->getDateformat($dateofjoining);
				if($ValidTill != '')
				{
					$Valid =  $this->getDateformat($ValidTill);
				}
				else
				{
					$Valid = null;
				}
				
				//echo $DOB;
                $Employee = array('FirstName'=>$FirstName, 'LastName'=>$LastName,'FatherName'=>$FatherName,'Gender'=>$Gender,'DateofBirth'=>$DOB,'ContactNumber'=>$ContactNumber,'EmailId'=>$EmailId,'BloodGroup'=>$BloodGroup,'MartialStatus'=>$MartialStatus,'DateofJoining'=>$DOJ,'PreviousYearsOfExp'=>$Previousexperience,'Designation'=>$desigination,'Departmentcode'=>$departmentCode,'PresentAddress'=>$CurrentAddress,'PermanentAddress'=>$permanentaddress,'EmergencyContactName'=>$emergencycontactname,'EmergencyContactNumber'=>$emergencycontactnumber,'Edu_Qualification'=>$eduqualifaction,'Additional_Qualification'=>$addqualification,'AadharNo'=>$aadharno,'PANNo'=>$panno,'BankAccountNo'=>$accountno,'IFSCCode'=>$ifsccode,'BankBranchName'=>$bankbranchname,'BankAddress'=>$bankaddress,'PassportNo'=>$passportno,'Passport_Valid_till'=>$Valid,'IsActive'=>$IsActive,'ProfilePic'=>$Picture,'Reference_Name'=>$referredby,'Reference_ContactNumber'=>$referrercontno,'Remarks'=>$addinfo,'UpdatedBY'=>$UpdatedBY);    
                
				
                $result = $this->employeedetails_model->UpdateEmployee($Employee,$EmpId);
                
                if($result > 0)
                {
					
                   // $this->session->set_flashdata('Success', $EmpId.'Employee Updated successfully!');
					redirect('employeeListing','refresh');
echo "<script>alert('You Have Successfully updated the Employee Record!');</script>";
                }
                else
                {
					
                    $this->session->set_flashdata('Error', $EmpId.'Employee details not saved');
					redirect('employeeListing','refresh');
echo  "<script>alert('Record Not Updated!');</script>";
                }
                
               // redirect('employeeListing');
			}
		}
	} 

	/** this function can be use for excel report **/
	
	function export_employee(){
		
		
		$this->load->library('excel');
        $this->excel->setActiveSheetIndex(0)->mergeCells('L3:S3');

        $this->excel->getActiveSheet()->setTitle('Employee details');									

		$this->excel->getActiveSheet()->setCellValue('L3', 'SIDDHARTH INDUSTRIES Employee Details');
        $this->excel->getActiveSheet()->setCellValue('A5', 'EmpID');
        $this->excel->getActiveSheet()->setCellValue('B5', 'FirstName-LastName');
        $this->excel->getActiveSheet()->setCellValue('c5', 'FatherName');
        $this->excel->getActiveSheet()->setCellValue('d5', 'Gender');
        $this->excel->getActiveSheet()->setCellValue('E5', 'ContactNumber');
        $this->excel->getActiveSheet()->setCellValue('F5', 'EmailId');
        $this->excel->getActiveSheet()->setCellValue('G5', 'BloodGroup');
        $this->excel->getActiveSheet()->setCellValue('H5', 'MartialStatus');
        $this->excel->getActiveSheet()->setCellValue('I5', 'DateofJoining');
        $this->excel->getActiveSheet()->setCellValue('J5', 'PreviousYearsOfExp');
        $this->excel->getActiveSheet()->setCellValue('K5', 'Designation');
        $this->excel->getActiveSheet()->setCellValue('L5', 'Departmentcode');
        $this->excel->getActiveSheet()->setCellValue('M5', 'PresentAddress');
        $this->excel->getActiveSheet()->setCellValue('N5', 'PermanentAddress');
        $this->excel->getActiveSheet()->setCellValue('O5', 'EmergencyContactName');
        $this->excel->getActiveSheet()->setCellValue('P5', 'EmergencyContactNumber');
        $this->excel->getActiveSheet()->setCellValue('Q5', 'Edu_Qualification');
        $this->excel->getActiveSheet()->setCellValue('R5', 'Additional_Qualification');
        $this->excel->getActiveSheet()->setCellValue('S5', 'AadharNo');
        $this->excel->getActiveSheet()->setCellValue('T5', 'PANNo');
        $this->excel->getActiveSheet()->setCellValue('U5', 'BankStatemant');
        $this->excel->getActiveSheet()->setCellValue('V5', 'PassportNo');
        $this->excel->getActiveSheet()->setCellValue('W5', 'Passport_Valid_till');
        $this->excel->getActiveSheet()->setCellValue('X5', 'IsActive');
        $this->excel->getActiveSheet()->setCellValue('Y5', 'Reference_Name');
        $this->excel->getActiveSheet()->setCellValue('Z5', 'Reference_ContactNumber');
        $this->excel->getActiveSheet()->setCellValue('AA5', 'PFNO');
        $this->excel->getActiveSheet()->setCellValue('AB5', 'ESI');
        $this->excel->getActiveSheet()->setCellValue('AC5', 'UANO');
        $this->excel->getActiveSheet()->setCellValue('AD5', 'Remarks');
        $this->excel->getActiveSheet()->setCellValue('AE5', 'Reference_Name');
        $this->excel->getActiveSheet()->setCellValue('AF5', 'Reference_Name');
        $this->excel->getActiveSheet()->setCellValue('AG5', 'CreatedBy');
        $this->excel->getActiveSheet()->setCellValue('AH5', 'UpdatedBY');
        $this->excel->getActiveSheet()->setCellValue('AI5', 'PF_Balance');
        $this->excel->getActiveSheet()->setCellValue('AJ5', 'PF_Bal_On');
        
   






     


        $this->excel->getActiveSheet()->getStyle('L3')->getFont()->setSize(14);
        $this->excel->getActiveSheet()->getStyle('L3')->getFont()->setBold(true);
        $this->excel->getActiveSheet()->getStyle('A5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('A5')->getFont()->setBold(true);
        $this->excel->getActiveSheet()->getStyle('B5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('B5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('C5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('C5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('D5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('D5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('E5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('E5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('F5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('F5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('G5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('G5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('H5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('H5')->getFont()->setBold(true);
        $this->excel->getActiveSheet()->getStyle('I5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('I5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('J5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('J5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('K5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('K5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('L5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('L5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('M5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('M5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('N5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('N5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('O5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('O5')->getFont()->setBold(true);
        $this->excel->getActiveSheet()->getStyle('P5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('P5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('P5')->getFont()->setSize(12);
		$this->excel->getActiveSheet()->getStyle('Q5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('Q5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('R5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('R5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('S5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('S5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('T5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('T5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('U5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('U5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('V5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('V5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('W5')->getFont()->setBold(true);
        $this->excel->getActiveSheet()->getStyle('W5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('X5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('Y5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('Y5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('Z5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('Z5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AA5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AA5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AB5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AB5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AC5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AC5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AD5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AD5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AE5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AE5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AF5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AF5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AG5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AG5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AH5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AH5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AI5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AI5')->getFont()->setBold(true);
		$this->excel->getActiveSheet()->getStyle('AJ5')->getFont()->setSize(12);
        $this->excel->getActiveSheet()->getStyle('AJ5')->getFont()->setBold(true);
		
		
        

       $exportData = $this->employeedetails_model->export_excel();

        if ($exportData) {
            $i = 6;
            $s = 1;
            foreach ($exportData as $data) {
				
				
              $this->excel->getActiveSheet()->setCellValue('A'. $i,$data['EmpID']);
        $this->excel->getActiveSheet()->setCellValue('B'. $i,$data['FirstName'].'-'.$data['LastName']);
        $this->excel->getActiveSheet()->setCellValue('C'. $i,$data['FatherName']);
        $this->excel->getActiveSheet()->setCellValue('D'. $i,$data['Gender']);
        $this->excel->getActiveSheet()->setCellValue('E'. $i,$data['ContactNumber']);
        $this->excel->getActiveSheet()->setCellValue('F'. $i,$data['EmailId']);
        $this->excel->getActiveSheet()->setCellValue('G'. $i,$data['BloodGroup']);
        $this->excel->getActiveSheet()->setCellValue('H'. $i,$data['MartialStatus']);
        $this->excel->getActiveSheet()->setCellValue('I'. $i,$data['DateofJoining']);
        $this->excel->getActiveSheet()->setCellValue('J'. $i,$data['PreviousYearsOfExp']);
        $this->excel->getActiveSheet()->setCellValue('K'. $i,$data['Designation']);
        $this->excel->getActiveSheet()->setCellValue('L'. $i,$data['Departmentcode']);
        $this->excel->getActiveSheet()->setCellValue('M'. $i,$data['PresentAddress']);
        $this->excel->getActiveSheet()->setCellValue('N'. $i,$data['PermanentAddress']);
        $this->excel->getActiveSheet()->setCellValue('O'. $i,$data['EmergencyContactName']);
        $this->excel->getActiveSheet()->setCellValue('P'. $i,$data['EmergencyContactNumber']);
        $this->excel->getActiveSheet()->setCellValue('Q'. $i,$data['Edu_Qualification']);
        $this->excel->getActiveSheet()->setCellValue('R'. $i,$data['Additional_Qualification']);
        $this->excel->getActiveSheet()->setCellValue('S'. $i,$data['AadharNo']);
        $this->excel->getActiveSheet()->setCellValue('T'. $i,$data['PANNo']);
        $this->excel->getActiveSheet()->setCellValue('U'. $i,$data['BankAccountNo'].'-'.$data['IFSCCode'].'-'.$data['BankBranchName'].$data['BankAddress']);
        $this->excel->getActiveSheet()->setCellValue('V'. $i,$data['PassportNo']);
        $this->excel->getActiveSheet()->setCellValue('W'. $i,$data['Passport_Valid_till']);
        $this->excel->getActiveSheet()->setCellValue('X'. $i,$data['IsActive']);
        $this->excel->getActiveSheet()->setCellValue('Y'. $i,$data['Reference_Name']);
        $this->excel->getActiveSheet()->setCellValue('Z'. $i,$data['Reference_ContactNumber']);
        $this->excel->getActiveSheet()->setCellValue('AA'. $i,$data['PFNO']);
        $this->excel->getActiveSheet()->setCellValue('AB'. $i,$data['ESI']);
        $this->excel->getActiveSheet()->setCellValue('AC'. $i,$data['UANO']);
        $this->excel->getActiveSheet()->setCellValue('AD'. $i,$data['Remarks']);
        $this->excel->getActiveSheet()->setCellValue('AE'. $i,$data['Reference_Name']);
        $this->excel->getActiveSheet()->setCellValue('AF'. $i,$data['Reference_Name']);
        $this->excel->getActiveSheet()->setCellValue('AG'. $i,$data['firstname']);
        $this->excel->getActiveSheet()->setCellValue('AH'. $i,$data['UpdatedBY']);
        $this->excel->getActiveSheet()->setCellValue('AI'. $i,$data['PF_Balance']);
        $this->excel->getActiveSheet()->setCellValue('AJ'. $i,$data['PF_Bal_On']);
           

               

                $i++;
                $s++;
            }
        }

        $filename = 'Employee_Details' .' '.  '.xls'; //save our workbook as this file name
        header('Content-Type: application/vnd.ms-excel'); //mime type
        header('Content-Disposition: attachment;filename="' . $filename . '"'); //tell browser what's the file name
        header('Cache-Control: max-age=0'); //no cache
        $objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'Excel5');
        if (ob_get_contents()) ob_end_clean();
        ob_start();
        $objWriter->save('php://output');


    }
	
}

?>