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/Enquiry.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Action_controller.php");
class Enquiry  extends Action_controller{	
	public function __construct(){
		parent::__construct('enquiry');
		$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);
		
		//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((int)$field_type === 1 || (int)$field_type === 8){
				$value = str_replace("'", '^', trim($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);
	}
	
	//TOLLS AMOUNT 
	public function calaculate_total(){
		$tolls            = ltrim(implode(',',$this->input->post('tolls')),",");
		$vat_tax          = $this->input->post('vat_tax');
		$discount_amount  = $this->input->post('discount_amount');
		$average_km       = $this->input->post('average_km');
		$vehicle_required = $this->input->post('vehicle_required');
		$trailer_type     = $this->input->post('trailer_type');
		$pickup_date      = date('Y-m-d',strtotime($this->input->post('pickup_date')));
		$enquiry_type     = $this->input->post('enquiry_type');
		$trip_type        = $this->input->post('trip_type');
		$extra_amount     = $this->input->post('extra_amount');
		
		//Calaculate Toll Amount if toll exist
		$tolls_amount = 0;
		if($tolls){
			$query = 'select ifnull(sum(toll_amount),0) as toll_amount from cw_toll_master where prime_toll_master_id in ('.$tolls.') and trans_status = 1';
			$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
			$toll_result = $result->result();
			$result->next_result();
			if((int)$trip_type === 1){
				$tolls_amount = ($toll_result[0]->toll_amount)*2;
			}else
			if((int)$trip_type === 2){
				$tolls_amount = $toll_result[0]->toll_amount;
			}
		}
		
		//Calculate Trip amount based on per km master
		$trip_amount           = 0;
		if($vehicle_required !== "" && $pickup_date !== "1970-01-01"){ 
			$trip_amount_arguments = $this->calculate_trip_amount($vehicle_required,$trailer_type,$pickup_date);
			$horse_average_mileage    	 = $trip_amount_arguments['horse_vehicle_rslt'][0]->average_mileage;
			$repayment_amount            = $trip_amount_arguments['horse_vehicle_rslt'][0]->repayment_amount;
			if($horse_average_mileage !== "0"){			
				$horse_repayment_amount    	 = $repayment_amount/$horse_average_mileage;
				$horse_tracking_and_cameras  = $trip_amount_arguments['horse_vehicle_rslt'][0]->tracking_and_cameras/$horse_average_mileage;
				$horse_maintenance_cost    	 = $trip_amount_arguments['horse_vehicle_rslt'][0]->maintenance_cost;
				if($trip_amount_arguments['horse_insurance_amount']){
					$horse_insurance_amount      =  $trip_amount_arguments['horse_insurance_amount']/$horse_average_mileage;
				}else{
					$horse_insurance_amount      = 0;
				}
				if($trip_amount_arguments['horse_license_fees']){
					$horse_license_fees      = ($trip_amount_arguments['horse_license_fees']/12)/$horse_average_mileage;
				}else{
					$horse_license_fees      = 0;
				}
				//Per Kilometer Arguments
				$wash_bay                    = $trip_amount_arguments['per_kilometer'][0]->wash_bay/$horse_average_mileage;
				$admin_cost                  = $trip_amount_arguments['per_kilometer'][0]->admin_cost/$horse_average_mileage;
				$controllers                 = $trip_amount_arguments['per_kilometer'][0]->controllers/$horse_average_mileage;
				$driver_cost                 = $trip_amount_arguments['per_kilometer'][0]->driver_cost;
				$tyres_cost                  = $trip_amount_arguments['per_kilometer'][0]->tyres_cost;
				$mark_up                     = $trip_amount_arguments['per_kilometer'][0]->mark_up;
				$diesel_per_litre            = ($trip_amount_arguments["per_kilometer"][0]->diesel_per_litre)/$driver_cost;
				//Trailer Arguments
				$trailer_repayment_amount    = $trip_amount_arguments['trailer_repayment_amount']/$horse_average_mileage;
				$trailer_license_fees        = (($trip_amount_arguments['trailer_license_fees']*2)/12)/$horse_average_mileage;
				$trailer_insurance_amount    = $trip_amount_arguments['trailer_insurance_amount']/$horse_average_mileage;
				$Fixed_Costs                 = $trailer_insurance_amount + $horse_insurance_amount + $horse_tracking_and_cameras;
			}
			//Cost PER KILOMETER
			$cost_per_km = $diesel_per_litre + $driver_cost + $horse_maintenance_cost + $tyres_cost + $horse_license_fees + $trailer_license_fees + $controllers  + $wash_bay + $admin_cost + $horse_repayment_amount + $trailer_repayment_amount + $Fixed_Costs;
			
			$trip_amount = round($cost_per_km * $average_km,2);
			$vat_tax_amount       = 0;
			$total_trip_amount    = 0;
			$over_all_trip_amount = 0;
			$total_trip_amount    = (($tolls_amount + $trip_amount) - $discount_amount + $extra_amount);
			//Get tax percentage and calculate amount form total trip amount
			if($vat_tax){
				$query = 'select vat_tax_percentage from cw_vat_tax where prime_vat_tax_id = "'.$vat_tax.'" and trans_status = 1';
				$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
				$vat_rslt_count = $result->num_rows();
				if((int)$vat_rslt_count === 1){
					$vat_result = $result->result();
					$result->next_result();
					$vat_tax_percentage = $vat_result[0]->vat_tax_percentage;
					$vat_tax_amount     = ($total_trip_amount* $vat_tax_percentage)/100;
				}
			}		
			//Adding MARK UP value to over all amount
			$mark_up              = ($total_trip_amount*$mark_up)/100;
			//Check total_trip_amount grater than discount  amount
			$over_all_trip_amount = ceil($total_trip_amount+$mark_up+$vat_tax_amount);
			$total_trip_amount    = round($total_trip_amount,2);
			$final_total = array('toll_amount' => $tolls_amount, 'trip_amount' =>$trip_amount, 'total_trip_amount' =>$total_trip_amount, 'over_all_total' =>$over_all_trip_amount);
			if($total_trip_amount > $discount_amount){
				echo json_encode(array('status' => true,'final_total' => $final_total));
			}else{
				echo json_encode(array('status' => false, 'message' =>"Discount Amount should be lesser than Total Trip Amount",'toll_amount' => $tolls_amount));
			}
		}else{
			echo json_encode(array('status' => false, 'message' =>"Enter related entries in Vehicle Master to process",'toll_amount' => $tolls_amount));
		}	
	}
	//Calculation of trip amount
	public function calculate_trip_amount($vehicle_required,$trailer_type,$pickup_date){
		//Getting Horse type values
		$horse_insurance_amount = 0;
		$horse_license_fees     = 0;
		$query = 'select purchase_date,prime_vehicle_master_id,case WHEN repayment_end_date >= "'.$pickup_date.'" then repayment_amount else 0 end as repayment_amount,tracking_and_cameras,maintenance_cost,average_mileage from cw_vehicle_master where cw_vehicle_master.vehicle_type = "'.$vehicle_required.'" and trans_status = 1  order by purchase_date DESC limit 1';
		$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
		$result_count = $result->num_rows();
		$horse_vehicle_rslt = $result->result();
		$result->next_result();
		if((int)$result_count > 0){
			$horse_prime_vehicle_master_id = $horse_vehicle_rslt[0]->prime_vehicle_master_id;
			$horse_purchase_date           = $horse_vehicle_rslt[0]->purchase_date;
			$query = 'select ifnull(license_fees,0) as license_fees from cw_vehicle_master_vehicle_licence where licence_end_date >= "'.$horse_purchase_date .'" and (cw_vehicle_master_vehicle_licence.prime_vehicle_master_id = "'.$horse_prime_vehicle_master_id.'") and trans_status = 1 order by licence_end_date DESC limit 1';
			$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
			$license_fees = $result->result();
			$result->next_result();
			$horse_license_fees  = $license_fees[0]->license_fees;
			$query = 'select ifnull(insurance_premium,0) as insurance_premium from cw_vehicle_master_vehicle_insurance where end_date >= "'.$horse_purchase_date .'" and (cw_vehicle_master_vehicle_insurance.prime_vehicle_master_id = "'.$horse_prime_vehicle_master_id.'") and trans_status = 1 order by end_date DESC limit 1';
			$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
			$horse_insurance_amount = $result->result();
			$result->next_result();
			$horse_insurance_amount  = $horse_insurance_amount[0]->insurance_premium;
		}else{
			$horse_vehicle_rslt = 0;
		}	
		//GETTING TRAILER VEHICLE TYPE ARGUMENTS
		$trailer_repayment_amount = 0;
		$trailer_license_fees     = 0;
		$trailer_insurance_amount = 0;
		$query = 'select purchase_date,prime_vehicle_master_id,case WHEN repayment_end_date >= "'.$pickup_date.'" then repayment_amount else 0 end as repayment_amount from cw_vehicle_master where cw_vehicle_master.vehicle_type = "'.$trailer_type.'" and trans_status = 1  order by purchase_date DESC limit 1';
		$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
		$result_count = $result->num_rows();
		$trailer_vehicle_rslt = $result->result();
		$result->next_result();
		if((int)$result_count > 0){
			$trailer_prime_vehicle_master_id   = $trailer_vehicle_rslt[0]->prime_vehicle_master_id;
			$trailer_purchase_date             = $trailer_vehicle_rslt[0]->purchase_date;
			$trailer_repayment_amount          = $trailer_vehicle_rslt[0]->repayment_amount;
			$query = 'select ifnull(license_fees,0) as license_fees from cw_vehicle_master_vehicle_licence where licence_end_date >= "'.$trailer_purchase_date .'" and (cw_vehicle_master_vehicle_licence.prime_vehicle_master_id = "'.$trailer_prime_vehicle_master_id.'") and trans_status = 1 order by licence_end_date DESC limit 1';
			$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
			$license_fees = $result->result();
			$result->next_result();
			$trailer_license_fees  = $license_fees[0]->license_fees;
			$query = 'select ifnull(insurance_premium,0) as insurance_premium from cw_vehicle_master_vehicle_insurance where end_date >= "'.$trailer_purchase_date .'" and (cw_vehicle_master_vehicle_insurance.prime_vehicle_master_id = "'.$trailer_prime_vehicle_master_id.'") and trans_status = 1 order by end_date DESC limit 1';
			$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
			$trailer_insurance_amount = $result->result();
			$result->next_result();
			$trailer_insurance_amount  = $trailer_insurance_amount[0]->insurance_premium;
		}
			
		//GETTING PER KILOMETER ARGUMENTS
		$query = 'select mark_up,wash_bay,admin_cost,controllers,driver_cost,tyres_cost,diesel_per_litre from cw_perkilometer where ("'.$pickup_date.'" between cw_perkilometer.from_date and cw_perkilometer.to_date) and trans_status = 1';
		$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
		$result_count = $result->num_rows();
		$per_kilometer = $result->result();
		$result->next_result();
		if((int)$result_count === 0){
			$per_kilometer = 0;
		}
		$cost_perkm_arguments = array('horse_vehicle_rslt' => $horse_vehicle_rslt,'horse_license_fees' => $horse_license_fees,'per_kilometer' => $per_kilometer,'horse_insurance_amount' => $horse_insurance_amount,'trailer_repayment_amount' => $trailer_repayment_amount,'trailer_license_fees' => $trailer_license_fees,'trailer_insurance_amount' => $trailer_insurance_amount );
		return $cost_perkm_arguments;
	}
	//Get Vehicle Type
	public function get_vehicle_type(){
		$enquiry_type = $this->input->post('enquiry_type');
		if((int)$enquiry_type === 1){
			$vehicle_type_qry = 'SELECT prime_vehicle_type_id,vehicle_type from cw_vehicle_type where vehicle_category = "'.$enquiry_type.'" 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));
		}
		if((int)$enquiry_type === 2){
			//getting vehicle type horse
			$vehicle_type_qry = 'SELECT prime_vehicle_type_id,vehicle_type from cw_vehicle_type where vehicle_category = 1 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_horse = "<option value=''>---- Select ----</option>";	
			foreach($vehicle_type_result as $result){
				$id        = $result->prime_vehicle_type_id;
				$veh_type  = $result->vehicle_type;
				$vehicle_type_horse .= "<option value='$id'>$veh_type</option>";
			}
			//Getting vehicle type trailer
			$vehicle_type_qry = 'SELECT prime_vehicle_type_id,vehicle_type from cw_vehicle_type where vehicle_category = "'.$enquiry_type.'" 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_trailer = "<option value=''>---- Select ----</option>";
			foreach($vehicle_type_result as $result){
				$id        = $result->prime_vehicle_type_id;
				$veh_type  = $result->vehicle_type;
				$vehicle_type_trailer .= "<option value='$id'>$veh_type</option>";
			}
			echo json_encode(array('success' => TRUE, 'vehicle_type_horse' => $vehicle_type_horse, 'vehicle_type_trailer' => $vehicle_type_trailer));
		}
		
	}
	//Customer autocomplete values
	function fetch_customerinfo(){
		$prime_customer_id = $this->input->post('id');
		$query = 'select customer_name,postal_address,mobile_number,email,company from cw_customer where prime_customer_id = "'.$prime_customer_id.'" and trans_status = 1';
		$result = $this->db->query("CALL sp_a_run('SELECT','$query')");
		$result_info = $result->result();
		$result->next_result();
		if($result){
			echo json_encode(array('status' => true,'message' => $result_info));
		}else{
			echo json_encode(array('status' => false,'message' => 'no data found'));
		} 
	}
	public function print_enquiry($enquiry_id){
		$data['company_info'] ="";
		//Enquiry Information To Be Printed
		$query = 'select cw_enquiry.extra_amount,cw_enquiry.contact_mobile,cw_enquiry.prime_enquiry_id,cw_enquiry.trans_created_date,cw_customer.customer_name,cw_enquiry.compay_name,cw_enquiry.mobile_number,cw_enquiry.land_line,cw_enquiry.email,cw_enquiry.address,cw_enquiry.pickup_date,cw_enquiry.delviery_date,cw_enquiry.origin,cw_vat_tax.vat_tax_percentage,cw_enquiry.destination,cw_enquiry.average_km,cw_enquiry.contact_name,cw_enquiry.total_trip_amount,cw_enquiry.discount_amount,cw_enquiry.over_all_total,cw_zct_11.cw_zct_11_value as type from cw_enquiry join cw_zct_11 on cw_zct_11.cw_zct_11_id = cw_enquiry.enquiry_type join cw_vat_tax on cw_vat_tax.prime_vat_tax_id = cw_enquiry.vat_tax join cw_customer on cw_customer.prime_customer_id = cw_enquiry.customer_name where cw_enquiry.prime_enquiry_id = "'.$enquiry_id.'" and cw_enquiry.trans_status = 1';	
		$rslt         = $this->db->query("CALL sp_a_run('SELECT','$query')");
		$data['enquiry_info'] = $rslt->row();
		$rslt->next_result();
		$this->load->view('enquiry/print_enquiry',$data);
	}
}
?>