MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/ntc_cafsinfotech_in_bk/application/controllers/Tyre_survey.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Base_controller.php");
class Tyre_survey extends Base_controller{
	
	public function __construct(){
		parent::__construct('tyre_survey');
		if(!$this->Appconfig->isAppvalid()){
			redirect('config');
		}
		$this->collect_base_info();
	}
	
	// LOAD PAGE WITH TABLE DATA
	public function index(){
		// LIST VEHICLE NUMBER
		$this->db->select('prime_vehicle_master_id,register_no');
		$this->db->from('cw_vehicle_master');
		$this->db->where('cw_vehicle_master.trans_status', 1);
		$vehicle_num_rslt = $this->db->get()->result();
		foreach($vehicle_num_rslt as $rslt){
			$prime_vehicle_master_id  = $rslt->prime_vehicle_master_id;
			$register_no              = $rslt->register_no;
			$vehicle_num_list[$prime_vehicle_master_id] = $register_no;
		}
		$data['vehicle_num_list'] = $vehicle_num_list;
		$data['table_headers']= $this->xss_clean(get_tyre_survey_headers());
		$this->load->view("$this->control_name/manage",$data);
	}
	
	//LOAD MODEL PAGE VIEW WITH DATA
	public function view($prime_tyre_survey_id = -1){
		$this->db->from('tyre_survey');
		$this->db->join('vehicle_master', 'vehicle_master.prime_vehicle_master_id = tyre_survey.vehicle_no','INNER');
		$this->db->where('tyre_survey.prime_tyre_survey_id', $prime_tyre_survey_id);
		$rslt = $this->db->get()->result();
		$vehicle_no = $rslt[0]->vehicle_no;
		$data['tyre_survey']        = $rslt;
		
		$this->db->select('cw_vehicle_master_tyre_position.prime_vehicle_master_id as vehicle_id,cw_vehicle_master_tyre_position.total_no_of_tyre,cw_vehicle_master_tyre_position.spare_count');
		$this->db->from('cw_vehicle_master_tyre_position');
		$this->db->where('cw_vehicle_master_tyre_position.prime_vehicle_master_id', (int)$vehicle_no);
		$this->db->where('cw_vehicle_master_tyre_position.trans_status', 1);
		$survey_list_rslt  = $this->db->get()->result();
		$total_no_of_tyre  = (int)$survey_list_rslt[0]->total_no_of_tyre;
		//
		$spare_count       = (int)$survey_list_rslt[0]->spare_count;
		//$positions         = $total_no_of_tyre - $spare_count;
		$survey_list_positions[""] = "--- Select ---";
		for($i=1; $i<=$total_no_of_tyre; $i++){
		$survey_list_positions[$i] = "Position - ".$i;
		}
		$data['survey_list_positions'] = $survey_list_positions;
		$tyre_info                	   = json_decode($this->get_tyre_position_info($vehicle_no,$prime_tyre_survey_id),TRUE);
		$data['tyre_survey_line'] 	   = $tyre_info['view_content'];
		
		// LIST VEHICLE NUMBER
		$this->db->select('prime_vehicle_master_id,register_no');
		$this->db->from('cw_vehicle_master');
		$this->db->where('cw_vehicle_master.trans_status', 1);
		$vehicle_type_rslt = $this->db->get()->result();
		$vehicle_type_list[""] = "--- Select ---";
		foreach($vehicle_type_rslt as $cat_rlst){
			$prime_vehicle_master_id  = $cat_rlst->prime_vehicle_master_id;
			$register_no              = $cat_rlst->register_no;
			$vehicle_type_list[$prime_vehicle_master_id] = $register_no;
		}
		$data['vehicle_type_list'] = $vehicle_type_list;
		
		$this->load->view("$this->control_name/form",$data);
	}
	
	//LOAD PAGE TABLE VIEW WITH DATA BASED ON SEARCH FILTERS
	public function search(){
		$search            = $this->input->get('search');
		$limit             = $this->input->get('limit');
		$offset            = $this->input->get('offset');
		$sort              = $this->input->get('sort');
		$order             = $this->input->get('order');
		$filters           = $this->input->get('filters');	
		$start_date        = str_replace("/","-",$this->input->get('start_date'));
		$end_date          = str_replace("/","-",$this->input->get('end_date'));
		$from_date         = date('Y-m-d',strtotime($start_date));
		$to_date           = date('Y-m-d',strtotime($end_date));
		$this->db->select('prime_tyre_survey_id,name,date,damaged_by,driver,damaged_date,damaged_pic,material_cost,damaged_cost,received_cost,balance,cost_status,received_date,damaged_remarks,cw_vehicle_master.register_no as vehicle_no,num_rows,cw_vehicle_master_tyre_position.prime_vehicle_master_id as vehicle_id,cw_vehicle_master_tyre_position.total_no_of_tyre,cw_vehicle_master_tyre_position.spare_count');
		$this->db->from('cw_tyre_survey');
		$this->db->join('cw_vehicle_master_tyre_position','cw_vehicle_master_tyre_position.prime_vehicle_master_id = cw_tyre_survey.vehicle_no');
		$this->db->join('cw_vehicle_master', 'cw_vehicle_master.prime_vehicle_master_id = cw_tyre_survey.vehicle_no','INNER');
		$this->db->where('cw_tyre_survey.trans_status', 1);	
		$this->db->where('cw_vehicle_master.trans_status', 1);	
		$this->db->where('cw_vehicle_master_tyre_position.trans_status', 1);
		if($search){
			$this->db->group_start();
				$this->db->like('prime_tyre_survey_id',$search);
				$this->db->or_like('name',$search);
				$this->db->or_like('vehicle_no',$search);
			$this->db->group_end();
		}
		//FILTERS
		$this->db->group_start();
		if($filters[0] > 0){
			$this->db->where_in('cw_tyre_survey.vehicle_no', $filters);
		}
		$this->db->where('DATE_FORMAT(date, "%Y-%m-%d") BETWEEN '. $this->db->escape($from_date).' AND '.$this->db->escape($to_date));
		$this->db->group_end();
		
		$this->db->order_by($sort,$order);
		$tyre_survey    = $this->db->get();
		$survey_rslt    = $tyre_survey->result();
		$num_rows       = $tyre_survey->num_rows();
		$datarows       = array();
		foreach($survey_rslt as $survey){
			$datarows[] = get_tyre_survey_datarows($survey,$this);
		}
		echo json_encode(array('total'=>$num_rows,'rows'=>$datarows));
	}
	
	//SAVE MODEL DATA TO DATA BASE
	public function save(){
		$prime_tyre_survey_id = (int)$this->input->post('prime_survey_id');
		$vehicle_no           = (int)$this->input->post('vehicle_no');
		$tyre_survey_data = array(
			'name'            => $this->input->post('name'),
			'date'            => date('Y-m-d',strtotime($this->input->post('date'))),
			'vehicle_no'      => $vehicle_no,
			'damaged_by'      => $this->input->post('damaged_by'),
			'driver'          => $this->input->post('driver'),
			'damaged_date'    => date('Y-m-d',strtotime($this->input->post('damaged_date'))),
			'damaged_pic'     => $this->input->post('damaged_pic'),
			'km'              => $this->input->post('km'),
			'material_cost'   => $this->input->post('material_cost'),
			'damaged_cost'    => $this->input->post('damaged_cost'),
			'received_cost'   => $this->input->post('received_cost'),
			'balance'         => $this->input->post('balance'),
			'cost_status'     => $this->input->post('cost_status'),
			'received_date'   => date('Y-m-d',strtotime($this->input->post('received_date'))),
			'damaged_remarks' => $this->input->post('damaged_remarks')
		);
		if((int)$prime_tyre_survey_id === 0){
			if(!$this->check_vehicle_already_exists($vehicle_no)){
				$tyre_survey_data['trans_created_by']   = $this->session->userdata('logged_id');
				$tyre_survey_data['trans_created_date'] = date("Y-m-d H:i:s");
				if($this->db->insert('cw_tyre_survey',$tyre_survey_data)){
					$prime_tyre_survey_id = $this->db->insert_id();
					$tyre_info            = json_decode($this->get_tyre_position_info($vehicle_no,$prime_tyre_survey_id),TRUE);
					echo json_encode(array('success' => TRUE, 'message' => "Successfully Inserted",'prime_tyre_survey_id' => $prime_tyre_survey_id,'vehicle_no' => $vehicle_no,'view_content' => $tyre_info['view_content']));
				}else{
					echo json_encode(array('success' => FALSE, 'message' => "Insertion failed, Please Try Again"));
				}
			}else{
				echo json_encode(array('success' => FALSE, 'message' => "Survey already in process for this vehicle"));
			}
		}else
		if((int)$prime_tyre_survey_id > 0){
				$tyre_survey_data['trans_updated_by']   = $this->session->userdata('logged_id');
				$tyre_survey_data['trans_updated_date'] = date("Y-m-d H:i:s");
				$this->db->where('prime_tyre_survey_id',$prime_tyre_survey_id);
				if($this->db->update('cw_tyre_survey',$tyre_survey_data)){
					$tyre_info = json_decode($this->get_tyre_position_info($vehicle_no,$prime_tyre_survey_id),TRUE);
					echo json_encode(array('success' => TRUE, 'message' => "Successfully Updated",'prime_tyre_survey_id'=> $prime_tyre_survey_id,'vehicle_no' => $vehicle_no,'view_content' => $tyre_info['view_content']));
				}else{
					echo json_encode(array('success' => FALSE, 'message' => "Update failed, Please Try Again",'prime_tyre_survey_id'=> $prime_tyre_survey_id,'vehicle_no' => $vehicle_no,'view_content' => $tyre_info['view_content']));
				}
		}
	}
	
	//UPDATE DELETE INFORMATION IN REMOVING AND FITTING
	public function check_and_delete_survey($prime_tyre_survey_list_information_id){
		$this->db->from('cw_tyre_survey_list_information');
		$this->db->join('cw_tyre_survey','cw_tyre_survey.prime_tyre_survey_id = cw_tyre_survey_list_information.prime_tyre_survey_id','inner');
		$this->db->where('prime_tyre_survey_list_information_id',(int)$prime_tyre_survey_list_information_id);
		$this->db->where('cw_tyre_survey_list_information.trans_status', 1);
		$delete_info   = $this->db->get()->row();
		$vehicle_no    = $delete_info->vehicle_no;
		$tyre_position = $delete_info->tyre_position;
		
		$this->db->from('cw_removing_fitting');
		$this->db->where('vehicle_no',(int)$vehicle_no);
		$this->db->where('tyre_position',(int)$tyre_position);
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) === 0){
			return true;
		}else{
			$this->db->from('cw_removing_fitting');
			$this->db->where('vehicle_no',(int)$vehicle_no);
			$this->db->where('tyre_position',(int)$tyre_position);
			$this->db->where('trans_status', 1);
			$this->db->where('status ', 2);
			if((int)($this->db->get()->num_rows()) === 0){
				$update_info                           = array();
				$update_info['trans_status']		   = 0;
				$update_info['trans_deleted_by']       = $this->session->userdata('logged_id');
				$update_info['trans_deleted_date']     = date("Y-m-d H:i:s");
				$this->db->where('vehicle_no',$vehicle_no);
				$this->db->where('tyre_position',$tyre_position);
				$this->db->update('cw_removing_fitting',$update_info);
				return true;
			}else{
				return false;
			}
		}		
	}
	
	 //CHECK TYRE SURVEY EXISTS
	public function check_tyre_survey($prime_tyre_survey_id){
		$this->db->from('cw_tyre_survey');
		$this->db->where('prime_tyre_survey_id',(int)$prime_tyre_survey_id);
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) === 1){
			return TRUE;
		}else{ 
			return FALSE;
		}
	}
	
	//CHECK SURVEY EXISTS IN INFORMATION DETAILS
	public function check_survey_info_exist($prime_tyre_survey_list_information_id){
		$this->db->from('tyre_survey_list_information');
		$this->db->where('prime_tyre_survey_list_information_id',(int)$prime_tyre_survey_list_information_id);
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) === 1){
			return TRUE;
		}else{ 
			return FALSE;
		}
	}
	
	// GET TOTAL SURVEY COMPLETED
	function get_num_rows($prime_tyre_survey_id){
		$this->db->from('cw_tyre_survey_list_information');
		$this->db->where('cw_tyre_survey_list_information.prime_tyre_survey_id', $prime_tyre_survey_id);
		$this->db->where('cw_tyre_survey_list_information.trans_status', 1);
		$tyre_survey    = $this->db->get();
		$num_rows       = (int)$tyre_survey->num_rows();
		if($num_rows > 0){
			$this->db->where('prime_tyre_survey_id', $prime_tyre_survey_id);
			$this->db->update('cw_tyre_survey',array('num_rows'     => $num_rows));
		}
	}
	
	//CHECK TYRE POSITION ALREADY EXISTS
	public function check_position_already_exist($prime_tyre_survey_id,$tyre_position,$prime_tyre_survey_list_information_id = -1){
		$this->db->from('cw_tyre_survey_list_information');
		$this->db->where('cw_tyre_survey_list_information.prime_tyre_survey_id', $prime_tyre_survey_id);
		$this->db->where('cw_tyre_survey_list_information.trans_status', 1);
		$this->db->where('tyre_position',(int)$tyre_position);
		if((int)$prime_tyre_survey_list_information_id > 0){
			$this->db->where('prime_tyre_survey_list_information_id !=',(int)$prime_tyre_survey_list_information_id);
		}
		if((int)($this->db->get()->num_rows()) > 0){
			return TRUE;
		}else{ 
			return FALSE;
		}
	}
	
	//CHECKING VEHICLE ALREADY EXISTS
	public function check_vehicle_already_exists($vehicle_no = -1){
		$this->db->from('cw_tyre_survey');
		if((int)$vehicle_no > 0){
			$this->db->where('vehicle_no',(int)$vehicle_no);
		}
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) > 0){
			return TRUE;
		}else{ 
			return FALSE;
		}
	}
	
	//GET SERIAL NUMBER
	public function get_serial_no(){
		$prime_tyre_survey_id    = $this->input->post('prime_tyre_survey_id');
		$tyre_position           = $this->input->post('tyre_position');
		$vehicle_no              = $this->input->post('vehicle_no');
		$this->db->select('cw_tyres_position.serial_no,cw_tyres_position.prime_vehicle_master_id');
		$this->db->from('cw_tyre_survey');
		$this->db->join('cw_tyres_position','cw_tyres_position.prime_vehicle_master_id = cw_tyre_survey.vehicle_no','inner');
		$this->db->where('cw_tyres_position.prime_vehicle_master_id',(int)$vehicle_no);
		$this->db->where('cw_tyre_survey.prime_tyre_survey_id',(int)$prime_tyre_survey_id);
		$this->db->where('cw_tyres_position.position',(int)$tyre_position);
		$this->db->where('cw_tyre_survey.trans_status', 1);
		$this->db->where('cw_tyres_position.trans_status', 1);
		$Serial_rslt    = $this->db->get()->result();
		$serial_no      = $Serial_rslt[0]->serial_no;
		echo json_encode(array("success" => TRUE,'serial_no' => $serial_no));
	}
	
	//CHECKING VEHICLE ALREADY EXISTS IN REMOVING AND FITTING
	public function check_vehicle_already_exists_in_removing_fitting($prime_vehicle_id,$tyre_position){
		$this->db->from('cw_removing_fitting');
		$this->db->where('vehicle_no',(int)$prime_vehicle_id);
		$this->db->where('tyre_position',(int)$tyre_position);
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) > 0){
			return TRUE;
		}else{ 
			return FALSE;
		}
	}
	
	//CHECK REMPOVING AND FITTING STATUS
	public function check_status_rm_fit($prime_vehicle_id,$tyre_position){
		$this->db->from('cw_removing_fitting');
		$this->db->where('vehicle_no',(int)$prime_vehicle_id);
		$this->db->where('tyre_position',(int)$tyre_position);
		$this->db->where('trans_status', 1);
		$this->db->where('status', 2);
		if((int)($this->db->get()->num_rows()) === 0){
			return false;
		}else{
			return true;
		}
	}
	
	//UPDATE STATUS TO DELETE FOR UPLOAD FILES or DOCUMENTS
	public function remove_file(){
		$prime_id_val              = $this->input->post('prime_tyre_survey_id_val');
		$input_name                = $this->input->post('damaged_pic');
		$table_name = '';
			$table_name = 'cw_tyre_survey';
		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 prime_tyre_survey_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"));
		}
	}
	
	//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));
	}	
	
	/*SVK EDIT START - GET TYRE POSITION INFORMATION FORM */
	public function get_tyre_position_info($prime_vehicle_master_id = -1,$prime_tyre_survey_id = -1){
		if($this->input->post('prime_vehicle_master_id')){
			$prime_vehicle_master_id = (int)$this->input->post('prime_vehicle_master_id');
		}
		if($this->input->post('prime_tyre_survey_id')){
			$prime_tyre_survey_id = (int)$this->input->post('prime_tyre_survey_id');
		}
		if($prime_vehicle_master_id > 0 && $prime_tyre_survey_id > 0){
			$vehicle_tyre_qry        = 'SELECT position,serial_no,tyre_type,brand,tyre_size,tread_pattern_type,tyre_size,casting_type,mm from cw_tyres_position where prime_vehicle_master_id = "'.$prime_vehicle_master_id.'" and trans_status = 1 order by position';
			$rlst                    = $this->db->query("CALL sp_a_run ('SELECT','$vehicle_tyre_qry')");
			$tyre_info               = $rlst->result();
			$tyre_count              = $rlst->num_rows();
			$rlst->next_result();
			if((int)$tyre_count > 0){
				$this->db->from('cw_tyre_survey_list_information');
				$this->db->where('prime_tyre_survey_id', $prime_tyre_survey_id);
				$this->db->where('trans_status', 1);
				$this->db->order_by("tyre_position", "asc");
				$save_data = $this->db->get()->result();
				$tr_line           = '';
				$k = 1;
				$survey_type     = array('' => '--select--','1' => 'Ntc tyre','2' => 'Att tyre');
				$status_list     = array('' => '--select--','1' => 'Recap','2' => 'Repair','3' => 'Claim','4' => 'Permanently Remove');
				
				// 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;
				}
				
				// LIST REPAIR TYPES
				$this->db->select('prime_tyre_repair_type_id,repair_type');
				$this->db->from('cw_tyre_repair_type');
				$this->db->where('cw_tyre_repair_type.trans_status', 1);
				$repair_rslt = $this->db->get()->result();
				$repair_list[""] = "--- Select ---";
				foreach($repair_rslt as $rlst){
					$prime_tyre_repair_type_id   = $rlst->prime_tyre_repair_type_id;
					$repair_type                 = $rlst->repair_type;
					$repair_list[$prime_tyre_repair_type_id] = $repair_type;
				}
				$h = 0;
				foreach($tyre_info as $tyre_rlst){
					$prime_tyre_survey_list_information_id = 0;
					$survey_type_val        		  	   = 0;
					$serial_number_val      		  	   = 0;
					$brand_val              		  	   = 0;
					$tread_pattern_type_val			  	   = 0;
					$tyre_size_val	        		  	   = 0;
					$casting_type_val	    		  	   = 0;
					$mm_val	                		  	   = 0;
					$valve_caps_val	        		  	   = 0;
					$valve_extension_val    		  	   = 0;
					$comments_val    	    		  	   = 0;
					$status_val	            		  	   = 0;
					$survey_remarks_val	    		  	   = 0;
					$torque_val	    		  	           = 0;
					$actual_pressure_val	         	   = 0;
					$rec_pressure_val	    		  	   = 0;
					$repair_type_val	    		  	   = 0;
					$check_tyre_position                   = (int)$save_data[$h]->tyre_position;
					$position_id                           = (int)$tyre_rlst->position;
					$serial                                = $tyre_rlst->serial_no;
					$tyre_type_val                         = (int)$tyre_rlst->tyre_type;
					$brand_val                             = (int)$tyre_rlst->brand;
					$tread_pattern_type_val                = (int)$tyre_rlst->tread_pattern_type;
					$tyre_size_val                         = (int)$tyre_rlst->tyre_size;
					$casting_type_val                      = (int)$tyre_rlst->casting_type;
					$mm_val                                = $tyre_rlst->mm;
					if($tyre_type_val === 1){
						$tyre_type = "Position $position_id";
					}else{
						$tyre_type = "Spare Tyre $k";
						$k++;
					}
					if($check_tyre_position === (int)$position_id){
						$prime_tyre_survey_list_information_id     = $save_data[$h]->prime_tyre_survey_list_information_id;
						$survey_type_val        				   = $save_data[$h]->survey_type;
						if($save_data[$h]->mm){
							$mm_val	                			   = $save_data[$h]->mm;
						}
						$valve_caps_val	        				   = $save_data[$h]->valve_caps;
						$valve_extension_val    				   = $save_data[$h]->valve_extension;
						$comments_val    	    				   = $save_data[$h]->comments;
						$status_val	            				   = $save_data[$h]->status;
						$survey_remarks_val	    				   = $save_data[$h]->survey_remarks;
						$repair_type_val	    				   = $save_data[$h]->repair_type;
						$torque_val	    		    			   = $save_data[$h]->torque;
						$actual_pressure_val	    			   = $save_data[$h]->actual_pressure;
						$rec_pressure_val		    			   = $save_data[$h]->rec_pressure;
					}
					$prime_tyre_survey_list_information_id = form_input(array('name'=>"prime_tyre_survey_list_information_id[]",'class' => 'form-control input-sm alpha valid','value'=>"$prime_tyre_survey_list_information_id",'type'=>'hidden'));
					$tyre_type_info = form_input(array('name'=>"tyre_type[]",'class' => 'form-control input-sm alpha valid','value'=>"$tyre_type_val",'type'=>'hidden'));
					$position       = form_input(array('name'=>"tyre_position_hide[]",'class' => 'form-control input-sm alpha valid','value'=>"$position_id",'type'=>'hidden'));
					$position       = "$tyre_type $position $prime_tyre_survey_list_information_id $tyre_type_info";
					
					$serial_no      = form_input(array('name'=>"tyre_serial_no[]",'id'=>"tyre_serial_no_$position_id",'class' => 'form-control input-sm alpha valid','value'=>"$serial",'placeholder'=>"Serial No",'readonly'=>TRUE));
					$serial_no      = "<div class='form-group'>
											<label for='tyre_serial_no_$position_id' class='control-label required'>Serial No</label>
											$serial_no
										</div>";
					$survey_type_label = form_label("Survey Type", "survey_type_$position_id", array('class' => 'control-label required'));
					$survey_type_view  = form_dropdown(array('name' => 'survey_type[]','id' => "survey_type_$position_id",'class' => 'form-control input-sm select2','onchange'=>"check_survey_type('survey_type_$position_id','torque_$position_id','actual_pressure_$position_id')"), $survey_type,$survey_type_val);
					
					$survey_type_view  = "
										<div class='form-group'>
											$survey_type_label
											$survey_type_view
										</div>";
					
					$brand_label       =  form_label("Brand", "brand_$position_id", array('class' => 'control-label required'));	
					$brand_view        =  form_dropdown(array('name' => 'brand[]','id' => "brand_$position_id",'class' => 'form-control input-sm select2'), $brand_list,$brand_val);
					$brand_view        = "<div class='form-group'>
											$brand_label
											$brand_view
										  </div>";
					$tyre_size_label   =  form_label("Tyre Size", "tyre_size_$position_id", array('class' => 'control-label required'));	
					$tyre_size_view    =  form_dropdown(array('name' => 'tyre_size[]','id' => "tyre_size_$position_id",'class' => 'form-control input-sm select2','onchange'=>"get_tyre_pattern('tyre_size_$position_id','tread_pattern_type_$position_id')"), $tyre_size_list,$tyre_size_val);
					$tyre_size_view    = "<div class='form-group'>
											$tyre_size_label
											$tyre_size_view
										   </div>";
										   
					$tread_pattern_label =  form_label("Tread Pattern Type", "tread_pattern_type_$position_id", array('class' => 'control-label required'));	
					$tread_pattern_view  =  form_dropdown(array('name' => 'tread_pattern_type[]','id' => "tread_pattern_type_$position_id",'class' => 'form-control input-sm select2'), $pattern_list,$tread_pattern_type_val);
					$tread_pattern_view  = "<div class='form-group'>
												$tread_pattern_label
												$tread_pattern_view
											 </div>";
											 
					
					$casting_type_label  =  form_label("Casting Type", "casting_type_$position_id", array('class' => 'control-label required'));	
					$casting_type_view   = form_dropdown(array('name' => 'casting_type[]','id' => "casting_type_$position_id",'class' => 'form-control input-sm select2'), $casting_list,$casting_type_val);
					$casting_type_view  = "<div class='form-group'>
												$casting_type_label
												$casting_type_view
											 </div>";		 
					
					$mm_label           =  form_label("MM", "mm_$position_id", array('class' => 'control-label required'));
					$mm_view            =  form_input(array('name' => 'mm[]','id' => "mm_$position_id",'class' => 'form-control input-sm number', 'value' => "$mm_val"));
					$mm_view            = "<div class='form-group'>
												$mm_label
												$mm_view
											 </div>";
					
					$valve_caps_label =  form_label("Valve Caps", "valve_caps_$position_id", array('class' => 'control-label required'));
					$valve_caps_view  =  form_dropdown(array('name' => 'valve_caps[]','id' => "valve_caps_$position_id",'class' => 'form-control input-sm select2','onchange'=>"check_valve('valve_caps_$position_id','valve_extension_$position_id','comments_$position_id')"),$this->lang->line('yes_no'),$valve_caps_val);
					$valve_caps_view    = "<div class='form-group'>
												$valve_caps_label
												$valve_caps_view
											 </div>";
												
					$valve_extension_label   =  form_label("Valve Extension", "valve_extension_$position_id", array('class' => 'control-label required'));
					$valve_extension_view    =  form_dropdown(array('name' => 'valve_extension[]','id' => "valve_extension_$position_id",'class' => 'form-control input-sm select2','onchange'=>"check_valve('valve_caps_$position_id','valve_extension_$position_id','comments_$position_id')"), $this->lang->line('yes_no'),$valve_extension_val);
					$valve_extension_view    = "<div class='form-group'>
													$valve_extension_label
													$valve_extension_view
												</div>";
					
					
					$status_label =  form_label("Survey Status", "status_$position_id", array('class' => 'control-label required'));
					$status_view  =  form_dropdown(array('name' => 'status[]','id' => "status_$position_id",'class' => 'form-control input-sm select2','onchange'=>"check_survey_status('status_$position_id','repair_type_$position_id')"),$status_list,$status_val);
					$status_view    = "<div class='form-group'>
										$status_label
										$status_view
									   </div>";
					
					$comments_label =  form_label("Comments", "comments_$position_id", array('class' => 'control-label'));
					if((int)$valve_extension_val === 2 || (int)$valve_caps_vals === 2){
						$comments_style = "";
					}else{
						$comments_style = "display:none;";
					}
					$comments_view    = "<div class='form-group'  style='$comments_style'>
											$comments_label
											<textarea name='comments[]' id = 'comments_$position_id' rows='1' cols='50' class = 'form-control input-sm alpha' value='$comments_val'></textarea>
									   </div>";
				
					$repair_type_label =  form_label("Repair type", "repair_type_$position_id", array('class' => 'control-label required'));	
					$repair_type_view  =  form_dropdown(array('name' => 'repair_type[]','id' => "repair_type_$position_id",'class' => 'form-control input-sm select2'), $repair_list,$repair_type_val);
					if($repair_type_val){
						$repair_style = "";
					}else{
						$repair_style = "display:none;";
					}
					$repair_type_view  = "<div class='form-group' style='$repair_style'>
											$repair_type_label
											$repair_type_view
										  </div>";
				
					$survey_remarks_label =  form_label("Remarks", "survey_remarks_$position_id", array('class' => 'control-label'));
					$survey_remarks_view  = "<div class='form-group'>
												$survey_remarks_label
												<textarea name='survey_remarks[]' id = 'survey_remarks_$position_id' rows='1' cols='50' class = 'form-control input-sm alpha' value='$survey_remarks_val'></textarea>
											  </div>";
											  
					if((int)$survey_type_val === 1)	{
						$torque_style = "";
						$rec_label_name = "Completed Pressure";
					}else{
						$torque_style = "Display:none;";
						$rec_label_name = "Actual Pressure";
					}				
					$torque_label   =  form_label("Torque", "torque_$position_id", array('class' => 'control-label required'));
					$torque_view    =  form_dropdown(array('name' => 'torque[]','id' => "torque_$position_id",'class' => 'form-control input-sm select2'), $this->lang->line('yes_no'),$torque_val);
					$torque_view    = "<div class='form-group' style='$torque_style'>
											$torque_label
											$torque_view
										</div>";
										
					$rec_pressure_label           =  form_label("Rectified Pressure", "rec_pressure_$position_id", array('class' => 'control-label required'));
					$rec_pressure_view            =  form_input(array('name' => 'rec_pressure[]','id' => "rec_pressure_$position_id",'class' => 'form-control input-sm number', 'value' => "$rec_pressure_val"));
					$rec_pressure_view            = "<div class='form-group'>
														$rec_pressure_label
														$rec_pressure_view
													 </div>";
										
					$actual_pressure_label           =  form_label("$rec_label_name", "actual_pressure_$position_id", array('class' => 'control-label required'));
					$actual_pressure_view            =  form_input(array('name' => 'actual_pressure[]','id' => "actual_pressure_$position_id",'class' => 'form-control input-sm number', 'value' => "$actual_pressure_val"));
					$actual_pressure_view            = "<div class='form-group'>
														$actual_pressure_label
														$actual_pressure_view
													 </div>";
												 
					$tr_line  .= "
								<tr>
									<td colspan ='6' style='background-color: #f2f2f2; color: #274f9c; font-weight: bold; font-size: 16px;border: 1px solid #CCCCCC;'>$position</td>
								</tr>
								<tr>
									<td>$serial_no</td>
									<td>$survey_type_view</td>
									<td>$brand_view</td>
									<td>$tyre_size_view</td>
									<td>$tread_pattern_view</td>
									<td>$casting_type_view</td>
								</tr>
								<tr>
									<td>$mm_view</td>
									<td>$valve_caps_view</td>
									<td>$valve_extension_view</td>
									<td>$comments_view</td>
									<td>$status_view</td>
									<td>$repair_type_view</td>
								</tr>
								<tr>
									<td conspan='2'>$torque_view</td>
									<td>$rec_pressure_view</td>
									<td>$actual_pressure_view</td>
									<td conspan='2'>$survey_remarks_view</td>
								</tr>";
								$h++;
				}
				$prime_tyre_survey_view = form_input( array("name"=>'prime_tyre_survey_id', "id"=>'prime_tyre_survey_id',"value"=>$prime_tyre_survey_id,"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'));
				if($tr_line){
					$tr_line .= "<tr>
									<td colspan ='7' 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;'>
								$prime_tyre_survey_view
								$vehicle_master_id
								<table class='table' >
									<tbody>
										$tr_line
									</tbody>
								</table>
						 </div>";
				return json_encode(array("success" => TRUE,'view_content' => $view_content));	
			}else{
				return json_encode(array("success" => False,'view_content' => ''));	
			}
		}
	}
	
	public function save_tyre_survey_info(){
		$prime_tyre_survey_id     = (int)$this->input->post('prime_tyre_survey_id');
		$prime_vehicle_id          = (int)$this->input->post('vehicle_master_id');
		if($prime_tyre_survey_id > 0 && $prime_vehicle_id > 0){
			$tyre_survey_list_id      = $this->input->post('prime_tyre_survey_list_information_id');
			$position_hide            = $this->input->post('position_hide');
			$tyre_type                = $this->input->post('tyre_type');
			$survey_type              = $this->input->post('survey_type');
			$serial_no                = $this->input->post('serial_no');
			$brand                    = $this->input->post('brand');
			$torque                   = $this->input->post('torque');
			$actual_pressure          = $this->input->post('actual_pressure');
			$rec_pressure             = $this->input->post('rec_pressure');
			$tyre_size                = $this->input->post('tyre_size');
			$casting_type             = $this->input->post('casting_type');
			$tread_pattern_type       = $this->input->post('tread_pattern_type');
			$mm                       = $this->input->post('mm');
			$valve_caps               = $this->input->post('valve_caps');
			$valve_extension          = $this->input->post('valve_extension');
			$comments                 = $this->input->post('comments');
			$status             	  = $this->input->post('status');
			$repair_type              = $this->input->post('repair_type');
			$survey_remarks           = $this->input->post('survey_remarks');
			$k              = 1;
			$insert_tr_line = "";
			$update_tr_line = "";
			$error_tr_line  = "";
			$insert_count   = 0;
			$update_count   = 0;
			$error_count    = 0;
			foreach($position_hide as $key => $value){
				$survey_info_data = array(
									 'survey_type'             => $survey_type[$key],
									 'tyre_position'           => $position_hide[$key],
									 'brand'                   => $brand[$key],
									 'torque'                  => $torque[$key],
									 'actual_pressure'         => $actual_pressure[$key],
									 'rec_pressure'            => $rec_pressure[$key],
									 'tyre_size'               => $tyre_size[$key],
									 'casting_type'            => $casting_type[$key],
									 'serial_number'           => $serial_no[$key],
									 'tread_pattern_type'      => $tread_pattern_type[$key],
									 'mm'                      => $mm[$key],
									 'valve_caps'              => $valve_caps[$key],
									 'valve_extension'         => $valve_extension[$key],
									 'comments'                => $comments[$key],
									 'repair_type'             => $repair_type[$key],
									 'survey_remarks'          => $survey_remarks[$key],
									 'status'                  => $status[$key],
									 'prime_tyre_survey_id'    => $prime_tyre_survey_id
									 );
				if((int)$tyre_type[$key] === 1){
					$tyre_type_info = "Position $position_hide[$key]";
				}else{
					$tyre_type_info = "Spare Tyre $k";
					$k++;
				}
				if($this->check_tyre_survey($prime_tyre_survey_id,TRUE)){
					if((int)$tyre_survey_list_id[$key] === 0){
						if(!($this->check_position_already_exist($prime_tyre_survey_id,$position_hide[$key]))){
							if($this->update_tyre_info($survey_info_data,$position_hide[$key],$prime_vehicle_id,$status[$key])){
								$survey_info_data['trans_created_by']   = $this->session->userdata('logged_id');
								$survey_info_data['trans_created_date'] = date("Y-m-d H:i:s");
								if($this->db->insert('tyre_survey_list_information',$survey_info_data)){
									$prime_tyre_survey_list_information_id = $this->db->insert_id();
									$this->get_num_rows($prime_tyre_survey_id);
									$insert_tr_line .= "<tr><td>$tyre_type_info</td><td>Inserted Successfully</td></tr>";
									$insert_count = (int)$insert_count + 1;
								}else{
									$error_tr_line .= "<tr><td>$tyre_type_info</td><td >Insertion Failed</td></tr>";
									$error_count   = (int)$error_count + 1;
								}
							}else{
								$error_tr_line .= "<tr><td>$tyre_type_info</td><td >Tyre position is already exists</td></tr>";
								$error_count   = (int)$error_count + 1;
							}
						}
					}else{
						if($this->check_survey_info_exist($tyre_survey_list_id[$key],TRUE)){
							if(!($this->check_position_already_exist($prime_tyre_survey_id,$position_hide[$key],$tyre_survey_list_id[$key]))){
								$survey_info_data['trans_updated_by']       = $this->session->userdata('logged_id');
								$survey_info_data['trans_updated_date']     = date("Y-m-d H:i:s");
								if($this->update_tyre_info($survey_info_data,$position_hide[$key],$prime_vehicle_id,$status[$key])){
									$this->db->where('prime_tyre_survey_id',$prime_tyre_survey_id);
									$this->db->where('prime_tyre_survey_list_information_id',$tyre_survey_list_id[$key]);
									if($this->db->update('tyre_survey_list_information',$survey_info_data)){
										$this->get_num_rows($prime_tyre_survey_id);
										$update_tr_line .= "<tr><td>$tyre_type_info</td><td >Updated Successfully</td></tr>";
										$update_count = (int)$update_count + 1;
									}
								}else{
									$error_tr_line .= "<tr><td >Update not allowed for this tyre $tyre_type_info</td></tr>";
									$error_count   = (int)$error_count + 1;
								}
							}else{
								$error_tr_line .= "<tr><td>$tyre_type_info</td><td >Tyre position is already exists</td></tr>";
								$error_count   = (int)$error_count + 1;
							}
						}
					}
				}else{
					$error_tr_line .= "<tr><td colspan='2'>Please Contact Admin  ... !<td></tr>";
					$error_count   = (int)$error_count + 1;
				}
			}
			$insert_message = "$insert_tr_line";
			$update_message = "$update_tr_line";
			$error_message  = "$error_tr_line";
			echo json_encode(array('success' => TRUE, 'message' => "Processed Successfully",'insert_count'=> $insert_count,'update_count'=> $update_count,'error_count' => $error_count,"insert_message"=>$insert_message,'update_message'=> $update_message,'error_message'=> $error_message));
		}
	}
	
	//CHECKING VEHICLE HAVE TYRE OR NOT
	public function check_vehicle_tyre_info(){
		$vehicle_no = $this->input->post('vehicle_no');
		$this->db->from('cw_tyres_position');
		$this->db->where('prime_vehicle_master_id',$vehicle_no);
		$this->db->where('cw_tyres_position.trans_status', 1);
		if((int)($this->db->get()->num_rows()) > 0){
			echo json_encode(array('success' => TRUE));
		}else{
			echo json_encode(array('success' => False));
		}
	}
	
	//UPDATE TYRE INFORMATION IN REMOVING AND FITTING
	public function update_tyre_info($survey_info_data,$tyre_position,$prime_vehicle_id,$status){
		$rm_fitting_info = array( 'vehicle_no'           => $prime_vehicle_id,
								  'tyre_size'            => $survey_info_data['tyre_size'],
								  'casting_type'         => $survey_info_data['casting_type'],
								  'tyre_position'        => $survey_info_data['tyre_position'],
								  'prime_tyre_survey_id' => $survey_info_data['prime_tyre_survey_id'],
								  'brand'                => $survey_info_data['brand'],
								  'thread_type'          => $survey_info_data['tread_pattern_type'],
								  'valve_caps'           => $survey_info_data['valve_caps'],
								  'valve_extension'      => $survey_info_data['valve_extension'],
								  'mm'                   => $survey_info_data['mm'],
								  'survey_status'        => $survey_info_data['status'],
								  'serial_number'        => $survey_info_data['serial_number'],
								  'status'               => 1,
								  'date'                 => date('Y-m-d')
								  );
		if(!$this->check_vehicle_already_exists_in_removing_fitting($prime_vehicle_id,$tyre_position)){
			$rm_fitting_info['trans_created_by']   = $this->session->userdata('logged_id');
			$rm_fitting_info['trans_created_date'] = date("Y-m-d H:i:s");
			$this->db->insert('cw_removing_fitting',$rm_fitting_info);
			return true;
		}else{
			if(!$this->check_status_rm_fit($prime_vehicle_id,$tyre_position)){
				$rm_fitting_info['trans_updated_by']       = $this->session->userdata('logged_id');
				$rm_fitting_info['trans_updated_date']     = date("Y-m-d H:i:s");
				$this->db->where('vehicle_no',$prime_vehicle_id);
				$this->db->where('tyre_position',$tyre_position);
				$this->db->update('cw_removing_fitting',$rm_fitting_info);
				return true;
			}else{
				return false;
			}
		}
	}
	
}
?>