employeedetails_model = new Employeedetails_model(); $this->companydetailsmodel = new Companydetails_model(); $this->empFiles = new EmpFilesModel(); $this->appConfig = new AppConfigModel(); $this->emppaydate_model = new Emppaydate_model(); $this->session = session(); helper('form'); //$this->load->library('form_validation'); $this->isLoggedIn(); } /** * This function is used to load the Employee details */ public function index() { $data['userRecords'] = $this->employeedetails_model->employeeListing(); $this->global['pageTitle'] = '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->validator->setMessage('Gender_validate', 'Please Select Gender.'); echo ""; 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->validator->setMessage('Martial_validate', 'Please Select Martial status.'); echo ""; 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->validator->setMessage('Blood_validate', 'Please Select Blood Group.'); echo ""; 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->validator->setMessage('select_validate', 'Supplier Record Not updated!'); echo ""; 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->validator->setMessage('Dep_validate', 'Please Select Department.'); echo ""; 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->validator->setMessage('Des_validate', 'Please Select Desigination.'); echo ""; return false; } else // user picked something { return true; } } /* To Check the Pan Number is exists in the database or not */ function Pan_validate() { // alert('validation pan'); $PanNo = $this->request->getPost('panno'); $query = $this->employeedetails_model->checkPANExists($PanNo); if (count($query) > 0) { // $this->validator->setMessage('checkPanValidate', 'The Entered PAN Number is already exists in the Database.'); echo ""; return false; } else { return true; } } /* To Check the Pan Number is exists in the database or not */ function Aadhar_validate() { $AadharNo = $this->request->getPost('aadharno'); $query = $this->employeedetails_model->checkAadharExists($AadharNo); if (count($query) > 0) { // $this->validator->setMessage('checkAadharValidate', 'The Entered Aadhar Number is already exists in the Database.'); echo ""; return false; } else { return true; } } /** * This function is used to save the new Employee form in the database */ function AddNewEmployee() { $photo = $this->request->getFile('photo'); $Picture = ""; if (isset($photo)) { if ($photo->isValid() && !$photo->hasMoved()) { $uploadDir = ROOTPATH . 'public/uploads/images/'; $allowedTypes = ['jpg', 'jpeg', 'png', 'gif']; if (in_array($photo->getExtension(), $allowedTypes)) { $newName = $photo->getRandomName(); if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } $photo->move($uploadDir, $newName); $Picture = $newName; } } } // $Profile = $this->request->getPost('photo'); $FirstName = $this->request->getPost('FirstName'); $FatherName = $this->request->getPost('FatherName'); $DateofBirth = $this->request->getPost('DateofBirth'); $ContactNumber = $this->request->getPost('ContactNumber'); $EmailId = $this->request->getPost('emailid'); $comEmailId = $this->request->getPost('comemailid'); $Gender = $this->request->getPost('gender'); $MartialStatus = $this->request->getPost('MartialStatus'); $BloodGroup = $this->request->getPost('bloodgroup'); $CurrentAddress = $this->request->getPost('currentaddress'); $permanentaddress = $this->request->getPost('permanentaddress'); $emergencycontactname = $this->request->getPost('emergencycontactname'); $emergencycontactnumber = $this->request->getPost('emergencycontactnumber'); $desigination = $this->request->getPost('desigination'); $departmentCode = $this->request->getPost('departmentname'); $dateofjoining = $this->request->getPost('dateofjoining'); $pre_experience = $this->request->getPost('Previousexperience'); if ($pre_experience == '') { $Previousexperience = null; } else { $Previousexperience = $pre_experience; } $eduqualifaction = $this->request->getPost('eduqualifaction'); $addqualification = $this->request->getPost('addqualification'); $referredby = $this->request->getPost('referredby'); $referrercontno = $this->request->getPost('referrercontno'); $accountno = $this->request->getPost('accountno'); $ifsccode = $this->request->getPost('ifsccode'); $bankbranchname = $this->request->getPost('bankbranchname'); $bankaddress = $this->request->getPost('bankaddress'); $aadharno = $this->request->getPost('aadharno'); $panno = $this->request->getPost('panno'); $panno = $panno !== null && is_string($panno) ? strtoupper($panno) : null; $passportno = $this->request->getPost('passportno'); $passportno = $passportno !== null && is_string($passportno) ? strtoupper($passportno) : null; $ValidTill = $this->request->getPost('ValidTill'); $addinfo = $this->request->getPost('addinfo'); $IsActive = '1'; $driverlicense = $this->request->getPost('driverlicense'); $driverlicense = $driverlicense !== null && is_string($driverlicense) ? strtoupper($driverlicense) : null; $licenseExpiryDate = $this->request->getPost('licenseExpiryDate'); $VoterID = $this->request->getPost('voterID'); $VoterID = $VoterID !== null && is_string($VoterID) ? strtoupper($VoterID) : null; $PFno = $this->request->getPost('pfno'); $ESIno = $this->request->getPost('esino'); $Nominee = $this->request->getPost('nomineename'); $createdby = $this->session->get('userId'); $is_management_team = $this->request->getPost('is_management_team'); $esi_applicable = $this->request->getPost('esi_applicable'); $pf_applicable = $this->request->getPost('pf_applicable'); $work_location = $this->request->getPost('work_location'); if ($licenseExpiryDate != '') { //$License_ExpiryDate = get_date_format($licenseExpiryDate); $License_ExpiryDate = get_date_time_format($licenseExpiryDate); } else { $License_ExpiryDate = null; } $DOB = get_date_time_format($DateofBirth); $DOJ = get_date_time_format($dateofjoining); if ($ValidTill != '') { $Valid = get_date_time_format($ValidTill); } else { $Valid = null; } //echo $DOB; $Employee = array( 'FirstName' => $FirstName, '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, 'personalEmailId' => $comEmailId, 'DriverLicense' => $driverlicense, 'LicenseValidtill' => $License_ExpiryDate, 'VoterID' => $VoterID, 'PFNO' => $PFno, 'ESI' => $ESIno, 'NomineeDetails' => $Nominee, 'is_management_team' => $is_management_team, 'esi_applicable' => $esi_applicable, 'pf_applicable' => $pf_applicable, 'work_location' => $work_location ); //print_r($Employee);die(); $result = $this->employeedetails_model->addNewemployee($Employee); if ($result) { // Get the uploaded files $files = $this->request->getFiles(); $fileNames = $this->request->getPost('file_name'); // Get user-entered file names if (isset($files['emp_file'])) { foreach ($files['emp_file'] as $index => $file) { if ($file->isValid() && !$file->hasMoved()) { // Move the file to the desired directory $newName = $file->getRandomName(); $file->move(ROOTPATH . 'public/uploads/images/emp_files', $newName); $path = ROOTPATH . 'public/uploads/images/emp_files/' . $newName; // Store the file information in the database $this->empFiles->save([ 'file_name' => $fileNames[$index], // User-entered file name 'emp_file' => $newName, // New file name 'emp_id' => $result, 'path' => $path ]); } } } $EmpID = $result; $Total_Salary = $this->request->getPost('Total_salary'); $Basic_Pay = $this->request->getPost('Basic_Pay'); $HRA_Rate = $this->request->getPost('HRA_Rate'); $HRA_Amount = $this->request->getPost('HRA_Amount'); $PF_Rate = $this->request->getPost('PF_Rate'); $ESI_Rate = $this->request->getPost('ESI_Rate'); $CreateBy = $this->session->get('userId'); $emppay = array('EmpID' => $EmpID, 'TotalSalary' => $Total_Salary, 'Basic_Pay' => $Basic_Pay, 'HRA_Rate' => $HRA_Rate, 'HRA_Amount' => $HRA_Amount, 'PF_Rate' => $PF_Rate, 'ESI_Rate' => $ESI_Rate, 'Created_By' => $CreateBy); $this->emppaydate_model->addNewemppay($emppay); // $this->session->set_flashdata('Success', 'New Employee created successfully!'); $this->session->setFlashdata('success', 'New Employee created successfully!'); return json_encode('true'); // echo ""; } else { // $this->session->set_flashdata('Error', 'New Employee details not saved'); $this->session->setFlashdata('error', 'Record Not Saved!'); return json_encode('false'); // echo ""; // redirect('employeeListing', 'refresh'); } // return redirect()->route('employeeListing'); // } } function deleteEmployeeFile() { $id = $this->request->getPost('id'); $update = $this->empFiles->set(['is_active' => 0])->where('id', $id)->update(); if ($update) { return true; } else { return false; } } /** * This function is used to load the add new Employee form with dropdown values */ function addemployee() { $GenderConfigID = 'C013'; $MartialConfigID = 'C012'; $QualificationConfigID = 'C014'; $DesignationConfigID = 'C010'; $BloodGroupConfigID = 'C011'; $LocationConfigID = 'C031'; $data['Gender'] = $this->employeedetails_model->getConfigValue($GenderConfigID); $data['Martial'] = $this->employeedetails_model->getConfigValue($MartialConfigID); $data['bankdetails'] = $this->employeedetails_model->getBankDetails(); $data['Qualification'] = $this->employeedetails_model->getConfigValue($QualificationConfigID); $data['Designation'] = $this->employeedetails_model->getConfigValue($DesignationConfigID); $data['BloodGroup'] = $this->employeedetails_model->getConfigValue($BloodGroupConfigID); $data['Location'] = $this->employeedetails_model->getConfigValue($LocationConfigID); $data['Department'] = $this->employeedetails_model->getDepartment(); $data['hra_rate'] = $this->appConfig->where('config_key', 1)->get()->getRow()->config_value; $data['pf_rate'] = $this->appConfig->where('config_key', 2)->get()->getRow()->config_value; $data['esi_rate'] = $this->appConfig->where('config_key', 3)->get()->getRow()->config_value; $this->global['pageTitle'] = 'Add New Employee'; // if($this->role == ROLE_ADMIN || $this->DEPCode == HR) // { // $this->loadViews("addEmployee", $this->global, $data, NULL); $this->loadViews("addEmployeenew", $this->global, $data, NULL); // } // else // { // $this->loadViews("access", $this->global, $data, NULL); // } } /** * This function is used to check whether the Employee is existing in the database or not */ function CheckEmail() { $id = $this->request->getPost('id'); //print_r($id); $query = $this->employeedetails_model->checkMailExists($id); $response = ($query !== null && !empty($query)) ? $query[0]['EmailId'] : null; return $this->response->setJSON($response); } function checkPAN() { $id = $this->request->getPost('id'); //print_r($id); $query = $this->employeedetails_model->checkPANExists($id); $response = ($query !== null && !empty($query)) ? $query[0]['PANNo'] : null; return $this->response->setJSON($response); // print_r($query); } function checkAadharNo() { $id = $this->request->getPost('id'); //print_r($id); $query = $this->employeedetails_model->checkAadharExists($id); $response = ($query !== null && !empty($query)) ? $query[0]['AadharNo'] : null; return $this->response->setJSON($response); } /* To Check the Pan Number is exists in the database or not for the selected Supplier */ function Pan_validate_emp() { //print_r($PanNo); $Empid = $this->request->getPost('employeeid'); $PanNo = $this->request->getPost('panno'); $query = $this->employeedetails_model->checkPANExists($PanNo, $Empid); if (count($query) > 0) { // $this->validator->setMessage('Pan_validate_emp', 'The Entered PAN Number is already exists in the Database.'); echo ""; return false; } else { return true; } } // To Check the Aadhar Number is exists in the database or not for the selected Employee function Aadhar_validate_emp() { $Empid = $this->request->getPost('employeeid'); $AadharNo = $this->request->getPost('aadharno'); $query = $this->employeedetails_model->checkAadharExists($AadharNo, $Empid); if (count($query) > 0) { // $this->validator->setMessage('Aadhar_validate_emp', 'The Entered Aadhar Number is exists in the Database.'); echo ""; return false; } else { return true; } } public function add($photo) { $picture = ''; if ($photo->isValid() && !$photo->hasMoved()) { // Define upload directory and allowed file types $uploadDir = ROOTPATH . 'public/uploads/images/'; $allowedTypes = ['jpg', 'jpeg', 'png', 'gif']; // Validate file type if (in_array($photo->getExtension(), $allowedTypes)) { // Generate unique file name $newName = $photo->getRandomName(); if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } // Move the uploaded file to the upload directory $photo->move($uploadDir, $newName); $picture = $newName; } else { // Handle invalid file type $picture = ''; } } return $picture; } function ViewEmployee($EmpNO = '') { if ($EmpNO == '') { $EmpID = $_GET['EmpID']; } else { $EmpID = $EmpNO; } $GenderConfigID = 'C013'; $MartialConfigID = 'C012'; $QualificationConfigID = 'C014'; $DesignationConfigID = 'C010'; $BloodGroupConfigID = 'C011'; $LocationConfigID = 'C031'; //print_r('hai'); $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['bankdetails'] = $this->employeedetails_model->getBankDetails(); $data['Location'] = $this->employeedetails_model->getConfigValue($LocationConfigID); $data['DepartmentList'] = $this->employeedetails_model->getDepartment(); $data['EmpDetails'] = $this->employeedetails_model->viewemployee($EmpID); $data['emp_data'] = $this->empFiles->where('emp_id', $EmpID)->where('is_active', 1)->findAll(); $data['empPay'] = $this->emppaydate_model->getEmpPayData($EmpID); $this->global['pageTitle'] = 'View Employee'; $this->loadViews("editEmployeenew", $this->global, $data, NULL); } /* To Check the email exists in the database or not for the employee*/ function checkMailEmp() { $Empid = $this->request->getPost('employeeid'); $EmailId = $this->request->getPost('emailid'); $query = $this->employeedetails_model->checkMailExists($EmailId, $Empid); if (count($query) > 0) { // $this->validator->setMessage('checkMailEmp', 'The Entered Email id is exists in the Database.'); echo ""; return false; } else { return true; } } /* To Update the employee details*/ function UpdateEmployee() { $EmpId = $this->request->getPost('employeeid'); //$mail = $this->this->.post('emailid'); // $this->validator->setRules([ // 'ContactNumber'=> 'trim|required|min_length[10]|max_length[10]', // 'emailid'=> 'trim|required|valid_email|callback_checkMailEmp', // 'gender'=> 'callback_Gender_validate', // 'MartialStatus'=> 'callback_Martial_validate', // 'bloodgroup'=> 'callback_Blood_validate', // 'emergencycontactnumber'=> 'trim|required|min_length[10]|max_length[10]', // 'desigination'=> 'callback_Des_validate', // 'departmentname'=> 'callback_Dep_validate', // 'eduqualifaction'=> 'callback_select_validate', // 'referrercontno'=> 'trim|min_length[10]|max_length[10]', // 'aadharno'=> 'trim|max_length[14]', // 'panno'=> 'trim|max_length[10]', // 'passportno'=> 'trim|min_length[9]|max_length[9]', // 'accountno'=> 'trim|min_length[10]|max_length[20]', // 'pfno'=> 'trim|min_length[22]|max_length[22]', // 'esino'=> 'trim|min_length[10]|max_length[10]']); // if ($this->validator->run() == FALSE) { // $this->ViewEmployee($EmpId); // } else { $EmpId = $this->request->getPost('employeeid'); $PictureName = $this->request->getPost('Image'); $ModifyPictureName = $this->request->getPost('ModifyImage'); $Picture = ""; if ($PictureName != '') { //echo 'Exists'; //$Picture = $PictureName; if (strlen((string)$ModifyPictureName) == 0) { //echo 'Exists But Not replace'; $Picture = $PictureName; } else { // echo "
";
        // // print_r($this->request->getPost());
        // print_r($this->request->getFile('photo'));
        // die;
        //echo  'Exists But Replace';
        //$Picture = $ModifyPictureName;
        //$Picture = $this->editimage($ModifyPictureName);  
        $photo = $this->request->getFile('ModifyImage');
        if (!$photo || !$photo->isValid()) {
            $photo = $this->request->getFile('photo');
        }
        if (isset($photo)) {
          if ($photo->isValid() && !$photo->hasMoved()) {
            $uploadDir = ROOTPATH . 'public/uploads/images/';
            $allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
            if (in_array($photo->getExtension(), $allowedTypes)) {
              $newName = $photo->getRandomName();
              if (!is_dir($uploadDir)) {
                mkdir($uploadDir, 0777, true);
              }
              $photo->move($uploadDir, $newName);
              $Picture = $newName;
            }
          }
        }
      }
    } else {
      //echo  'Not Exists';
      $photo = $this->request->getFile('photo');
      if (isset($photo)) {
        if ($photo->isValid() && !$photo->hasMoved()) {
          $uploadDir = ROOTPATH . 'public/uploads/images/';
          $allowedTypes = ['jpg', 'jpeg', 'png', 'gif'];
          if (in_array($photo->getExtension(), $allowedTypes)) {
            $newName = $photo->getRandomName();
            if (!is_dir($uploadDir)) {
              mkdir($uploadDir, 0777, true);
            }
            $photo->move($uploadDir, $newName);
            $Picture = $newName;
          }
        }
      }
    }
    //echo  $Picture;         

    $FirstName = $this->request->getPost('FirstName');
    $LastName = $this->request->getPost('LastName');
    $FatherName = $this->request->getPost('FatherName');
    $DateofBirth = $this->request->getPost('DateofBirth');
  
   // dd($DateofBirth);

    $ContactNumber = $this->request->getPost('ContactNumber');
    $EmailId = $this->request->getPost('emailid');
    $comEmailId = $this->request->getPost('comemailid');
    $Gender =  $this->request->getPost('gender');
    $MartialStatus =  $this->request->getPost('MartialStatus');
    $BloodGroup =  $this->request->getPost('bloodgroup');
    $CurrentAddress =  $this->request->getPost('currentaddress');
    $permanentaddress =  $this->request->getPost('permanentaddress');
    $emergencycontactname =  $this->request->getPost('emergencycontactname');
    $emergencycontactnumber =  $this->request->getPost('emergencycontactnumber');
    $desigination =  $this->request->getPost('desigination');
    $departmentCode =  $this->request->getPost('departmentname');
    $dateofjoining =  $this->request->getPost('dateofjoining');

    //  dd($dateofjoining);

    //$Previousexperience =  $this->request->getPost('Previousexperience');
    $pre_experience =  $this->request->getPost('Previousexperience');

    if ($pre_experience == '') {
      $Previousexperience = null;
    } else {
      $Previousexperience = $pre_experience;
    }
    $eduqualifaction =  $this->request->getPost('eduqualifaction');
    $addqualification = $this->request->getPost('addqualification');
    $referredby = $this->request->getPost('referredby');
    $referrercontno = $this->request->getPost('referrercontno');
    $accountno = $this->request->getPost('accountno');
    $ifsccode = $this->request->getPost('ifsccode');
    $bankbranchname = $this->request->getPost('bankbranchname');
    $bankaddress = $this->request->getPost('bankaddress');
    $aadharno = $this->request->getPost('aadharno');
    $panno = $this->request->getPost('panno');
    $panno = $panno !== null && is_string($panno) ? strtoupper($panno) : null;
    $passportno = $this->request->getPost('passportno');
    $passportno = $passportno !== null && is_string($passportno) ? strtoupper($passportno) : null;
    $ValidTill = $this->request->getPost('ValidTill');
    $addinfo = $this->request->getPost('addinfo');
    $driverlicense = $this->request->getPost('driverlicense');


   // dd($driverlicense);

    $driverlicense = $driverlicense !== null && is_string($driverlicense) ? strtoupper($driverlicense) : null;
    $licenseExpiryDate = $this->request->getPost('LicenseExpiryDate');
    $VoterID = $this->request->getPost('voterID');

   
    //dd($VoterID);


    $VoterID = $VoterID !== null && is_string($VoterID) ? strtoupper($VoterID) : null;
    $pfno = $this->request->getPost('pfno');
    $pfno = $pfno !== null && is_string($pfno) ? strtoupper($pfno) : null;
    //$uano = $this->request->getPost('uano'); 
    $esino = $this->request->getPost('esino');
    $Nominee = $this->request->getPost('nomineename');
    $chked =  $this->request->getPost('isactive');
    $is_management_team = $this->request->getPost('is_management_team');
    $esi_applicable = $this->request->getPost('esi_applicable');
    $pf_applicable = $this->request->getPost('pf_applicable');
    $work_location = $this->request->getPost('work_location');
    // echo 'chkvalue'.  $chked ;
    if ($chked != '') {
      $IsActive = '1';
    } else {
      $IsActive = '0';
    }
    // echo 'chkvalue'. $IsActive ;
    $UpdatedBY = $this->session->get('userId');

    //$licenseExpiryDate =  get_date_time_format($licenseExpiryDate);



    $DOB = get_date_time_format($DateofBirth);

    $DOJ =  get_date_time_format($dateofjoining);
  
    if ($ValidTill != '') {
      $Valid =  get_date_time_format($ValidTill);
    } else {
      $Valid = null;
    }

    if ($licenseExpiryDate != '') {
      $License_ExpiryDate =  get_date_time_format($licenseExpiryDate);
    } else {
      $License_ExpiryDate = null;
    }

    // echo $DOB;die;
    $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,
      'personalEmailId' => $comEmailId,
      'DriverLicense' => $driverlicense,
      'LicenseValidtill' => $License_ExpiryDate,
      'VoterID' => $VoterID,
      'PFNO' => $pfno,
      'ESI' => $esino,
      'NomineeDetails' => $Nominee,
      'is_management_team' => $is_management_team,
      'esi_applicable' => $esi_applicable,
      'pf_applicable' => $pf_applicable,
      'work_location' => $work_location
    );
    //print_r($Employee);die();
    $result = $this->employeedetails_model->UpdateEmployee($Employee, $EmpId);

    // Get the uploaded files
    $files = $this->request->getFiles();
    $fileNames = $this->request->getPost('file_name'); // Get user-entered file names
    if (isset($files['emp_file'])) {
      foreach ($files['emp_file'] as $index => $file) {
        if ($file->isValid() && !$file->hasMoved()) {
          // Move the file to the desired directory
          $newName = $file->getRandomName();
          $file->move(ROOTPATH . 'public/uploads/images/emp_files', $newName);
          $path = ROOTPATH . 'public/uploads/images/emp_files/' . $newName;
          // Store the file information in the database
          $this->empFiles->save([
            'file_name' => $fileNames[$index], // User-entered file name
            'emp_file' => $newName, // New file name
            'emp_id' => $EmpId,
            'path' => $path

          ]);
        }
      }
    }



    $Total_Salary = $this->request->getPost('Total_salary');
    $Basic_Pay = $this->request->getPost('Basic_Pay');
    $HRA_Rate = $this->request->getPost('HRA_Rate');
    $HRA_Amount = $this->request->getPost('HRA_Amount');
    $PF_Rate = $this->request->getPost('PF_Rate');
    $ESI_Rate = $this->request->getPost('ESI_Rate');
    $CreateBy =   $this->session->get('userId');
    $emppay = array('EmpID' => $EmpId, 'TotalSalary' => $Total_Salary, 'Basic_Pay' => $Basic_Pay, 'HRA_Rate' => $HRA_Rate, 'HRA_Amount' => $HRA_Amount,  'PF_Rate' => $PF_Rate, 'ESI_Rate' => $ESI_Rate, 'Created_By' => $CreateBy);


    $empPayUpdate = $this->emppaydate_model->editemppay($emppay);

    if ($result + $empPayUpdate > 0) {
      $this->session->setFlashdata('success', 'You Have Successfully updated the Employee Record!');
      return json_encode(true);
    } else {
      $this->session->setFlashdata('error', 'Record Not Updated!');
      return json_encode(false);
    }
    // return redirect()->route('employeeListing');
  }

  function exportemployee()
  {
    $exportData = $this->employeedetails_model->export_excel();

    $file_name = 'Employee_Details' . ' ' .  '.xls'; //save our workbook as this file name
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->mergeCells('L3:S3');
    $sheet->getStyle('L3')->getAlignment()->setHorizontal('center');
    $sheet->setTitle('Employee details');

    $headers = [
      'L3' => 'RESICO Employee Details',
      'A5' => 'EmpID',
      'B5' => 'FirstName-LastName',
      'C5' => 'FatherName',
      'D5' => 'Gender',
      'E5' => 'Date of Birth',
      'F5' => 'ContactNumber',
      'G5' => 'EmailId',
      'H5' => 'BloodGroup',
      'I5' => 'MartialStatus',
      'J5' => 'DateofJoining',
      'K5' => 'PreviousYearsOfExp',
      'L5' => 'Designation',
      'M5' => 'DepartmentName',
      'N5' => 'PresentAddress',
      'O5' => 'PermanentAddress',
      'P5' => 'EmergencyContactName',
      'Q5' => 'EmergencyContactNumber',
      'R5' => 'Edu_Qualification',
      'S5' => 'Additional_Qualification',
      'T5' => 'Reference_Name',
      'U5' => 'Reference_ContactNumber',
      'V5' => 'BankStatemant',
      'W5' => 'AadharNo',
      'X5' => 'PANNo',
      'Y5' => 'PassportNo',
      'Z5' => 'Passport_Valid_till',
      'AA5' => 'Voter ID',
      'AB5' => 'Driving License',
      'AC5' => 'Driving License Expiry Date',
      'AD5' => 'Official Email ID',
      'AE5' => 'IsActive',
      'AF5' => 'PFNO',
      'AG5' => 'ESI',
      'AH5' => 'Nominee Details',
      // 'AI5'=>'PF_Balance',
      // 'AJ5'=>'PF_Bal_On',
      'AI5' => 'Remarks',
      'AJ5' => 'CreatedBy',
      'AK5' => 'UpdatedBY'
    ];

    foreach ($headers as $cell => $value) {
      $sheet->setCellValue($cell, $value);
      $sheet->getStyle($cell)->getFont()->setSize($cell == 'L3' ? 14 : 12);
      $sheet->getStyle($cell)->getFont()->setBold(true);
    }

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

        foreach ($rowData as $cell => $value) {
          $sheet->setCellValue($cell, $value);
        }

        $i++;
        $s++;
      }
    }
    // $writer = new Xlsx($spreadsheet);
    // $writer->save($file_name);
    // header("Content-Type: application/vnd.ms-excel");
    // header('Content-Disposition: attachment; filename="' . basename($file_name) . '"');
    // header('Expires: 0');
    // header('Cache-Control: must-revalidate');
    // header('Pragma: public');
    // header('Content-Length:' . filesize($file_name));
    // flush();
    // readfile($file_name);
    // exit;
    // Clear the output buffer to prevent any other output
    ob_clean();

    $writer = new Xlsx($spreadsheet);


    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment;filename="' . $file_name . '"');
    header('Cache-Control: max-age=0');
    header('Expires: 0');
    header('Pragma: public');

    $writer->save('php://output');
    exit;
  }
}