File: /home/cafsindia/uds.cafsinfotech.in/application/controllers_bk/Wage_scheduler.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Wage_scheduler extends Action_controller{
public function __construct(){
parent::__construct('Wage_scheduler');
}
// LOAD PAGE QUICK LINK,FILTERS AND TABLE HEADERS
public function index(){
$process_status[''] = '--Select Status--';
$data['process_status'] = $process_status + $this->sched_status_fun();
$data['encKey'] = $this->generateKey();
$this->load->view("$this->control_name/manage",$data);
}
public function sched_status_fun(){
$sched_stat_qry = 'select scheduler_id,scheduler_status from cw_scheduler_status where cw_scheduler_status.trans_status = 1';
$sched_stat_info = $this->db->query("CALL sp_a_run ('SELECT','$sched_stat_qry')");
$sched_stat_rslt = $sched_stat_info->result_array();
$sched_stat_info->next_result();
$sched_stat_arr = array_reduce($sched_stat_rslt ?? [], function($result, $arr){
$result[$arr['scheduler_id']] = $arr['scheduler_status'];
return $result;
}, array());
return $sched_stat_arr;
}
public function search(){
$draw = $this->input->post('draw');
$start = $this->input->post('start');
$per_page = $this->input->post('length');
$order = $this->input->post('order');
$order_col = $this->input->post('columns');
$search = $this->input->post('search');
$central_html_sts = $this->input->post('central_html_sts');
$central_pdf_sts = $this->input->post('central_pdf_sts');
$state_html_sts = $this->input->post('state_html_sts');
$state_pdf_sts = $this->input->post('state_pdf_sts');
$tn_html_sts = $this->input->post('tn_html_sts');
$tn_pdf_sts = $this->input->post('tn_pdf_sts');
$bonus_html_sts = $this->input->post('bonus_html_sts');
$bonus_pdf_sts = $this->input->post('bonus_pdf_sts');
$misc_html_sts = $this->input->post('misc_html_sts');
$misc_pdf_sts = $this->input->post('misc_pdf_sts');
$arr_central_html_sts = $this->input->post('arr_central_html_sts');
$arr_central_man_sts = $this->input->post('arr_central_man_sts');
$arr_state_html_sts = $this->input->post('arr_state_html_sts');
$arr_state_man_sts = $this->input->post('arr_state_man_sts');
$arr_tn_html_sts = $this->input->post('arr_tn_html_sts');
$arr_tn_pdf_sts = $this->input->post('arr_tn_pdf_sts');
$man_central_html_sts = $this->input->post('man_central_html_sts');
$man_central_pdf_sts = $this->input->post('man_central_pdf_sts');
$man_state_html_sts = $this->input->post('man_state_html_sts');
$man_state_pdf_sts = $this->input->post('man_state_pdf_sts');
$man_tn_html_sts = $this->input->post('man_tn_html_sts');
$man_tn_pdf_sts = $this->input->post('man_tn_pdf_sts');
$process_month = $this->input->post('process_month');
$column = $order[0]['column'];
$order_sor = $order[0]['dir'];
$order_col = $order_col[$column]['data'];
$search = trim($search['value']);
//FILTER
$statusFilters = [
'central_html_sts' => $central_html_sts,
'central_pdf_sts' => $central_pdf_sts,
'state_html_sts' => $state_html_sts,
'tn_html_sts' => $tn_html_sts,
'bonus_html_sts' => $bonus_html_sts,
'bonus_pdf_sts' => $bonus_pdf_sts,
'misc_html_sts' => $misc_html_sts,
'misc_pdf_sts' => $misc_pdf_sts,
'arr_central_html_sts' => $arr_central_html_sts,
'arr_state_html_sts' => $arr_state_html_sts,
'arr_tn_html_sts' => $arr_tn_html_sts,
'man_central_html_sts' => $man_central_html_sts,
'man_state_html_sts' => $man_state_html_sts,
'man_tn_html_sts' => $man_tn_html_sts,
];
$filter_query = "";
foreach($statusFilters as $col_name => $col_val){
if($col_val !== ''){
$filter_query .= 'AND cw_wage_process_list.'. $col_name . ' = "' . $col_val . '"';
}
}
$common_search = "";
if($search){
$common_search .= ' or cw_combine_process_list.project_id like "'.$search.'%" or cw_combine_process_list.personal_code like "'.$search.'%" or cw_combine_process_list.process_month like "'.$search.'%"';
$common_search = ltrim($common_search,' or ');
$common_search = " and ($common_search)";
$common_search = str_replace("(,","(",$common_search);
$common_search = str_replace("()","(0)",$common_search);
}
$search_query = 'SELECT * FROM cw_wage_process_list ';
$search_query .= ' where cw_wage_process_list.trans_status = 1 AND cw_wage_process_list.process_month = "'.$process_month.'" '.$filter_query.''.$common_search.'';
$search_query .= " ORDER BY $order_col $order_sor";
if((int)$per_page !== -1){
$search_query .= " LIMIT $start,$per_page";
}
$count_all_query = 'SELECT count(*) as allcount FROM cw_wage_process_list where trans_status = 1 AND process_month = "'.$process_month.'"';
$count_query = 'SELECT count(*) as allcount FROM cw_wage_process_list where trans_status = 1 AND process_month = "'.$process_month.'" '.$filter_query.' '.$common_search.'' ;
$search_pro_qry = [];
$search_pro_qry[] = array("return"=>"total_count","qry"=>$count_all_query);
$search_pro_qry[] = array("return"=>"filtered_count","qry"=>$count_query);
$search_pro_qry[] = array("return"=>"search_result","qry"=>$search_query);
$search_info_rslt = $this->run_multi_qry($search_pro_qry);
$total_count = $search_info_rslt->rslt->total_count[0]->allcount;
$filtered_count = $search_info_rslt->rslt->filtered_count[0]->allcount;
$search_result = json_decode(json_encode($search_info_rslt->rslt->search_result),true);
if($search_result === null || $search_result === ''){
$search_result = [];
}
//SCHEDULER
$scheduler_qry = 'SELECT scheduler_id,scheduler_status FROM cw_scheduler_status where trans_status = 1';
$scheduler_data = $this->db->query("CALL sp_a_run ('SELECT','$scheduler_qry')");
$scheduler_rslt = $scheduler_data->result_array();
$scheduler_data->next_result();
$scheduler_map = [];
foreach($scheduler_rslt as $scheduler){
$scheduler_map[$scheduler['scheduler_id']] = $scheduler['scheduler_status'];
}
foreach($search_result as &$search){
foreach($search as $key => $value){
if($key !== 'project_id' && $key !== 'total_wbs' && $key !== 'process_month' && $key !== 'personal_code') {
$search[$key] = (int)$value;
if (isset($scheduler_map[$value])){
$search[$key] = $scheduler_map[$value];
}
}
}
}
unset($search);
echo json_encode(array("draw" => intval($draw),"recordsTotal" => $total_count,"recordsFiltered" => $filtered_count,"data" => $search_result));
}
}
?>