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/wealth_cafsindia_com/application/controllers/Report_setting.php
<?php 
/**********************************************************
	   Filename: Form Setting / Screen Setting
	Description: Form Setting / Screen Setting for creating new view,input and manage conditions.
		 Author: udhayakumar Anandhan
	 Created on: ‎‎26 ‎November ‎2018
	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 Report_setting  extends Secure_Controller{

	public function __construct(){
		parent::__construct('report_setting');
	}
	
	public function index(){
		if(!$this->Appconfig->isAppvalid()){
			redirect('config');
		}
		$data['table_headers']=$this->xss_clean(get_report_setting_headers());
		$this->load->view('report_setting/manage',$data);
	}
	
	//REPORT SEARCH OPEARTION
	public function search(){
		$search       = $this->input->get('search');
		$limit        = $this->input->get('limit');
		$offset       = $this->input->get('offset');
		$sort         = $this->input->get('sort');
		$order        = $this->input->get('order');
		
		if(!$sort){
			$sort = "report_name";
		}
		if(!$order){
			$order = "asc";
		}
		
		$this->db->select('prime_report_setting_id,report_name');
		$this->db->from('report_setting');
		
		if($search){
			$this->db->group_start();
				$this->db->like('report_name',$search);
			$this->db->group_end();	
		}
		
		$this->db->where('report_setting.trans_status',1);
		$this->db->order_by($sort,$order);
		if($rows>0){
			$this->db->limit($rows, $limit_from);
		}
		$report_info = $this->db->get();
		$xx = $report_info->result();
		$data_rows = array();
		foreach ($report_info->result() as $report_setting){	
			$data_rows[]=get_report_setting_datarows($report_setting,$this);
		}
		$data_rows=$this->xss_clean($data_rows);
		
		$num_rows = $report_info->num_rows();
		echo json_encode(array('total'=>$num_rows,'rows'=>$data_rows));
	}
	
	//REPORT VIEW OPEARTION
	public function view($view_id =-1){
		/*================== COMMON SETTING ==================*/
		$data['view_id'] = $view_id;
		$data['filter_list']         = array(""=>"-- Select Type--",1=>"Required",2=>"Not Required");
		$role_info   = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_role` where trans_status = 1')");
		$role_result = $role_info->result();
		$role_info->next_result();
		$report_for_list[""] = "---- Report For ----";
		foreach($role_result as $for){
			$role_id   = $for->prime_role_id;
			$role_name = $for->role_name;
			$report_for_list[$role_id] = $role_name;
		}
		$data['report_for_list']  = $report_for_list;
		
		$table_info   = $this->db->query("CALL sp_a_run ('SELECT','SHOW TABLES')");
		$table_result = $table_info->result();
		$table_info->next_result();		
		$table_list[""] = "---- Select Table ----";
		foreach($table_result as $table){
			$table_name = $table->Tables_in_cafs_wealth;
			if((strpos($table_name, "cw_zct_") === false)&&(strpos($table_name, "_cf") === false)){
				if(!in_array($table_name, $tab_array)){
					$str = substr($str, 1);
					$table_value = substr((ucwords(str_replace("_"," ",$table_name))),3);
					$table_list[$table_name] = $table_value;
				}
			}
		}
		$data['table_list']  = $table_list;
		/*================== COMMON SETTING ==================*/
		
		/*================== REPORT SETTING ==================*/
		$report_data = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM cw_report_setting where trans_status = 1 and prime_report_setting_id = $view_id')");
		$report_result = $report_data->result();
		$report_data->next_result();
		$data['report_data']  = $report_result[0];	
			
		$table_info = $this->get_columns($report_result[0]->report_tables);
		$table_info                  = json_decode($table_info,true);
		$data['table_column']        = $table_info['table_column'];
		$data['date_column']         = $table_info['date_column'];			
		$data['custom_select_list']  = $this->custom_select_list($view_id);
		$data['table_view_list']     = $this->table_view_list($view_id);
		$data['total_subtotal_list'] = $this->get_total_subtotal_column($view_id);
		$data['join_list']           = $this->get_table_join($view_id);
		
		$where_query  = 'SELECT * FROM cw_report_where WHERE  where_for_id = "'.$view_id.'" and trans_status = 1';
		$where_info   = $this->db->query("CALL sp_a_run ('SELECT','$where_query')");
		$where_count  = (int)$where_info->num_rows();
		$where_result = $where_info->result();
		$where_info->next_result();
		$where_condition = trim($where_result[0]->where_condition);
		if(!$where_condition){
			$where_condition = "and";
		}
		$data['where_condition'] = $where_condition;
		/*================== REPORT SETTING ==================*/
		
		/*================== VIEW SETTING ==================*/
		$data['view_type_list']  = array(""=>"--- Select Type ---",1=>"Table With Header",2=>"Table No Header");
		$data['view_size_list']  = array(""=>"--- Select size ---",1=>"col-md-3",2=>"col-md-4",3=>"col-md-6",4=>"col-md-12");
		$data['view_block_list'] = $this->view_block_list($view_id);
		
		$view_block_qry    = 'select * from cw_report_view where trans_status = 1 and report_setting_id = "'.$view_id.'"';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_qry')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();
		$view_block_drop[""] = "---- Select Block ----";
		foreach($view_block_result as $block){
			$prime_view_id  = $block->prime_view_id;
			$view_name      = ucwords($block->view_name);
			$view_block_drop[$prime_view_id] = $view_name;
		}
		$data['view_block_drop']      = $view_block_drop;
		$data['view_select_list']     = $this->view_select_list($view_id);
		$data['view_where_list']      = $this->view_table_where_list($view_id);
		$data['view_block_sort_list'] = $this->get_view_block_sort_list($view_id);
		$view_table_sort_info         = $this->view_table_sort($view_id);
		$data['table_sort_content']   = $view_table_sort_info['table_sort_content'];
		$data['table_sort_script']    = $view_table_sort_info['table_sort_script'];
		/*================== VIEW SETTING ==================*/
		
		$this->load->view("report_setting/form",$data);
	}
	
	/* ==============================================================*/
	/* ================== REPORT SETTING - START   ==================*/
	/* ==============================================================*/
	
	/* ================== REPORT SETTING BASE INFO - END ==================*/
	// SAVE REPORT BASE INFO
	public function report_save(){
		$prime_report_setting_id = (int)$this->input->post('prime_report_setting_id');
		$report_name             = $this->input->post('report_name');
		$report_for              = ltrim(implode(",",$this->input->post('report_for[]')),",");
		$report_tables           = ltrim(implode(",",$this->input->post('report_tables[]')),",");
		$report_columns          = ltrim(implode(",",$this->input->post('report_columns[]')),",");
		$report_prime_column     = ltrim(implode(",",$this->input->post('report_prime_column[]')),",");
		$search_filter           = $this->input->post('search_filter');
		$date_filter             = $this->input->post('date_filter');
		$date_filter_column      = ltrim(implode(",",$this->input->post('date_filter_column[]')),",");
		$report_group_by         = ltrim(implode(",",$this->input->post('report_group_by[]')),",");		
		$subtotal_filter         = $this->input->post('subtotal_filter');
		$subtotal_column         = ltrim(implode(",",$this->input->post('subtotal_column[]')),",");
		$logged_id               = $this->session->userdata('logged_id');
		$date                    = date("Y-m-d h:i:s");
		
		if($prime_report_setting_id === 0){
			$is_exist_qry  = 'SELECT * FROM cw_report_setting where  report_name = "'.$report_name.'" and trans_status = 1 ';
			$is_exist_data = $this->db->query("CALL sp_a_run ('SELECT','$is_exist_qry')");
			$exist_count   = $is_exist_data->num_rows();
			$exist_rslt    = $is_exist_data->result();
			$is_exist_data->next_result();
			if((int)$exist_count === 0){
				$report_qry  = 'INSERT INTO cw_report_setting (report_name, report_for,report_tables,report_columns,report_prime_column,report_group_by,subtotal_filter,search_filter,date_filter,date_filter_column,subtotal_column,trans_created_by, trans_created_date) VALUES ("'.$report_name.'","'.$report_for.'","'.$report_tables.'","'.$report_columns.'","'.$report_prime_column.'","'.$report_group_by.'","'.$subtotal_filter.'","'.$search_filter.'","'.$date_filter.'","'.$date_filter_column.'","'.$subtotal_column.'","'.$logged_id.'","'.$date.'")';
				$insert_info    = $this->db->query("CALL sp_a_run ('INSERT','$report_qry')");
				$insert_result  = $insert_info->result();
				$insert_id      = $insert_result[0]->ins_id;
				$insert_info->next_result();
				$this->save_table_view($insert_id);
				echo json_encode(array('success' => true, 'message' => "Report successfully added"));
			}else{
				echo json_encode(array('success' => false, 'message' => "Report Name Already Exist"));
			}
		}else{
			$upd_qry  = 'UPDATE  cw_report_setting SET report_name = "'.$report_name.'",report_for = "'.$report_for.'",report_tables = "'.$report_tables.'",report_columns = "'.$report_columns.'",report_prime_column = "'.$report_prime_column.'",report_group_by = "'.$report_group_by.'",subtotal_filter = "'.$subtotal_filter.'",search_filter = "'.$search_filter.'",date_filter = "'.$date_filter.'",date_filter_column = "'.$date_filter_column.'",subtotal_column = "'.$subtotal_column.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_report_setting_id = "'.$prime_report_setting_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			$this->save_table_view($prime_report_setting_id);
			echo json_encode(array('success' => true, 'message' => "Report successfully updated"));
		}		
	}
	
	//ONCHANGE GET COLUMNS BASED ON SELECTED TBALE
	public function get_table_column(){
		$report_tables = ltrim(implode(",",$this->input->post('report_tables')),",");		
		$table_info   = $this->get_columns($report_tables);
		$table_info   = json_decode($table_info);
		$table_column = $table_info->table_column;
		$date_column  = $table_info->date_column;
		echo json_encode(array('success'=>true,'table_column'=>$table_column,'date_column'=>$date_column));
	}
	
	//GET COLUMNS BASED ON SELECTED TBALE
	public function get_columns($report_tables){
		if($report_tables !== ""){
			$prime_in   = '"'.str_replace(",",'","', $report_tables);
			$custom_in  = str_replace(",",'_cf","', $report_tables).'_cf"';
			$table_in   = $prime_in.'","'.$custom_in;
			$get_colums = 'SELECT TABLE_NAME as table_name,COLUMN_NAME as col_name,DATA_TYPE as data_type FROM INFORMATION_SCHEMA.COLUMNS  WHERE TABLE_SCHEMA="cafs_wealth" AND TABLE_NAME IN ('.$table_in.') AND COLUMN_NAME NOT LIKE "%trans%"';
			$column_info   = $this->db->query("CALL sp_a_run ('SELECT','$get_colums')");
			$column_result = $column_info->result();
			$column_info->next_result();
			$table_column[""] = "---- Select Column ----";
			$date_column[""] = "---- Select Column ----";
			foreach($column_result as $column){
				$table_name  = $column->table_name;
				$col_name    = $column->col_name;
				$data_type   = $column->data_type;
				$table_name_view  = substr((ucwords(str_replace("_"," ",$table_name))),3);
				$col_name_view    = ucwords(str_replace("_"," ",$col_name));
				if(strtoupper($data_type) === "DATE"){
					$date_column[$table_name.".".$col_name] = $table_name_view." - ".$col_name_view;
				}
				$table_column[$table_name.".".$col_name] = $table_name_view." - ".$col_name_view;
			}
			return json_encode(array('success'=>true,'table_column'=>$table_column,'date_column'=>$date_column));
		}else{
			$table_column[""] = "---- Select Column ----";
			$date_column[""] = "---- Select Column ----";
			return json_encode(array('success'=>true,'table_column'=>$table_column,'date_column'=>$date_column));
		}
	}
	
	//ONCHANGE GET TOTAL AND SUB TOTAL COLUMNS BASED ON SELECT INFO
	public function update_total_subtotal_column(){
		$prime_report_setting_id  = (int)$this->input->post('prime_report_setting_id');
		$report_columns           = ltrim(implode(",",$this->input->post('report_columns')),",");		
		$total_column             = $this->get_total_subtotal_column($prime_report_setting_id,$report_columns);
		echo json_encode(array('success' => true, 'total_column' =>$total_column));
	}
	
	// GET TOTAL AND SUB TOTAL COLUMNS BASED ON SELECT INFO
	public function get_total_subtotal_column($prime_report_setting_id,$columns_list=null){		
		$total_column[""] = "---- Select Column ----";
		if((int)$prime_report_setting_id === 0){
			$report_columns = explode(",",$columns_list);
			foreach($report_columns as $report){
				$total_column[$report] = $report;
			}
		}else{
			$select_query  = 'SELECT * FROM cw_report_setting where prime_report_setting_id = "'.$prime_report_setting_id.'" and trans_status = 1 ';
			$select_data = $this->db->query("CALL sp_a_run ('SELECT','$select_query')");
			$select_rslt    = $select_data->result();
			$select_data->next_result();
			if($select_rslt){
				$report_columns = explode(",",$select_rslt[0]->report_columns);
				foreach($report_columns as $columns){
					$total_column[$columns] = $columns;
				}
			}		
			$custom_select_query  = 'SELECT * FROM cw_report_custom_select where custom_select_report_id = "'.$prime_report_setting_id.'" and trans_status = 1 ';
			$custom_select_data = $this->db->query("CALL sp_a_run ('SELECT','$custom_select_query')");
			$custom_select_rslt    = $custom_select_data->result();
			$custom_select_data->next_result();
			foreach($custom_select_rslt as $select_rslt){
				$custom_column_name = $select_rslt->custom_column_name;
				$total_column[$custom_column_name] = $custom_column_name;
			}
			$report_columns = explode(",",$columns_list);
			foreach($report_columns as $report){
				if(!$total_column[$report]){
					$total_column[$report] = $report;
				}
			}
		}
		return $total_column;
	}
	/* ================== REPORT SETTING BASE INFO - END ==================*/
	
	/* ================== CUSTOM SELECT - START ==================*/
	// SAVE CUSTOM SELECT 
	public function save_custom_select(){
		$prime_custom_select_id  = (int)$this->input->post('prime_custom_select_id');		
		$custom_select_report_id = (int)$this->input->post('custom_select_report_id');		
		$custom_column_name      = str_replace(" ","_",strtolower($this->input->post('custom_column_name')));
		$select_column_query     = str_replace('"',"^",$this->input->post('select_column_query'));
		$logged_id               = $this->session->userdata('logged_id');
		$date                    = date("Y-m-d h:i:s");
		
		if($prime_custom_select_id === 0){
			$is_exist_qry  = 'SELECT * FROM cw_report_custom_select where custom_select_report_id = "'.$custom_select_report_id.'" and custom_column_name = "'.$custom_column_name.'" and trans_status = 1 ';
			$is_exist_data = $this->db->query("CALL sp_a_run ('SELECT','$is_exist_qry')");
			$exist_count   = $is_exist_data->num_rows();
			$exist_rslt    = $is_exist_data->result();
			$is_exist_data->next_result();
			if((int)$exist_count === 0){
				$report_qry  = 'INSERT INTO cw_report_custom_select (custom_select_report_id, custom_column_name,select_column_query,trans_created_by, trans_created_date) VALUES ("'.$custom_select_report_id.'","'.$custom_column_name.'","'.$select_column_query.'","'.$logged_id.'","'.$date.'")';
				$insert_info    = $this->db->query("CALL sp_a_run ('INSERT','$report_qry')");
				$insert_result  = $insert_info->result();
				$insert_id      = $insert_result[0]->ins_id;
				$insert_info->next_result();
				$custom_select_list = $this->custom_select_list($custom_select_report_id);
				$this->save_table_view($custom_select_report_id);
				$table_view_list = $this->table_view_list($custom_select_report_id);
				$subtotal_column = $this->get_total_subtotal_column($custom_select_report_id);
				echo json_encode(array('success' => true, 'message' => "Custom Column Name successfully added",'custom_select_list'=>$custom_select_list,'table_view_list'=>$table_view_list,'subtotal_column'=>$subtotal_column));
			}else{
				echo json_encode(array('success' => false, 'message' => "Custom Column Name Already Exist"));
			}
		}else{
			$upd_qry  = 'UPDATE  cw_report_custom_select SET custom_select_report_id = "'.$custom_select_report_id.'",custom_column_name = "'.$custom_column_name.'",select_column_query = "'.$select_column_query.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_custom_select_id = "'.$prime_custom_select_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			$custom_select_list = $this->custom_select_list($custom_select_report_id);
			$this->save_table_view($custom_select_report_id);
			$table_view_list = $this->table_view_list($custom_select_report_id);
			$subtotal_column = $this->get_total_subtotal_column($custom_select_report_id);
			echo json_encode(array('success' => true, 'message' => "Custom Column Name successfully updated",'custom_select_list'=>$custom_select_list,'table_view_list'=>$table_view_list,'subtotal_column'=>$subtotal_column));
		}
	}
	
	// GET CUSTOM SELECT LIST
	public function custom_select_list($custom_select_report_id){
		$select_qry    = 'select * from cw_report_custom_select where trans_status = 1 and custom_select_report_id = "'.$custom_select_report_id.'"';
		$select_info   = $this->db->query("CALL sp_a_run ('SELECT','$select_qry')");
		$select_result = $select_info->result();
		$select_info->next_result();
		foreach($select_result as $rslt){
			$prime_custom_select_id  = $rslt->prime_custom_select_id;
			$custom_select_report_id = $rslt->custom_select_report_id;
			$custom_column_name      = $rslt->custom_column_name;
			$select_column_query     = $rslt->select_column_query;
			$tr_line .= "<tr>
							<td>$custom_column_name</td>
							<td>$select_column_query</td>
							<td style='text-align:center;'><a class='btn btn-xs btn-edit' onclick=custom_select_edit('$prime_custom_select_id')> <i class='fa fa-pencil-square-o' aria-hidden='true'></i> Edit</a></td>
							<td style='text-align:center;'><a class='btn btn-xs btn-danger' onclick=custom_select_remove('$prime_custom_select_id','$custom_select_report_id')> <i class='fa fa-trash-o' aria-hidden='true'></i> Delete</a></td>
						</tr>";
		}
		$custom_select_list = "<table class='table table-bordered table-stripted' id='custom_select_table'>
								<thead>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th style='text-align: center;'>Custom Column Name</th>
										<th style='text-align: center;'>Select Query</th>
										<th style='text-align:center;'>Edit</th>
										<th style='text-align:center;'>Delete</th>
									</tr>
								</thead>
								<tbody>
									$tr_line
								</tbody>
								</table>";
		return $custom_select_list;
	}
	
	//CUSTOM SELECT EDIT INFO
	public function custom_select_edit(){
		$prime_custom_select_id  = $this->input->post('prime_custom_select_id');
		$edit_formula = 'SELECT * FROM cw_report_custom_select WHERE  prime_custom_select_id = "'.$prime_custom_select_id.'" and trans_status = 1';
		$edit_info   = $this->db->query("CALL sp_a_run ('SELECT','$edit_formula')");
		$edit_result = $edit_info->result();
		$edit_info->next_result();
		echo json_encode(array('success' => true,'edit_result'=>$edit_result[0]));
	}
	
	//CUSTOM SELECT LIST REMOVE
	public function custom_select_remove(){
		$prime_custom_select_id  = $this->input->post('prime_custom_select_id');
		$custom_select_report_id      = $this->input->post('custom_select_report_id');
		$logged_id      = $this->session->userdata('logged_id');
		$date           = date("Y-m-d h:i:s");
		$remove_qry  = 'UPDATE cw_report_custom_select SET trans_status = 0 ,trans_deleted_by = "'.$logged_id.'",trans_deleted_date = "'.$date.'" where prime_custom_select_id = "'.$prime_custom_select_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$remove_qry')");
		$custom_select_list = $this->custom_select_list($custom_select_report_id);
		$this->save_table_view($custom_select_report_id);
		$table_view_list = $this->table_view_list($custom_select_report_id);
		$subtotal_column = $this->get_total_subtotal_column($custom_select_report_id);
		echo json_encode(array('success' => true,'message'=>'Table Query Remove Successfully !!!','custom_select_list'=>$custom_select_list,'table_view_list'=>$table_view_list,'subtotal_column'=>$subtotal_column));
	}
	/* ================== CUSTOM SELECT - END ==================*/
	
	/* ================== TABLE VIEW - START ==================*/
	//SAVE TABLE VIEW
	public function save_table_view($report_id){
		$select_query  = 'SELECT * FROM cw_report_setting where prime_report_setting_id = "'.$report_id.'" and trans_status = 1 ';
		$select_data = $this->db->query("CALL sp_a_run ('SELECT','$select_query')");
		$select_rslt    = $select_data->result();
		$select_data->next_result();
		$table_view_list = array();
		if($select_rslt){
			$report_columns = explode(",",$select_rslt[0]->report_columns);
			foreach($report_columns as $columns){
				$table_view_list[] = array('columns'=>$columns,'mode'=>1);
			}
		}		
		$custom_select_query  = 'SELECT * FROM cw_report_custom_select where custom_select_report_id = "'.$report_id.'" and trans_status = 1 ';
		$custom_select_data = $this->db->query("CALL sp_a_run ('SELECT','$custom_select_query')");
		$custom_select_rslt    = $custom_select_data->result();
		$custom_select_data->next_result();
		foreach($custom_select_rslt as $select_rslt){
			$custom_column_name = $select_rslt->custom_column_name;
			$table_view_list[]  = array('columns'=>$custom_column_name,'mode'=>2);
		}
		
		$logged_id      = $this->session->userdata('logged_id');		
		$remove_all  = 'UPDATE cw_report_table_view SET trans_status = 0 where custom_select_report_id = "'.$report_id.'"';
		$this->db->query("CALL sp_a_run ('RUN','$remove_all')");
		
		$table_sort = 0;
		foreach($table_view_list as $view_list){
			$select_column = $view_list['columns'];
			$table_mode    = $view_list['mode'];
			$table_sort++;
			$exits_count_qry = 'select * from cw_report_table_view where custom_select_report_id = "'.$report_id.'" and select_column = "'.$select_column.'"';
			$exits_count_info   = $this->db->query("CALL sp_a_run ('SELECT','$exits_count_qry')");
			$exits_count_result = $exits_count_info->result();
			$rslt_count         = (int)$exits_count_info->num_rows();
			$exits_count_info->next_result();			
			$prime_table_view_id = (int)$exits_count_result[0]->prime_table_view_id;
			$date           = date("Y-m-d h:i:s");
			if($rslt_count === 0){				
				$table_view_qry  = 'INSERT INTO cw_report_table_view (custom_select_report_id,select_column, table_sort,table_mode,trans_created_by, trans_created_date) VALUES ("'.$report_id.'","'.$select_column.'","'.$table_sort.'","'.$table_mode.'","'.$logged_id.'","'.$date.'")';
				$this->db->query("CALL sp_a_run ('RUN','$table_view_qry')");
			}else
			if($rslt_count === 1){
				$table_view_upd_qry  = 'UPDATE cw_report_table_view SET trans_status = 1,trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_table_view_id = "'.$prime_table_view_id.'"';
				$this->db->query("CALL sp_a_run ('RUN','$table_view_upd_qry')");
			}
		}
		$report_delete_qry = 'delete FROM cw_report_table_view WHERE trans_status = 0';
		$this->db->query("CALL sp_a_run ('RUN','$report_delete_qry')");
	}
	
	// SAVE TBALE VIEW LIST
	public function table_view_list($report_id){
		$get_colums_info = 'select * from cw_report_table_view WHERE  custom_select_report_id = "'.$report_id.'" and trans_status = 1 order by abs(table_sort)';
		$colums_info   = $this->db->query("CALL sp_a_run ('SELECT','$get_colums_info')");
		$colums_result = $colums_info->result();
		$colums_info->next_result();
		$input_th    = "<p style='color:#1883E9;text-align:center;'><i class='fa fa-hand-rock-o fa-2x' aria-hidden='true'></i> Drag and drop for align field postion</p>";
		$input_td    = "";
		foreach($colums_result as $report){
			$table_sort           = $report->table_sort;
			$prime_table_view_id  = $report->prime_table_view_id;
			$select_column        = $report->select_column;
			$table_mode           = (int)$report->table_mode;
			$th_id                = "th_".$prime_table_view_id;
			if($table_mode === 1){
				$select_column = explode('.',$select_column);
				$colum_name   = $select_column[1];
			}else{
				$colum_name   = $select_column;
			}
			$colum_name = ucwords(str_replace("_"," ",$colum_name));
			$input_th .=  "<th class='ui-state-default' id='$th_id' style='background-color: #1883E9; color:#FFFFFF;cursor:pointer;border-right: 1px solid #CCCCCC;'>$colum_name</th>";
			$input_td  .= "<td style='border-right:1px solid #CCCCCC;'>-</td>";
		}
		$table_content = "<table class='table table-hover table-striped'>
								<tr id='report_sortable' class='sortable'> $input_th </tr>
								<tr> $input_td </tr>
						   </table>";
		return $table_content;
	}
	
	//SAVE TABLE SORT
	public function table_sort_update(){
		$table_idsInOrder   = $this->input->post('table_idsInOrder');
		$logged_id          = $this->session->userdata('logged_id');
		$date               = date("Y-m-d H:i:s");
		$sort_order = 0;
		foreach($table_idsInOrder as $order){
			if($order){
				$sort_order++;
				$table_id = str_replace("th_","",$order);
				$upd_qry  = 'UPDATE cw_report_table_view SET table_sort = "'.$sort_order.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_table_view_id = "'.$table_id.'"';
				$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			}
		}
		echo json_encode(array('success' => TRUE, 'message' => "Column Name is successfully sorted."));
	}
	/* ================== TABLE VIEW - END ==================*/
	
	/* ================== TABLE JOIN - SATRT ==================*/
	//GET TABLE JOIN INFO
	public function get_table_join($prime_report_setting_id){
		$report_qry  = 'SELECT * FROM cw_report_setting where prime_report_setting_id = "'.$prime_report_setting_id.'" and trans_status = 1';
		$report_data = $this->db->query("CALL sp_a_run ('SELECT','$report_qry')");
		$report_rslt = $report_data->result();			
		$report_data->next_result();
		foreach($report_rslt as $rslt){
			$prime_report_setting_id  = $rslt->prime_report_setting_id;
			$report_tables               = explode(",",$rslt->report_tables);
			
			$table_list = array();
			$table_list[""] = "---- Select Table ----";
			foreach($report_tables as $table_value){
				$table_name = substr((ucwords(str_replace("_"," ",$table_value))),3);
				$table_list[$table_value] = $table_name;
			}
			
			$prime_in   = '"'.str_replace(",",'","', $rslt->report_tables);
			$custom_in  = str_replace(",",'_cf","', $rslt->report_tables).'_cf"';
			$table_in   = $prime_in.'","'.$custom_in;
			$get_colums = 'SELECT `TABLE_NAME`,`COLUMN_NAME`  FROM `INFORMATION_SCHEMA`.`COLUMNS`  WHERE `TABLE_SCHEMA`="cafs_wealth" AND `TABLE_NAME` IN ('.$table_in.') AND COLUMN_NAME NOT LIKE "%trans%"';
			$column_info   = $this->db->query("CALL sp_a_run ('SELECT','$get_colums')");
			$column_result = $column_info->result();
			$column_info->next_result();
			$column_list = array();
			$column_list[""] = "---- Select Column ----";
			foreach($column_result as $column){
				$table_value  = $column->TABLE_NAME;
				$column_value = $column->COLUMN_NAME;				
				$table_name = substr((ucwords(str_replace("_"," ",$table_value))),3);
				$column_name  = ucwords(str_replace("_"," ",$column_value));
				$column_list[$table_value.".".$column_value] = $table_name . " - ". $column_name;
			}
			$join_array = array(""=>"--- Select join type ---","inner" => "inner","left" => "left","right" => "right");				
			$join_query  = 'SELECT * FROM cw_report_table  WHERE trans_status = 1 and join_for = "'.$prime_report_setting_id.'" order by abs(line_sort)';
			$join_info   = $this->db->query("CALL sp_a_run ('SELECT','$join_query')");
			$join_result = $join_info->result();
			$join_info->next_result();
			
			$table_tr_line  = "";
			$table_count    = 0;
			$condition_table_count = count($report_tables) - 1; //round(count($condition_table)/2);
			for($i=1;$i<= $condition_table_count;$i++){
				$prime_print_table_id = 0;
				$line_prime_table     = "";
				$line_prime_col       = "";
				$line_join_type       = "";
				$line_join_table      = "";
				$line_join_col        = "";
				
				if($join_result){
					$prime_report_table_id = $join_result[$table_count]->prime_report_table_id;
					$line_prime_table      = $join_result[$table_count]->line_prime_table;
					$line_prime_col        = $join_result[$table_count]->line_prime_col;
					$line_join_type        = $join_result[$table_count]->line_join_type;
					$line_join_table       = $join_result[$table_count]->line_join_table;
					$line_join_col         = $join_result[$table_count]->line_join_col;
				}
				
				$table_cond_for_id = form_input(array( 'name' =>"prime_report_table_id[]",'class' => 'form-control input-sm','value' =>$prime_report_table_id,'type'=>'Hidden'));
				$prime_table_data  = form_dropdown(array('name' =>"line_prime_table[]",'class' => 'form-control input-sm'), $table_list,$line_prime_table);
				$prime_col_data    = form_dropdown(array('name' =>"line_prime_col[]",'class' => 'form-control input-sm'),$column_list,$line_prime_col);
				$join_data         = form_dropdown(array('name' =>"line_join_type[]",'class' => 'form-control input-sm'),$join_array,$line_join_type);
				$join_table_data   = form_dropdown(array('name' =>"line_join_table[]",'class' => 'form-control input-sm'), $table_list,$line_join_table);
				$join_col_data     = form_dropdown(array('name' =>"line_join_col[]",'class' => 'form-control input-sm'),$column_list,$line_join_col);
				$table_tr_line .= "<tr>
										<td>$table_cond_for_id $prime_table_data</td>
										<td>$prime_col_data</td>
										<td>$join_data</td>
										<td>$join_table_data</td>
										<td>$join_col_data</td>
									</tr>";
				$table_count++;
			}
			$join_for  = form_input(array('name'=>'join_for','id'=>'join_for','class'=>'form-control input-sm','value'=>$prime_report_setting_id,'type'=>'Hidden'));
			$table_content = "$join_for
								<table class='table table-bordered table-stripted'>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th>Primary table</th>
										<th>Primary column</th>
										<th>Join type</th>
										<th>Join table</th>
										<th>Join primary column</th>
									</tr>
									$table_tr_line
								</table>
								<div style='text-align:right;padding:8px 0px;'>
									<button class='btn btn-primary btn-sm' id='save_join_table_btn'>Save</button>
								</div>";
		}
		return $table_content;
	}
	// SAVE TABLE JOIN
	public function save_join_table(){
		$join_for               = $this->input->post('join_for');
		$prime_report_table_id  = $this->input->post('prime_report_table_id');
		$prime_print_table_id   = $this->input->post('prime_print_table_id[]');
		$line_prime_table       = $this->input->post('line_prime_table[]');
		$line_prime_col         = $this->input->post('line_prime_col[]');
		$line_join_type         = $this->input->post('line_join_type[]');
		$line_join_table        = $this->input->post('line_join_table[]');
		$line_join_col          = $this->input->post('line_join_col[]');
		
		$logged_id     = $this->session->userdata('logged_id');		
		$today_date = date("Y-m-d h:i:s");
		$tab_count  = 0;
		
		$remove_query = 'UPDATE cw_report_table SET trans_status = 0,trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" WHERE join_for = "'.$join_for.'"';
		$this->db->query("CALL sp_a_run ('RUN','$remove_query')");
		
		$table_count = count($line_prime_table);
		for($i=1;$i<= $table_count;$i++){
			$prime_report_table_id_val = $prime_report_table_id[$tab_count];
			$line_prime_table_val     = $line_prime_table[$tab_count];
			$line_prime_col_val       = $line_prime_col[$tab_count];
			$line_join_type_val       = $line_join_type[$tab_count];
			$line_join_table_val      = $line_join_table[$tab_count];
			$line_join_col_val        = $line_join_col[$tab_count];
			
			if((int)$prime_report_table_id_val === 0){
				$table_query = 'insert into cw_report_table (join_for,line_prime_table,line_prime_col,line_join_type,line_join_table,line_join_col,line_sort,trans_created_by,trans_created_date) value ("'.$join_for.'","'.$line_prime_table_val.'","'.$line_prime_col_val.'","'.$line_join_type_val.'","'.$line_join_table_val.'","'.$line_join_col_val.'","'.$i.'","'.$logged_id.'","'.$today_date.'")';
			}else{
				$table_query = 'UPDATE cw_report_table SET trans_status = 1, line_prime_table = "'.$line_prime_table_val.'",line_prime_col = "'.$line_prime_col_val.'",line_join_type = "'.$line_join_type_val.'",line_join_table = "'.$line_join_table_val.'",line_join_col = "'.$line_join_col_val.'",line_sort = "'.$i.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" WHERE prime_report_table_id = "'.$prime_report_table_id_val.'"';
			}
			$this->db->query("CALL sp_a_run ('RUN','$table_query')");
			$tab_count++;
		}
		$report_delete_qry = 'delete FROM cw_report_table WHERE trans_status = 0';
		$this->db->query("CALL sp_a_run ('RUN','$report_delete_qry')");
		echo json_encode(array('success' => true, 'message'=>"Table Join successfully Updated"));
	}
	/* ================== TABLE JOIN - END ==================*/
	
	/* ================== TABLE WHERE - START ==================*/
	// PROVIDE PICKLIST AND SESSION VALUES
	function get_column_info(){
		$query_column     = $this->input->post('query_column');
		$label_name       = explode(".",$query_column);
		$where_module_id  = str_replace("cw_","",$label_name[0]);
		
		$get_colums_info = 'SELECT * FROM cw_form_setting WHERE  prime_module_id = "'.$where_module_id.'" and label_name = "'.$label_name[1].'"';
		$colums_info   = $this->db->query("CALL sp_a_run ('SELECT','$get_colums_info')");
		$colums_result = $colums_info->result();
		$colums_info->next_result();
		
		$session_val_qry    = 'SELECT * FROM cw_session_value WHERE  trans_status = 1 order by abs(session_for)';
		$get_session_val    = $this->db->query("CALL sp_a_run ('SELECT','$session_val_qry')");
		$session_val_result = $get_session_val->result();
		$get_session_val->next_result();
		$session_list[""] = "--- Select Session Value ---";
		if($session_val_result){
			foreach($session_val_result as $col){
				$col_id    = (int)$col->session_for;	
				$session_for = "Employee";
				if($col_id === 2){
					$session_for = "Customer";
				}
				$col_value = $col->session_value;
				$key_value = $col_id."|".$col_value;				
				$session_list[$key_value] = "$session_for - $col_value";
			}
		}
		if($colums_result){
			$field_type     = (int)$colums_result[0]->field_type;
			$pick_list_type = (int)$colums_result[0]->pick_list_type;
			$pick_list 	    = $colums_result[0]->pick_list;
			$pick_table 	= $colums_result[0]->pick_table;
							
			if(($field_type === 5) || ($field_type === 7)){
				if($pick_list_type === 1){
					$pick_colum_qry    = 'SELECT '.$pick_list.' FROM '.$pick_table.' WHERE  trans_status = 1';
					$get_pick_colum    = $this->db->query("CALL sp_a_run ('SELECT','$pick_colum_qry')");
					$pick_colum_result = $get_pick_colum->result();
					$get_pick_colum->next_result();
					if($pick_colum_result){
						$colum = explode(",",$pick_list);
						foreach($pick_colum_result as $col){
							$col_id    = $col->$colum[0];
							$col_value = $col->$colum[1];
							$pick_list_info[$col_id] = "$col_id - $col_value";
						}
					}
				}else
				if($pick_list_type === 2){					
					$id     = $pick_table."_id";
					$value  = $pick_table."_value";
					$status = $pick_table."_status";
					$select_info = "$id,$value";
					$pick_colum_qry    = 'SELECT '.$select_info.' FROM '.$pick_table.' WHERE  '.$status.' = 1';
					$get_pick_colum    = $this->db->query("CALL sp_a_run ('SELECT','$pick_colum_qry')");
					$pick_colum_result = $get_pick_colum->result();
					$get_pick_colum->next_result();
					if($pick_colum_result){
						foreach($pick_colum_result as $col){
							$col_id    = $col->$id;
							$col_value = $col->$value;
							$pick_list_info[$col_id] = "$col_id - $col_value";
						}
					}
				}
				echo json_encode(array('success' => true,'type'=>'pick_list','msg'=>"Pick list value","pick_list"=>$pick_list_info,"session_list"=>$session_list));				
			}else{				
				echo json_encode(array('success' => true,'type'=>'session_list','msg'=>"Session list","session_list"=>$session_list));
			}
		}else{
			echo json_encode(array('success' => true,'type'=>'session_list','msg'=>"Session list","session_list"=>$session_list));
		}
	}
	// SAVE WHERE CONDITION
	function save_table_where(){
		$where_for_id   = (int)$this->input->post('where_for_id');
		$where_condition  = trim(strtolower($this->input->post('where_condition')));
		$logged_id        = $this->session->userdata('logged_id');
		$date             = date("Y-m-d h:i:s");
		$exist_query  = 'SELECT * FROM cw_report_where WHERE  where_for_id = "'.$where_for_id.'" and trans_status = 1';
		$exist_info   = $this->db->query("CALL sp_a_run ('SELECT','$exist_query')");
		$exist_count  = (int)$exist_info->num_rows();
		$exist_result = $exist_info->result();
		$exist_info->next_result();
		if($exist_count === 0){			
			$search_qry  = 'INSERT INTO cw_report_where (where_for_id,where_condition,trans_created_by, trans_created_date) VALUES ("'.$where_for_id.'","'.$where_condition.'","'.$logged_id.'","'.$date.'")';
			$this->db->query("CALL sp_a_run ('RUN','$search_qry')");
			echo json_encode(array('success' => true,'message'=>"Where added successfully !!!"));
		}else{
			$prime_report_where_id = (int)$exist_result[0]->prime_report_where_id;
			$upd_qry  = 'UPDATE  cw_report_where SET where_for_id = "'.$where_for_id.'",where_condition = "'.$where_condition.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_report_where_id = "'.$prime_report_where_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			echo json_encode(array('success' => true,'message'=>"Where updated successfully !!!"));
		}
	}
	/* ================== TABLE WHERE - END ==================*/

/* ==============================================================*/
/* ================== REPORT SETTING - END     ==================*/
/* ==============================================================*/

/* ==============================================================*/
/* ================== VIEW SETTING - START     ==================*/
/* ==============================================================*/
	function view_save(){
		$report_setting_id  = (int)$this->input->post('report_setting_id');
		$prime_view_id      = (int)$this->input->post('prime_view_id');
		$view_for           = ltrim(implode(",",$this->input->post('view_for[]')),",");
		$view_name          = trim($this->input->post('view_name'));
		$view_type          = $this->input->post('view_type');
		$view_size          = $this->input->post('view_size');
		$view_chart         = $this->input->post('view_chart');
		$view_chart_size    = $this->input->post('view_chart_size');	
		$view_tables        = ltrim(implode(",",$this->input->post('view_tables[]')),",");
		$view_columns       = ltrim(implode(",",$this->input->post('view_columns[]')),",");
		$view_total_columns = ltrim(implode(",",$this->input->post('view_total_columns[]')),",");
		$logged_id          = $this->session->userdata('logged_id');
		$date               = date("Y-m-d h:i:s");	
		if($prime_view_id === 0){
			$is_exist_qry  = 'SELECT * FROM cw_report_view where  view_name = "'.$view_name.'" and report_setting_id = "'.$report_setting_id.'" and trans_status = 1 ';
			$is_exist_data = $this->db->query("CALL sp_a_run ('SELECT','$is_exist_qry')");
			$exist_count   = $is_exist_data->num_rows();
			$exist_rslt    = $is_exist_data->result();
			$is_exist_data->next_result();
			if((int)$exist_count === 0){			
				$report_qry  = 'INSERT INTO cw_report_view (report_setting_id, view_for,view_name,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns,trans_created_by, trans_created_date) VALUES ("'.$report_setting_id.'","'.$view_for.'","'.$view_name.'","'.$view_type.'","'.$view_size.'","'.$view_chart.'","'.$view_chart_size.'","'.$view_tables.'","'.$view_columns.'","'.$view_total_columns.'","'.$logged_id.'","'.$date.'")';
				$insert_info    = $this->db->query("CALL sp_a_run ('INSERT','$report_qry')");
				$insert_result  = $insert_info->result();
				$insert_id      = $insert_result[0]->ins_id;
				$insert_info->next_result();
				$this->save_view_table_sort($insert_id);
				echo json_encode(array('success' => true, 'message' => "View successfully added"));			
			}else{
				echo json_encode(array('success' => false, 'message' => "View Name Already Exist"));
			}
		}else{
			$upd_qry  = 'UPDATE  cw_report_view SET report_setting_id = "'.$report_setting_id.'",view_for = "'.$view_for.'",view_name = "'.$view_name.'",view_type = "'.$view_type.'",view_size = "'.$view_size.'",view_chart = "'.$view_chart.'",view_chart_size = "'.$view_chart_size.'",view_tables = "'.$view_tables.'",view_columns = "'.$view_columns.'",view_total_columns = "'.$view_total_columns.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_view_id = "'.$prime_view_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			$this->save_view_table_sort($prime_view_id);
			echo json_encode(array('success' => true, 'message' => "View successfully updated"));
		}
	}
	
	public function get_view_block_sort_list($report_setting_id){
		$view_block_qry    = 'select * from cw_report_view where trans_status = 1 and report_setting_id = "'.$report_setting_id.'" order by abs(view_sort)';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_qry')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();
		$li_list = "";
		foreach($view_block_result as $rslt){
			$prime_view_id      = $rslt->prime_view_id;
			$report_setting_id  = $rslt->report_setting_id;
			$view_name          = ucwords($rslt->view_name);
			$li_id = "li_".$prime_view_id;
			$a_id  = "a_".$prime_view_id."_$count";
			$li_list .= "<li class='ui-state-default' id='$li_id'>
							<table style='width:100%;'>
								<tr>
									<td style='font-weight:bold'>
										<label>$view_name</label><br/>
										<span style='font-size:13px;font-weight:normal;color:#999999;'> $show_icon $form_view_type </span>
									</td>
								</tr>
							</table>
						</li>";
			
		}
		return $li_list;
	}
	// VIEW SORT ORDER UPDATE
	public function update_view_sortorder(){
		$view_idsInOrder      = $this->input->post('view_idsInOrder');
		$sort_order = 0;
		foreach($view_idsInOrder as $order){
			if($order){
				$sort_order++;
				$order = explode("_",$order);
				$prime_form_view_id = $order[1];
				$upd_qry  = 'UPDATE  cw_report_view SET view_sort = "'.$sort_order.'" where prime_view_id = "'.$prime_form_view_id.'"';				
				$info = $this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			}
		}
		echo json_encode(array('success' => TRUE, 'message' => "Sort position updated to database"));
	}
	
	//GET VIEW BLOCK LIST
	public function view_block_list($report_setting_id){
		$view_block_qry    = 'select * from cw_report_view where trans_status = 1 and report_setting_id = "'.$report_setting_id.'" order by abs(view_sort)';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_qry')");
		$view_block_result = $view_block_info->result();		
		$filter_list     = array(1=>"Required",2=>"Not Required");
		$view_type_list  = array(1=>"Table With Header",2=>"Table No Header");
		$view_size_list  = array(1=>"col-md-3",2=>"col-md-4",3=>"col-md-6",4=>"col-md-12");
		
		$view_block_info->next_result();
		foreach($view_block_result as $rslt){
			$prime_view_id      = $rslt->prime_view_id;
			$report_setting_id  = $rslt->report_setting_id;
			$view_name          = ucwords($rslt->view_name);
			$view_for           = $rslt->view_for;
			$view_type          = $rslt->view_type;			
			$view_size          = $rslt->view_size;
			$view_chart         = $rslt->view_chart;
			$view_chart_size    = $rslt->view_chart_size;
			$view_tables        = $rslt->view_tables;
			$view_columns       = $rslt->view_columns;
			$view_total_columns = $rslt->view_total_columns;
			$view_type          = $view_type_list[$view_type];
			$view_size          = $view_size_list[$view_size];
			$view_chart         = $filter_list[$view_chart];
			$view_chart_size    = $view_size_list[$view_chart_size];
			$view_tables        = str_replace(",","<br/>",$view_tables);
			$view_columns       = str_replace(",","<br/>",$view_columns);
			$view_total_columns = str_replace(",","<br/>",$view_total_columns);
			$tr_line .= "<tr>
							<td>$view_name</td>
							<td style='white-space: nowrap;'>$view_type</td>
							<td style='white-space: nowrap;'>$view_size</td>
							<td style='white-space: nowrap;'>$view_chart</td>
							<td style='white-space: nowrap;'>$view_chart_size</td>
							<td>$view_tables</td>
							<td>$view_columns</td>
							<td>$view_total_columns</td>
							<td style='text-align:center;vertical-align: middle'><a class='btn btn-xs btn-edit' onclick=view_edit('$prime_view_id')> <i class='fa fa-pencil-square-o' aria-hidden='true'></i> Edit</a></td>
							<td style='text-align:center;vertical-align: middle'><a class='btn btn-xs btn-danger' onclick=view_remove('$prime_view_id','$report_setting_id')> <i class='fa fa-trash-o' aria-hidden='true'></i> Delete</a></td>
						</tr>";
		}
		$view_block_list = "<table class='table table-bordered table-stripted' id='view_block_table'>
								<thead>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th style='text-align: center;'>View Name</th>
										<th style='text-align: center;'>View Type</th>
										<th style='text-align: center;'>View Size</th>
										<th style='text-align: center;'>View Chart</th>
										<th style='text-align: center;'>View Chart Size</th>
										<th style='text-align: center;'>View Tables</th>
										<th style='text-align: center;'>View columns</th>
										<th style='text-align: center;'>Total columns</th>
										<th style='text-align:center;'>Edit</th>
										<th style='text-align:center;'>Delete</th>
									</tr>
								</thead>
								<tbody>
									$tr_line
								</tbody>
								</table>";
		return $view_block_list;
	}
	//VIEW EDIT INFO
	public function view_edit(){
		$prime_view_id  = $this->input->post('prime_view_id');
		$view_edit = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$prime_view_id.'" and trans_status = 1';
		$edit_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_edit')");
		$edit_result = $edit_info->result();
		$edit_info->next_result();
		
		$table_info   = $this->get_columns($edit_result[0]->view_tables);
		$table_info   = json_decode($table_info,true);
		$view_columns = $table_info['table_column'];
		echo json_encode(array('success' => true,'view_columns'=>$view_columns,'edit_result'=>$edit_result[0]));
	}
	//VIEW LIST REMOVE
	public function view_remove(){
		$prime_view_id      = $this->input->post('prime_view_id');
		$report_setting_id  = $this->input->post('report_setting_id');
		$logged_id      = $this->session->userdata('logged_id');
		$date           = date("Y-m-d h:i:s");
		$remove_qry  = 'UPDATE cw_report_view SET trans_status = 0 ,trans_deleted_by = "'.$logged_id.'",trans_deleted_date = "'.$date.'" where prime_view_id = "'.$prime_view_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$remove_qry')");
		$view_block_list = $this->view_block_list($report_setting_id);
		echo json_encode(array('success' => true,'message'=>'View Remove Successfully !!!','view_block_list'=>$view_block_list,'table_view_list'=>$table_view_list));
	}
	
	//VIEW CUSTOM SELECT COLUMNS
	public function update_map_block_column(){
		$view_map_block_id  = $this->input->post('view_map_block_id');
		$view_edit = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$view_map_block_id.'" and trans_status = 1';
		$edit_info    = $this->db->query("CALL sp_a_run ('SELECT','$view_edit')");
		$edit_result  = $edit_info->result();
		$edit_info->next_result();
		if($edit_result){
			$report_setting_id  = $edit_result[0]->report_setting_id;
			$view_tables        = $edit_result[0]->view_tables;
			$table_info         = $this->get_columns($view_tables);
			$table_info         = json_decode($table_info,true);
			$table_column       = $table_info['table_column'];	
				
			$select_query  = 'SELECT * FROM cw_report_setting where prime_report_setting_id = "'.$report_setting_id.'" and trans_status = 1 ';
			$select_data   = $this->db->query("CALL sp_a_run ('SELECT','$select_query')");
			$select_rslt   = $select_data->result();
			$select_data->next_result();
			if($select_rslt){
				$report_prime_column = explode(",",$select_rslt[0]->report_prime_column);
				$form_dropdown = form_dropdown(array("name" =>"","id" =>"","class" =>'form-control input-sm'),$table_column);
				$tr_line = "";
				foreach($report_prime_column as $prime_column){
					$column_name = explode(".",$prime_column);
					$column_name = ucwords($column_name[1]);
					$map_column    = $prime_column."_map";
					
					$map_query  = 'SELECT * FROM cw_report_view_map where report_view_id = "'.$view_map_block_id.'" and prime_column = "'.$prime_column.'" and trans_status = 1 ';
					$map_data   = $this->db->query("CALL sp_a_run ('SELECT','$map_query')");
					$map_rslt   = $map_data->result();
					$map_data->next_result();
					$map_column_val = "";
					if($map_rslt){
						$map_column_val = $map_rslt[0]->map_column;
					}					
					$form_input    = form_input(array("name"=>"prime_column[]", "id"=>"prime_column","value"=>"$prime_column","class"=>"form-control input-sm","readonly" => true));
					$form_dropdown = form_dropdown(array("name" =>"map_column[]","id" =>"map_column","class"=>'form-control input-sm'),$table_column,$map_column_val);
					$tr_line .= "<tr><td>$column_name</td><td>$form_input</td><td>$form_dropdown</td></tr>";
				}
			}
		}
		$map_report_setting_id  = form_input(array('name'=>'map_report_setting_id','id'=>'map_report_setting_id','class'=>'form-control input-sm','value'=>$report_setting_id,'type'=>'Hidden'));
		$table_info = "$map_report_setting_id 
						<table class='table table-bordered'>
							<thead>
								<tr>
									<td>Column Name</td>
									<td>Column</td>
									<td>Map Column</td>
								</tr>
							</thead>
							<tbody>
								$tr_line
							</tbody>
					</table>
					<div style='text-align:right;padding:8px 0px;'>
						<button class='btn btn-primary btn-sm' id='save_view_map_block_btn'>Save</button>
					</div>";
		
		echo json_encode(array('success' => true,'view_map_columns_list'=>$table_info));
	}
	
	public function save_view_map_columns(){
		$report_view_id     = $this->input->post('view_map_block_id');		
		$report_setting_id  = $this->input->post('map_report_setting_id');
		$prime_column       = $this->input->post('prime_column[]');	
		$map_column         = $this->input->post('map_column[]');	
		
		$remove_query = 'UPDATE cw_report_view_map SET trans_status = 0,trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" WHERE report_view_id = "'.$report_view_id.'"';
		$this->db->query("CALL sp_a_run ('RUN','$remove_query')");		
		$prime_count            = count($prime_column)-1;
		$sts = false;
		for($i=0;$i<=$prime_count;$i++){
			$prime_column_val  = $prime_column[$i];
			$map_column_val    = $map_column[$i];
			if($map_column_val){
				$sts = true;
				$table_query = 'insert into cw_report_view_map (report_view_id,report_setting_id,prime_column,map_column,trans_created_by,trans_created_date) value ("'.$report_view_id.'","'.$report_setting_id.'","'.$prime_column_val.'","'.$map_column_val.'","'.$logged_id.'","'.$today_date.'")';
				$this->db->query("CALL sp_a_run ('RUN','$table_query')");
			}			
		}
		$report_delete_qry = 'delete FROM cw_report_view_map WHERE trans_status = 0';
		$this->db->query("CALL sp_a_run ('RUN','$report_delete_qry')");
		
		if($sts){
			$msg = "View mapped successfully Updated";
		}else{
			$msg = "No Inputs mapped";
		}
		echo json_encode(array('success' => $sts, 'message'=>$msg));
	}
	//VIEW CUSTOM SELECT COLUMNS
	public function update_view_select_column(){
		$view_block_id      = $this->input->post('view_block_id');
		$view_edit = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$view_block_id.'" and trans_status = 1';
		$edit_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_edit')");
		$edit_result = $edit_info->result();
		$edit_info->next_result();		
		$table_info   = $this->get_columns($edit_result[0]->view_tables);
		$table_info   = json_decode($table_info,true);
		$view_select_column = $table_info['table_column'];
		echo json_encode(array('success' => true,'view_select_column'=>$view_select_column));
	}
	//VIEW CUSTOM SELECT SAVE
	public function save_view_select(){
		$prime_view_select_id     = (int)$this->input->post('prime_view_select_id');		
		$view_report_setting_id   = (int)$this->input->post('view_report_setting_id');		
		$view_block_id            = (int)$this->input->post('view_block_id');		
		$view_column_name         = str_replace(" ","_",strtolower($this->input->post('view_column_name')));
		$view_select_column_query = str_replace('"',"^",strtolower($this->input->post('view_select_column_query')));
		$logged_id                = $this->session->userdata('logged_id');
		$date                     = date("Y-m-d h:i:s");		
		if($prime_view_select_id === 0){
			$is_exist_qry  = 'SELECT * FROM cw_report_view_select where view_block_id = "'.$view_block_id.'" and view_column_name = "'.$view_column_name.'" and trans_status = 1 ';
			$is_exist_data = $this->db->query("CALL sp_a_run ('SELECT','$is_exist_qry')");
			$exist_count   = $is_exist_data->num_rows();
			$exist_rslt    = $is_exist_data->result();
			$is_exist_data->next_result();
			if((int)$exist_count === 0){
				$report_qry  = 'INSERT INTO cw_report_view_select (view_report_setting_id,view_block_id,view_column_name,view_select_column_query,trans_created_by, trans_created_date) VALUES ("'.$view_report_setting_id.'","'.$view_block_id.'","'.$view_column_name.'","'.$view_select_column_query.'","'.$logged_id.'","'.$date.'")';
				$insert_info    = $this->db->query("CALL sp_a_run ('INSERT','$report_qry')");
				$insert_result  = $insert_info->result();
				$insert_id      = $insert_result[0]->ins_id;
				$insert_info->next_result();
				$view_select_list = $this->view_select_list($view_report_setting_id);
				$this->save_view_table_sort($view_block_id);
				echo json_encode(array('success' => true, 'message' => "Custom Column Name successfully added", 'view_select_list' => $view_select_list));
			}else{
				echo json_encode(array('success' => false, 'message' => "Custom Column Name Already Exist"));
			}
		}else{
			$upd_qry  = 'UPDATE  cw_report_view_select SET view_report_setting_id = "'.$view_report_setting_id.'",view_block_id = "'.$view_block_id.'",view_column_name = "'.$view_column_name.'",view_select_column_query = "'.$view_select_column_query.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_view_select_id = "'.$prime_view_select_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			$view_select_list = $this->view_select_list($view_report_setting_id);
			$this->save_view_table_sort($view_block_id);
			echo json_encode(array('success' => true, 'message' => "Custom Column Name successfully updated", 'view_select_list' => $view_select_list));
		}
	}
	
	//VIEW SELECT LIST
	public function view_select_list($view_report_setting_id){
		$select_qry    = 'select * from cw_report_view_select inner join  cw_report_view on view_block_id = prime_view_id where cw_report_view_select.trans_status = 1 and view_report_setting_id = "'.$view_report_setting_id.'"';
		$select_info   = $this->db->query("CALL sp_a_run ('SELECT','$select_qry')");
		$select_result = $select_info->result();
		$select_info->next_result();
		foreach($select_result as $rslt){
			$prime_view_select_id     = $rslt->prime_view_select_id;
			$view_report_setting_id   = $rslt->view_report_setting_id;
			$view_block_id            = $rslt->view_block_id;
			$view_name                = $rslt->view_name;
			$view_column_name         = $rslt->view_column_name;
			$view_select_column_query = $rslt->view_select_column_query;
			$tr_line .= "<tr>
							<td>$view_name</td>
							<td>$view_column_name</td>
							<td style='width:590px;overflow:auto;'>$view_select_column_query</td>
							<td style='text-align:center;'><a class='btn btn-xs btn-edit' onclick=view_select_edit('$prime_view_select_id')> <i class='fa fa-pencil-square-o' aria-hidden='true'></i> Edit</a></td>
							<td style='text-align:center;'><a class='btn btn-xs btn-danger' onclick=view_select_remove('$prime_view_select_id','$view_report_setting_id')> <i class='fa fa-trash-o' aria-hidden='true'></i> Delete</a></td>
						</tr>";
		}
		$view_select_list = "<table class='table table-bordered table-stripted' id='view_select_table'>
								<thead>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th style='text-align: center;'>View Block Name</th>
										<th style='text-align: center;'>Column Name</th>
										<th style='text-align: center;'>Select Query</th>
										<th style='text-align:center;'>Edit</th>
										<th style='text-align:center;'>Delete</th>
									</tr>
								</thead>
								<tbody>
									$tr_line
								</tbody>
								</table>";
		return $view_select_list;
	}
	
	//VIEW SELECT EDIT INFO
	public function view_select_edit(){
		$prime_view_select_id  = $this->input->post('prime_view_select_id');
		$view_edit = 'SELECT prime_view_select_id,view_report_setting_id,view_block_id,view_column_name,view_select_column_query FROM cw_report_view_select WHERE  prime_view_select_id = "'.$prime_view_select_id.'" and trans_status = 1';
		$edit_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_edit')");
		$edit_result = $edit_info->result();
		$edit_info->next_result();
		
		$view_block_query = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$edit_result[0]->view_block_id.'" and trans_status = 1';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_query')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();		
		$table_info   = $this->get_columns($view_block_result[0]->view_tables);
		$table_info   = json_decode($table_info,true);
		$view_select_column = $table_info['table_column'];
		echo json_encode(array('success' => true,'view_select_column'=>$view_select_column,'edit_result'=>$edit_result[0]));
	}
	
	//VIEW SELECT LIST REMOVE
	public function view_select_remove(){
		$prime_view_select_id   = $this->input->post('prime_view_select_id');
		$view_report_setting_id = $this->input->post('view_report_setting_id');
		$logged_id      = $this->session->userdata('logged_id');
		$date           = date("Y-m-d h:i:s");
		$remove_qry  = 'UPDATE cw_report_view_select SET trans_status = 0 ,trans_deleted_by = "'.$logged_id.'",trans_deleted_date = "'.$date.'" where prime_view_select_id = "'.$prime_view_select_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$remove_qry')");
		$view_select_list = $this->view_select_list($view_report_setting_id);
		echo json_encode(array('success' => true,'message'=>'View Remove Successfully !!!','view_select_list'=>$view_select_list));
	}
	
	//ONCAHNGE UPDATE TABLE JOIN BLOCK
	public function update_table_join_block(){
		$table_block_id = $this->input->post('table_block_id');
		$report_qry  = 'SELECT * FROM cw_report_view where prime_view_id = "'.$table_block_id.'" and trans_status = 1';
		$report_data = $this->db->query("CALL sp_a_run ('SELECT','$report_qry')");
		$report_rslt = $report_data->result();			
		$report_data->next_result();
		foreach($report_rslt as $rslt){
			$prime_view_id  = $rslt->prime_view_id;
			$view_tables    = explode(",",$rslt->view_tables);
			
			$table_list = array();
			$table_list[""] = "---- Select Table ----";
			foreach($view_tables as $table_value){
				$table_name = substr((ucwords(str_replace("_"," ",$table_value))),3);
				$table_list[$table_value] = $table_name;
			}
			
			$prime_in   = '"'.str_replace(",",'","', $rslt->view_tables);
			$custom_in  = str_replace(",",'_cf","', $rslt->view_tables).'_cf"';
			$table_in   = $prime_in.'","'.$custom_in;
			$get_colums = 'SELECT `TABLE_NAME`,`COLUMN_NAME`  FROM `INFORMATION_SCHEMA`.`COLUMNS`  WHERE `TABLE_SCHEMA`="cafs_wealth" AND `TABLE_NAME` IN ('.$table_in.') AND COLUMN_NAME NOT LIKE "%trans%"';
			$column_info   = $this->db->query("CALL sp_a_run ('SELECT','$get_colums')");
			$column_result = $column_info->result();
			$column_info->next_result();
			$column_list = array();
			$column_list[""] = "---- Select Column ----";
			foreach($column_result as $column){
				$table_value  = $column->TABLE_NAME;
				$column_value = $column->COLUMN_NAME;				
				$table_name = substr((ucwords(str_replace("_"," ",$table_value))),3);
				$column_name  = ucwords(str_replace("_"," ",$column_value));
				$column_list[$table_value.".".$column_value] = $table_name . " - ". $column_name;
			}
			$join_array = array(""=>"--- Select join type ---","inner" => "inner","left" => "left","right" => "right");				
			$join_query  = 'SELECT * FROM cw_report_view_table  WHERE trans_status = 1 and join_for = "'.$prime_view_id.'" order by abs(line_sort)';
			$join_info   = $this->db->query("CALL sp_a_run ('SELECT','$join_query')");
			$join_result = $join_info->result();
			$join_info->next_result();
			
			$table_tr_line  = "";
			$table_count    = 0;
			$condition_table_count = count($view_tables) - 1; //round(count($condition_table)/2);
			for($i=1;$i<= $condition_table_count;$i++){
				$prime_print_table_id = 0;
				$line_prime_table     = "";
				$line_prime_col       = "";
				$line_join_type       = "";
				$line_join_table      = "";
				$line_join_col        = "";
				
				if($join_result){
					$prime_report_table_id = $join_result[$table_count]->prime_report_table_id;
					$line_prime_table      = $join_result[$table_count]->line_prime_table;
					$line_prime_col        = $join_result[$table_count]->line_prime_col;
					$line_join_type        = $join_result[$table_count]->line_join_type;
					$line_join_table       = $join_result[$table_count]->line_join_table;
					$line_join_col         = $join_result[$table_count]->line_join_col;
				}
				
				$table_cond_for_id = form_input(array( 'name' =>"prime_report_table_id[]",'class' => 'form-control input-sm','value' =>$prime_report_table_id,'type'=>'Hidden'));
				$prime_table_data  = form_dropdown(array('name' =>"view_line_prime_table[]",'class' => 'form-control input-sm'), $table_list,$line_prime_table);
				$prime_col_data    = form_dropdown(array('name' =>"view_line_prime_col[]",'class' => 'form-control input-sm'),$column_list,$line_prime_col);
				$join_data         = form_dropdown(array('name' =>"view_line_join_type[]",'class' => 'form-control input-sm'),$join_array,$line_join_type);
				$join_table_data   = form_dropdown(array('name' =>"view_line_join_table[]",'class' => 'form-control input-sm'), $table_list,$line_join_table);
				$join_col_data     = form_dropdown(array('name' =>"view_line_join_col[]",'class' => 'form-control input-sm'),$column_list,$line_join_col);
				$table_tr_line .= "<tr>
										<td>$table_cond_for_id $prime_table_data</td>
										<td>$prime_col_data</td>
										<td>$join_data</td>
										<td>$join_table_data</td>
										<td>$join_col_data</td>
									</tr>";
				$table_count++;
			}
			$join_for  = form_input(array('name'=>'join_for','id'=>'join_for','class'=>'form-control input-sm','value'=>$prime_view_id,'type'=>'Hidden'));
			$table_content = "$join_for
								<table class='table table-bordered table-stripted'>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th>Primary table</th>
										<th>Primary column</th>
										<th>Join type</th>
										<th>Join table</th>
										<th>Join primary column</th>
									</tr>
									$table_tr_line
								</table>
								<div style='text-align:right;padding:8px 0px;'>
									<button class='btn btn-primary btn-sm' id='save_view_join_table_btn'>Save</button>
								</div>";
		}
		echo json_encode(array('success' => true,'table_content'=>$table_content));
	}
	// SAVE VIEW TABLE JOIN
	public function save_view_join_table(){
		$join_for               = $this->input->post('join_for');
		$prime_report_table_id  = $this->input->post('prime_report_table_id');
		$prime_print_table_id   = $this->input->post('prime_print_table_id[]');
		$line_prime_table       = $this->input->post('view_line_prime_table[]');
		$line_prime_col         = $this->input->post('view_line_prime_col[]');
		$line_join_type         = $this->input->post('view_line_join_type[]');
		$line_join_table        = $this->input->post('view_line_join_table[]');
		$line_join_col          = $this->input->post('view_line_join_col[]');
		
		$logged_id     = $this->session->userdata('logged_id');		
		$today_date = date("Y-m-d h:i:s");
		$tab_count  = 0;
		
		$remove_query = 'UPDATE cw_report_view_table SET trans_status = 0,trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" WHERE join_for = "'.$join_for.'"';
		$this->db->query("CALL sp_a_run ('RUN','$remove_query')");
		
		$table_count = count($line_prime_table);
		for($i=1;$i<= $table_count;$i++){
			$prime_report_table_id_val = $prime_report_table_id[$tab_count];
			$line_prime_table_val     = $line_prime_table[$tab_count];
			$line_prime_col_val       = $line_prime_col[$tab_count];
			$line_join_type_val       = $line_join_type[$tab_count];
			$line_join_table_val      = $line_join_table[$tab_count];
			$line_join_col_val        = $line_join_col[$tab_count];
			
			if((int)$prime_report_table_id_val === 0){
				$table_query = 'insert into cw_report_view_table (join_for,line_prime_table,line_prime_col,line_join_type,line_join_table,line_join_col,line_sort,trans_created_by,trans_created_date) value ("'.$join_for.'","'.$line_prime_table_val.'","'.$line_prime_col_val.'","'.$line_join_type_val.'","'.$line_join_table_val.'","'.$line_join_col_val.'","'.$i.'","'.$logged_id.'","'.$today_date.'")';
			}else{
				$table_query = 'UPDATE cw_report_view_table SET trans_status = 1, line_prime_table = "'.$line_prime_table_val.'",line_prime_col = "'.$line_prime_col_val.'",line_join_type = "'.$line_join_type_val.'",line_join_table = "'.$line_join_table_val.'",line_join_col = "'.$line_join_col_val.'",line_sort = "'.$i.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" WHERE prime_report_table_id = "'.$prime_report_table_id_val.'"';
			}
			$this->db->query("CALL sp_a_run ('RUN','$table_query')");
			$tab_count++;
		}
		$report_delete_qry = 'delete FROM cw_report_view_table WHERE trans_status = 0';
		$this->db->query("CALL sp_a_run ('RUN','$report_delete_qry')");
		echo json_encode(array('success' => true, 'message'=>"Table Join successfully Updated"));
	}
	
	// SAVE WHERE CONDITION
	public function save_view_table_where(){
		$where_report_id   = (int)$this->input->post('where_report_id');
		$where_for_id      = (int)$this->input->post('view_where_block_id');
		$where_condition   = trim(strtolower($this->input->post('view_where_condition')));
		$logged_id         = $this->session->userdata('logged_id');
		$date              = date("Y-m-d h:i:s");
		$exist_query  = 'SELECT * FROM cw_report_view_where WHERE  where_for_id = "'.$where_for_id.'" and trans_status = 1';
		$exist_info   = $this->db->query("CALL sp_a_run ('SELECT','$exist_query')");
		$exist_count  = (int)$exist_info->num_rows();
		$exist_result = $exist_info->result();
		$exist_info->next_result();
		if($exist_count === 0){			
			$search_qry  = 'INSERT INTO cw_report_view_where (where_report_id,where_for_id,where_condition,trans_created_by, trans_created_date) VALUES ("'.$where_report_id.'","'.$where_for_id.'","'.$where_condition.'","'.$logged_id.'","'.$date.'")';
			$this->db->query("CALL sp_a_run ('RUN','$search_qry')");
			$view_table_where_list = $this->view_table_where_list($where_report_id);
			echo json_encode(array('success' => true,'message'=>"Where added successfully !!!",'view_table_where_list'=> $view_table_where_list));
		}else{
			$prime_report_where_id = (int)$exist_result[0]->prime_report_where_id;
			$upd_qry  = 'UPDATE  cw_report_view_where SET where_report_id = "'.$where_report_id.'",where_for_id = "'.$where_for_id.'",where_condition = "'.$where_condition.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_report_where_id = "'.$prime_report_where_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$upd_qry')");
			$view_table_where_list = $this->view_table_where_list($where_report_id);
			echo json_encode(array('success' => true,'message'=>"Where updated successfully !!!",'view_table_where_list'=> $view_table_where_list));
		}
	}
	public function view_table_where_list($where_report_id){
		$where_query  = 'SELECT prime_report_where_id,where_report_id,view_name,where_condition FROM cw_report_view_where inner join cw_report_view on where_for_id = prime_view_id  WHERE  where_report_id = "'.$where_report_id.'" and cw_report_view_where.trans_status = 1';
		$where_info   = $this->db->query("CALL sp_a_run ('SELECT','$where_query')");
		$where_result = $where_info->result();
		$where_info->next_result();
		foreach($where_result as $rslt){
			$prime_report_where_id = $rslt->prime_report_where_id;
			$where_report_id       = $rslt->where_report_id;
			$view_name             = $rslt->view_name;
			$where_condition       = $rslt->where_condition;
			$tr_line .= "<tr>
							<td>$view_name</td>
							<td style='width:590px;overflow:auto;'>$where_condition</td>
							<td style='text-align:center;'><a class='btn btn-xs btn-edit' onclick=view_where_edit('$prime_report_where_id')> <i class='fa fa-pencil-square-o' aria-hidden='true'></i> Edit</a></td>
							<td style='text-align:center;'><a class='btn btn-xs btn-danger' onclick=view_where_remove('$prime_report_where_id','$where_report_id')> <i class='fa fa-trash-o' aria-hidden='true'></i> Delete</a></td>
						</tr>";
		}
		$view_where_list = "<table class='table table-bordered table-stripted' id='view_where_table'>
								<thead>
									<tr style='background-color:#1883E9;color:#FFFFFF;'>
										<th style='text-align: center;'>View Block Name</th>
										<th style='text-align: center;'>Where Query</th>
										<th style='text-align:center;'>Edit</th>
										<th style='text-align:center;'>Delete</th>
									</tr>
								</thead>
								<tbody>
									$tr_line
								</tbody>
								</table>";
		return $view_where_list;
	}
	
	//VIEW WHERE EDIT INFO
	public function view_where_edit(){
		$prime_report_where_id  = $this->input->post('prime_report_where_id');
		$view_edit = 'SELECT where_for_id,where_report_id,where_condition FROM cw_report_view_where WHERE  prime_report_where_id = "'.$prime_report_where_id.'" and trans_status = 1';
		$edit_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_edit')");
		$edit_result = $edit_info->result();
		$edit_info->next_result();
		
		$view_block_query = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$edit_result[0]->where_for_id.'" and trans_status = 1';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_query')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();		
		$table_info   = $this->get_columns($view_block_result[0]->view_tables);
		$table_info   = json_decode($table_info,true);
		$view_select_column = $table_info['table_column'];		
		echo json_encode(array('success' => true,'view_select_column'=>$view_select_column,'edit_result'=>$edit_result[0]));
	}
	
	//VIEW WHERE LIST REMOVE
	public function view_where_remove(){
		$prime_report_where_id   = $this->input->post('prime_report_where_id');
		$where_report_id = $this->input->post('where_report_id');
		$logged_id      = $this->session->userdata('logged_id');
		$date           = date("Y-m-d h:i:s");
		$remove_qry  = 'UPDATE cw_report_view_where SET trans_status = 0 ,trans_deleted_by = "'.$logged_id.'",trans_deleted_date = "'.$date.'" where prime_report_where_id = "'.$prime_report_where_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$remove_qry')");
		$view_table_where_list = $this->view_table_where_list($where_report_id);
		echo json_encode(array('success' => true,'message'=>'where Remove Successfully !!!','view_table_where_list'=>$view_table_where_list));
	}
	public function save_view_table_sort($view_id){
		$view_block_query = 'SELECT prime_view_id,report_setting_id,view_name,view_for,view_type,view_size,view_chart,view_chart_size,view_tables,view_columns,view_total_columns FROM cw_report_view WHERE  prime_view_id = "'.$view_id.'" and trans_status = 1';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_query')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();
		if($view_block_result){
			$prime_view_id     = $view_block_result[0]->prime_view_id;
			$report_setting_id = $view_block_result[0]->report_setting_id;
			$view_type         = (int)$view_block_result[0]->view_type;
			$view_columns      = $view_block_result[0]->view_columns;
			if($view_type ===1){
				$view_columns = explode(",",$view_columns);
				foreach($view_columns as $columns){
					$view_table_list[] = array('columns'=>$columns,'mode'=>1);
				}
				$custom_select_query  = 'SELECT * FROM cw_report_view_select where view_block_id = "'.$view_id.'" and trans_status = 1 ';
				$custom_select_data = $this->db->query("CALL sp_a_run ('SELECT','$custom_select_query')");
				$custom_select_rslt    = $custom_select_data->result();
				$custom_select_data->next_result();
				foreach($custom_select_rslt as $select_rslt){
					$view_column_name = $select_rslt->view_column_name;
					$view_table_list[]  = array('columns'=>$view_column_name,'mode'=>2);
				}
				
				$logged_id   = $this->session->userdata('logged_id');		
				$remove_all  = 'UPDATE cw_report_view_table_sort SET trans_status = 0 where custom_view_id = "'.$view_id.'"';
				$this->db->query("CALL sp_a_run ('RUN','$remove_all')");
				
				$table_sort = 0;
				foreach($view_table_list as $view_list){
					$view_column = $view_list['columns'];
					$table_mode   = $view_list['mode'];
					$table_sort++;
					$exits_count_qry = 'select * from cw_report_view_table_sort where custom_view_id = "'.$view_id.'" and view_column = "'.$view_column.'"';
					$exits_count_info   = $this->db->query("CALL sp_a_run ('SELECT','$exits_count_qry')");
					$exits_count_result = $exits_count_info->result();
					$rslt_count         = (int)$exits_count_info->num_rows();
					$exits_count_info->next_result();			
					$prime_view_table_id = (int)$exits_count_result[0]->prime_view_table_id;
					$date           = date("Y-m-d h:i:s");
					if($rslt_count === 0){				
						$table_view_qry  = 'INSERT INTO cw_report_view_table_sort (custom_view_id,view_column, table_sort,table_mode,trans_created_by, trans_created_date) VALUES ("'.$view_id.'","'.$view_column.'","'.$table_sort.'","'.$table_mode.'","'.$logged_id.'","'.$date.'")';
						$this->db->query("CALL sp_a_run ('RUN','$table_view_qry')");
					}else
					if($rslt_count === 1){
						$table_view_upd_qry  = 'UPDATE cw_report_view_table_sort SET trans_status = 1,trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$date.'" where prime_view_table_id = "'.$prime_view_table_id.'"';
						$this->db->query("CALL sp_a_run ('RUN','$table_view_upd_qry')");
					}
				}
				$report_delete_qry = 'delete FROM cw_report_view_table_sort WHERE trans_status = 0';
				$this->db->query("CALL sp_a_run ('RUN','$report_delete_qry')");
			}
		}
	}
	public function view_table_sort($view_id){
		$view_block_qry    = 'select * from cw_report_view where trans_status = 1 and report_setting_id = "'.$view_id.'" order by abs(view_sort)';
		$view_block_info   = $this->db->query("CALL sp_a_run ('SELECT','$view_block_qry')");
		$view_block_result = $view_block_info->result();
		$view_block_info->next_result();
		$table_sort = "";
		foreach($view_block_result as $rslt){
			$prime_view_id = $rslt->prime_view_id;
			$view_name     = ucwords($rslt->view_name);
			$view_type     = $rslt->view_type;
			$input_th      = "";
			$input_td      = "";
			$table_content = "";
			if((int)$view_type === 1){
				$column_qry = 'select * from cw_report_view_table_sort where custom_view_id = "'.$prime_view_id.'" and trans_status = 1 order by abs(table_sort)';
				$column_info   = $this->db->query("CALL sp_a_run ('SELECT','$column_qry')");
				$column_result = $column_info->result();
				$column_info->next_result();
				$tr_id                = "tr_".$prime_view_id;
				foreach($column_result as $report){
					$prime_view_table_id  = $report->prime_view_table_id;
					$custom_view_id        = $report->custom_view_id;
					$view_column          = $report->view_column;
					$table_sort           = (int)$report->table_sort;
					$table_mode           = (int)$report->table_mode;
					$th_id                = "th_".$prime_view_table_id."::".$custom_view_id;					
					if($table_mode === 1){
						$view_column = explode('.',$view_column);
						$colum_name  = $view_column[1];
					}else{
						$colum_name  = $view_column;
					}					
					$colum_name = ucwords(str_replace("_"," ",$colum_name));
					//echo "$colum_name :: $th_id<br/>";
					$input_th .=  "<th class='ui-state-default' id='$th_id' style='background-color: #1883E9; color:#FFFFFF;cursor:pointer;border-right: 1px solid #CCCCCC;'>$colum_name</th>";
					$input_td  .= "<td style='border-right:1px solid #CCCCCC;'>-</td>";
				}
				$table_sort_content .= "<div class='col-md-12' style='padding:0px'>
									<h5 class='tab_head' style='margin:8px !important;'>$view_name</h5>
									<div style='padding: 8px; background-color: #ffffff; box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); border-radius: 3px;'>
										<table class='table table-hover table-striped'>
											<tr id='$tr_id' class='sortable'> $input_th </tr>
											<tr> $input_td </tr>
									   </table>
									</div>
								</div>";
				$table_sort_script .= "update_table_sort_script('$tr_id');\n";
				
			}
		}
		$table_sort_content = "<div class='row' style='padding:10px;background-color: #f2f2f2;margin:0px;'>
								$table_sort_content
								<div>";
		return array("table_sort_content"=>$table_sort_content,'table_sort_script'=>$table_sort_script);
	}
	public function update_view_table_sort(){
		$table_idsInOrder     = $this->input->post('table_idsInOrder');
		$logged_id            = $this->session->userdata('logged_id');
		$sort_order           = 0;
		$prim_custom_view_id  = 0;
		$prime_view_table_ids = array();
		foreach($table_idsInOrder as $order){
			if($order){
				$sort_order++;
				$order = explode("_",$order);
				$order = explode("::",$order[1]);
				$prime_view_table_id = $order[0];
				$custom_view_id      = $order[1];
				$prime_view_table_ids[] = $prime_view_table_id;
				$prim_custom_view_id    = $custom_view_id;
			}
		}
		if((int)$prim_custom_view_id > 0){
			$upd_query  = 'UPDATE cw_report_view_table_sort SET table_sort = 0 WHERE custom_view_id = "'. $prim_custom_view_id .'"';
			$info       = $this->db->query("CALL sp_a_run ('UPDATE','$upd_query')");
			$info->next_result();
			$table_sort = 0;
			foreach($prime_view_table_ids as $ids){
				$table_sort++;
				$upd_query  = 'UPDATE cw_report_view_table_sort SET table_sort = "'.$table_sort.'" WHERE prime_view_table_id = "'. $ids .'"';
				$info       = $this->db->query("CALL sp_a_run ('UPDATE','$upd_query')");
				$info->next_result();
			}
			echo json_encode(array('success' => TRUE, 'message' => "Sort position updated to database"));
		}else{
			echo json_encode(array('success' => False, 'message' => "Invalid ids"));
		}		
	}	
	
/* ==============================================================*/
/* ================== VIEW SETTING - END       ==================*/
/* ==============================================================*/
}

?>