ria/app/Controllers/Employeedetails.php

1105 lines
37 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Controllers\BaseController;
use CodeIgniter\Validation\Exceptions\ValidationException;
use App\Models\Companydetails_model;
use App\Models\Employeedetails_model;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Mpdf\Mpdf;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use App\Models\EmpFilesModel;
use App\Models\AppConfigModel;
use App\Models\Emppaydate_model;
/**
* Module : Employee
* Employeedetails Class to control all employee related operations.
* @author : Gandhimathi
* @version : 1.1
* @since : 07 Apr 2017
* @example : Revised at 15th april 2024
*/
class Employeedetails extends BaseController
{
protected $companydetailsmodel;
protected $employeedetails_model;
protected $empFiles;
protected $appConfig;
protected $emppaydate_model;
protected $session;
/**
* This is default constructor of the class
*/
public function __construct()
{
parent::__construct();
$this->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);
}
function employeeHistory()
{
$Emp = $this->request->getPost('emp');
$result = $this->employeedetails_model->employeeHistory($Emp);
return $this->response->setJSON($result);
}
/*
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 "<script>alert('Please Select Gender.');</script>";
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 "<script>alert('Please Select Martial status.');</script>";
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 "<script>alert('Please Select Blood Group.');</script>";
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 "<script>alert('Supplier Record Not updated!');</script>";
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 "<script>alert('Please Select Department.');</script>";
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 "<script>alert('Please Select Desigination.');</script>";
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 "<script>alert('The Entered PAN Number is already exists in the Database.');</script>";
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 "<script>alert('The Entered Aadhar Number is already exists in the Database.');</script>";
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;
}
else{
echo "Incorrect file format provided";
return false;
}
}
}
// $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');
$Gender = $this->request->getPost('gender');
$MartialStatus = $this->request->getPost('MartialStatus');
$CurrentAddress = $this->request->getPost('currentaddress');
$permanentaddress = $this->request->getPost('permanentaddress');
$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');
$is_driver = $this->request->getPost('is_driver');
$TDS_Rate = $this->request->getPost('TDS_Rate');
$tds_applicable=$this->request->getPost('tds_applicable');
$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,
'MartialStatus' => $MartialStatus,
'DateofJoining' => $DOJ,
'PreviousYearsOfExp' => $Previousexperience,
'Designation' => $desigination,
'Departmentcode' => $departmentCode,
'PresentAddress' => $CurrentAddress,
'PermanentAddress' => $permanentaddress,
'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,
'DriverLicense' => $driverlicense,
'LicenseValidtill' => $License_ExpiryDate,
'VoterID' => $VoterID,
'PFNO' => $PFno,
'ESI' => $ESIno,
'TDS_Rate' => $TDS_Rate,
'tds_applicable' => $tds_applicable,
'NomineeDetails' => $Nominee,
'is_management_team' => $is_management_team,
'esi_applicable' => $esi_applicable,
'pf_applicable' => $pf_applicable,
'work_location' => $work_location,
'is_driver' => $is_driver,
);
//print_r($Employee);die();
$result = $this->employeedetails_model->addNewemployee($Employee);
if ($result) {
// Get the uploaded files
$files1 = $this->request->getFile('emp_file1');
$files2 = $this->request->getFile('emp_file2');
$files3 = $this->request->getFile('emp_file3');
$files4 = $this->request->getFile('emp_file4');
$files5 = $this->request->getFile('emp_file5');
$files=[$files1,$files2,$files3,$files4,$files5];
$fileName1 = $this->request->getPost('file_name1');
$fileName2 = $this->request->getPost('file_name2');
$fileName3 = $this->request->getPost('file_name3');
$fileName4 = $this->request->getPost('file_name4');
$fileName5 = $this->request->getPost('file_name5');
$fileNames=[$fileName1,$fileName2,$fileName3,$fileName4,$fileName5];
if (!empty($files)) {
foreach ($files as $index => $file) {
if ($file && $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['EmpID'],
'path' => $path
]);
}
}
}
$EmpID = $result['EmpID'];
$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 "<script>alert('New Employee Created successfully!');</script>";
} else {
// $this->session->set_flashdata('Error', 'New Employee details not saved');
$this->session->setFlashdata('error', 'Record Not Saved!');
// return json_encode('false');
echo "<script>alert('Record Not Saved!');</script>";
// 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';
$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['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()
{
$emailId = $this->request->getPost('emailId');
//print_r($id);
$result = $this->employeedetails_model->checkMailExists($emailId);
$result = $result->getResultArray();
$response = [
"message" => "success",
"data" => $result
];
return $this->response->setJSON($response);
}
function CheckMobile()
{
$ContactNumber = $this->request->getPost('ContactNumber');
//print_r($id);
$result = $this->employeedetails_model->checkMobileExists($ContactNumber);
$result = $result->getResultArray();
$response = [
"message" => "success",
"data" => $result
];
return $this->response->setJSON($response);
}
function checkPAN()
{
$panNo = $this->request->getPost('panNo');
//print_r($id);
$result = $this->employeedetails_model->checkPANExists($panNo);
$result = $result->getResultArray();
$response = [
"message" => "success",
"data" => $result
];
return $this->response->setJSON($response);
}
function checkAadharNo()
{
$aadharNo = $this->request->getPost('aadharNo');
//print_r($id);
$result = $this->employeedetails_model->checkAadharExists($aadharNo);
$result = $result->getResultArray();
$response = [
"message" => "success",
"data" => $result
];
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 "<script>alert('The Entered PAN Number is already exists in the Database.');</script>";
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 "<script>alert('The Entered Aadhar Number is exists in the Database.');</script>";
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';
$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['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);
}
function downloadEmployeeDetails($EmpNO = '')
{
$EmpID = $_GET['EmpID'];
$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);
// dd($data);
// Load the HTML view and pass data
$html = view('employee_pdf_view', $data);
$mpdf = new Mpdf();
$mpdf->WriteHTML($html);
// Output the PDF
$fName = $data['EmpDetails'][0]->EmpID.'-Employee-Details.pdf';
return $mpdf->Output($fName, "D");
}
/* 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 "<script>alert('The Entered Email id is exists in the Database.');</script>";
return false;
} else {
return true;
}
}
/* To Update the employee details*/
function UpdateEmployee()
{
$EmpId = $this->request->getGet('empId');
//if it is empty it means the default image is selected
$oldPictureName = $this->request->getPost('oldImageName');
$Picture = "";
$photo = $this->request->getFile('photo');
if (isset($photo) && $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{
$Picture=$oldPictureName;
}
$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');
$Gender = $this->request->getPost('gender');
$MartialStatus = $this->request->getPost('MartialStatus');
$CurrentAddress = $this->request->getPost('currentaddress');
$permanentaddress = $this->request->getPost('permanentaddress');
$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');
$reason = $this->request->getPost('reason');
// 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');
$is_driver = $this->request->getPost('is_driver');
$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,
'MartialStatus' => $MartialStatus,
'DateofJoining' => $DOJ,
'PreviousYearsOfExp' => $Previousexperience,
'Designation' => $desigination,
'Departmentcode' => $departmentCode,
'PresentAddress' => $CurrentAddress,
'PermanentAddress' => $permanentaddress,
'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,
'DriverLicense' => $driverlicense,
'LicenseValidtill' => $License_ExpiryDate,
'VoterID' => $VoterID,
'PFNO' => $pfno,
'ESI' => $esino,
'NomineeDetails' => $Nominee,
'is_management_team' => $is_management_team,
'is_driver' => $is_driver,
'esi_applicable' => $esi_applicable,
'pf_applicable' => $pf_applicable,
'work_location' => $work_location,
'reason' => $reason
);
//print_r($Employee);die();
$result = $this->employeedetails_model->UpdateEmployee($Employee, $EmpId);
// Get the uploaded files
$files1 = $this->request->getFile('emp_file1');
$files2 = $this->request->getFile('emp_file2');
$files3 = $this->request->getFile('emp_file3');
$files4 = $this->request->getFile('emp_file4');
$files5 = $this->request->getFile('emp_file5');
$files=[$files1,$files2,$files3,$files4,$files5];
$fileName1 = $this->request->getPost('file_name1');
$fileName2 = $this->request->getPost('file_name2');
$fileName3 = $this->request->getPost('file_name3');
$fileName4 = $this->request->getPost('file_name4');
$fileName5 = $this->request->getPost('file_name5');
$fileNames=[$fileName1,$fileName2,$fileName3,$fileName4,$fileName5];
if (!empty($files)) {
foreach ($files as $index => $file) {
if ($file && $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');
$Last_Mod_By = $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, 'Last_Mod_By' => $Last_Mod_By);
$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();
$companyName = $this->companydetailsmodel->companylisting();
$companyName = isset($companyName[0]->CompanyName) ? $companyName[0]->CompanyName : "Resico India Pvt Ltd";
$file_name = 'Employee_Details' . ' ' . '.xls'; //save our workbook as this file name
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->mergeCells('A1:AN1');
$sheet->getStyle('A1')->getAlignment()->setHorizontal('center');
$sheet->setTitle('Employee Details');// Sheet 1 replaced
$headers = [
'A1' => $companyName.' - Employee Details',
'A2' => 'EmpID',// personal
'B2' => 'Name',
'C2' => 'Father / Husband Name',
'D2' => 'Gender',
'E2' => 'Date of Birth',
'F2' => 'ContactNumber',
'G2' => 'MartialStatus',
'H2' => 'Date of Joining',
'I2' => 'Previous Years of Experience',
'J2' => 'Designation',
'K2' => 'DepartmentName',
'L2' => 'PresentAddress',
'M2' => 'PermanentAddress',
'N2' => 'Qualification',
'O2' => 'Work_Location',
'P2' => 'Management Team',
'Q2' => 'Driver',
'R2' => 'Bank Name', // bank & Work related
'S2' => 'Account Number',
'T2' => 'IFSC',
'U2' => 'Bank Address',
'V2' => 'Total Salary',
'W2' => 'Basic Pay',
'X2' => 'HRA Rate(%)',
'Y2' => 'HRA Amount',
'Z2' => 'UAN',
'AA2' => 'PF Applicable',
'AB2' => 'PF Rate(%)',
'AC2' => 'ESI Applicable',
'AD2' => 'ESI Rate(%)',
'AE2' => 'ESI Number',
'AF2' => 'TDS Applicable',
'AG2' => 'TDS Rate(%)',
'AH2' => 'Aadhar Number', //IDentity
'AI2' => 'PAN Number',
'AJ2' => 'Passport Number',
'AK2' => 'Active / Inactive',// Others
'AL2' => 'Reason',
'AM2' => 'Created By',
'AN2' => 'Updated By'
];
foreach ($headers as $cell => $value) {
$sheet->setCellValue($cell, $value);
$sheet->getStyle($cell)->getFont()->setSize($cell == 'A1' ? 14 : 12);
$sheet->getStyle($cell)->getFont()->setBold(true);
}
$sheet->getStyle("A2:AN2")->applyFromArray([
'font' => [
'bold' => true,
'size' => 12,
],
'alignment' => [
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
]
]);
// $sheet->getRowDimension(5)->setRowHeight(25);
foreach (range('A', 'Z') as $col) {
$sheet->getColumnDimension($col)->setAutoSize(true);
}
foreach (range('A', 'N') as $col) {
$sheet->getColumnDimension('A' . $col)->setAutoSize(true);
}
if ($exportData) {
$i = 3;
$s = 1;
foreach ($exportData as $data) {
;
// $dob = get_date_time_dynamical_format("Y-m-d H:i:s","d-m-Y","$data['DateofBirth']");
$rowData = [
'A' . $i => $data['EmpID'],
'B' . $i => $data['Name'],
'C' . $i => $data['FatherName'],
'D' . $i => $data['Gender'],
'E' . $i => get_date_time_dynamical_format("Y-m-d H:i:s","d-m-Y",$data['DateofBirth']),
'F' . $i => $data['ContactNumber'],
'G' . $i => $data['MartialStatus'],
'H' . $i => get_date_time_dynamical_format("Y-m-d H:i:s","d-m-Y",$data['DateofJoining']),
'I' . $i => $data['PreviousYearsOfExp'] ? $data['PreviousYearsOfExp'] : 0,
'J' . $i => $data['Designation'],
'K' . $i => $data['DepartmentName'],
'L' . $i => $data['PresentAddress'],
'M' . $i => $data['PermanentAddress'],
'N' . $i => $data['Edu_Qualification'],
'O' . $i => $data['work_location'],
'P' . $i => $data['is_management_team'] ? $data['is_management_team'] : '-',
'Q' . $i => $data['is_driver'] ? $data['is_driver'] : '-',
'R' . $i => $data['BankBranchName'],//bank related
'S' . $i => $data['BankAccountNo'],
'T' . $i => $data['IFSCCode'],
'U' . $i => $data['BankAddress'],
'V' . $i => $data['TotalSalary'], //'Total Salary',
'W' . $i => $data['Basic_Pay'], //'Basic Pay',
'X' . $i => $data['HRA_Rate'], //'HRA Rate(%)',
'Y' . $i => $data['HRA_Amount'], //'HRA Amount',
'Z' . $i => $data['UANO'], //'UAN',
'AA' . $i => $data['pf_applicable'] ? $data['pf_applicable'] : 0, //'PF Applicable',
'AB' . $i => $data['PF_Rate'], //'PF Rate(%)',
// 'AC' . $i => $data['PFNO'],
'AC' . $i => $data['esi_applicable'] ? $data['esi_applicable'] : 0 , //'ESI Applicable',
'AD' . $i => $data['ESI_Rate'], //'ESI Rate(%)',
'AE' . $i => $data['ESI'], //'ESI Number',
'AF' . $i => $data['tds_applicable'] ? $data['tds_applicable'] : 0, //'TDS Applicable',
'AG' . $i => $data['TDS_Rate'], //'TDS Rate(%)',
'AH' . $i => $data['AadharNo'] ? $data['AadharNo'] : '-', //IDentity
'AI' . $i => $data['PANNo'] ? $data['PANNo'] : '-',
'AJ' . $i => $data['PassportNo'] ? $data['PassportNo'] : '-',
'AK' . $i => $data['IsActive'] == 1 ? 'Active' : "In-active",//others
'AL' . $i => $data['reason'] ? $data['reason'] : '-',
'AM' . $i => $data['CreatedByName'],
'AN' . $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;
}
}