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 ] |
---|
<?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']); } } }