File: /home/cafsindia/login_cafsindia_com/application/controllers/Life_renewals_bk10DEC2025.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";
}
// MAIN SEARCH RESULT
$search_result = $this->db->query($search_query)->result(); // CORRECT
// EXTRACT CURRENT ROW IDS
$ids = array_column($search_result, 'prime_life_renewals_id');
if ($ids) {
$id_list = implode(",", $ids);
// FAST DUPLICATE CHECK ONLY FOR CURRENT PAGE
$query = "SELECT
a.prime_life_renewals_id,
COUNT(DISTINCT b.prime_life_renewals_id) AS emp_count,
GROUP_CONCAT(DISTINCT b.prime_life_renewals_id ORDER BY b.prime_life_renewals_id) AS prime_ids
FROM cw_life_renewals a
LEFT JOIN cw_portfolio p1
ON p1.prime_portfolio_id = a.prime_portfolio_id
LEFT JOIN cw_life_renewals b
ON (
b.contact_no = p1.contact_no
OR b.prime_portfolio_id = p1.prime_portfolio_id
OR b.contact_no = a.contact_no
)
WHERE a.prime_life_renewals_id IN ($id_list)
GROUP BY a.prime_life_renewals_id";
$dup_result = $this->db->query($query)->result();
// MAP DATA
$contact_data = [];
foreach ($dup_result as $row){
$contact_data[$row->prime_life_renewals_id] = [
'count' => $row->emp_count,
'prime_ids' => $row->prime_ids
];
}
} else {
$contact_data = [];
}
// ADD emp_policy_count TO SEARCH RESULT (IMPORTANT)
foreach($search_result as $i => $row){
$pid = $row->prime_life_renewals_id;
$count = isset($contact_data[$pid]['count'])
? $contact_data[$pid]['count']
: 1;
$primeIds = isset($contact_data[$pid]['prime_ids'])
? $contact_data[$pid]['prime_ids']
: $pid;
$search_result[$i]->emp_policy_count =
'<span class="client_count" data-ids="'.$primeIds.'" style="color:blue;cursor:pointer;">'.
$count .
'</span>';
}
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();
//CONDITION BY [MS 17-07-2024] FOR [ FULLY PAIDUP(5) => 6], [ SURRENDER(6) => 5], [ PAIDUP(7) => 7 ]
if($renewal_mode === 5 || $renewal_mode === 6){
$renewal_mode_log = $renewal_mode === 6 ? 5 : 6;//
}else{
$renewal_mode_log = $renewal_mode;
}
//FOR RENEWAL STATUS INPUT IN CW_LIFE_RENEWALS_TABLE [ALTERNATIVE FOR INFORCE]
if($renewal_mode === 5 || $renewal_mode === 6 || $renewal_mode === 7){
$renewal_sts_mode = $renewal_mode_log;
}else{
$renewal_sts_mode = 4;
}
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 = "'.$renewal_sts_mode.'",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 = "'.$renewal_sts_mode.'",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");
if($next_due_date){//[MS 17-07-2024]
$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");
$raw_date = $next_renewal->renewal_due_date;
// IF DUE DATE WAS COMES 0000-00-00 WILL HANDLED _ARN
if(!empty($raw_date) && strtotime($raw_date) !== false && $raw_date != '0000-00-00'){
$check_date = new DateTime($raw_date);
}else{
$check_date = null; // or set a default date if needed
}
$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","6"=>"Surrender","7"=>"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));
}
// GET POLICYS FOR THAT CLIENT #ARN
public function policys_of_client(){
$ids = $this->input->post('ids');
if(!$ids){
echo json_encode(['success' => FALSE, 'message' => "Invalid Request"]);
return;
}
// Convert comma-separated list into array
$id_array = explode(",", $ids);
$level_qry = "SELECT employee_code, employee_name FROM cw_employees GROUP BY employee_code";
$level_info = $this->db->query($level_qry);
$level_rslt = $level_info->result_array();
$level_info->next_result();
$level_arr = [];
foreach($level_rslt as $emp){
$level_arr[$emp['employee_code']] = $emp['employee_code']." - ".$emp['employee_name'];
}
// ---------------------------------------
// MAIN QUERY - GET CLIENT POLICY DETAILS
// ---------------------------------------
$qry = "SELECT cwr.client_name,cwr.policy_number,cwc.company_name,cwp.product_name,cwr.term,cwr.ppt,cwm.mode_value as mode,cwr.total_premium as premium,cwr.login_date,cwr.issuance_date as issued_date,cwr.due_date,cwe.employee_name,cwe.level_1_reporting_person,cwe.level_2_reporting_person FROM cw_life_renewals cwr INNER JOIN cw_life_mode cwm ON cwm.prime_life_mode_id = cwr.mode LEFT JOIN cw_company_name cwc ON cwc.prime_company_name_id = cwr.product_company_name LEFT JOIN cw_product_name cwp ON cwp.prime_product_name_id = cwr.product_name LEFT JOIN cw_employees cwe ON cwe.prime_employees_id = cwr.emp_id WHERE cwr.prime_life_renewals_id IN (" . implode(",", $id_array) . ")
";
$info = $this->db->query($qry);
$rslt = $info->result_array();
$info->next_result();
if($rslt){
// Replace L1 & L2 codes with names
$i = 0;
foreach($rslt as $val){
$code1 = $val['level_1_reporting_person'];
$rslt[$i]['level_1_reporting_person'] = isset($level_arr[$code1]) ? $level_arr[$code1] : $code1;
$code2 = $val['level_2_reporting_person'];
$rslt[$i]['level_2_reporting_person'] = isset($level_arr[$code2]) ? $level_arr[$code2] : $code2;
$i++;
}
echo json_encode(['success' => TRUE, 'data' => $rslt]);
}else{
echo json_encode(['success' => FALSE, 'message' => "No Data Available"]);
}
}
}
?>