MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/hrms_cafsinfotech_in/application/controllers/Employee_enrolment.php
<?php 
/**********************************************************
	   Filename: Employee Enrolment
	Description: Employee enrolment for adding new module and form to sent to user.
		 Author: Jaffer Sathik
	 Created on: 23 December ‎2019
	Reviewed by: 
	Reviewed on: 
	Approved by:
	Approved on:
	-------------------------------------------------------
	Modification Details
	Changed by:
	Change Info:
	-------------------------------------------------------
***********************************************************/
if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Secure_Controller.php");
class Employee_enrolment  extends Secure_Controller{
	
	public function __construct(){
		parent::__construct('employee_enrolment');
		
	}
	public function index(){
		if(!$this->Appconfig->isAppvalid()){
			redirect('config');
		}
				// DATATABLE HEADERS DEFINED _ARN FOR (8.3)
		$db_name           = $this->config->item("db_name");
		$prime_table_query = $this->db->query("SELECT CASE WHEN COLUMN_NAME = 'menu_id' THEN 'menu_name' WHEN COLUMN_NAME = 'show_module' THEN 'module_status'WHEN COLUMN_NAME = 'temp_mand' THEN 'mandatory_status' ELSE COLUMN_NAME END AS label_name FROM information_schema.COLUMNS  WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME = 'cw_modules' AND COLUMN_NAME IN ('module_name')");
		$prime_table_col         = $prime_table_query->result();
		$data['table_head']      = $prime_table_col;
		$this->load->view('employee_enrolment/manage',$data);
	}
	
	/* ==============================================================*/
	/* ================== COMMON OPEARTION - START ==================*/
	/* ==============================================================*/
	
	//MODULE SEARCH OPEARTION
	public function search(){
		$draw         	= $this->input->post('draw');
		$start        	= $this->input->post('start');
		$per_page     	= $this->input->post('length');
		$search       	= $this->input->post('search');
		$search       	= trim($search['value']);
		$common_search  = '';
		$searchterm     = $this->db->escape_like_str($search); 
		if($search){
			$common_search .= " AND cw_modules.module_name LIKE '%" . $searchterm . "%'";
		}
		//FETCH RECORDS DATA
		$search_total       = $this->db->query("SELECT count(*) as allcount from cw_modules where trans_status = 1 and cw_modules.custom_module = 1");
		$search_total_info  = $search_total->result();
		$total_count        = $search_total_info[0]->allcount;
		$search_count       = $this->db->query("SELECT count(*) as allcount from cw_modules where trans_status = 1 and cw_modules.custom_module = 1 $common_search");
		$search_info        = $search_count->result();
		$filtered_count     = $search_info[0]->allcount;

		$search_query = "SELECT module_id,module_name,cw_main_menu.menu_name,module_type,CASE WHEN show_module = 1 THEN 'Active' WHEN show_module = 0 THEN 'In Active' END AS module_status,CASE WHEN temp_mand = 1 THEN 'Added' WHEN temp_mand = 0 THEN 'Removed' 
        END AS mandatory_status FROM cw_modules INNER JOIN cw_main_menu ON cw_main_menu.prime_menu_id = cw_modules.menu_id WHERE cw_modules.trans_status = 1 and cw_modules.custom_module = 1 $common_search";
		if((int)$per_page !== -1){
			$search_query  .= " LIMIT  $start,$per_page";
		}
		$search_data   = $this->db->query($search_query);
		$search_result = $search_data->result();
		$search_data->next_result();

		echo json_encode(array("draw" => intval($draw),"recordsTotal" => $total_count,"recordsFiltered" => $filtered_count,"data" => $search_result));
	}
	
	//MODULE VIEW OPEARTION	
	public function view($prime_module_id =-1){
		if($prime_module_id){
			$data['prime_module_id'] = $prime_module_id;
		}
		$find_form_name_qry = 'select * from cw_form_view_setting where prime_view_module_id="'.$prime_module_id.'" and form_view_show = 1 order by form_view_sort asc';
		$find_form_name_data   = $this->db->query("CALL sp_a_run ('SELECT','$find_form_name_qry')");
		$find_form_name_result = $find_form_name_data->result();
		$find_form_name_data->next_result();
		$form_name_list[""] = "---- Form Name For ----";
		foreach($find_form_name_result as $form_rslt){
			$prime_form_view_id = $form_rslt->prime_form_view_id;
			$label_name         = $form_rslt->form_view_label_name;
			$form_view_heading  = $form_rslt->form_view_heading;
			$form_name_list[$prime_form_view_id] = $form_view_heading;
		}
		$data['form_name_list'] = $form_name_list;
		$this->load->view("employee_enrolment/enroll_setting",$data);
	}
	
	public function form_name_field_list(){
		$module_id       = $this->input->post('module_id');
		$form_name       = $this->input->post('form_name');
		$field_name_qry = 'select * from cw_form_setting inner join cw_form_view_setting on cw_form_view_setting.prime_form_view_id=input_for where prime_module_id="'.$module_id.'" and input_for = "'.$form_name.'" and field_show =1 order by field_sort asc';
		$field_name_data   = $this->db->query("CALL sp_a_run ('SELECT','$field_name_qry')");
		$field_name_result = $field_name_data->result();
		$field_name_data->next_result();
		$input_li = "";
		foreach($field_name_result as $field_name){
			$label_name         =   $field_name->label_name;
			$input_view_type    =   $field_name->input_view_type;
			$check_name_qry ='select field_show from cw_custom_design where prime_module_id="'.$module_id.'" and input_for = "'.$form_name.'" and label_name = "'.$label_name.'" and trans_status = 1';
			$check_name_data   = $this->db->query("CALL sp_a_run ('SELECT','$check_name_qry')");
			$check_name_result = $check_name_data->result();
			$check_name_data->next_result();
			$field_show  = $check_name_result[0]->field_show;
			if($field_show){
				$checked = "checked";
			}else{
				$checked = "";
			}
			$view_name     = $field_name->view_name;
			$input_li .=  "<li class='ui-state-default'>
								<table style='width:100%;'>
									<tr>
										<td style='font-weight:bold'>
											<label>$view_name</label>
										</td>
										<td style='text-align:right;'>
											<input name='$label_name' id='$label_name' type='checkbox'  class='check_all' value='1' $checked/>
										</td>
									</tr>
								</table>
							</li>";
		}
		$ul_li = "<ul class='sortable'>$input_li</ul>";
		$view_content = "<div style='font-size: inherit; box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); background-color: #FFFFFF; border: 0px; border-radius: 2px;padding:8px;margin-bottom:10px;'>
				<h4>Filed Name List</h4>
				<input name='input_view_type' id='input_view_type' type='hidden' value='$input_view_type'/>
				<p><input id='form_label_$form_name' type='checkbox'> All</p>
				$ul_li
			</div>";
		echo json_encode(array('view_content' => $view_content));
	}
	
	public function save_form(){
		$save_data         = json_decode($this->input->post('save_data'));
		$created_on        = date("Y-m-d H:i:s");
		$logged_id         = $this->session->userdata('logged_id');
		$module_name       = $save_data[0]->name;
		$module_val        = $save_data[0]->value;
		$form_name         = $save_data[1]->name;
		$form_val          = $save_data[1]->value;
		$input_view_name   = $save_data[2]->name;
		$input_view_val    = $save_data[2]->value;
		$count_data        = count($save_data);
		$exit_name_qry ='select count(prime_custom_design_id) as design_count from cw_custom_design where prime_module_id="'.$module_val.'" and input_for = "'.$form_val.'" and trans_status = 1 limit 1';
		$exit_name_data   = $this->db->query("CALL sp_a_run ('SELECT','$exit_name_qry')");
		$exit_name_result = $exit_name_data->result();
		$exit_name_data->next_result();
		$design_count = $exit_name_result[0]->design_count;
		$prime_qry_key   = '';
		$prime_qry_value = '';
		if((int)$design_count === 0){
			for($i = 3; $i < $count_data; $i++){
				$column_name    = $save_data[$i]->name;
				$column_value   = $save_data[$i]->value;	 
				$prime_qry_key     = "prime_module_id,input_for,input_view,label_name,field_show,trans_created_by,trans_created_date";
				$prime_qry_value      = '"'.$module_val.'","'.$form_val.'","'.$input_view_val.'","'.$column_name.'","'.$column_value.'","'.$logged_id.'",'.'"'.$created_on.'"';
				$custom_design_qry    = "insert into cw_custom_design ($prime_qry_key) values ($prime_qry_value)";
				$custom_design_info   = $this->db->query("CALL sp_a_run ('INSERT','$custom_design_qry')");
				$custom_design_result = $custom_design_info->result();
				$custom_design_info->next_result();
			}
			$message = "Sucessfully field name is selected!!!";
		}else{//update label name
			$set_query  = 'trans_updated_by = "'. $logged_id .'",trans_updated_date = "'.$created_on.'"';
			$update_query  = 'UPDATE cw_custom_design SET  trans_status = 0, '. $set_query .'  WHERE prime_module_id = "'. $module_val .'" and input_for = "'.$form_val.'"';
			if($this->db->query("CALL sp_a_run ('UPDATE','$update_query')")){
				for($i = 3; $i < $count_data; $i++){
					$column_name    = $save_data[$i]->name;
					$column_value   = $save_data[$i]->value;
					$prime_qry_key     = "prime_module_id,input_for,input_view,label_name,field_show,trans_created_by,trans_created_date";
					$prime_qry_value   = '"'.$module_val.'","'.$form_val.'","'.$input_view_val.'","'.$column_name.'","'.$column_value.'","'.$logged_id.'",'.'"'.$created_on.'"';
					$custom_design_qry  = "insert into cw_custom_design ($prime_qry_key) values ($prime_qry_value)";
					$custom_design_info = $this->db->query("CALL sp_a_run ('INSERT','$custom_design_qry')");
					$custom_design_result      = $custom_design_info->result();
					$custom_design_info->next_result();
				}
			}
			$delete_query = 'delete from cw_custom_design WHERE trans_status = 0';
			$this->db->query("CALL sp_a_run ('RUN','$delete_query')");
			$message = "Updated successfully filed name in the form!!!";
		}
		echo json_encode(array('success' => TRUE, 'message' => $message));
	}
}
?>