File: /home/cafsindia/ntc_cafsinfotech_in_bk/application/controllers/Vehicle_master.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Vehicle_master extends Action_controller{
public function __construct(){
parent::__construct('vehicle_master');
if(!$this->Appconfig->isAppvalid()){
redirect('config');
}
$this->collect_base_info();
// $this->load->model('tracking_api');
}
// 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);
//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.')';
}
}
}
}
}
}
if($common_search){
$common_search = ltrim($common_search,' or ');
$common_search = " and ($common_search)";
}
$count_all_query = str_replace("@SELECT@","count(*) as allcount",$this->base_query);
$search_total = $this->db->query($count_all_query);
$search_total_info = $search_total->result();
$total_count = $search_total_info[0]->allcount;
$count_query = str_replace("@SELECT@","count(*) as allcount",$this->base_query);
$count_query .= " where $this->prime_table.trans_status = 1 $role_condition $fliter_query $common_search";
$search_count = $this->db->query($count_query);
$search_info = $search_count->result();
$filtered_count = $search_info[0]->allcount;
$search_query .= " where $this->prime_table.trans_status = 1 $role_condition $fliter_query $common_search";
$search_query .= " ORDER BY $order_col $order_sor";
if((int)$per_page !== -1){
$search_query .= " LIMIT $start,$per_page";
}
$search_data = $this->db->query($search_query);
$search_result = $search_data->result();
//echo "search_query :: \n$search_query\n";
echo json_encode(array("draw" => intval($draw),"recordsTotal" => $total_count,"recordsFiltered" => $filtered_count,"data" => $search_result));
}
//LOAD MODEL PAGE VIEW WITH DATA
public function view($form_view_id=-1){
//VIEW, FORM INPUT
$data['view_info'] = $this->view_info;
$data['form_info'] = $this->form_info;
//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();
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
if($label_id === 'register_no'){
$value = str_replace(' ', '', $this->input->post($label_id));
}
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 === 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,);
}
}
}
}
$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{
$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));
}
}
}
//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')")){
$prime_table_query = 'SELECT * from '. $this->prime_table .'';
$prime_table_info = $this->db->query("CALL sp_a_run ('SELECT','$prime_table_query')");
$row_count = $prime_table_info->num_rows();
$prime_table_info->next_result();
$alter_query = 'ALTER TABLE '. $this->prime_table .' AUTO_INCREMENT = '. $row_count .'';
$this->db->query("CALL sp_a_run ('RUN','$alter_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"));
}
}
//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 Vehicle Type
public function get_vehicle_type(){
$vehicle_category = $this->input->post('vehicle_category');
$vehicle_type_qry = 'SELECT prime_vehicle_type_id,vehicle_type from cw_vehicle_type where vehicle_category = "'.$vehicle_category.'" and trans_status = 1';
$vehicle_type = $this->db->query("CALL sp_a_run ('SELECT','$vehicle_type_qry')");
$vehicle_type_result = $vehicle_type->result();
$vehicle_type->next_result();
$vehicle_type_ar = "<option value=''>---- Select ----</option>";
foreach($vehicle_type_result as $result){
$id = $result->prime_vehicle_type_id;
$veh_type = $result->vehicle_type;
$vehicle_type_ar .= "<option value='$id'>$veh_type</option>";
}
echo json_encode(array('success' => TRUE, 'vehicle_type_result' => $vehicle_type_ar));
}
public function get_make(){
$vehicle_category = $this->input->post('vehicle_category');
$make_qry = 'SELECT prime_make_id,make from cw_make where category = "'.$vehicle_category.'" and trans_status = 1';
$make = $this->db->query("CALL sp_a_run ('SELECT','$make_qry')");
$make_result = $make->result();
$make->next_result();
$make_ar = "<option value=''>---- Select ----</option>";
foreach($make_result as $result){
$id = $result->prime_make_id;
$make = $result->make;
$make_ar .= "<option value='$id'>$make</option>";
}
echo json_encode(array('success' => TRUE, 'make_result' => $make_ar));
}
public function get_series(){
$vehicle_category = $this->input->post('vehicle_category');
$series_qry = 'SELECT prime_series_id,series_name from cw_series where category = "'.$vehicle_category.'" and trans_status = 1';
$series = $this->db->query("CALL sp_a_run ('SELECT','$series_qry')");
$series_result = $series->result();
$series->next_result();
$series_ar = "<option value=''>---- Select ----</option>";
foreach($series_result as $result){
$id = $result->prime_series_id;
$series_name = $result->series_name;
$series_ar .= "<option value='$id'>$series_name</option>";
}
echo json_encode(array('success' => TRUE, 'series_result' => $series_ar));
}
/* NEHA EDIT START */
public function get_tyre_layout(){
$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
if($prime_vehicle_master_id > 0){
$vehicle_tyre_qry = 'SELECT total_no_of_tyre,position_type,single_count,dual_count,spare_count from cw_vehicle_master_tyre_position where prime_vehicle_master_id = "'.$prime_vehicle_master_id.'" and trans_status = 1';
$rlst = $this->db->query("CALL sp_a_run ('SELECT','$vehicle_tyre_qry')");
$tyre_info = $rlst->row();
$rlst->next_result();
$total_no_of_tyre =(int)$tyre_info->total_no_of_tyre;
$position_type =(int)$tyre_info->position_type;
$single_count =(int)$tyre_info->single_count / 2;
$dual_count =(int)$tyre_info->dual_count / 4;
$spare_count =(int)$tyre_info->spare_count;
$p = 1;
$single_first_array = array();
$single_second_array = array();
for ($e=1; $e<=(int)$tyre_info->single_count; $e++){
if( $e%2==0){
$single_first_array[] = $e;
}else{
$single_second_array[] = $e;
}
}
if($position_type === 1){
$tbl_line = '';
for($i = 0; $i < 2; $i++){
$tbl_line .= "<tr class ='row' style='display:flex;margin-right:10px;margin-left: 10px;margin-bottom: 30px;padding: 10px;'>";
for($j = 0; $j < $single_count; $j++){
if($i === 0){
$t_count = $single_first_array;
}else{
$t_count = $single_second_array;
}
$tbl_line .= "<td class= 'tire' style='text-align:center;padding:10px;'><img class='img_wd' src='./images/tyre_info/tire.gif'><br>$t_count[$j]</td>";
}
$tbl_line .= "</tr>";
}
}else
if($position_type === 2){
$single_line = '';
$dual_line = '';
for($i = 0; $i < 2; $i++){
$single_line .= "<tr style='height: 129px;'>";
for($j = 0; $j < $single_count; $j++){
if($i === 0){
$t_count = $single_first_array;
}else{
$t_count = $single_second_array;
}
$single_line .= "<td style='padding: 10%;'><img class='img_wd ' src='./images/tyre_info/tire.gif'>$t_count[$j]</td>";
$p = $single_first_array[$j];
}
$single_line .= "</tr>";
}
$single_line = "<div class ='col-md-6' style = 'width: 50%;padding: 14px;' ><table><tbody>$single_line</tbody></table></div>";
$double_first_array = array();
$double_second_array = array();
for ($e = $p; $e < (int)$tyre_info->dual_count*$dual_count;){
$double_first_array[] = $e+4;
$double_second_array[] = $e+2;
$e = $e+4;
}
for($k = 0; $k < 2; $k++){
$dual_line .= "<tr style='display:flex;margin-right:10px;margin-left: 10px;margin-bottom: 20px;'>";
for($m = 0; $m < $dual_count; $m++){
if($k === 0){
$double1_count = $double_first_array;
}else{
$double1_count = $double_second_array;
}
$double2_count = $double1_count[$m]-1;
$dual_line .= "<td class= 'tire2'><span style='display: block;text-align:center;margin-bottom: 0px;'>$double1_count[$m]<img class='img_wd' src='./images/tyre_info/tire.gif'/></span><span style=' display: block;text-align: center; '><img class='img_wd' src='./images/tyre_info/tire.gif'>$double2_count</span></td>";
}
$dual_line .= "</tr>";
}
$dual_line = "<div class ='col-md-6'><table style='width: 30%;'><tbody>$dual_line</tbody></table></div>";
$tbl_line = "<h5>Vehicle Tyre Layout</h5><br/><div class ='row'>$single_line $dual_line</div>";
}else{
$tbl_line = '';
$double_first_array = array();
$double_second_array = array();
for ($e=0; $e < (int)$tyre_info->dual_count*$dual_count;){
$double_first_array[] = $e+4;
$double_second_array[] = $e+2;
$e = $e+4;
}
if($dual_count){
for($k = 0; $k < 2; $k++){
$tbl_line .= "<tr class ='row' style='display:flex;margin-right:10px;margin-left: 10px;margin-bottom: 30px;'>";
for($m = 0; $m < $dual_count; $m++){
if($k === 0){
$double1_count = $double_first_array;
}else{
$double1_count = $double_second_array;
}
$double2_count = $double1_count[$m]-1;
$tbl_line .= "<td class= 'tire2'><span style='display: block;text-align: center;margin-bottom: 6px;'>$double1_count[$m]<img class='img_wd' src='./images/tyre_info/tire.gif'></span><span style=' display: block;text-align: center; '><img class='img_wd' src='./images/tyre_info/tire.gif'>$double2_count</span></td>";
}
$tbl_line .= "</tr>";
}
}
if($tbl_line === ''){
$tbl_line = "<div style='margin-left: auto;margin-right: auto;display: block;width:50%;'><img src='./images/tyre_info/vehicle_loading.gif'></div>";
}
$tbl_line = "<h5 class='tab_head'>Vehicle Tyre Layout</h5><br/><table style='width: 20%;'><tbody>$tbl_line</tbody></table>";
}
echo json_encode(array("success" => TRUE,'tbl_line' => $tbl_line));
}else{
echo json_encode(array("success" => FALSE,'tbl_line' => ''));
}
}
/*NEHA EDIT END*/
/*SVK EDIT START - GET TYRE POSITION INFORMATION FORM */
public function get_tyre_position_info(){
$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
$vehicle_category = (int)$this->input->post('vehicle_category');
if($prime_vehicle_master_id > 0){
$vehicle_tyre_qry = 'SELECT total_no_of_tyre,position_type,spare_count from cw_vehicle_master_tyre_position where prime_vehicle_master_id = "'.$prime_vehicle_master_id.'" and trans_status = 1';
$rlst = $this->db->query("CALL sp_a_run ('SELECT','$vehicle_tyre_qry')");
$tyre_info = $rlst->row();
$tyre_count = $rlst->num_rows();
$rlst->next_result();
if((int)$tyre_count > 0){
$count = (int)$tyre_info->total_no_of_tyre;
$spare_count = (int)$tyre_info->spare_count;
$type_position = (int)$tyre_info->position_type;
$check_spare_count = $count - $spare_count;
$li_line = '';
$spare_li_line = '';
$required = array();
$tyre_postion_qry = 'SELECT position,position_type_id,serial_no,tyre_status,brand,tyre_size,tread_pattern_type,casting_type,mm from cw_tyres_position where prime_vehicle_master_id = "'.$prime_vehicle_master_id.'" and trans_status = 1';
$tyre_postion_rlst = $this->db->query("CALL sp_a_run ('SELECT','$tyre_postion_qry')");
$tyre_postion_info = $tyre_postion_rlst->result();
$tyre_postion_rlst->next_result();
$j=0;
$position_type_id = $tyre_postion_info[$j]->position_type_id;
$position_type_id = $tyre_postion_info[$j]->position_type_id;
if((int)$position_type_id !== $type_position){
$this->change_in_vehicle_layout($prime_vehicle_master_id,$position_type_id);
}
$k = 1;
// LIST BRAND
$this->db->select('prime_inventory_brand_id,brand_name');
$this->db->from('cw_inventory_brand');
$this->db->where('cw_inventory_brand.trans_status', 1);
$brand_rslt = $this->db->get()->result();
$brand_list[""] = "--- Select ---";
foreach($brand_rslt as $rlst){
$prime_inventory_brand_id = $rlst->prime_inventory_brand_id;
$brand_name = $rlst->brand_name;
$brand_list[$prime_inventory_brand_id] = $brand_name;
}
// LIST PATTERN
$this->db->select('prime_tyre_pattern_id,tyre_pattern');
$this->db->from('cw_tyre_pattern');
$this->db->where('cw_tyre_pattern.trans_status', 1);
$pattern_rslt = $this->db->get()->result();
$pattern_list[""] = "--- Select ---";
foreach($pattern_rslt as $rlst){
$prime_tyre_pattern_id = $rlst->prime_tyre_pattern_id;
$tyre_pattern = $rlst->tyre_pattern;
$pattern_list[$prime_tyre_pattern_id] = $tyre_pattern;
}
// LIST TYRE SIZE
$this->db->select('prime_tyre_size_id,tyre_size');
$this->db->from('cw_tyre_size');
$this->db->where('cw_tyre_size.trans_status', 1);
$tyre_size_rslt = $this->db->get()->result();
$tyre_size_list[""] = "--- Select ---";
foreach($tyre_size_rslt as $rlst){
$prime_tyre_size_id = $rlst->prime_tyre_size_id;
$tyre_size = $rlst->tyre_size;
$tyre_size_list[$prime_tyre_size_id] = $tyre_size;
}
// LIST CASTING LIST
$this->db->select('prime_tyre_casting_id,casting_name');
$this->db->from('cw_tyre_casting');
$this->db->where('cw_tyre_casting.trans_status', 1);
$casting_rslt = $this->db->get()->result();
$casting_list[""] = "--- Select ---";
foreach($casting_rslt as $rlst){
$prime_tyre_casting_id = $rlst->prime_tyre_casting_id;
$casting_name = $rlst->casting_name;
$casting_list[$prime_tyre_casting_id] = $casting_name;
}
for($i = 1; $i <= $count; $i++,$j++){
$position_type_id = $tyre_postion_info[$j]->position_type_id;
$serial = '';
$status = 0;
//brand,tyre_size,tread_pattern_type,tyre_size,casting_type,mm
if((int)$position_type_id === $type_position){
$serial = $tyre_postion_info[$j]->serial_no;
$status = $tyre_postion_info[$j]->tyre_status;
$brand_val = $tyre_postion_info[$j]->brand;
$tyre_size_val = $tyre_postion_info[$j]->tyre_size;
$tread_pattern_type_val = $tyre_postion_info[$j]->tread_pattern_type;
$casting_type_val = $tyre_postion_info[$j]->casting_type;
$mm_val = $tyre_postion_info[$j]->mm;
}
$position = form_input(array('name'=>"tyre_position_hide[]",'class' => 'form-control input-sm alpha valid','value'=>"$i",'type'=>'hidden'));
$serial_no = form_input(array('name'=>"tyre_serial_no[]",'id'=>"tyre_serial_no_$i",'class' => 'form-control input-sm alpha valid','value'=>"$serial",'placeholder'=>"Serial No",'onchange'=>"check_unique('tyre_serial_no_$i')",'style' => 'text-transform: uppercase;'));
$brand_label = form_label("Brand", "brand_$i", array('class' => 'control-label required'));
$brand_view = form_dropdown(array('name' => 'brand[]','id' => "brand_$i",'class' => 'form-control input-sm select2'), $brand_list,$brand_val);
$tyre_size_label = form_label("Tyre Size", "tyre_size_$i", array('class' => 'control-label required'));
$tyre_size_view = form_dropdown(array('name' => 'tyre_size[]','id' => "tyre_size_$i",'class' => 'form-control input-sm select2','onchange'=>"get_tyre_pattern('tyre_size_$i','tread_pattern_type_$i')"), $tyre_size_list,$tyre_size_val);
$tread_pattern_label = form_label("Tread Pattern Type", "tread_pattern_type_$i", array('class' => 'control-label required'));
$tread_pattern_view = form_dropdown(array('name' => 'tread_pattern_type[]','id' => "tread_pattern_type_$i",'class' => 'form-control input-sm select2'), $pattern_list,$tread_pattern_type_val);
$casting_type_label = form_label("Casting Type", "casting_type_$i", array('class' => 'control-label required'));
$casting_type_view = form_dropdown(array('name' => 'casting_type[]','id' => "casting_type_$i",'class' => 'form-control input-sm select2'), $casting_list,$casting_type_val);
$mm_label = form_label("MM", "mm_$i", array('class' => 'control-label required'));
$mm_view = form_input(array('name' => 'mm[]','id' => "mm_$i",'class' => 'form-control input-sm number', 'value' => "$mm_val"));
if($vehicle_category === 1 && ($i === 1 || $i === 2)){
$tyre_status = form_dropdown(array('name' =>'tyre_position_status[]','id'=>"tyre_position_status_$i",'class' => 'form-control input-sm select2','readonly'=>'readonly'), $this->lang->line('tyre_position_status_info'),1);
}else{
$tyre_status = form_dropdown(array('name' =>'tyre_position_status[]','id'=>"tyre_position_status_$i",'class' => 'form-control input-sm select2'), $this->lang->line('tyre_position_status_info'),$status);
}
if($i <= (int)$check_spare_count){
$tyre_type = "Position $i";
$tyre_type_info = form_input(array('name'=>"tyre_type[]",'class' => 'form-control input-sm alpha valid','value'=>"1",'type'=>'hidden'));
}else{
$tyre_type = "Spare Tyre $k";
$tyre_type_info = form_input(array('name'=>"tyre_type[]",'class' => 'form-control input-sm alpha valid','value'=>"2",'type'=>'hidden'));
$k++;
}
$li_line .= "<tr>
<td colspan ='4' style='background-color: #f2f2f2; color: #274f9c; font-weight: bold; font-size: 16px;border: 1px solid #CCCCCC;'>
<div class='input-group'>
$tyre_type $position $tyre_type_info
</div>
</td>
</tr>
<tr>
<td>
<div class='input-group'>
<label for='tyre_position_status_$i' class='control-label required'>Tyre Status</label>
$tyre_status
</div>
</td>
<td>
<div class='input-group'>
<label for='tyre_serial_no_$i' class='control-label required'>Serial No</label>
$serial_no
</div>
</td>
<td>
<div class='input-group'>
$brand_label
$brand_view
</div>
</td>
<td>
<div class='input-group'>
$tyre_size_label
$tyre_size_view
</div>
</td>
</tr>
<tr>
<td>
<div class='input-group'>
$tread_pattern_label
$tread_pattern_view
</div>
</td>
<td>
<div class='input-group'>
$casting_type_label
$casting_type_view
</div>
</td>
<td>
<div class='input-group'>
$mm_label
$mm_view
</div>
</td>
</tr>";
}
$position_type = form_input(array('name'=>"position_type_id",'id'=>'position_type_id','class' => 'form-control input-sm alpha valid','value'=>"$type_position",'type'=>'hidden'));
$vehicle_master_id = form_input(array('name' => 'vehicle_master_id','id'=>'vehicle_master_id','class' => 'form-control input-sm alpha valid','value'=>$prime_vehicle_master_id,'type'=>'hidden'));
$li_line .= "<tr>
<td colspan='4' style='text-align:center;'>
<a class='btn btn-sm btn-primary' id='add_tyre_info_btn' > Add/Update</a>
</td>
</tr>";
$view_content .= "
<div style='background-color:#FFFFFF;padding:8px;' class='table-responsive'>
$vehicle_master_id
$position_type
<h4 class='block_head'>Tyre Position Information</h4>
<table class='table' id='table_tyre_postion' style=''>
<tbody>
$li_line
</tbody>
</table>
</div>";
echo json_encode(array("success" => TRUE,'view_content' => $view_content));
}else{
echo json_encode(array("success" => False,'view_content' => ''));
}
}
}
//SAVE TIRES POSITION
public function save_tire_info(){
$prime_vehicle_master_id = (int)$this->input->post('vehicle_master_id');
$position_type_id = (int)$this->input->post('position_type_id');
$tyre_position_array = array();
if($prime_vehicle_master_id > 0){
$position_hide = $this->input->post('position_hide[]');
$tyre_type = $this->input->post('tyre_type[]');
$serial_no = $this->input->post('serial_no[]');
$tyre_status = $this->input->post('tyre_status[]');
$brand = $this->input->post('brand[]');
$tyre_size = $this->input->post('tyre_size[]');
$tread_pattern_type = $this->input->post('tread_pattern_type[]');
$casting_type = $this->input->post('casting_type[]');
$mm = $this->input->post('mm[]');
$insert_count = 0;
$update_count = 0;
foreach($position_hide as $key => $value){
if(!($this->check_tyre_already_exists($value,$position_type_id,$prime_vehicle_master_id))){
$tyre_info_data = array(
'prime_vehicle_master_id' => $prime_vehicle_master_id,
'position' => $value,
'position_type_id' => $position_type_id,
'tyre_type' => $tyre_type[$key],
'serial_no' => $serial_no[$key],
'tyre_status' => $tyre_status[$key],
'brand' => $brand[$key],
'tyre_size' => $tyre_size[$key],
'tread_pattern_type' => $tread_pattern_type[$key],
'casting_type' => $casting_type[$key],
'mm' => $mm[$key],
'trans_created_by' => $this->session->userdata('logged_id'),
'trans_created_date' => date("Y-m-d H:i:s")
);
$this->db->insert('cw_tyres_position',$tyre_info_data);
$tyre_position_array[] = $value;
$insert_count = (int)$insert_count + 1;
}else{
$update_data = array();
$update_data['tyre_type'] = $tyre_type[$key];
$update_data['serial_no'] = $serial_no[$key];
$update_data['tyre_status'] = $tyre_status[$key];
$update_data['brand'] = $brand[$key];
$update_data['tyre_size'] = $tyre_size[$key];
$update_data['tread_pattern_type'] = $tread_pattern_type[$key];
$update_data['casting_type'] = $casting_type[$key];
$update_data['mm'] = $mm[$key];
$update_data['trans_updated_by'] = $this->session->userdata('logged_id');
$update_data['trans_updated_date'] = date("Y-m-d H:i:s");
$this->db->where('position',$value);
$this->db->where('prime_vehicle_master_id',$prime_vehicle_master_id);
$this->db->update('cw_tyres_position',$update_data);
$tyre_position_array[] = $value;
$update_count = (int)$update_count + 1;
}
}
$this->update_tyre_position($tyre_position_array,$prime_vehicle_master_id);
echo json_encode(array('success' => TRUE, 'message' => "Processed Successfully",'insert_count'=> $insert_count,'update_count'=> $update_count));
}
}
//DELETE VEHICLE TYRE POSTION LAYOUT
public function update_tyre_position($tyre_position_array,$prime_vehicle_master_id){
$update_data = array();
$update_data['trans_status'] = 0;
$update_data['trans_deleted_by'] = $this->session->userdata('logged_id');
$update_data['trans_deleted_date'] = date("Y-m-d H:i:s");
$this->db->where_not_in('position',$tyre_position_array);
$this->db->where('prime_vehicle_master_id',$prime_vehicle_master_id);
$this->db->update('cw_tyres_position',$update_data);
}
//DELETE VEHICLE TYRE POSTION LAYOUT
public function change_in_vehicle_layout($prime_vehicle_master_id,$position_type_id){
$update_data = array();
$update_data['trans_status'] = 0;
$update_data['trans_deleted_by'] = $this->session->userdata('logged_id');
$update_data['trans_deleted_date'] = date("Y-m-d H:i:s");
$this->db->where('position_type_id',$position_type_id);
$this->db->where('prime_vehicle_master_id',$prime_vehicle_master_id);
$this->db->update('cw_tyres_position',$update_data);
}
//CHECK TYRE POSITION ALREADY EXISTS
public function check_tyre_already_exists($position,$position_type,$prime_vehicle_master_id){
$this->db->from('cw_tyres_position');
$this->db->where('position',(int)$position);
$this->db->where('position_type_id',(int)$position_type);
$this->db->where('prime_vehicle_master_id',(int)$prime_vehicle_master_id);
$this->db->where('trans_status',1);
$count = $this->db->get()->num_rows();
if((int)$count > 0){
return True;
}else{
return False;
}
}
//CHECK SERIAL NUMBER
public function check_serial_number(){
$check_val = $this->input->post('serial_no');
$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
$this->db->select('serial_no');
$this->db->from('cw_tyres_position');
$this->db->where_in('serial_no', $check_val);
$this->db->where('prime_vehicle_master_id !=',(int)$prime_vehicle_master_id);
$this->db->where('trans_status',1);
$tyre_info = $this->db->get();
$count = $tyre_info->num_rows();
if((int)$count > 0){
$result = $tyre_info->result();
foreach($result as $search){
$return_data[] = array_search($search->serial_no,$check_val);
}
echo json_encode(array('success' => FALSE,'message' => "Serial Number is already exists in different vehicle ",'check_info'=>$return_data));
}else{
echo json_encode(array('success' => True,'message' => "Can Process"));
}
}
//GET TYPE PATTERN
public function get_tyre_pattern(){
$tyre_size = $this->input->post('tyre_size');
$this->db->select('prime_tyre_pattern_id,tyre_pattern');
$this->db->from('cw_tyre_pattern');
$this->db->where('cw_tyre_pattern.trans_status', 1);
$this->db->where('tyre_size',$tyre_size);
$pattern_type_result = $this->db->get()->result();
$pattern_type_ar = "<option value=''>---- Select ----</option>";
foreach($pattern_type_result as $result){
$id = $result->prime_tyre_pattern_id;
$tyre_pattern = $result->tyre_pattern;
$pattern_type_ar .= "<option value='$id'>$tyre_pattern</option>";
}
echo json_encode(array('success' => TRUE, 'pattern_type_result' => $pattern_type_ar));
}
//GET VEHICLE LAST POSITION
public function get_vehicle_last_position(){
$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
if($prime_vehicle_master_id){
$vehicle_last_position_info = json_decode($this->tracking_api->get_last_position($prime_vehicle_master_id));
if($vehicle_last_position_info->status){
echo json_encode(array('success' => True,'data'=>$vehicle_last_position_info->data));
}else{
echo json_encode(array('success' => false,'message' => "Vehicle Last Position is not available.!"));
}
}else{
echo json_encode(array('success'=>false,'message'=>'Please Contact Admin..!'));
}
}
/*GET VEHICLE LAST POSITION
public function get_vehicle_last_position(){
$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
if($prime_vehicle_master_id){
$this->db->select('cw_vehicle_trip_info.vehicle_no,entry_location,exit_location,direction,latitude,longitude,speed');
$this->db->from('cw_vehicle_trip_info');
$this->db->join('cw_vehicle_master','cw_vehicle_master.register_no = cw_vehicle_trip_info.vehicle_no');
$this->db->where('cw_vehicle_master.trans_status', 1);
$this->db->where('cw_vehicle_trip_info.trans_status', 1);
$this->db->where('cw_vehicle_master.prime_vehicle_master_id',$prime_vehicle_master_id);
$vehicle_result = $this->db->get()->result();
$vehicle_last_position_info = json_decode($this->tracking_api->get_last_position($prime_vehicle_master_id));
if($vehicle_last_position_info->status){
echo json_encode(array('success' => True,'data'=>$vehicle_last_position_info->data));
}else{
echo json_encode(array('success' => false,'message' => "Vehicle Last Position is not available.!"));
}
}else{
echo json_encode(array('success'=>false,'message'=>'Please Contact Admin..!'));
}
}*/
/*SVK EDIT END*/
}
?>