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/login_cafsindia_com/application/controllers/Life_renewals_bk19jul2024.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Life_renewals  extends Action_controller{	
	public function __construct(){
		parent::__construct('life_renewals');
		$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;
		$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);
		//FOR SHOW ONLY FROM TODAY DATE TO NEXT 30 DAYS RENEWAL DATA
		$today_date          = date("Y-m-d");
		$due_check_date      = date("Y-m-d", strtotime("+90 days",strtotime($today_date)));

		//DUE DATE AND NCD STATIC SEARCH CODE
		$ncd_due_from_date   = $this->input->post('start_date');
		$ncd_due_to_date     = $this->input->post('end_date');
		$ncd_due             = (int)$this->input->post('ncd_due');
		$ncd_due_date_filter = "";

		//not added in superadmin login
		// if((int)$this->logged_role !== 1){
			if($ncd_due === 2 && $ncd_due_from_date && $ncd_due_to_date){
				$ncd_due_from_date   = date("Y-m-d G:i:s", strtotime($ncd_due_from_date));
				$ncd_due_to_date     = date("Y-m-d G:i:s", strtotime($ncd_due_to_date));
				//NCD AND DUE DATE WHERE CONDITION
				$ncd_due_date_filter = " and ($this->prime_table.ncd BETWEEN '$ncd_due_from_date' and '$ncd_due_to_date' or $this->prime_table.ncd IS NULL)";
				//this command where conditions temporarily commended but it is required
				 // and $this->prime_table.due_date <= '$due_check_date'
			}else
			if($ncd_due === 1 && $ncd_due_from_date){
				$ncd_due_from_date   = date("Y-m-d", strtotime($ncd_due_from_date));
				$ncd_due_to_date     = date("Y-m-d", strtotime($ncd_due_to_date));
				//NCD AND DUE DATE WHERE CONDITION
				//FOR ONLY ON SUPERADMIN LOGIN
				// if((int)$this->logged_role === 1){
					$ncd_due_date_filter = " and ($this->prime_table.due_date BETWEEN '$ncd_due_from_date' and '$ncd_due_to_date')";
					//this command where conditions temporarily commended but it is required
					 // or $this->prime_table.due_date <= '$due_check_date'
				// }
				// else{
				// 	$ncd_due_date_filter = " and $this->prime_table.due_date BETWEEN '$ncd_due_from_date' and '$due_check_date'";
				// }
			}else{
				//NCD AND DUE DATE WHERE CONDITION 
				$ncd_due_date_filter = " and $this->prime_table.due_date <= '$due_check_date'";
				// and $this->prime_table.mode not in (5)
			}
		// }
		if($order_col === "prime_life_renewals_id"){
			$order_col = "due_date";
		}
		//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
						if($field_type === 10){ // having issues in date search
							$search_label = "$this->prime_table.$label_id";
							if(strtotime($search)){
								$common_search .= ' or '. $search_label .' like "'.$search.'%"';
							}
						}
						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$ncd_due_date_filter ORDER BY $order_col $order_sor";
		$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$ncd_due_date_filter";
		// $search_query      .= " ";
		$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 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['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;
		
		$this->load->view("$this->control_name/form",$data);
	}
	
	//SAVE MODEL DATA TO DATA BASE
	public function save(){
		$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();	
		$renewals_log    = array();
		$renewals_log['prime_life_renewals_id'] = $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;
			
			
			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){
				$value = date('Y-m-d',strtotime($value));
			}else
			if((int)$field_type === 8){//textbox only
				$value = str_replace('"',"xdbquot",$value);
				$value = str_replace("'","xquot",$value);
				$value = str_replace("&","xxamp",$value);
			}else
			if((int)$field_type === 13){
				$value = date('Y-m-d H:i:s',strtotime($value));
			}	
			
			if(($input_view_type === 1) || ($input_view_type === 2)){
				if((int)$field_isdefault === 1){
					$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,);
					}
				}
				$renewals_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;				
				echo json_encode(array('success' => TRUE, 'message' => "Successfully added", 'insert_id' => $insert_id));
			}else{
				//renewals log function
				$this->renewals_log($form_id,$renewals_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')");
				echo json_encode(array('success' => TRUE, 'message' => "Successfully updated",'insert_id' => $form_id));
			}
		}
	}
	//RENEWALS TABLE LOG FOR EVERY UPDATE OF THE RENEWALS
	public function renewals_log($prime_id,$renewals_log){
		$created_on             = date("Y-m-d H:i:s");
		$logged_id              = $this->logged_id;
		$renewals_label_name    = array_keys($renewals_log);
		$renewals_label_value   = implode(",",$renewals_label_name);
		$renewals_qry           = "select $renewals_label_value from cw_life_renewals where prime_life_renewals_id = $prime_id";
		$renewals_data          = $this->db->query("CALL sp_a_run ('SELECT','$renewals_qry')");
		$renewals_result        = $renewals_data->result_array();
		$renewals_data->next_result();
		$fin_renewals_result    = $renewals_result[0]; 
		$policy_no              = $fin_renewals_result['policy_number'];
		$renewal_data_dif       = array_diff_assoc($fin_renewals_result,$renewals_log);
		$prime_qry_value        = "";
		$prime_qry_key          = "prime_life_renewals_id,policy_no,label_name,old_value,new_value,trans_created_by,trans_created_date";
		foreach($renewal_data_dif as $col_key=>$col_value){
			$old_label_val  = $fin_renewals_result[$col_key];
			$new_label_val  = $renewals_log[$col_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 !='') && $new_label_val !== '1970-01-01'){
				$prime_qry_value .= "(\"$prime_id\",\"$policy_no\",\"$col_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_life_renewals_upd_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();
		}
	}
	//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');
		$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"));
		}
	}
	public function rowset_remove_file(){
		$table_name  = $this->input->post('table_name_set');
		$row_id     = (int)$this->input->post('row_id');
		$input_name     = $this->input->post('input_name');
		$view_id     = (int)$this->input->post('view_id');
		$primes_id     = (int)$this->input->post('primes_id');
		$remove_cw = str_replace("cw_","",$table_name);
		$primary_id = "prime_".$remove_cw."_id";
		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 '.$primary_id.' = "'. $row_id .'"';
			$this->db->query("CALL sp_a_run ('UPDATE','$update_query')");
			$row_set_edit = $this->get_row_set_data($view_id,$primes_id);
			$div_id = $row_set_edit['div_id'];
			$table_id = $row_set_edit['table_id'];
			$row_set_view = $row_set_edit['row_set_view'];
			echo json_encode(array('success' => TRUE, 'message' => "Successfully updated",'div_id' => $div_id, 'table_id' => $table_id,'row_set_view'=>$row_set_view));
		}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);
	}

	//GET GST VAL 
	public function get_gst_val(){
		$product      = $this->input->post('product');
		$issued_date  = $this->input->post('issued_date');
		$issued_date  = new DateTime($issued_date);
		$issued_date  = $issued_date->format("Y-m-d");
		if(($product !== "") && ($issued_date !== "")){
			$gst_info = $this->fetch_gst_info($product,$issued_date);
			if(!$gst_info){
				echo json_encode(array('success' => false, 'message' => "Please contact admin to updated your product information"));
			}else{
				$gst            = $gst_info->gst;
				$additional_gst = $gst_info->additional_gst;
				$rider_gst      = $gst_info->rider_gst;
				echo json_encode(array('success' => true, 'gst' => $gst, 'additional_gst' => $additional_gst, 'rider_gst' => $rider_gst));
			}
		}else{
			echo json_encode(array('success' => false, 'message' => "Please select Company, Product and Issued Date"));
		}
	}
	//GET GST VAL 
	public function fetch_gst_info($product,$issued_date){
		$issued_date  = new DateTime($issued_date);
		$issued_date  = $issued_date->format("Y-m-d");
		$fetch_qry    = 'SELECT start_date,end_date,gst,additional_gst,rider_gst FROM cw_product inner join cw_product_type on cw_product.product_type = cw_product_type.prime_product_type_id where cw_product.trans_status = 1 and  cw_product.prime_product_id = "'.$product.'" and end_date >= date("'.$issued_date.'")';
		$fetch_info   = $this->db->query("CALL sp_a_run ('SELECT','$fetch_qry')");
		$fetch_result = $fetch_info->result();		
		$fetch_info->next_result();
		if($fetch_result){
			return $fetch_result[0];
		}else{
			return false;
		}
	}
	//GET CUSTOMER INFORMATION
	public function fetch_cust_info(){
		$cust_id   = $this->input->post('cust_id');
		$fetch_qry    = 'SELECT * FROM cw_customer inner join cw_customer_cf on cw_customer.prime_customer_id = cw_customer_cf.prime_customer_id  where cw_customer.prime_customer_id = "'.$cust_id.'"';
		$fetch_info   = $this->db->query("CALL sp_a_run ('SELECT','$fetch_qry')");
		$fetch_result = $fetch_info->result();
		$fetch_info->next_result();
		$dob = date('d-m-Y',strtotime($fetch_result[0]->dob));		
		echo json_encode(array('success' => true, 'dob' => $dob));
	}
	
	//FETCH RENEWAL INFORMATION 
	public function renewal($policy_id){
		$data['policy_id']  = $policy_id;
		$life_renewals_qry  = "select *,cw_company_name.company_name,cw_product_name.product_name,cw_life_mode.mode_value from $this->prime_table inner join cw_company_name on cw_company_name.prime_company_name_id = $this->prime_table.product_company_name inner join cw_product_name on cw_product_name.prime_product_name_id = $this->prime_table.product_name inner join cw_life_mode on cw_life_mode.prime_life_mode_id = $this->prime_table.mode where $this->prime_table.$this->prime_id = $policy_id and $this->prime_table.trans_status = 1";
		$life_renewals_data   = $this->db->query("CALL sp_a_run ('SELECT','$life_renewals_qry')");
		$life_renewals_rslt = $life_renewals_data->result();
		$life_renewals_data->next_result();
		
		$data['policy_result']  = $life_renewals_rslt[0];
		$product_name_id        = (int)$life_renewals_rslt[0]->prime_product_name_id;
		$gst_query              = 'SELECT prime_gst_id,gst,renewal_gst from cw_gst where product_name = "'.$product_name_id.'" and trans_status = 1';
		$gst_info               = $this->db->query("CALL sp_a_run ('SELECT','$gst_query')");
		$gst_rlst               = $gst_info->result();
		$gst_info->next_result();		
		$rider_gst_list[""]   = "---- Select GST ----";
		foreach($gst_rlst as $result){
			$prime_gst_id                  = $result->prime_gst_id;
			$gst                           = $result->gst;
			$renewal_gst                   = $result->renewal_gst;
			$rider_gst_list[$prime_gst_id] = $renewal_gst;
		}	
		$data['rider_gst_list'] = $rider_gst_list;
		$data['next_renewal']   = $this->next_renewal_data($policy_id);
		$data['renewal_result'] = $this->renewal_data($policy_id);
		$this->load->view("$this->control_name/renewal",$data);
	}

	//SAVE NEXT RENEWAL DATA
	public function renewal_update(){
		$prime_renewal_id         = (int)$this->input->post('prime_renewal_id');
		$renewal_policy_id        = (int)$this->input->post('prime_life_renewals_id');
		$policy_ppt               = (int)$this->input->post('policy_ppt');
		$renewal_mode             = (int)$this->input->post('renewal_mode');
		$renewal_due_date         = date('Y-m-d',strtotime($this->input->post('renewal_due_date')));
		$renewed_date             = date('Y-m-d',strtotime($this->input->post('renewed_date')));
		$renewed_mon              = date("F", strtotime("$renewed_date"));
		$renewed_year             = date("Y", strtotime("$renewed_date"));
		$renewal_premium_amount   = $this->input->post('renewal_premium_amount');
		$gst                      = $this->input->post('gst');
		$renewal_gst              = $this->input->post('renewal_gst');
		$renewal_rider            = $this->input->post('renewal_rider');
		$renewal_rider_yes        = $this->input->post('renewal_rider_yes');
		$renewal_rider_premium    = $this->input->post('renewal_rider_premium');
		$renewal_rider_gst        = $this->input->post('renewal_rider_gst');
		$renewal_total_premium    = $this->input->post('renewal_total_premium');
		$renewal_next_due_date    = date('Y-m-d',strtotime($this->input->post('renewal_next_due_date')));
		$renewal_next_due_mon     = date("F", strtotime("$renewal_next_due_date"));
		$renewal_next_due_year    = date("Y", strtotime("$renewal_next_due_date"));
		$renewal_note             = $this->input->post('renewal_note');
		$logged_id                = $this->session->userdata('logged_id');
		$created_on               = date("Y-m-d H:i:s");
		
		$grace_period_qry  = 'SELECT grace_period FROM cw_life_renewals inner join cw_product_name on cw_product_name.prime_product_name_id = cw_life_renewals.product_name where prime_life_renewals_id = "'.$renewal_policy_id.'" and cw_life_renewals.trans_status = 1 ';
		$grace_period_info = $this->db->query("CALL sp_a_run ('SELECT','$grace_period_qry')");
		$grace_period_rslt    = $grace_period_info->result();
		$grace_period_info->next_result();
		// query for life renewals statusmode(paidup based restrictions)
		// $renewal_paidup_query='SELECT renewal_mode,COUNT(*)AS entry,
		// (CASE
		// WHEN renewal_mode = 1 THEN COUNT(*)*12
		// WHEN renewal_mode = 2 THEN COUNT(*)*1
		// WHEN renewal_mode = 3 THEN COUNT(*)*2
		// WHEN renewal_mode = 4 THEN COUNT(*)*3
		// END)AS entry_count
		// FROM cw_life_renewals_log
		// WHERE prime_life_renewals_id="'.$renewal_policy_id.'" AND trans_status=1
		// ';

		$renewal_paidup_query='SELECT SUM(CASE WHEN renewal_mode = 1 THEN 12 WHEN renewal_mode = 2 THEN 1 WHEN renewal_mode = 3 THEN 6 WHEN renewal_mode = 4 THEN 3 ELSE 0 END) AS entry_count FROM cw_life_renewals_log WHERE	prime_life_renewals_id="'.$renewal_policy_id.'" AND trans_status=1';
		// echo $renewal_paidup_query; die;
		$renewal_paidup_info =  $this->db->query("CALL sp_a_run ('SELECT','$renewal_paidup_query')");
		$renewal_paidup_rslt = $renewal_paidup_info->result();
		$renewal_paidup_info->next_result();

		// $yearly_count 		= $renewal_paidup_rslt[0]->yearly_count;
		 $entry_count 		= $renewal_paidup_rslt[0]->entry_count;
		// $semi_count 		= $renewal_paidup_rslt[0]->semi;
		// $quarterly_count    = $renewal_paidup_rslt[0]->quarterly;
		// $entry_count 		= $yearly_count+$monthly_count+$semi_count+$quarterly_count;
		$ppt_month 			=  $policy_ppt * 12;
		if($renewal_mode === 5){
			$grace_period_date     = date("Y-m-d",strtotime($this->input->post('renewal_next_due_date')));
		}else{
			$grace_period          = $grace_period_rslt[0]->grace_period;
			$grace_date            = new DateTime($this->input->post('renewal_next_due_date'));
			$grace_period_date     = $grace_date->modify("+$grace_period days");
			$grace_period_date     = $grace_period_date->format("Y-m-d");
		}
		//CHECK ENTRY IS EXIST OR NOT IN THAT POLICY ID IN RENEWAL LOG TABLE
		$is_exist_qry  = 'SELECT count(*) as rslt_count FROM cw_life_renewals_log where prime_life_renewals_id = "'.$renewal_policy_id.'" and renewal_due_date = "'.$renewal_due_date.'" and trans_status = 1';
		$is_exist_data = $this->db->query("CALL sp_a_run ('SELECT','$is_exist_qry')");
		$exist_rslt    = $is_exist_data->result();
		$is_exist_data->next_result();

		if((int)$exist_rslt[0]->rslt_count === 0){
			//condition for if entry count greater than ppt year raise message
			if($prime_renewal_id === 0){
				if(($renewal_mode === 1 || $renewal_mode === 2 || $renewal_mode === 3 || $renewal_mode === 4)){
					if((int)$ppt_month <= (int)$entry_count){
						echo json_encode(array('success' => FALSE, 'message' => "This Customer paid all the renewals. Please check the Renewals Log.."));
						exit(0);
					}
				}
				//condition for if ppt month count and entry count is equal update renewal status(fully paidup(6)) on renewals table
				if($renewal_mode === 5){
					
					if((int)$ppt_month === (int)$entry_count){
						$next_renewal = $this->next_renewal_data($renewal_policy_id);
						$renewal_list = $this->renewal_data($renewal_policy_id);
						$fully_paidup_updqry='UPDATE cw_life_renewals SET cw_life_renewals.renewal_status = "6" WHERE prime_life_renewals_id = "'.$renewal_policy_id.'" and trans_status = 1';
						$fully_paidup_info =  $this->db->query("CALL sp_a_run ('INSERT','$fully_paidup_updqry')");
	
						$fully_paidup_rslt = $fully_paidup_info->result();
						$fully_paidup_info->next_result();
						echo json_encode(array('success'=>TRUE,'message'=>'fully paidup added successfully','renewal_list' => $renewal_list, 'next_renewal' => $next_renewal));
						exit(0);
					}else{ 	
						echo json_encode(array('success' => FALSE, 'message' => "This Customer Not Yet Paid all the renewals. Could not able to choose fully paid up.."));
						exit(0);
					}
				}	
					$renewal_qry    = 'INSERT INTO cw_life_renewals_log (prime_life_renewals_id, renewal_mode,renewal_due_date,renewed_date,renewal_premium_amount,gst,renewal_gst,renewal_rider,renewal_rider_yes,renewal_rider_premium,renewal_rider_gst,renewal_total_premium,renewal_next_due_date,renewal_note,from_portfolio,trans_created_by, trans_created_date) VALUES ("'.$renewal_policy_id.'","'.$renewal_mode.'","'.$renewal_due_date.'","'.$renewed_date.'","'.$renewal_premium_amount.'","'.$gst.'","'.$renewal_gst.'","'.$renewal_rider.'","'.$renewal_rider_yes.'","'.$renewal_rider_premium.'","'.$renewal_rider_gst.'","'.$renewal_total_premium.'","'.$renewal_next_due_date.'","'.$renewal_note.'","0","'.$logged_id.'","'.$created_on.'")';
					$renewal_data   = $this->db->query("CALL sp_a_run ('INSERT','$renewal_qry')");
					$renewal_rslt   = $renewal_data->result();
					$renewal_data->next_result();
					$renewal_ins_id = (int)$renewal_rslt[0]->ins_id;
					
					if($renewal_ins_id){
						//CALL LOG COUNT UPDATE QUERY TO LIFE RENEWAL TABLE
						$upd_call_count_qry  = 'UPDATE cw_life_renewals SET mode ="'.$renewal_mode.'",due_date = "'.$renewal_next_due_date.'",due_month = "'.$renewal_next_due_mon.'",due_year = "'.$renewal_next_due_year.'",grace_period_date = "'.$grace_period_date.'",net_premium = "'.$renewal_premium_amount.'",call_count = "0",renewal_status = "4",renewed_date = "'.$renewed_date.'",renewed_month = "'.$renewed_mon.'",renewed_year = "'.$renewed_year.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" WHERE prime_life_renewals_id = "'.$renewal_policy_id.'" and trans_status = 1';
						$this->db->query("CALL sp_a_run ('SELECT','$upd_call_count_qry')");

						$next_renewal = $this->next_renewal_data($renewal_policy_id);
						$renewal_list = $this->renewal_data($renewal_policy_id);
						echo json_encode(array('success' => true, 'message' => "Renewal successfully added", 'renewal_list' => $renewal_list, 'next_renewal' => $next_renewal));
					}
			}else{
				echo json_encode(array('success' => FALSE, 'message' => "Renewal already exist"));
			}
		}else{
			$renewal_upd_qry  = 'UPDATE  cw_life_renewals_log SET renewal_due_date = "'.$renewal_due_date.'",renewed_date = "'.$renewed_date.'",renewal_mode = "'.$renewal_mode.'",renewal_premium_amount = "'.$renewal_premium_amount.'",gst = "'.$gst.'",renewal_gst = "'.$renewal_gst.'",renewal_rider = "'.$renewal_rider.'",renewal_rider_yes = "'.$renewal_rider_yes.'",renewal_rider_premium = "'.$renewal_rider_premium.'",renewal_rider_gst = "'.$renewal_rider_gst.'",renewal_total_premium = "'.$renewal_total_premium.'",renewal_next_due_date = "'.$renewal_next_due_date.'",renewal_note = "'.$renewal_note.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" where prime_renewal_id = "'.$prime_renewal_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$renewal_upd_qry')"); 
			//CALL LOG COUNT UPDATE QUERY TO LIFE RENEWAL TABLE
			$upd_call_count_qry  = 'UPDATE cw_life_renewals SET mode ="'.$renewal_mode.'",due_date = "'.$renewal_next_due_date.'",due_month = "'.$renewal_next_due_mon.'",due_year = "'.$renewal_next_due_year.'",grace_period_date = "'.$grace_period_date.'",net_premium = "'.$renewal_premium_amount.'",renewal_status = "4",renewed_date = "'.$renewed_date.'",renewed_month = "'.$renewed_mon.'",renewed_year = "'.$renewed_year.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" WHERE prime_life_renewals_id = "'.$renewal_policy_id.'" and trans_status = 1';
			$this->db->query("CALL sp_a_run ('SELECT','$upd_call_count_qry')");

			$next_renewal = $this->next_renewal_data($renewal_policy_id);
			$renewal_list = $this->renewal_data($renewal_policy_id);
			
			echo json_encode(array('success' => true, 'message' => "Renewal successfully updated", 'renewal_list' => $renewal_list,'next_renewal' => $next_renewal));
		}
	}
	//EDIT RENEWAL
	public function renewal_edit(){
		$prime_renewal_id = (int)$this->input->post('prime_renewal_id');
		$renewal_query    = "select * from cw_life_renewals_log where prime_renewal_id = '$prime_renewal_id' and trans_status = '1'";
		$renewal_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$renewal_query.'")');
		$renewal_result = $renewal_info->result();
		$renewal_info->next_result();
		echo json_encode(array('success' => TRUE, 'renewal_rslt' => $renewal_result[0]));
	}
	//REMOVE RENEWAL
	public function renewal_remove(){
		$prime_renewal_id  = (int)$this->input->post('prime_renewal_id');
		$renewal_policy_id = (int)$this->input->post('prime_life_renewals_id');
		$logged_id     = $this->session->userdata('logged_id');		
		$today_date = date("Y-m-d H:i:s");
		$final_qry = 'UPDATE cw_life_renewals_log SET trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" , trans_status = 0 WHERE prime_renewal_id = "'.$prime_renewal_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$final_qry')");
		$next_renewal = $this->next_renewal_data($renewal_policy_id);
		$renewal_list = $this->renewal_data($renewal_policy_id);
		echo json_encode(array('success' => TRUE, 'message' => "Remove Successfully",'renewal_list' => $renewal_list,'next_renewal' => $next_renewal));
	}
	//CANCEL UPDATED UI
	public function renewal_cancel(){
		$renewal_policy_id = (int)$this->input->post('prime_life_renewals_id');
		$next_renewal = $this->next_renewal_data($renewal_policy_id);
		$renewal_list = $this->renewal_data($renewal_policy_id);
		echo json_encode(array('success' => TRUE, 'message' => "Cancelled Successfully",'renewal_list' => $renewal_list,'next_renewal' => $next_renewal));
	}
	//GET NEXT DUE DATE
	public function update_due_date(){
		$renewal_mode      = $this->input->post('renewal_mode');
		$renewal_due_date  = $this->input->post('renewal_due_date');
		$renewal_mode_list = array("1"=>"+1 year","2"=>"+1 months","3"=>"+6 months","4"=>"+3 months","5"=>"Fully Paidup");
		if((int)$renewal_mode === 5){
			$next_due_date = "";
		}else{
			$next_due      = $renewal_mode_list[$renewal_mode];
			$issued_date   = new DateTime($renewal_due_date);
			$next_due_date = $issued_date->modify("$next_due");
			$next_due_date = $issued_date->modify("-1 days");
			$next_due_date = $next_due_date->format("d-m-Y");
		}
		echo json_encode(array('success' => TRUE,'next_due_date' => $next_due_date));
	}
	/****************************************
	UDY :: REMOVED DUE TO PRODUCT TYPE BASED GST
	//GET GST VALUE
	public function get_renewal_gst(){
		$gst_query = "SELECT COLUMN_DEFAULT as default_val FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='cafs_wealth' AND `TABLE_NAME` IN ('cw_life_insurance') and COLUMN_NAME = 'gst'";
		$gst_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$gst_query.'")');
		$gst_result = $gst_info->result();
		$gst_info->next_result();
		return  $gst_result[0]->default_val/2;
	}
	****************************************/
	//GET NEXT RENEWAL DATA
	public function next_renewal_data($renewal_policy_id){
		// echo "policy_id:$renewal_policy_id";die;
		$policy_query  = str_replace("@SELECT@","*",$this->base_query);
		$policy_query .= " where $this->prime_table.trans_status = 1 and
		 $this->prime_table.$this->prime_id = '$renewal_policy_id'";
		$policy_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$policy_query.'")');
		$policy_result = $policy_info->result();
		$policy_info->next_result();		
		$product               = $policy_result[0]->product_name;
		$grace_period_date     = date("Y-m-d",strtotime($policy_result[0]->grace_period_date));
		$renewal_query  = "select prime_renewal_id,prime_life_renewals_id,renewal_mode,renewal_due_date,renewed_date,renewal_premium_amount,gst,renewal_gst,renewal_rider,renewal_rider_yes,renewal_rider_premium,renewal_rider_gst,renewal_total_premium,renewal_next_due_date,renewal_note from cw_life_renewals_log where prime_life_renewals_id = '$renewal_policy_id' and trans_status = '1' order by prime_renewal_id DESC LIMIT 0,1";
		$renewal_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$renewal_query.'")');
		$renewal_result = $renewal_info->result();
		$renewal_info->next_result();
		$next_renewal          = $renewal_result[0];
		if(empty($next_renewal)){
			$renewal_query  = "select prime_life_renewals_id,mode as renewal_mode,due_date as renewal_due_date, renewed_date,net_premium as renewal_premium_amount,gst as renewal_gst,rider as renewal_rider,rider_premium as renewal_rider_premium,total_premium as renewal_total_premium from cw_life_renewals where prime_life_renewals_id = '$renewal_policy_id' and trans_status = 1";
			$renewal_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$renewal_query.'")');
			$renewal_result = $renewal_info->result();
			$renewal_info->next_result();
			$next_renewal                        = $renewal_result[0];
			$next_renewal->renewal_next_due_date = $next_renewal->renewal_due_date;
			$gst_id                = $policy_result[0]->gst;
			//GET GST VALUE FROM GST TABLE
			$gst_query             = 'SELECT gst from cw_gst where prime_gst_id = "'.$gst_id.'" and trans_status = 1';
			$gst_info              = $this->db->query("CALL sp_a_run ('SELECT','$gst_query')");
			$gst_rlst              = $gst_info->result();
			$gst_info->next_result();		
			$next_renewal->gst     = $gst_rlst[0]->gst;
		}

		$renewal_mode_list     = array("1"=>"+1 year","2"=>"+1 months","3"=>"+6 months","4"=>"+3 months","5"=>"Fully Paidup");
		if((int)$next_renewal->renewal_mode === 5){
			$next_renewal->renewal_due_date      = date("d-m-Y",strtotime($next_renewal->renewal_next_due_date));
			$next_renewal->renewal_next_due_date = date("d-m-Y",strtotime($next_renewal->renewal_next_due_date));
		}else{
			$next_due                            = $renewal_mode_list[$next_renewal->renewal_mode];
			$issued_date                         = new DateTime($next_renewal->renewal_next_due_date);
			$next_renewal->renewal_due_date      = $issued_date->format("d-m-Y");
			$next_due_date                       = $issued_date->modify("$next_due");
			$next_due_date                       = $next_due_date->modify("-1 days");
			$next_renewal->renewal_next_due_date = $next_due_date->format("d-m-Y");
		}
		$renewal_total_premium         = 0;
		//RENEWAL GST VAL QUERY
		$renewal_gst_query             = 'SELECT renewal_gst from cw_gst where prime_gst_id = "'.$next_renewal->renewal_gst.'" and trans_status = 1';
		$renewal_gst_info              = $this->db->query("CALL sp_a_run ('SELECT','$renewal_gst_query')");
		$renewal_gst_rlst              = $renewal_gst_info->result();
		$renewal_gst_info->next_result();		
		$renewal_gst                   = $renewal_gst_rlst[0]->renewal_gst;
		
		if((int)$next_renewal->renewal_rider === 1){
			//RENEWAL RIDER GST VAL QUERY
			$renewal_rider_gst_query       = 'SELECT renewal_gst from cw_gst where prime_gst_id = "'.$next_rider_renewal->renewal_rider_gst.'" and trans_status = 1';
			$renewal_rider_gst_info        = $this->db->query("CALL sp_a_run ('SELECT','$renewal_rider_gst_query')");
			$renewal_rider_gst_rlst        = $renewal_rider_gst_info->result();
			$renewal_rider_gst_info->next_result();		
			$renewal_rider_gst             = $renewal_rider_gst_rlst[0]->renewal_gst;
			$gst_val   = $next_renewal->renewal_premium_amount *$renewal_gst / 100;
			$rider_val = $next_renewal->renewal_rider_premium * $renewal_rider_gst / 100;
			$next_renewal->renewal_total_premium = round($next_renewal->renewal_premium_amount+$gst_val+$next_renewal->renewal_rider_premium+$rider_val);
		}else
		if((int)$next_renewal->renewal_rider === 2){
			$gst_val = $next_renewal->renewal_premium_amount * $renewal_gst / 100;
			$next_renewal->renewal_total_premium = round($next_renewal->renewal_premium_amount+$gst_val);
		}		
		$date_now   = new DateTime();
		$grace_date = new DateTime();
		if($next_renewal->renewal_mode === "1"){
			$date_now   = $date_now->modify("+2 months");
		}else
		if($next_renewal->renewal_mode === "2"){
			$date_now   = $date_now->modify("+10 days");
		}else
		if($next_renewal->renewal_mode === "3"){
			$date_now   = $date_now->modify("+1 months");
		}else
		if($next_renewal->renewal_mode === "4"){
			$date_now   = $date_now->modify("+1 months");
		}else
		if($next_renewal->renewal_mode === "5"){
			$date_now   = $date_now->modify("0 days");
		}
		$date_now           = $date_now->format("Y-m-d");
		$check_date         = new DateTime($next_renewal->renewal_due_date);
		$check_date         = $check_date->format("Y-m-d");
		$grace_date_now     = $grace_date->format("Y-m-d");
		$next_renewal->btn_sts = true;
		$next_renewal->ppt_sts = $this->check_ppt_sts($renewal_policy_id);
		return $next_renewal;
	}
	
	public function check_ppt_sts($renewal_policy_id){
		$policy_query  = str_replace("@SELECT@","*",$this->base_query);
		$policy_query .= " where $this->prime_table.trans_status = 1 and $this->prime_table.$this->prime_id = '$renewal_policy_id'";
		$policy_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$policy_query.'")');
		$policy_result = $policy_info->result();
		$policy_info->next_result();
		
		$issued_date     = $policy_result[0]->issued_date;
		$ppt             = $policy_result[0]->ppt;
		$premium_mode    = $policy_result[0]->premium_mode;
		$issued_date     = new DateTime($issued_date);
		$start_date      = $issued_date->format("Y-m-d");
		$maturity_end    = $issued_date->modify("+$ppt year");
		$maturity_end    = $maturity_end->format("Y-m-d");
		$maturity_start  = new DateTime($maturity_end);
		$maturity_start  = $maturity_start->modify("-1 year");
		$maturity_start  = $maturity_start->format("Y-m-d");
		
		$renewal_mode_list     = array("1"=>"12","2"=>"1","3"=>"6","4"=>"3","5"=>"0");
		$ppt_query   = "SELECT renewal_mode,count(*) as ppt  FROM cw_life_renewals_log WHERE prime_life_renewals_id = '$renewal_policy_id' and (renewal_due_date BETWEEN '$maturity_start' AND '$maturity_end') and trans_status = '1' GROUP by renewal_mode";
		$ppt_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$ppt_query.'")');
		$ppt_result = $ppt_info->result();
		$ppt_info->next_result();
		$paid_count = 0;
		foreach($ppt_result as $rslt){
			$renewal_mode = $rslt->renewal_mode;
			$ppt          = $rslt->ppt;
			$month        = $renewal_mode_list[$renewal_mode];
			$paid_count   += (int)$ppt*(int)$month;
		}
		if($paid_count <= 12){
			return true;
		}else{
			return false;
		}
	}	
	//GET RENEWAL HISTORY
	public function renewal_data($renewal_policy_id){
		$policy_query  = str_replace("@SELECT@","*",$this->base_query);
		$policy_query .= " where $this->prime_table.trans_status = 1 and $this->prime_table.$this->prime_id = '$renewal_policy_id'";
		$policy_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$policy_query.'")');
		$policy_result = $policy_info->result();
		$policy_info->next_result();		
		$sum_assured   = $policy_result[0]->sum_assured;
		$issued_date   = $policy_result[0]->issuance_date;
		$ppt           = $policy_result[0]->ppt;
		$product_name  = (int)$policy_result[0]->product_name;
		$maturity_end   = new DateTime($issued_date);
		$maturity_end  = $maturity_end->modify("+$ppt year");

		$renewal_query  = "select * from cw_life_renewals_log where prime_life_renewals_id = '$renewal_policy_id' and trans_status = '1' order by prime_renewal_id DESC";
		$renewal_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$renewal_query.'")');
		$renewal_result = $renewal_info->result();
		$renewal_info->next_result();
		$renewal_mode_list      = array(""=>"---- Renewal Mode ----","1"=>"Yearly","2"=>"Monthly","3"=>"Semi Annual","4"=>"Quarterly","5"=>"Fully Paidup");
		$renewal_rider_list     = array("1"=>"Yes","2"=>"No");
		$renewal_rider_yes_list = array("1"=>"Double Accident Benefit","2"=>"Premium Waiver Benefit","3"=>"Term Rider","4"=>"Hospital Cash","5"=>"Critical Illness Cover","6"=>"Total Partial Disability","7"=>"Family Income Rider");

		$gst_query             = 'SELECT prime_gst_id,gst,renewal_gst from cw_gst where product_name = "'.$product_name.'" and trans_status = 1';
		$gst_info              = $this->db->query("CALL sp_a_run ('SELECT','$gst_query')");
		$gst_rlst              = $gst_info->result();
		$gst_info->next_result();		
		$gst_list              = array();
		foreach($gst_rlst as $result){
			$prime_gst_id            = $result->prime_gst_id;
			$gst                     = $result->gst;
			$gst_list[$prime_gst_id] = $gst;
		}	
		$renewal_gst_list            = array();
		foreach($gst_rlst as $result){
			$prime_gst_id                    = $result->prime_gst_id;
			$renewal_gst                     = $result->renewal_gst;
			$renewal_gst_list[$prime_gst_id] = $renewal_gst;
		}	
		$tr_line = "";
		$count = 0;
		$rslt_count = count($renewal_result);
		foreach($renewal_result as $rslt){
			$count++;
			$prime_renewal_id       = $rslt->prime_renewal_id;
			$renewal_policy_id      = $rslt->prime_life_renewals_id;
			$renewal_mode           = $rslt->renewal_mode;
			$renewal_due_date       = date('d-m-Y',strtotime($rslt->renewal_due_date));
			$renewal_premium_amount = $rslt->renewal_premium_amount;
			$gst                    = $rslt->gst;
			$renewal_gst            = $rslt->renewal_gst;
			$renewal_rider          = $rslt->renewal_rider;
			$renewal_rider_yes      = $rslt->renewal_rider_yes;
			$renewal_rider_premium  = $rslt->renewal_rider_premium;
			$renewal_rider_gst      = $rslt->renewal_rider_gst;
			$renewal_total_premium  = $rslt->renewal_total_premium;			
			$renewal_next_due_date  = date('d-m-Y',strtotime($rslt->renewal_next_due_date));
			$renewal_note           = $rslt->renewal_note;
			
			$renewal_mode           = $renewal_mode_list[$renewal_mode];
			$gst                    = $gst_list[$gst];
			$renewal_gst            = $renewal_gst_list[$renewal_gst];
			$renewal_rider          = $renewal_rider_list[$renewal_rider];
			$renewal_rider_yes      = $renewal_rider_yes_list[$renewal_rider_yes];
			$renewal_rider_gst      = $renewal_gst_list[$renewal_rider_gst];
			$edit_btn   = "<a class='btn btn-edit btn-xs row_btn' onclick = renewal_edit('$prime_renewal_id');>Edit</a>";
			$remove_btn = "<a class='btn btn-danger btn-xs row_btn' onclick = renewal_remove('$prime_renewal_id');>Delete</a>";
			$td_btn = "";
			if((int)$count === 1){
				$td_btn = "$edit_btn $remove_btn";
			}
			if($renewal_rider === "No"){
				$renewal_rider_yes     = "-";
				$renewal_rider_premium = "-";
				$renewal_rider_gst     = "-";
			}		
			$paying_year = $this->paying_year($rslt->renewal_mode,$issued_date,$rslt->renewal_next_due_date);
			$tr_line .= "<tr>
							<td>$paying_year</td>
							<td>$renewal_mode</td>
							<td style='white-space:nowrap;'>$renewal_due_date</td>
							<td>$sum_assured</td>
							<td>$renewal_premium_amount</td>
							<td>$renewal_rider</td>
							<td>$renewal_total_premium</td>
							<td style='white-space:nowrap;'>$renewal_next_due_date</td>
							<td>$renewal_note</td>
							<td style='white-space:nowrap;'>$td_btn</td>
						</tr>";
		}
		$renewal_list = "<table id='renewal_list' class='table table-bordered' style='background-color: #FFFFFF; box-shadow: none;'>
							<thead>
								<tr>
									<th>PY</th>
									<th>Mode</th>
									<th>Due</th>
									<th>Sum Assured</th>
									<th>Premium</th>
									<th>Rider</th>
									<th>Total Premium</th>
									<th>Next Due</th>
									<th>Note</th>
									<th>Option</th>
								</tr>
							</thead>
							<tbody>
								$tr_line
							</tbody>
						</table>";
		return $renewal_list;
	}
	public static function paying_year($renewal_mode,$start_date, $end_date){
		$start_date  = new DateTime($start_date);
		$end_date    = new DateTime($end_date);
		$tot_month   = $start_date->diff($end_date)->m + ($start_date->diff($end_date)->y*12);
		$paying_year = "";
			$paying_year = floor($tot_month/12) +1;
		return $paying_year;
	}
	public function product_info($form_view_id=-1){
		//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];	
		$form_view         = $view_result[0];
		$life_assured_name = $form_view->life_assured_name;
		$product           = $form_view->product;
		$dob               = $form_view->dob;
		$term              = $form_view->term;
		$ppt               = $form_view->ppt;
		$sum_assured       = $form_view->sum_assured;
		$premium_mode      = $form_view->premium_mode;
		$premium_amount    = $form_view->premium_amount;
		$death_benefit     = $form_view->death_benefit;		
		$premium_mode_array  = array(1=>1,2=>12,3=>4,4=>2,5=>1);		
		
		$now = new DateTime();
		$end = new DateTime($dob);
		$interval = $now->diff($end);
		$age =  $interval->format('%y');
		$age = (int)$age - 1;
		$eligibility_query  = 'SELECT * FROM cw_product_eligibility_information where prime_product_id = "'.$product.'" and ppt = "'.$ppt.'" and policy_term = "'.$term.'" and trans_status = 1';
		$eligibility_data   = $this->db->query("CALL sp_a_run ('SELECT','$eligibility_query')");
		$eligibility_result = $eligibility_data->result();
		$eligibility_count  = $eligibility_data->num_rows();
		$eligibility_data->next_result();
		if((int)$eligibility_count === 1){
			$product_eligibility_id = $eligibility_result[0]->prime_product_eligibility_information_id;
			$header_query  = 'SELECT DISTINCT(illustration_header) as illustration_header,table_header,assured FROM cw_illustration_formula inner join cw_illustration_table on prime_illustration_table_id = illustration_header where prime_eligibility_information_id = "'.$product_eligibility_id.'" and cw_illustration_formula.trans_status = 1';
			$header_data   = $this->db->query("CALL sp_a_run ('SELECT','$header_query')");
			$header_result = $header_data->result();
			$header_data->next_result();
			$header_list = array("policy_year" => "Policy Year","age" => "Age","annualized_premium"  => "Annualized Premium","sum_assured"   => "Sum Assured");
			foreach($header_result as $header){
				$illustration_header  = $header->illustration_header;
				$assured              = $header->assured;
				$table_header         = str_replace(" ","_",strtolower($header->table_header));
				$header_list[$assured][$table_header] = 0;
			}
			
			$trans_array    = array();
			$formaula_array = array();
			for($process_year=1;$process_year<=$term;$process_year++){
				$age++;
				if($process_year === 1){
					$gst_val       = $premium_amount * 4.50 / 100;
					$annualized_premium  = round(($premium_amount+$gst_val) * $premium_mode_array[$premium_mode]);
				}else{
					$gst_val       = $premium_amount * 2.25 / 100;
					$annualized_premium  = round(($premium_amount+$gst_val) * $premium_mode_array[$premium_mode]);
				}				
				
				$illustration_query  = 'SELECT * FROM cw_illustration_formula inner join cw_illustration_table on prime_illustration_table_id = illustration_header where prime_eligibility_information_id = "'.$product_eligibility_id.'" and year = "'.$process_year.'" and cw_illustration_formula.trans_status = 1';
				$illustration_data   = $this->db->query("CALL sp_a_run ('SELECT','$illustration_query')");
				$illustration_result = $illustration_data->result();
				$illustration_result = $illustration_data->result();
				$illustration_data->next_result();
				
				foreach($illustration_result as $illustration){
					$table_header        = str_replace(" ","_",strtolower($illustration->table_header));
					$illustration_header = $illustration->illustration_header;
					$year                = $illustration->year;
					$assured             = $illustration->assured;
					$formula             = $illustration->formula;

					$formula =  str_replace("@sum_assured@","$sum_assured",strtolower($formula));
					$formula =  str_replace("@premium@","$premium_amount",strtolower($formula));
					$formula =  str_replace("@death_benifit@","$death_benefit",strtolower($formula));
					$for_year_list[$assured][$table_header] = $formula;
				}
				$header_list['policy_year'] = $process_year;
				$header_list['age'] = $age;
				if($process_year <= $ppt){
					$header_list['annualized_premium'] = $annualized_premium;
				}else{
					$header_list['annualized_premium'] = 0;
				}
				$header_list['sum_assured'] = $sum_assured;
				$trans_array[$process_year] = $header_list;
				if($for_year_list){
					$formaula_array[$process_year] = $for_year_list;
				}
				$for_year_list = "";
			}
			$data['header_list']  = $header_list;
			$data['product_info'] = $this->create_life_formula_file($formaula_array,$trans_array);
		}else{
			$data['product_info'] = "No data available";
		}		
		$this->load->view("$this->control_name/product_info",$data);
	}
	/*CREATE FORMULA FILE - START*/
	function create_life_formula_file($formaula_array,$trans_array){
		$file_list = "";
		foreach($formaula_array as $paying_year => $formula_list){
			foreach($formula_list as $assured_key => $list){				
				foreach($list as $key => $final){
					$file_list .= "\n\t".'$trans_array['.$paying_year.']['.$assured_key.']["'.$key.'"] = '.$final.";";
				}
			}
		}
		$file_list = $file_list."\n\t".' return $trans_array;'."\n";
		$logged_id    = $this->session->userdata('logged_id');
		$dynamic_file_name= "product_info_".$logged_id.".php";
		unlink("$dynamic_file_name");
		$fname = 'product_info($trans_array){';
		$code = "<?php \n function $fname $file_list}\n?>";
		fopen("$dynamic_file_name", "w");
		file_put_contents("$dynamic_file_name",$code);
		require_once("$dynamic_file_name");
		$fianl_result_array = product_info($trans_array);
		unlink("$dynamic_file_name");
		return $fianl_result_array;
	}
	
	/*CREATE FORMULA FILE - END*/
	public function excel($module_id,$excel_format){
		$excel_format_qry = 'select excel_line_column_name,excel_line_value from cw_util_excel_format_line where excel_line_module_id = "'.$module_id.'" and prime_excel_format_id ="'.$excel_format.'" 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();

		require_once APPPATH."/third_party/PHPExcel.php";
		$obj = new PHPExcel();		
		//Set the first row as the header row
		foreach($excel_result as $excel){
			$excel_line_column_name = $excel->excel_line_column_name;
			$excel_line_value       = $excel->excel_line_value;
			$obj->getActiveSheet()->setCellValue($excel_line_value."1", $excel_line_column_name);
		}		
		// Rename worksheet name
		 $filename= $module_id.".xls"; //save our workbook as this file name
		 header('Content-Type: application/vnd.ms-excel'); //mime type
		 header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
		 header('Cache-Control: max-age=0'); //no cache
		 
		//save it to Excel5 format (excel 2003 .XLS file), change this to 'Excel2007' (and adjust the filename extension, also the header mime type)
		 //if you want to save it as .XLSX Excel 2007 format
		 $objWriter = PHPExcel_IOFactory::createWriter($obj, 'Excel5');
		 //force user to download the Excel file without writing it to server's HD
		 $objWriter->save('php://output');
		echo json_encode(array('success' => TRUE, 'output' => $excelOutput));
	}

	public function policy_no_exist(){
		$policy_no     = trim($this->input->post('policy_no'));
		$exist_query  = 'SELECT count(*) as policy_count FROM cw_life_renewals where trans_status = 1 and policy_number = "'.$policy_no.'"';
		$exist_data   = $this->db->query("CALL sp_a_run ('SELECT','$exist_query')");
		$exist_result = $exist_data->result();
		$exist_data->next_result();
		if((int)$exist_result[0]->policy_count > 0){
			echo json_encode(array('success' => false, 'message' => "Policy number already exist"));
		}else{
			echo json_encode(array('success' => true, 'message' => "New Policy number"));
		}
	}
	
	public function calculate_premium(){
		$premium_amount = $this->input->post('premium_amount');
		$gst_id         = $this->input->post('gst');
		$rider_premium  = $this->input->post('rider_premium');
		$rider_gst_id   = $this->input->post('rider_gst');
		$rider          = (int)$this->input->post('rider');
		$total_premium  = 0;

		//GET GST VALUE FROM GST TABLE
		$gst_query             = 'SELECT renewal_gst from cw_gst where prime_gst_id = "'.$gst_id.'" and trans_status = 1';
		$gst_info              = $this->db->query("CALL sp_a_run ('SELECT','$gst_query')");
		$gst_rlst              = $gst_info->result();
		$gst_info->next_result();		
		$gst                   = $gst_rlst[0]->renewal_gst;
		
		if($rider === 1){
			//GET RIDER GST VALUE FROM GST TABLE		
			$rider_gst_query       = 'SELECT renewal_gst from cw_gst where prime_gst_id = "'.$rider_gst_id.'" and trans_status = 1';
			$rider_gst_query_info  = $this->db->query("CALL sp_a_run ('SELECT','$rider_gst_query')");
			$rider_gst_query_rlst  = $rider_gst_query_info->result();
			$rider_gst_query_info->next_result();	
			$rider_gst             = $rider_gst_query_rlst[0]->renewal_gst;
			
			$gst_val       = $premium_amount * $gst / 100;
			$rider_val     = $rider_premium * $rider_gst / 100;
			$total_premium = round($premium_amount+$gst_val+$rider_premium+$rider_val);
		}else
		if($rider === 2){
			$gst_val       = $premium_amount * $gst / 100;
			$total_premium = round($premium_amount+$gst_val);
		}
		echo json_encode(array('success' => true, 'total_premium' =>$total_premium));
	}
	
	public function ecs_info(){
		$search_term    = $this->input->get('account_number');
		$proposer_name  = (int)$this->input->get('proposer_name');
		if($proposer_name > 0){
			$bank_query     = 'select bank_account_number,cw_bank.prime_bank_id,cw_bank.bank_name,bank_branch from cw_customer_bank_account inner join cw_bank on prime_bank_id = cw_customer_bank_account.bank_name where prime_customer_id like "'.$proposer_name.'%"';
			$bank_data   = $this->db->query("CALL sp_a_run ('SELECT','$bank_query')");
			$bank_result = $bank_data->result();
			$bank_data->next_result();
			foreach($bank_result as $result){
				$bank_account_number  = $result->bank_account_number;
				$prime_bank_id        = $result->prime_bank_id;
				$bank_name            = $result->bank_name;
				$bank_branch          = $result->bank_branch;
				$suggestions[] = array('label' =>"$bank_name - $bank_account_number ", 'bank_account_number' => $bank_account_number, 'prime_bank_id' => $prime_bank_id, 'bank_name' => $bank_name, 'bank_branch' => $bank_branch);
			}
			if(empty($suggestions)){
				$suggestions[] = array('value' => "0", 'label' => "No data found for this search");
			}			
		}else{
			$suggestions[] = array('value' => "0", 'label' => "Please select proposer in policy entry");
		}
		echo json_encode($suggestions);
	}
	//COMPANY LIST
	public function get_company_list(){
		$company_query  = "SELECT DISTINCT(prime_company_id),company_name FROM cw_product INNER join cw_company on prime_company_id = product_company where cw_product.trans_status = '1' and product_category = '1'";
		$company_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$company_query.'")');
		$company_result = $company_info->result();
		$company_info->next_result();
		echo json_encode(array('success' => TRUE, 'company_result' => $company_result));
	}
	//PRODUCT LIST
	public function get_product_list(){
		$company = $this->input->post('company');
		$product_query  = "SELECT prime_product_id,product_name FROM `cw_product` where product_category = '1' and product_company = '$company' and trans_status = '1'";
		$product_info   = $this->db->query('CALL sp_a_run ("SELECT","'.$product_query.'")');
		$product_result = $product_info->result();
		$product_info->next_result();
		echo json_encode(array('success' => TRUE, 'product_result' => $product_result));
	}
	public function call_log($form_view_id=-1){		
		$data['life_renewals_id'] = $form_view_id;
		//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_id']   = $form_view_id;	
		$data['form_view']      = $view_result[0];	

		$life_renewals_qry  = "select *,cw_company_name.company_name,cw_product_name.product_name,cw_life_mode.mode_value from $this->prime_table inner join cw_company_name on cw_company_name.prime_company_name_id = $this->prime_table.product_company_name inner join cw_product_name on cw_product_name.prime_product_name_id = $this->prime_table.product_name inner join cw_life_mode on cw_life_mode.prime_life_mode_id = $this->prime_table.mode where $this->prime_table.$this->prime_id = $form_view_id and $this->prime_table.trans_status = 1";
		$life_renewals_data   = $this->db->query("CALL sp_a_run ('SELECT','$life_renewals_qry')");
		$life_renewals_rslt = $life_renewals_data->result();
		$life_renewals_data->next_result();
		$data['life_renewals_rslt'] = $life_renewals_rslt[0];
		$login_code                 = $life_renewals_rslt[0]->login_code;

		$login_emp_query            = 'select cw_employees.login_code,cw_employees.employee_name,cw_employees.date_of_joining,channel_name,designation_name,branch_name,cw_active_status.active_status,concat(a.login_code," - ",a.employee_name) as level1,concat(b.login_code," - ",b.employee_name) as level2 from cw_employees inner join cw_branch on cw_branch.prime_branch_id = cw_employees.branch inner join cw_channel on cw_channel.prime_channel_id = cw_employees.channel inner join cw_designation on cw_designation.prime_designation_id = cw_employees.designation inner join cw_employees a on cw_employees.level_1_reporting_person_code = a.employee_code inner join cw_employees b on cw_employees.level_2_reporting_person_code = b.employee_code inner join cw_active_status on cw_active_status.prime_active_status_id = cw_employees.employee_status where cw_employees.login_code != "" and cw_employees.login_code = "'.$login_code.'"';
		$login_emp_info             = $this->db->query("CALL sp_a_run ('SELECT','$login_emp_query')");
		$login_emp_rlst             = $login_emp_info->result();
		$login_emp_info->next_result();
		$data['login_emp_rslt']     = $login_emp_rlst[0];	

		$call_status_info    = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_call_status` where trans_status = 1')");
		$call_status_result       = $call_status_info->result();
		$call_status_info->next_result();
		$call_status_list["0"]    = "---- Call Status Type ----";
		foreach($call_status_result as $for){
			$call_status_id                    = $for->prime_life_call_status_id;
			$life_call_status                  = $for->life_call_status;
			$call_status_list[$call_status_id] = $life_call_status;
		}
		$data['call_status_list']     = $call_status_list;

		$life_interested_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_interested` where trans_status = 1')");
		$life_interested_result       = $life_interested_info->result();
		$life_interested_info->next_result();
		$life_interested_list["0"]    = "---- Life Interested ----";
		foreach($life_interested_result as $for){
			$life_interested_id                        = $for->prime_life_interested_id;
			$life_interested                           = $for->life_interested;
			$life_interested_list[$life_interested_id] = $life_interested;
		}
		$data['life_interested_list']  = $life_interested_list;

		$life_not_interested_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_not_interested` where trans_status = 1')");
		$life_not_interested_result       = $life_not_interested_info->result();
		$life_not_interested_info->next_result();
		$life_not_interested_list["0"]    = "---- Life Not Interested ----";
		foreach($life_not_interested_result as $for){
			$life_not_interested_id                            = $for->prime_life_not_interested_id;
			$life_not_interested                               = $for->life_not_interested;
			$life_not_interested_list[$life_not_interested_id] = $life_not_interested;
		}
		$data['life_not_interested_list']  = $life_not_interested_list;

		$life_not_contactable_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_not_contactable` where trans_status = 1')");
		$life_not_contactable_result       = $life_not_contactable_info->result();
		$life_not_contactable_info->next_result();
		$life_not_contactable_list["0"]    = "---- Life Not Contactable ----";
		foreach($life_not_contactable_result as $for){
			$life_not_contactable_id                        = $for->prime_life_not_contactable_id;
			$life_not_contactable                           = $for->life_not_contactable;
			$life_not_contactable_list[$life_not_contactable_id] = $life_not_contactable;
		}
		$data['life_not_contactable_list']  = $life_not_contactable_list;
		$life_other_ways_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_other_ways` where trans_status = 1')");
		$life_other_ways_result       = $life_other_ways_info->result();
		$life_other_ways_info->next_result();
		$life_other_ways_list["0"]    = "---- Life Other Ways ----";
		foreach($life_other_ways_result as $for){
			$life_other_ways_id                        = $for->prime_life_other_ways_id;
			$life_other_ways                           = $for->life_other_ways;
			$life_other_ways_list[$life_other_ways_id] = $life_other_ways;
		}
		$data['life_other_ways_list']  = $life_other_ways_list;

		$life_whatsapp_sent_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_whatsapp_sent` where trans_status = 1')");
		$life_whatsapp_sent_result       = $life_whatsapp_sent_info->result();
		$life_whatsapp_sent_info->next_result();
		$life_whatsapp_sent_list["0"]    = "---- Life Whatsapp Sent ----";
		foreach($life_whatsapp_sent_result as $for){
			$life_whatsapp_sent_id                        = $for->prime_life_whatsapp_sent_id;
			$life_whatsapp_sent                           = $for->life_whatsapp_sent;
			$life_whatsapp_sent_list[$life_whatsapp_sent_id] = $life_whatsapp_sent;
		}
		$data['life_whatsapp_sent_list']  = $life_whatsapp_sent_list;

		$life_mail_sent_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_mail_sent` where trans_status = 1')");
		$life_mail_sent_result       = $life_mail_sent_info->result();
		$life_mail_sent_info->next_result();
		$life_mail_sent_list["0"]    = "---- Life Mail Sent ----";
		foreach($life_mail_sent_result as $for){
			$life_mail_sent_id                        = $for->prime_life_mail_sent_id;
			$life_mail_sent                           = $for->life_mail_sent;
			$life_mail_sent_list[$life_mail_sent_id] = $life_mail_sent;
		}
		$data['life_mail_sent_list']  = $life_mail_sent_list;

		$life_tried_thr_sales_team_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_tried_thr_sales_team` where trans_status = 1')");
		$life_tried_thr_sales_team_result       = $life_tried_thr_sales_team_info->result();
		$life_tried_thr_sales_team_info->next_result();
		$life_tried_thr_list["0"]    = "---- Life Tried Thr ----";
		foreach($life_tried_thr_sales_team_result as $for){
			$life_tried_id                        = $for->prime_life_tried_thr_sales_team_id;
			$life_tried_team                      = $for->life_tried_thr_sales_team;
			$life_tried_thr_list[$life_tried_id]  = $life_tried_team;
		}
		$data['life_tried_thr_list']  = $life_tried_thr_list;

		$payment_select_mode_info    = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_payment_select_mode` where trans_status = 1')");
		$payment_select_mode_rslt       = $payment_select_mode_info->result();
		$payment_select_mode_info->next_result();
		$payment_mode_list["0"]    = "---- Payment Mode ----";
		foreach($payment_select_mode_rslt as $for){
			$payment_id                      = $for->prime_payment_select_mode_id;
			$payment_mode                    = $for->payment_mode;
			$payment_mode_list[$payment_id]  = $payment_mode;
		}
		$data['payment_mode_list']  = $payment_mode_list;

		$home_visit_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_home_visit` where trans_status = 1')");
		$home_visit_result       = $home_visit_info->result();
		$home_visit_info->next_result();
		$home_visit_list["0"]    = "---- Life Home Visit ----";
		foreach($home_visit_result as $for){
			$home_visit_id                   = $for->prime_life_home_visit_id;
			$home_visit                      = $for->life_home_visit;
			$home_visit_list[$home_visit_id] = $home_visit;
		}
		$data['home_visit_list']       = $home_visit_list;

		$life_in_progress_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_in_progress` where trans_status = 1')");
		$life_in_progress_result       = $life_in_progress_info->result();
		$life_in_progress_info->next_result();
		$life_in_progress_list["0"]    = "---- Life In Progress ----";
		foreach($life_in_progress_result as $for){
			$life_in_progress_id                   = $for->prime_life_in_progress_id;
			$life_in_progress                      = $for->life_in_progress;
			$life_in_progress_list[$life_in_progress_id] = $life_in_progress;
		}
		$data['in_progress_list']       = $life_in_progress_list;

		$life_not_attended_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT * FROM `cw_life_na` where trans_status = 1')");
		$life_not_attended_result       = $life_not_attended_info->result();
		$life_not_attended_info->next_result();
		$life_not_attended_list["0"]    = "---- Life Not Attended ----";
		foreach($life_not_attended_result as $for){
			$life_not_attended_id                        = $for->prime_life_na_id;
			$life_not_attended                           = $for->life_na;
			$life_not_attended_list[$life_not_attended_id] = $life_not_attended;
		}
		$data['life_not_attended_list']  = $life_not_attended_list;

		$emp_code_info         = $this->db->query("CALL sp_a_run ('SELECT','SELECT employee_code,employee_name FROM `cw_employees` where trans_status = 1 and employee_status = 1')");
		$emp_code_result       = $emp_code_info->result();
		$emp_code_info->next_result();
		$emp_code_list["0"]    = "---- Select Employee ----";
		foreach($emp_code_result as $for){
			$employee_code                  = $for->employee_code;
			$employee_name                  = $for->employee_name;
			$emp_code_list[$employee_code]  = $employee_code." - ".$employee_name;
		}
		$data['emp_code_list']         = $emp_code_list;

		$data['renewal_call_log_list'] = $this->renewal_call_log_data($form_view_id);

		$this->load->view("$this->control_name/log",$data);
	}
	//CALL LOG ADD AND UPDATE FUNCTION
	public function life_call_log_update(){
		$prime_life_call_log_id   = (int)$this->input->post('prime_life_renewals_call_log_id');
		$prime_life_renewals_id   = (int)$this->input->post('prime_life_renewals_id');
		$call_status              = $this->input->post('call_status');
		$interested               = $this->input->post('interested');
		$not_interested           = $this->input->post('not_interested');
		$not_contactable          = $this->input->post('not_contactable');
		$other_ways               = $this->input->post('other_ways');
		$whatsapp_sent            = $this->input->post('whatsapp_sent');
		$mail_sent                = $this->input->post('mail_sent');
		$tried_thr_sales_team     = $this->input->post('tried_thr_sales_team');
		$home_visit               = $this->input->post('home_visit');
		$ncd                      = date('Y-m-d G:i:s', strtotime($this->input->post('ncd')));
		$remarks                  = $this->input->post('remarks');
		$payment_mode             = $this->input->post('payment_mode');
		$collected_person_name    = $this->input->post('collected_person_name');
		$logged_id                = $this->session->userdata('logged_id');
		$created_on               = date("Y-m-d H:i:s");	
		
		//FOR UPDATE A RENEWAL STATUS TO RENEWALS TABLE
		$renewal_status           = "4";
		if((int)$call_status === 8){
			$renewal_status           = "3";
		}else
		if((int)$call_status === 2){
			$renewal_status           = "1";
		}else
		if((int)$call_status === 6){
			$renewal_status           = "5";
		}	
		if($prime_life_call_log_id === 0){
			$renewal_call_log_qry  = 'INSERT INTO cw_life_renewals_call_log (prime_life_renewals_id,call_status,interested,not_interested,not_contactable,other_ways,whatsapp_sent,mail_sent,tried_thr_sales_team,home_visit,ncd,remarks,payment_mode,collected_person_name,trans_created_by, trans_created_date) VALUES ("'.$prime_life_renewals_id.'","'.$call_status.'","'.$interested.'","'.$not_interested.'","'.$not_contactable.'","'.$other_ways.'","'.$whatsapp_sent.'","'.$mail_sent.'","'.$tried_thr_sales_team.'","'.$home_visit.'","'.$ncd.'","'.$remarks.'","'.$payment_mode.'","'.$collected_person_name.'","'.$logged_id.'","'.$created_on.'")';
			$renewal_call_log_info = $this->db->query("CALL sp_a_run ('INSERT','$renewal_call_log_qry')");
			$renewal_call_log_rslt = $renewal_call_log_info->result();
			$renewal_call_log_info->next_result();
			$insert_id = $renewal_call_log_rslt[0]->ins_id;

			//CALL LOG COUNT UPDATE QUERY TO LIFE RENEWAL TABLE
			if($insert_id){
				$sel_call_count_qry  = 'select call_count from cw_life_renewals where cw_life_renewals.prime_life_renewals_id = "'.$prime_life_renewals_id.'" and trans_status = 1';
				$sel_call_count_info = $this->db->query("CALL sp_a_run ('SELECT','$sel_call_count_qry')");
				$sel_call_count_rslt = $sel_call_count_info->result();
				$sel_call_count_info->next_result();
				$renewal_call_count  = (int)$sel_call_count_rslt[0]->call_count + 1;

				$upd_call_count_qry  = 'UPDATE cw_life_renewals SET ncd = "'.$ncd.'",call_count = "'.$renewal_call_count.'",renewal_status = "'.$renewal_status.'",call_status = "'.$call_status.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" WHERE prime_life_renewals_id = "'.$prime_life_renewals_id.'" and trans_status = 1';
				$this->db->query("CALL sp_a_run ('SELECT','$upd_call_count_qry')");
			}
			$renewal_call_log_list = $this->renewal_call_log_data($prime_life_renewals_id);
			echo json_encode(array('success' => true, 'message' => "Renewals Call Log successfully added", 'renewal_call_log_list' => $renewal_call_log_list));

		}else{
			$renewal_call_log_upd_qry  = 'UPDATE  cw_life_renewals_call_log SET call_status = "'.$call_status.'",interested = "'.$interested.'",not_interested = "'.$not_interested.'",not_contactable = "'.$not_contactable.'",other_ways = "'.$other_ways.'",whatsapp_sent = "'.$whatsapp_sent.'",mail_sent = "'.$mail_sent.'",tried_thr_sales_team = "'.$tried_thr_sales_team.'",home_visit = "'.$home_visit.'",ncd = "'.$ncd.'",remarks = "'.$remarks.'",payment_mode = "'.$payment_mode.'",collected_person_name = "'.$collected_person_name.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" where prime_life_renewals_call_log_id = "'.$prime_life_call_log_id.'"';
			$this->db->query("CALL sp_a_run ('RUN','$renewal_call_log_upd_qry')");
			
			$upd_call_count_qry  = 'UPDATE cw_life_renewals SET ncd = "'.$ncd.'",renewal_status = "'.$renewal_status.'",call_status = "'.$call_status.'",trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$created_on.'" WHERE prime_life_renewals_id = "'.$prime_life_renewals_id.'" and trans_status = 1';
			$this->db->query("CALL sp_a_run ('SELECT','$upd_call_count_qry')");

			$renewal_call_log_list = $this->renewal_call_log_data($prime_life_renewals_id);
			echo json_encode(array('success' => true, 'message' => "Renewals Call Log successfully updated", 'renewal_call_log_list' => $renewal_call_log_list));
		}
	}
	//GET RENEWAL HISTORY
	public function renewal_call_log_data($prime_life_renewals_id){
		$renewal_call_log_qry  = 'select *,life_call_status,cw_life_renewals_call_log.trans_created_date as created_date from cw_life_renewals_call_log inner join cw_life_call_status on cw_life_call_status.prime_life_call_status_id = cw_life_renewals_call_log.call_status where cw_life_renewals_call_log.prime_life_renewals_id = "'.$prime_life_renewals_id.'" and cw_life_renewals_call_log.trans_status = 1 order by prime_life_renewals_call_log_id DESC';
		$renewal_call_log_info = $this->db->query("CALL sp_a_run ('SELECT','$renewal_call_log_qry')");
		$renewal_call_log_rslt = $renewal_call_log_info->result();
		$renewal_call_log_info->next_result();
		$tr_line               = "";
		$count                 = 0;
		$rslt_count            = count($renewal_call_log_rslt); 
		foreach($renewal_call_log_rslt as $rslt){
			$count++;
			$prime_life_call_log_id  = $rslt->prime_life_renewals_call_log_id;
			$call_status             = $rslt->life_call_status;
			$interested              = $rslt->interested;
			$not_interested          = $rslt->not_interested;
			$not_contactable         = $rslt->not_contactable;
			$other_ways              = $rslt->other_ways;
			$whatsapp_sent           = $rslt->whatsapp_sent;
			$mail_sent               = $rslt->mail_sent;			
			$tried_thr_sales_team    = $rslt->tried_thr_sales_team;
			$home_visit              = $rslt->home_visit;		
			$ncd                     = date('d-m-Y',strtotime($rslt->ncd));	
			$call_create_date        = date('d-m-Y h:i A',strtotime($rslt->created_date));	
			//IF CHECK NCD EMPTY OR NOT
   			if($ncd === '01-01-1970' || $ncd === '00-00-0000' || $ncd === '30-11--0001' || $ncd === '30-11-0001') {
				$ncd = '';
			}else{
				$ncd = date('d-m-Y h:i A',strtotime($rslt->ncd));
			}		
			$remarks                 = $rslt->remarks;		
			$payment_mode            = $rslt->payment_mode;				
			$edit_btn   = "<a class='btn btn-edit btn-xs row_btn' onclick = life_call_log_edit('$prime_life_call_log_id');>Edit</a>";
			$remove_btn = "<a class='btn btn-danger btn-xs row_btn' onclick = life_call_log_remove('$prime_life_call_log_id');>Delete</a>";
			$td_btn = "";
			if((int)$count === 1){
				$td_btn = "$edit_btn $remove_btn";
			}
			$tr_line .= "<tr>
							<td>$call_status</td>
							<td>$ncd</td>
							<td>$remarks</td>
							<td>$call_create_date</td>
							<td style='white-space:nowrap;'>$td_btn</td>
						</tr>";
		}
		$renewal_call_log_list = "<table id='life_call_log_list' class='table table-bordered' style='background-color: #FFFFFF; box-shadow: none;'>
							<thead>
								<tr>
									<th>Call Status</th>
									<th>NCD</th>
									<th>Remarks</th>
									<th>Updated Date</th>
									<th>Option</th>
								</tr>
							</thead>
							<tbody>
								$tr_line
							</tbody>
						</table>";
		return $renewal_call_log_list;
	}

	//EDIT LIFE RENEWAL CALL LOG
	public function life_call_log_edit(){
		$prime_life_call_log_id     = (int)$this->input->post('prime_life_call_log_id');
		$prime_life_call_log_qry    = 'select * from cw_life_renewals_call_log where cw_life_renewals_call_log.prime_life_renewals_call_log_id = "'.$prime_life_call_log_id.'" and trans_status = 1';
		$prime_life_call_log_info   = $this->db->query("CALL sp_a_run ('SELECT','$prime_life_call_log_qry')");
		$prime_life_call_log_result = $prime_life_call_log_info->result();
		$prime_life_call_log_info->next_result();
		echo json_encode(array('success' => TRUE, 'prime_life_call_log_result' => $prime_life_call_log_result[0]));
	}
	//REMOVE LIFE RENEWAL CALL LOG
	public function life_call_log_remove(){
		$prime_life_call_log_id  = (int)$this->input->post('prime_life_call_log_id');
		$prime_life_renewals_id  = (int)$this->input->post('prime_life_renewals_id');
		$logged_id               = $this->session->userdata('logged_id');		
		$today_date              = date("Y-m-d H:i:s");

		$final_delete_qry = 'UPDATE cw_life_renewals_call_log SET trans_updated_by = "'.$logged_id.'",trans_updated_date = "'.$today_date.'" , trans_status = 0 WHERE cw_life_renewals_call_log.prime_life_renewals_call_log_id = "'.$prime_life_call_log_id.'"';
		$this->db->query("CALL sp_a_run ('SELECT','$final_delete_qry')");

		$renewal_call_log_list = $this->renewal_call_log_data($prime_life_renewals_id);
		echo json_encode(array('success' => TRUE, 'message' => "Remove Successfully",'renewal_call_log_list' => $renewal_call_log_list));
	}
	//CANCEL UPDATED UI
	public function life_call_log_cancel(){
		$prime_life_renewals_id = (int)$this->input->post('prime_life_renewals_id');
		$renewal_call_log_list  = $this->renewal_call_log_data($prime_life_renewals_id);
		echo json_encode(array('success' => TRUE, 'message' => "Cancelled Successfully",'renewal_call_log_list' => $renewal_call_log_list));
	}
	
}
?>