siddharth_application/application/controllers/payslip.php
2017-06-08 13:26:48 +05:30

559 lines
20 KiB
PHP
Executable File

<?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 payslip extends BaseController
{
/**
* This is default constructor of the class
*/
public function __construct()
{
parent::__construct();
$this->load->model('payroll_model');
$this->load->library('form_validation');
$this->isLoggedIn();
}
/**
* This function used to call stored procedure named with final_payroll_data()
*/
public function callsp(){
$payon = $this->input->post('payon');
$employee = $this->input->post('employee');
$result = $this->payroll_model->model_sp($payon,$employee);
// $result = $this->db->last_query();
return $result;
//$this->db->call_function('model_sp');
}
/**
* This function used to load the first screen of the user
*/
public function viewUpload()
{
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
$this->loadViews("payslipupload", $this->global, null , NULL);
}
/**
* This function used to load the first screen of the user
*/
public function viewUpload2()
{
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload2';
$this->loadViews("payslipupload2", $this->global, null , NULL);
}
/**
* This function used to load the first screen of the user
*/
public function viewGenerator()
{
//echo 'inside funtion';
$Data['Payon'] = $this->payroll_model->getPayOn();
//$Data['Emplist'] = $this->payroll_model->getEmployeelist();
$this->global['pageTitle'] = 'Siddharth : Payroll Generater';
$this->loadViews("payslipgenerate", $this->global, $Data , NULL);
}
/* Validation for Employee Dropdown
*/
function Employee_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('Employee_validate', 'Please Select Employee.');
return false;
}
else // user picked something
{
return true;
}
}
function getEmployee()
{
$id = $this->input->post('id1');
$result = $this->payroll_model->getEmployeelist2($id );
$HTML="";
if($result->num_rows() > 0){
foreach($result->result() as $list){
$HTML.="<option value='".$list->EmpId."'>".$list->EmpId."-".$list->Fname."</option>";
}
}
echo $HTML;
}
/* Validation for PayOn Dropdown
*/
function PayOn_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('PayOn_validate', 'Please Select PayOn.');
return false;
}
else // user picked something
{
return true;
}
}
/**
* This function used to load the first screen of the user
*/
public function PrintPdf()
{
$All = $this->input->post('All');
if($All == '')
{
$this->form_validation->set_rules('Employee','Employee','trim|callback_Employee_validate');
}
$this->form_validation->set_rules('PayOn','PayOn','trim|callback_PayOn_validate');
if($this->form_validation->run() == FALSE)
{
$this->viewGenerator();
}
else
{
$Payon = $this->input->post('PayOn');
if($All != '')
{
$result = $this->payroll_model->getEmpAll($Payon);
if($result > 0 )
{
for($i=0;$i <count($result) ;$i++ )
{
$EmpID = $result[$i]['EmpId'];
$Data['PayDetails'] = $this->payroll_model->GetPayslipdata($Payon,$EmpID);
$Data['Count'] = $i;
$this->load->View("payslipgenerateprint", $Data );
}
}
}
else
{
$EmpID = $this->input->post('Employee');
$Data['PayDetails'] = $this->payroll_model->GetPayslipdata($Payon,$EmpID);
$this->load->View("payslipgenerateprint", $Data );
}
$php = $this->output->get_output();
// Load library
$this->load->library('dompdf_gen');
if($All != '')
{
$filename = 'Payslip-'.$Payon.'.pdf' ;
}
else
{
$filename = 'Payslip-'.$EmpID . '-' .$Payon.'.pdf' ;
}
require_once(APPPATH .'third_party/dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->set_paper('A4', 'portrait');
$dompdf->load_html($php);
$dompdf->render();
// add the header
$canvas = $dompdf->get_canvas();
$font = Font_Metrics::get_font("helvetica", "bold");
// the same call as in my previous example
$canvas->page_text(72, 18, "Page: {PAGE_NUM} of {PAGE_COUNT}",
$font, 6, array(0,0,0));
$dompdf->stream($filename);
}
}
/**
* This function used to upload the Excel file Details
*/
function uploadExcel(){
$PayrollFileName = '';
//Check whether user upload picture
if(!empty($_FILES['userfile']['name']))
{
//echo 'inside if';
$pathinfo = pathinfo($_FILES['userfile']['name']);
$config['upload_path'] = 'uploads/files/';
$config['allowed_types'] = 'xls|xlsx|csv';
$config['file_name'] = $_FILES['userfile']['name'];
$config['overwrite'] = true;
//Load upload library and initialize configuration
$this->load->library('upload',$config);
$this->upload->initialize($config);
if (($pathinfo['extension'] == 'xlsx' || $pathinfo['extension'] == 'xls')
&& $_FILES['userfile']['size'] > 0 )
{
if($this->upload->do_upload('userfile'))
{
$uploadData = $this->upload->data();
$PayrollFileName = $uploadData['file_name'];
}
else
{
$error = array('error' => $this->upload->display_errors());
$PayrollFileName = '';
}
$inputFileName = $_FILES['userfile']['tmp_name'];
require_once APPPATH .'third_party/PHPExcel/IOFactory.php';
$objTpl = PHPExcel_IOFactory::load($inputFileName);
$sheet = $objTpl->getActiveSheet(0) ;//->toArray(null, NULL, True, True);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$i = 8;
$dt = $sheet->getCell('PayOn')->getValue();
$stringDate = PHPExcel_Style_NumberFormat::toFormattedString($dt, 'YYYY-MM-DD');
$date = new DateTime($stringDate);
$PayOn = $date->format('m-Y');
$createdby = $this->session->userdata ( 'userId' );
$Totaldays = $sheet->getCell('I'.$i)->getValue();
$FileExists = $this->payroll_model->checkFileDetailsExists($PayOn);
if (count($FileExists)== 0)
{
$FileDetails = array('PayOn'=>$PayOn,'TotalNoofDays'=>$Totaldays,'FileName'=>$PayrollFileName,'CreatedBy'=>$createdby);
$result = $this->payroll_model->UploadFileName($FileDetails);
}
else
{
$FileDetailsupdate = array('TotalNoofDays'=>$Totaldays,'FileName'=>$PayrollFileName,'CreatedBy'=>$createdby);
$result = $this->payroll_model->UpdateFileName($FileDetailsupdate,$PayOn);
$this->payroll_model->deleteFileData($PayOn);
}
for($x=8; $x <= $highestRow; $x++)
{
$EmpId = $sheet->getCell('C'.$x)->getValue();
$BankAccountnumber = $sheet->getCell('E'.$x)->getValue();
$PFnumber = $sheet->getCell('F'.$x)->getValue();
$ESInumber = $sheet->getCell('G'.$x)->getValue();
$UAnumber = $sheet->getCell('H'.$x)->getValue();
$NoOfWorkingdays = $sheet->getCell('J'.$x)->getValue();
$LOP = $sheet->getCell('K'.$x)->getCalculatedValue();
$ActualSalary = $sheet->getCell('L'.$x)->getValue();
$PerDaySalary = $sheet->getCell('M'.$x)->getCalculatedValue();
$WorkedSalary =$sheet->getCell('N'.$x)->getCalculatedValue();
$BasicAndDA =$sheet->getCell('O'.$x)->getCalculatedValue();
$HRA =$sheet->getCell('P'.$x)->getCalculatedValue();
$OTWages = $sheet->getCell('Q'.$x)->getValue();
$OTPerHours =$sheet->getCell('R'.$x)->getValue();
$OTSalary =$sheet->getCell('S'.$x)->getCalculatedValue();
$GrosssSalary =$sheet->getCell('T'.$x)->getCalculatedValue();
$ESI = $sheet->getCell('U'.$x)->getCalculatedValue();
$PF =$sheet->getCell('V'.$x)->getCalculatedValue();
$ESIAndPF = $sheet->getCell('W'.$x)->getCalculatedValue();
$SalaryAsPerPF =$sheet->getCell('X'.$x)->getCalculatedValue();
$FoodAllowance = $sheet->getCell('Y'.$x)->getCalculatedValue();
$Incentive =$sheet->getCell('Z'.$x)->getValue();
$TotalSalary = $sheet->getCell('AA'.$x)->getCalculatedValue();
$Advance =$sheet->getCell('AB'.$x)->getValue();
$BalanceAdvance = $sheet->getCell('AC'.$x)->getValue();
$LessAdvance = $sheet->getCell('AD'.$x)->getCalculatedValue();
$Signature = $sheet->getCell('AE'.$x)->getValue();
//echo $EmpId ;
if( $EmpId != '')
{
$FileData = array('PayOn'=>$PayOn,'EmpID'=>$EmpId,'NoofDaysWorked'=>$NoOfWorkingdays,'ActualSalary'=>$ActualSalary,'PerDaySalary'=>$PerDaySalary,'WorkedSalary'=>$WorkedSalary,'BasicPlusDA'=>$BasicAndDA,'HRA'=>$HRA,'OTWages'=>$OTWages,'OTperHours'=>$OTPerHours,'OTSalary'=>$OTSalary,'ESIGrossSalary'=>$GrosssSalary,'EmployeeESI'=>$ESI,'PF'=>$PF,'TotalDeduction'=>$ESIAndPF,'SalaryAsPerPF'=>$SalaryAsPerPF,'FoodAllowance'=>$FoodAllowance,'Incentive'=>$Incentive,'TotalSalary'=>$TotalSalary,'Advance'=>$Advance,'BalanceAdvance'=>$BalanceAdvance,'LessAdvance'=>$LessAdvance,'Remarks'=>$Signature,'BankAccountNumber'=>$BankAccountnumber,'PFNumber'=>$PFnumber,'ESINumber'=>$ESInumber,'UANNO'=>$UAnumber,'LOP'=>$LOP);
$result = $this->payroll_model->UploadFileData($FileData);
}
}
$data['Success'] = "<script>alert('File Uploaded Successfully!');</script>";
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
$this->loadViews("payslipupload", $this->global, $data , NULL);
}
else
{
$data['Fail'] = "<script>alert('Please select valid Excel file to Upload!');</script>";
//echo "<script>alert('Please select valid Excel file to Upload!');</script>";
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
$this->loadViews("payslipupload", $this->global, $data , NULL);
}
}
else
{
$data['Fail'] = "<script>alert('Please select Excel file to Upload!');</script>";
//echo "<script>alert('Please select Excel file to Upload!');</script>";
$PayrollFileName = '';
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
$this->loadViews("payslipupload", $this->global, NULL , NULL);
}
}
/**
* This function used to upload the Excel file Details2
*/
function uploadExcel2(){
$PayrollFileName = '';
//Check whether user upload picture
if(!empty($_FILES['userfile']['name']))
{
//echo 'inside if';
$pathinfo = pathinfo($_FILES['userfile']['name']);
$config['upload_path'] = 'uploads/files/';
$config['allowed_types'] = 'xls|xlsx|csv';
$config['file_name'] = $_FILES['userfile']['name'];
$config['overwrite'] = true;
//Load upload library and initialize configuration
$this->load->library('upload',$config);
$this->upload->initialize($config);
if (($pathinfo['extension'] == 'xlsx' || $pathinfo['extension'] == 'xls')
&& $_FILES['userfile']['size'] > 0 )
{
if($this->upload->do_upload('userfile'))
{
$uploadData = $this->upload->data();
$PayrollFileName = $uploadData['file_name'];
}
else
{
$error = array('error' => $this->upload->display_errors());
$PayrollFileName = '';
}
$inputFileName = $_FILES['userfile']['tmp_name'];
require_once APPPATH .'third_party/PHPExcel/IOFactory.php';
$objTpl = PHPExcel_IOFactory::load($inputFileName);
$sheet = $objTpl->getActiveSheet(0) ;//->toArray(null, NULL, True, True);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$x = 8;
$month=$this->input->post('mon');
$year=$this->input->post('yr');
$PayOn= $month . "-" . $year;
$createdby = $this->session->userdata ( 'userId' );
if($month=='01' || $month=='03' || $month=='05' || $month=='07' || $month=='08' || $month=='10' || $month=='12')
{
$Totaldays = 31;
}
else if($month=='04' || $month=='06' || $month=='09' || $month=='11'){
$Totaldays = 30;
}
else{
$Totaldays = 28;
}
// $Totaldays = 0;
//echo $highestRow;
$FileDetails = array('PayOn'=>$PayOn,'TotalNoofDays'=>$Totaldays,'FileName'=> $config['file_name'],'CreatedBy'=>$createdby);
$result = $this->payroll_model->UploadFileName($FileDetails);
$fail=0;
$success=0;
for($x=8;$x<=$highestRow;$x++){
$EmpId = $sheet->getCell('A'.$x)->getValue();
//echo $EmpId;
$FileDataExists = $this->payroll_model->checkFileDetailsExists2($PayOn,$EmpId);
//echo $FileExists;
//die();
//echo $FileDataExists;
//die();
if ($FileDataExists=='' || $FileDataExists==0)
{
//$FileDetails = array('PayOn'=>$PayOn,'TotalNoofDays'=>$Totaldays,'FileName'=>$PayrollFileName,'CreatedBy'=>$createdby);
// $result = $this->payroll_model->UploadFileName($FileDetails);
//for($x=8; $x <= $highestRow; $x++)
//{
$EmpId = $sheet->getCell('A'.$x)->getValue();
$LOPDays = $sheet->getCell('B'.$x)->getValue();
$OTHoursWorked =$sheet->getCell('C'.$x)->getValue();
$loanRecovered=$sheet->getCell('D'.$x)->getValue();
$loanBalance=$sheet->getCell('E'.$x)->getValue();
$Incentive =$sheet->getCell('F'.$x)->getValue();
$Other_Deductions =$sheet->getCell('G'.$x)->getValue();
if( $EmpId != '')
{
$FileData = array('Month_Year'=>$PayOn,'EmpID'=>$EmpId,'LOP_Days'=>$LOPDays,'OT_Hrs_Worked'=>$OTHoursWorked,'Loan_Recovered'=>$loanRecovered,'Loan_Balance'=>$loanBalance,'Incentives'=>$Incentive,'Other_Deductions'=>$Other_Deductions,'Created_By'=>$createdby,'Created_Time'=>date("Y-m-d h:i:sa"));
$result = $this->payroll_model->UploadFileData2($FileData);
$success++;
}
// $data['Success'] = "<script>alert('File Uploaded Successfully!');</script>";
// $this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
// $this->loadViews("payslipupload2", $this->global, $data , NULL);
}
else{
$fail++;
// $data['Fail'] = "<script>alert('Duplicate Data Found!');</script>";
// $this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
// $this->loadViews("payslipupload2", $this->global, $data , NULL);
}
} //End of For Loop
// echo $success;
//echo $fail;
//$data['success'] = "<script>alert($fail + 'Duplicate Data Found!');</script>";
echo "<script> alert($success +' Data Uploaded sucessfully and ' + $fail + ' Duplicate Data Found'); </script>";
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload';
$this->loadViews("payslipupload2", $this->global , NULL);
//redirect('monthlyListings');
} else
{
$data['Fail'] = "<script>alert('Please select valid Excel file to Upload!');</script>";
//echo "<script>alert('Please select valid Excel file to Upload!');</script>";
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload2';
//$this->loadViews("payslipupload2", $this->global, $data , NULL);
}
}
else
{
$data['Fail'] = "<script>alert('Please select Excel file to Upload!');</script>";
//echo "<script>alert('Please select Excel file to Upload!');</script>";
$PayrollFileName = '';
$this->global['pageTitle'] = 'Siddharth : Payroll Data Upload2';
$this->loadViews("payslipupload2", $this->global, NULL , NULL);
}
}
function updatepayroll()
{
$this->global['pageTitle'] = 'Update Payroll';
$this->loadViews("payslipeditable", $this->global, NULL , NULL);
}
function pageNotFound()
{
$this->global['pageTitle'] = 'CodeInsect : 404 - Page Not Found';
$this->loadViews("404", $this->global, NULL, NULL);
}
}
?>