File: //home/cafsindia/groups_cafsindia_com/application/controllers/Promotion.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Promotion extends Action_controller{
public function __construct(){
parent::__construct('promotion');
$this->collect_base_info();
}
// LOAD PAGE QUICK LINK,FILTERS AND TABLE HEADERS
public function index(){
$data['quick_link'] = $this->quick_link;
$data['table_head'] = $this->table_head;
$data['master_pick'] = $this->master_pick;
$data['fliter_list'] = $this->fliter_list;
$data['freeze_list'] = $this->freeze_list;
//SELECT QUERY FOR ONLY HAVE TO EDIT ALLOW TO LAST DATA OF THAT EMPLOYEES IN PROMOTION TABLE
// $promotion_qry = 'SELECT m1.prime_promotion_id as promotion_id FROM cw_promotion m1 LEFT JOIN cw_promotion m2 ON (m1.login_code = m2.login_code AND m1.prime_promotion_id < m2.prime_promotion_id) WHERE m2.prime_promotion_id IS NULL';
$promotion_qry = 'select t.prime_promotion_id as promotion_id from cw_promotion t
inner join (select login_code, MAX(str_to_date(promotion_month, "%Y-%m-%d")) as MaxDate
from cw_promotion where cw_promotion.trans_status = 1 group by login_code) tm on t.login_code = tm.login_code and str_to_date(t.promotion_month, "%Y-%m-%d") = tm.MaxDate where t.trans_status = 1';
// echo "$promotion_qry";die;
$promotion_info = $this->db->query("CALL sp_a_run ('SELECT','$promotion_qry')");
$promotion_result = $promotion_info->result_array();
$promotion_info->next_result();
// echo "<pre>";
// print_r($increment_result);die;
$promotion_result_arr = array_reduce($promotion_result, function($result, $arr){
$result[$arr['promotion_id']] = $arr['promotion_id'];
return $result;
}, array());
$data['promotion_arr'] = $promotion_result_arr;
$this->load->view("$this->control_name/manage",$data);
}
//LOAD TABEL WITH FILTERS
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');
$column = $order[0]['column'];
$order_sor = $order[0]['dir'];
$order_col = $order_col[$column]['data'];
$search = trim($search['value']);
$search_query = str_replace("@SELECT@",$this->select_query,$this->base_query);
//ADDED BASIC,FILTER,COMMON QUERY HERE
$role_condition = "";
if($this->role_condition){
$role_condition = $this->role_condition;
}
$fliter_query = "";
foreach($this->fliter_list as $fliter){
$label_id = $fliter['label_id'];
$label_name = $fliter['label_name'];
$field_isdefault = (int)$fliter['field_isdefault'];
$array_list = $fliter['array_list'];
$field_type = (int)$fliter['field_type'];
if($field_isdefault === 1){
$column_name = $this->prime_table .".$label_id";
$search_val = $this->input->post("$label_id");
if($search_val){
if($field_type === 4){
$search_val = date('Y-m-d',strtotime($search_val));
$fliter_query .= " and $column_name = '$search_val'";
}else
if(($field_type === 5) || ($field_type === 7)){
$search_val = trim(implode('","',$search_val));
$fliter_query .= ' and '.$column_name.' in ("'.$search_val.'")';
}else
if($field_type === 13){
$search_val = date('Y-m-d H:i:s',strtotime($search_val));
$fliter_query .= " and $column_name = '$search_val'";
}else{
$fliter_query .= " and $column_name LIKE '$search_val%'";
}
}
}
}
$common_search = "";
if($search){
foreach($this->form_info as $setting){
$prime_form_id = $setting->prime_form_id;
$field_type = (int)$setting->field_type;
$pick_list = $setting->pick_list;
$pick_table = $setting->pick_table;
$pick_list_type = $setting->pick_list_type;
$input_view_type = (int)$setting->input_view_type;
$auto_prime_id = $setting->auto_prime_id;
$auto_dispaly_value = $setting->auto_dispaly_value;
$label_id = strtolower(str_replace(" ","_",$setting->label_name));
$field_isdefault = (int)$setting->field_isdefault;
if($field_isdefault === 1){
if(($input_view_type === 1) || ($input_view_type === 2)){
$search_label = "$this->prime_table.$label_id";
$search_val = "";
if($field_type === 4){ // having issues in date search
if(strtotime($search)){
$search_val = date('Y-m-d',strtotime($search));
$common_search .= ' or '. $search_label .' like "'.$search_val.'%"';
}
}else
if(($field_type === 5) || ($field_type === 7) || ($field_type === 9)){
$result = array_filter($this->master_pick[$label_id], function ($item) use ($search) {
if (stripos($item, $search) !== false) {
return true;
}
return false;
});
if($result){
$pick_key = implode('", "', array_keys($result));
$common_search .= ' or '. $search_label .' in("'.$pick_key.'")';
}
}else{
$common_search .= ' or '. $search_label .' like "'.$search.'%"';
}
}
}
}
if($common_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);
}
}
$count_all_query = str_replace("@SELECT@","count(*) as allcount",$this->base_query);
$search_total = $this->db->query($count_all_query);
$search_total_info = $search_total->result();
$total_count = $search_total_info[0]->allcount;
$count_query = str_replace("@SELECT@","count(*) as allcount",$this->base_query);
$count_query .= " where $this->prime_table.trans_status = 1 $role_condition $fliter_query $common_search";
$search_count = $this->db->query($count_query);
$search_info = $search_count->result();
$filtered_count = $search_info[0]->allcount;
$search_query .= " where $this->prime_table.trans_status = 1 $role_condition $fliter_query $common_search";
$search_query .= " ORDER BY $order_col $order_sor";
if((int)$per_page !== -1){
$search_query .= " LIMIT $start,$per_page";
}
$search_data = $this->db->query($search_query);
$search_result = $search_data->result();
//echo "search_query :: \n$search_query\n";
echo json_encode(array("draw" => intval($draw),"recordsTotal" => $total_count,"recordsFiltered" => $filtered_count,"data" => $search_result));
}
//LOAD MODEL PAGE VIEW WITH DATA
public function view($form_view_id=-1){
//VIEW, FORM INPUT
$data['view_info'] = $this->view_info;
$data['form_info'] = $this->form_info;
$data['formula_result'] = $this->formula_result;//for label color change
$data['role_based_condition'] = $this->role_based_condition;//for label name readonly options
//VIEW DATA
$base_query = str_replace("@SELECT@",$this->view_select,$this->base_query);
$view_query = $base_query ." where $this->prime_table.$this->prime_id = $form_view_id and $this->prime_table.trans_status = 1";
$view_data = $this->db->query("CALL sp_a_run ('SELECT','$view_query')");
$view_result = $view_data->result();
$view_data->next_result();
$data['form_view'] = $view_result[0];
//AUTO COMPLTE,PICK LIST AND CONDITION
foreach($this->form_info as $from){
$prime_form_id = (int)$from->prime_form_id;
$field_type = (int)$from->field_type;
$pick_table = $from->pick_table;
$auto_prime_id = $from->auto_prime_id;
$auto_dispaly_value = $from->auto_dispaly_value;
$label_id = $from->label_name;
if($field_type === 9){
if($view_result[0]){
$get_value = $view_result[0]->$label_id;
if($get_value){
$pick_query = 'select '.$auto_dispaly_value.' from '.$pick_table.' where '.$auto_prime_id.' = "'.$get_value.'" and trans_status = 1';
$pick_data = $this->db->query("CALL sp_a_run ('SELECT','$pick_query')");
$pick_result = $pick_data->result();
$pick_data->next_result();
$this->all_pick[$prime_form_id] = $pick_result[0]->$auto_dispaly_value;
}
}
}
}
$data['all_pick'] = $this->all_pick;
$data['condition_list'] = $this->condition_list;
$view_qry = 'select * from cw_form_view_setting where prime_view_module_id = "'.$this->control_name.'" and form_view_type = "3" and trans_status = 1';
$view_data = $this->db->query("CALL sp_a_run ('SELECT','$view_qry')");
$view_result = $view_data->result();
$view_data->next_result();
$row_view_list = array();
foreach($view_result as $view){
$prime_form_view_id = $view->prime_form_view_id;
$row_set_data = $this->get_row_set_data($prime_form_view_id,$form_view_id);
$row_view_list[$prime_form_view_id] = $row_set_data;
}
$data['row_view_list'] = $row_view_list;
//SELECT QUERY FOR ONLY HAVE TO EDIT ALLOW TO LAST DATA OF THAT EMPLOYEES IN PROMOTION TABLE
$this->load->view("$this->control_name/form",$data);
}
//SAVE MODEL DATA TO DATA BASE
public function save(){
$previous_pick_value= $this->input->post("previous_pick_value");
$previous_data = json_decode($previous_pick_value, true);
$unq_chk = array();
$prime_qry_key = "";
$prime_qry_value = "";
$prime_upd_query = "";
$cf_qry_key = "";
$cf_qry_value = "";
$cf_upd_query = "";
$cf_has = false;
$form_id = (int)$this->input->post($this->prime_id);
$form_post_data = array();
$promotion_log = array();
$promotion_log['prime_promotion_id'] = $form_id;
//GET Grade
$login_code = $this->input->post('login_code');
$date_of_joining = $this->input->post('date_of_joining');
$promotion_month = date('Y-m-d',strtotime("01-".$this->input->post('promotion_month')));
$promoted_designation = $this->input->post('promoted_designation');
$emp_details_query = 'SELECT prime_employees_id,employee_code,emp_name,yearly_ctc from cw_employees WHERE login_code = "'. $login_code .'" and trans_status = 1';
$emp_details_info = $this->db->query("CALL sp_a_run ('SELECT','$emp_details_query')");
$emp_details_rlst = $emp_details_info->result();
$emp_details_info->next_result();
$prime_employees_id = $emp_details_rlst[0]->prime_employees_id;
$employee_code = $emp_details_rlst[0]->employee_code;
$emp_name = $emp_details_rlst[0]->emp_name;
$yearly_ctc = $emp_details_rlst[0]->yearly_ctc;
// $get_grade = $this->get_grade($promoted_designation,$yearly_ctc);
// if(!$get_grade){
// echo json_encode(array('success'=>false, 'message'=>'Please Check Your Grade Mapping...'));
// exit(0);
// }
//FOR GET A UPDATED GRADE WISE BAND FROM GRADE TABLE
// $get_band = $this->grade_wise_band($get_grade);
// if(!$get_band){
// echo json_encode(array('success'=>false, 'message'=>'Band not Mapped for this Grade...'));
// exit(0);
// }
//FOR TENURE ADDED TO INCREMENT TABLE
$add_tenure = $this->add_tenure_table($login_code,$date_of_joining,$promotion_month,$form_id);
foreach($this->form_info as $setting){
$field_type = $setting->field_type;
$input_view_type = (int)$setting->input_view_type;
$label_id = strtolower(str_replace(" ","_",$setting->label_name));
$field_isdefault = $setting->field_isdefault;
$unique_field = (int)$setting->unique_field;
$view_name = $setting->view_name;
$date_type = $setting->date_type;
$date_type = $setting->date_type;
if((int)$field_type === 5){
$value = trim($this->input->post($label_id));
$pick_array[$label_id] = $value;
}else
if((int)$field_type === 7){
$multi_name = $label_id."[]";
$value = trim(implode(",",$this->input->post($multi_name)));
}else{
$value = trim($this->input->post($label_id));
}
if((int)$field_type === 4){
if((int)$date_type === 1){
$value = date('Y-m-d',strtotime($value));
}else{
$value = $value;
}
}else
if((int)$field_type === 13){
$value = date('Y-m-d H:i:s',strtotime($value));
}else
if((int)$field_type === 8){//textbox only
$value = str_replace('"',"~",$value);
$value = str_replace("'","`",$value);
$value = str_replace("&","^",$value);
}else
if((int)$field_type === 10){//File Upload
$value = $value;
$remove_upload_fname = "old_".$label_id;
$remove_upload_file = $this->input->post($remove_upload_fname);
if($value !== $remove_upload_file){
unlink($remove_upload_file);
}
}
if(($input_view_type === 1) || ($input_view_type === 2)){
if((int)$field_isdefault === 1){
if($label_id === "promotion_month"){
$value = date('Y-m-d',strtotime("01-".$value));
}
if($label_id === "promoted_grade"){
// $value = $get_grade;
$get_grade = $value;
}else
if($label_id === "band"){
// $value = $get_grade;
$band = $value;
}
else
if($label_id === "tenure"){
$value = $add_tenure;
}
$prime_qry_key .= $label_id.",";
$prime_qry_value .= '"'.$value.'",';
$prime_upd_query .= $label_id.' = "'.$value.'",';
if($unique_field === 1){
$prime_unq_chk = $label_id.'= "'.$value.'"';
$query = "select count(*) as rslt_count from $this->prime_table where $this->prime_id != $form_id and $prime_unq_chk";
$unq_chk[] = array('label_id'=>$label_id,'view_name'=>$view_name,'query'=>$query,);
}
}
$promotion_log[$label_id] = $value;
}
}
$rslt_count = 0;
$can_process = array();
foreach($unq_chk as $unq_rslt){
$query = $unq_rslt['query'];
$label_id = $unq_rslt['label_id'];
$view_name = $unq_rslt['view_name'];
$unq_info = $this->db->query("CALL sp_a_run ('RUN','$query')");
$unq_result = $unq_info->result();
$unq_info->next_result();
if($unq_result){
$rslt_count = (int)$unq_result[0]->rslt_count;
if($rslt_count !== 0){
$can_process[] = $view_name." already exist";
}
}
}
if(count($can_process) > 0){
$can_process = array_values($can_process);
$can_process = implode(",<br/>", $can_process);
echo json_encode(array('success' => false, 'message' => $can_process,));
}else{
$created_on = date("Y-m-d h:i:s");
if((int)$form_id === 0){
$prime_qry_key .= "trans_created_by,trans_created_date";
$prime_qry_value .= '"'.$this->logged_id.'",'.'"'.$created_on.'"';
$prime_insert_query = "insert into $this->prime_table ($prime_qry_key) values ($prime_qry_value)";
$insert_info = $this->db->query("CALL sp_a_run ('INSERT','$prime_insert_query')");
$insert_result = $insert_info->result();
$insert_info->next_result();
$insert_id = $insert_result[0]->ins_id;
if($insert_id){
//FOR EMPLOYEE DESIGNATION UPDATE QRY
$prime_emp_query .= 'designation = "'. $promoted_designation .'",grade = "'. $get_grade .'",band = "'. $band .'",trans_updated_by = "'. $this->logged_id .'",trans_updated_date = "'.$created_on.'"';
$prime_emp_upd_qry = 'UPDATE cw_employees SET '. $prime_emp_query .' WHERE cw_employees.login_code = "'. $login_code .'"';
$this->db->query("CALL sp_a_run ('UPDATE','$prime_emp_upd_qry')");
}
$send_mail_status = "";
if((int)$this->email_count > 0){
$send_mail_status = $this->dynamic_mail_sent($insert_id,$pick_array,$previous_data);
}
echo json_encode(array('success' => TRUE, 'message' => "Successfully added $send_mail_status", 'insert_id' => $insert_id));
}else{
$this->promotion_log($form_id,$prime_employees_id,$employee_code,$emp_name,$promotion_log);
$prime_upd_query .= 'trans_updated_by = "'. $this->logged_id .'",trans_updated_date = "'.$created_on.'"';
$prime_update_query = 'UPDATE '. $this->prime_table .' SET '. $prime_upd_query .' WHERE '. $this->prime_id .' = "'. $form_id .'"';
$this->db->query("CALL sp_a_run ('UPDATE','$prime_update_query')");
//FOR EMPLOYEE DESIGNATION UPDATE QRY
$prime_emp_query .= 'designation = "'. $promoted_designation .'",grade = "'. $get_grade .'",band = "'. $band .'",trans_updated_by = "'. $this->logged_id .'",trans_updated_date = "'.$created_on.'"';
$prime_emp_upd_qry = 'UPDATE cw_employees SET '. $prime_emp_query .' WHERE cw_employees.login_code = "'. $login_code .'"';
$this->db->query("CALL sp_a_run ('UPDATE','$prime_emp_upd_qry')");
$send_mail_status = "";
if((int)$this->email_count > 0){
$send_mail_status = $this->dynamic_mail_sent($form_id,$pick_array,$previous_data);
}
echo json_encode(array('success' => TRUE, 'message' => "Successfully updated $send_mail_status",'insert_id' => $form_id));
}
}
}
//UPDATE STATUS TO DELETE IN MODULE PRIMARY TABLE
public function delete(){
$delete_ids = implode(",",$this->input->post('delete_ids'));
$can_process = TRUE;
$delete_status = FALSE;
if($this->check_delete_status()){
$delete_status = TRUE;
$check_table_query = 'SELECT GROUP_CONCAT(prime_module_id) as prime_module_id,GROUP_CONCAT(label_name) as label_name from cw_form_setting WHERE pick_table = "'. $this->prime_table .'" and trans_status = 1 ';
$check_table_info = $this->db->query("CALL sp_a_run ('SELECT','$check_table_query')");
$check_table_rlst = $check_table_info->row();
$check_table_info->next_result();
if($check_table_rlst->prime_module_id){
$prime_module_id = explode(",",$check_table_rlst->prime_module_id);
$label_name = explode(",",$check_table_rlst->label_name);
$i = 0;
$select_table = '';
$select_label = '';
$select_trans_status = '';
$select_where = '';
foreach($prime_module_id as $check_modules){
$table_name = "cw_".$check_modules;
$table_rename = $table_name."_$i";
$select_table .= "$table_rename.$label_name[$i],";
$select_label .= " $table_name $table_rename,";
if((int)$i === 0){
$select_trans_status .= "( $table_rename.trans_status = 1";
$select_where .= " and ($table_rename.$label_name[$i] in ($delete_ids)";
}else{
$select_trans_status .= " and $table_rename.trans_status = 1";
$select_where .= " or $table_rename.$label_name[$i] in ($delete_ids)";
}
$i++;
}
$select_trans_status .= ")";
$select_where .= ")";
$select_table = rtrim($select_table,',');
$select_label = rtrim($select_label,',');
$check_module_query .= 'SELECT '.$select_table.' from '.$select_label.' WHERE '.$select_trans_status.' '.$select_where.' LIMIT 0,1';
$check_module_info = $this->db->query("CALL sp_a_run ('SELECT','$check_module_query')");
$values_count = $check_module_info->num_rows();
$check_module_info->next_result();
if((int)$values_count > 0){
$can_process = False;
$delete_status = False;
}
}
if($delete_status){
$delete_query = 'DELETE FROM '. $this->prime_table .' WHERE '. $this->prime_id .' in ('. $delete_ids .')';
if($this->db->query("CALL sp_a_run ('RUN','$delete_query')")){
$row_set_query = 'SELECT form_view_label_name from cw_form_view_setting where form_view_type = "3" and prime_view_module_id = "'. $this->control_name .'" and trans_status = 1';
$row_set_info = $this->db->query("CALL sp_a_run ('SELECT','$row_set_query')");
$row_count = (int)$row_set_info->num_rows();
$row_set_info->next_result();
if($row_count !== 0){
$row_set_result = $row_set_info->result();
$delete_table_name = '';
$delete_table_condition = '';
foreach($row_set_result as $row_set){
$row_set_table_name = "cw_".$this->control_name."_".$row_set->form_view_label_name;
$delete_table_name .= "$row_set_table_name,";
$delete_table_condition .= " $row_set_table_name.$this->prime_id in ('$delete_ids') and";
}
$delete_table_name = rtrim($delete_table_name,',');
$delete_table_condition = rtrim($delete_table_condition,'and');
$delete_row_set_query = 'DELETE FROM '. $delete_table_name .' WHERE '. $delete_table_condition.'';
$this->db->query("CALL sp_a_run ('RUN','$delete_row_set_query')");
}
$can_process = False;
}
}
}
if($can_process){
$created_on = date("Y-m-d h:i:s");
$prime_upd_query .= 'trans_deleted_by = "'. $this->logged_id .'",trans_deleted_date = "'.$created_on.'"';
$prime_update_query = 'UPDATE '. $this->prime_table .' SET trans_status = 0,'. $prime_upd_query .' WHERE '. $this->prime_id .' in ('. $delete_ids .')';
if($this->db->query("CALL sp_a_run ('UPDATE','$prime_update_query')")){
echo json_encode(array('success' => TRUE, 'message' => "Successfully Deleted"));
}else{
echo json_encode(array('success' => FALSE, 'message' => "Unable to delete"));
}
}else
if($delete_status){
echo json_encode(array('success' => TRUE, 'message' => "Successfully Deleted"));
}else{
$modules = ucwords($check_table_rlst->prime_module_id);
echo json_encode(array('success' => FALSE, 'message' => "Unable to delete, This value is already used in $modules modules"));
}
}
//CHECK UNIQUE FIELD STATUS
public function check_delete_status(){
$check_delete_query = 'SELECT GROUP_CONCAT(unique_field) as unique_field from cw_form_setting WHERE prime_module_id = "'. $this->control_name .'" and trans_status = 1 ';
$check_delete_info = $this->db->query("CALL sp_a_run ('SELECT','$check_delete_query')");
$check_delete_rlst = $check_delete_info->row();
$check_delete_info->next_result();
$unique_info = explode(",",$check_delete_rlst->unique_field);
if(in_array('1', $unique_info)){
return TRUE;
}else{
return FALSE;
}
}
//UPDATE STATUS TO DELETE FOR UPLOAD FILES or DOCUMENTS
public function remove_file(){
$prime_id_val = $this->input->post('prime_id_val');
$is_defult = (int)$this->input->post('is_defult');
$input_name = $this->input->post('input_name');
$input_val = $this->input->post('input_val');
if($input_val){
chmod($input_val, 0777);
unlink($input_val);
}
$table_name = '';
if($is_defult === 1){
$table_name = $this->prime_table;
}else
if($is_defult === 2){
$table_name = $this->cf_table;
}
if($table_name){
$created_on = date("Y-m-d h:i:s");
$set_query = $input_name .' = "" ,trans_updated_by = "'. $this->logged_id .'",trans_updated_date = "'.$created_on.'"';
$update_query = 'UPDATE '.$table_name .' SET '. $set_query .' WHERE '. $this->prime_id .' = "'. $prime_id_val .'"';
$this->db->query("CALL sp_a_run ('UPDATE','$update_query')");
echo json_encode(array('success' => TRUE, 'message' => "Successfully updated"));
}else{
echo json_encode(array('success' => FALSE, 'message' => "Unable to process your request"));
}
}
//IMPORT FILE VIEW INFORMATION
public function import(){
$data['module_id'] = $this->control_name;
$excel_format_qry = 'select prime_excel_format_id,excel_name from cw_util_excel_format where excel_module_id = "'.$this->control_name.'" and trans_status = 1';
$excel_format = $this->db->query("CALL sp_a_run ('SELECT','$excel_format_qry')");
$excel_result = $excel_format->result();
$excel_format->next_result();
$excel_format_drop[""] = "---- Excel Format ----";
foreach($excel_result as $excel){
$prime_excel_format_id = $excel->prime_excel_format_id;
$excel_name = $excel->excel_name;
$excel_format_drop[$prime_excel_format_id] = $excel_name;
}
$data['excel_format_drop'] = $excel_format_drop;
$this->load->view("$this->control_name/import",$data);
}
//PROMOTION TABLE LOG FOR EVERY UPDATE OF THE PROMOTION
public function promotion_log($promotion_id,$prime_employees_id,$employee_code,$emp_name,$promotion_log){
$created_on = date("Y-m-d H:i:s");
$logged_id = $this->logged_id;
$pro_label_name = array_keys($promotion_log);
$pro_label_value = implode(",",$pro_label_name);
$pro_data_qry = "select $pro_label_value from cw_promotion where prime_promotion_id = $promotion_id";
$pro_data = $this->db->query("CALL sp_a_run ('SELECT','$pro_data_qry')");
$pro_result = $pro_data->result_array();
$pro_data->next_result();
$fin_pro_result = $pro_result[0];
// $login_code = $fin_pro_result['login_code'];
// $emp_name = $fin_pro_result['emp_name'];
$pro_data_dif = array_diff_assoc($fin_pro_result,$promotion_log);
$prime_qry_value = "";
$prime_qry_key = "prime_employees_id,employee_code,emp_name,label_name,old_value,new_value,trans_created_by,trans_created_date";
foreach($pro_data_dif as $pro_key=>$pro_value){
$old_label_val = $fin_pro_result[$pro_key];
$new_label_val = $promotion_log[$pro_key];
if(($old_label_val != $new_label_val) && ($old_label_val !=='0.00' && $new_label_val !='') && ($old_label_val !=='0000-00-00' && $new_label_val !='')){
$prime_qry_value .= "(\"$prime_employees_id\",\"$employee_code\",\"$emp_name\",\"$pro_key\",\"$old_label_val\",\"$new_label_val\",\"$logged_id\",\"$created_on\"),";
}
}
if(!empty($prime_qry_value)){
$prime_qry_value = rtrim($prime_qry_value,',');
$prime_insert_query = "insert into cw_employees_log ($prime_qry_key) values $prime_qry_value";
$insert_info = $this->db->query("CALL sp_a_run ('INSERT','$prime_insert_query')");
$insert_result = $insert_info->result();
$insert_info->next_result();
}
}
public function add_tenure_table($login_code,$date_of_joining,$promotion_month,$prime_id){
$emp_promotion_qry = 'select count(*) as count, promotion_month from cw_promotion INNER JOIN(SELECT max(promotion_month) MaxPostDate,login_code FROM cw_promotion where cw_promotion.prime_promotion_id != "'.$prime_id.'" GROUP BY login_code) p2 ON cw_promotion.login_code = p2.login_code AND cw_promotion.promotion_month = p2.MaxPostDate where cw_promotion.login_code = "'.$login_code.'" and cw_promotion.trans_status = 1 order by cw_promotion.promotion_month DESC limit 0,1';
$emp_promotion_info = $this->db->query("CALL sp_a_run ('SELECT','$emp_promotion_qry')");
$emp_promotion_result = $emp_promotion_info->result_array();
$emp_promotion_info->next_result();
$count = $emp_promotion_result[0]['count'];
// $diff = "";
$tenure_months = "";
if((int)$count === 0){
// $diff = abs(strtotime($promotion_month) - strtotime($date_of_joining));
$tenure_months = $this->date_diff($date_of_joining,$promotion_month);
}else{
$prev_promotion_month = $emp_promotion_result[0]['promotion_month'];
// echo "::prev_promotion_month::$prev_promotion_month";die;
// $diff = date_diff($prev_promotion_month,$promotion_month);
$tenure_months = $this->date_diff($prev_promotion_month,$promotion_month);
// echo "dhi::$diff";
}
// $years = floor($diff / (365*60*60*24));
// $tenure_months = round(floor(($diff - $years * 365*60*60*24) / (30*60*60*24))/12,1);
return $tenure_months;
}
public function date_diff($date1,$date2){
$d1 = new DateTime($date1);
$d2 = new DateTime($date2);
$interval = $d1->diff($d2);
/*$diffInSeconds = $interval->s; //45
$diffInMinutes = $interval->i; //23
$diffInHours = $interval->h; //8
$diffInDays = $interval->d; //21*/
$diffInMonths = $interval->m; //4
$diffInYears = $interval->y; //1
return $diffInYears.".".$diffInMonths;
}
//FOR BAND WISE DESIGNATION GET THEN TO CREATE A DESIGNATION DROPDOWN
public function band_wise_designation(){
$band = $this->input->post('band');
$grade_band_qry = 'select group_concat(prime_grade_id) as grade_id, group_concat(grade) as grade from cw_grade where band = "'.$band.'" and trans_status = 1';
$grade_band_info = $this->db->query("CALL sp_a_run ('SELECT','$grade_band_qry')");
$grade_band_result = $grade_band_info->result();
$grade_band_info->next_result();
$grade_id = $grade_band_result[0]->grade_id;
$grade = $grade_band_result[0]->grade;
if($grade_id){
//CRETAE A DROPDOWN FOR BAND WISE GRADE FETCH
$grade_id_arr = explode(",",$grade_id);
$grade_arr = explode(",",$grade);
$grade_drop = "<option value=''>---- Select Grade ----</option>";
foreach($grade_id_arr as $key => $rslt){
$prime_grade_id = $rslt;
$grade = $grade_arr[$key];
$grade_drop .= "<option value='$prime_grade_id'>$grade</option>";
}
$grade_designation_qry = 'select group_concat(cw_grade_mapping.designation) as designation_id from cw_grade_mapping where grade_type in ('.$grade_id.') and cw_grade_mapping.trans_status = 1';
$grade_designation_info = $this->db->query("CALL sp_a_run ('SELECT','$grade_designation_qry')");
$grade_designation_rslt = $grade_designation_info->result();
$grade_designation_info->next_result();
$designation_id = $grade_designation_rslt[0]->designation_id;
if($designation_id){
$get_designation_qry = 'select prime_designation_id,designation from cw_designation where prime_designation_id in ('.$designation_id.') and trans_status = 1';
$get_designation_info = $this->db->query("CALL sp_a_run ('SELECT','$get_designation_qry')");
$get_designation_rslt = $get_designation_info->result();
$get_designation_info->next_result();
// print_r($get_designation_rslt);die;
if(!empty($get_designation_rslt)){
$designation_drop = "<option value=''>---- Select Designation ----</option>";
foreach($get_designation_rslt as $rslt){
$prime_designation_id = $rslt->prime_designation_id;
$designation = $rslt->designation;
$designation_drop .= "<option value='$prime_designation_id'>$designation</option>";
}
echo json_encode(array('success' => TRUE, 'grade_drop' => $grade_drop, 'designation_drop' => $designation_drop));
}else{
echo json_encode(array('success' => FALSE, 'message' => "Designation not Mapped for this Band..!!"));
}
}else{
echo json_encode(array('success' => FALSE, 'message' => "Designation not Mapped for this Band...!!"));
}
}else{
echo json_encode(array('success' => FALSE, 'message' => "Designation not Mapped for this Band...!!"));
}
// $grade_designation_qry = 'select cw_grade_mapping.designation as designation_id,cw_designation.designation from cw_grade_mapping inner join cw_designation on cw_designation.prime_designation_id = cw_grade_mapping.designation where grade_type in ('.$grade_id.') and cw_grade_mapping.trans_status = 1';
// $grade_designation_info = $this->db->query("CALL sp_a_run ('SELECT','$grade_designation_qry')");
// $grade_designation_rslt = $grade_designation_info->result();
// $grade_designation_info->next_result();
}
}
?>