HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //var/www/html/qcr24/app/application/controllers/admin/Car.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Car extends MY_Controller
{

	public function __construct()
	{
		parent::__construct();
		$this->load->model('admin/mcar');
		$this->load->model('mcommon');
	}
	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/welcome
	 *	- or -
	 * 		http://example.com/index.php/welcome/index
	 *	- or -
	 * Since this controller is set as the default controller in
	 * config/routes.php, it's displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/welcome/<method_name>
	 * @see https://codeigniter.com/user_guide/general/urls.html
	 */
	public function index()
	{
		$data = array('menu_id' => 19);
		$data['cars'] = array();
		// if(check_user_permission($data['menu_id'], 'delete_flag')){


			$search_array = array();
		if(!empty($this->input->get())){
			
			$search_array['company_id'] = ($this->input->get('company_id'))?$this->input->get('company_id'):'';
			$search_array['available_for_rent'] = ($this->input->get('available_for_rent'))?$this->input->get('available_for_rent'):'';
			$search_array['status'] = ($this->input->get('status') || $this->input->get('status') == '0')?$this->input->get('status'):'';
		}
		

		$data['cars'] = $this->mcar->get_car($search_array);
		$data['companies'] = $this->mcommon->getDetails('master_company','status="0"');
		$data['search_array'] = $search_array;
		// }
		// print_r($data['cars']);die;
		$data['content'] = 'admin/car/list';
		$this->load->view('admin/layouts/index', $data);
	}
	public function addcar()
	{
		$data = array();
		$data['content'] = 'admin/car/add';
		$data['companies'] = $this->mcommon->getDetails('master_company','status="0"');
		$this->load->view('admin/layouts/index', $data);
	}
	public function editcar($car_id)
	{
		$data['companies'] = $this->mcommon->getDetails('master_company','status="0"');
		$data['car'] = $this->mcar->edit_car($car_id);
		$data['available_car_cnt'] = $this->mcar->available_car_cnt($car_id);
		$data['rent_out_details'] = $this->mcar->get_rent_out_details($car_id);
		$data['content'] = 'admin/car/edit';
		$this->load->view('admin/layouts/index', $data);
	}
	public function submitcar()
	{
		$this->load->library('form_validation');

		$this->form_validation->set_rules('car_no', 'Car no', 'required|is_unique[master_car.car_no]');

		if ($this->form_validation->run() == FALSE)
		{
			$this->addcar();
		}
		else
		{
			$car_no = $this->input->post('car_no');
			$car_type = $this->input->post('car_type');
			$company_id = $this->input->post('company_id');
			$make = $this->input->post('make');
			$model = $this->input->post('model');
			$total_odometer_reading = $this->input->post('total_odometer_reading');
			$year = $this->input->post('year');
			$fuel_type = $this->input->post('fuel_type');
			$service_kilometer = $this->input->post('service_kilometer');
			$transmission_service = $this->input->post('transmission_service');
			$spark_plug_for_eg = $this->input->post('spark_plug_for_eg');
			$rego_expire_date = date('Y-m-d',strtotime(str_replace('/', '-', $this->input->post('rego_expire_date'))));
			$insurance_expire_date = date('Y-m-d',strtotime(str_replace('/', '-', $this->input->post('insurance_expire_date'))));
			$is_hybrid = $this->input->post('is_hybrid');
			$status = $this->input->post('status');
			$data = array(
				'car_no' => $car_no,
				'car_type' => $car_type,
				'company_id' => $company_id,
				'make' => $make,
				'model' => $model,
				'total_odometer_reading' => $total_odometer_reading,
				'last_service_kilometer' => $total_odometer_reading,
				'last_transmission_service' => $total_odometer_reading,
				'last_spark_plug_for_eg' => $total_odometer_reading,
				'year' => $year,
				'fuel_type' => $fuel_type,
				'service_kilometer' => $service_kilometer,
				'transmission_service' => $transmission_service,
				'spark_plug_for_eg' => $spark_plug_for_eg,
				'rego_expire_date' => $rego_expire_date,
				'insurance_username'=> $this->input->post('insurance_username'),
				'insurance_password'=> $this->input->post('insurance_password'),
				'insurance_expire_date' => $insurance_expire_date,
				'is_hybrid' => $is_hybrid, 
				'status' => $status,
				'created_by' => $this->admin_session_data['user_id'],
				'created_ts' => date('Y-m-d H:i:s')
			);

			if(!empty($_FILES['car_pic']['name'])){

				$path1='car_pic';
				$car_pic=$this->image_upload($path1);
				$data['car_pic'] = $car_pic;
			}
			if(!empty($_FILES['insurance_expire_pic']['name'])){

				$path2='insurance_expire_pic';
				$insurance_expire_pic=$this->image_upload($path2);
				$data['insurance_expire_pic'] = $insurance_expire_pic;
			}

			$result = $this->mcar->submit_car($data);

			if ($result) {

				//************************************************************************************//	
				//************************This Part is for Activity Log*******************************//

				$activityLogData = array(
					'activity_type' => '<b>Add Car</b>',
					'description' => 'New Car - '.$car_no.' Added',
					'link' => 'admin/car',
					'icon' => '<i class="fa fa-history" aria-hidden="true"></i>',
				);

				$this->activity_log($activityLogData);

				//************************This Part is for Activity Log*******************************//
				//************************************************************************************//
				
				$this->session->set_flashdata('success_msg', 'Car Added Successfully');
				redirect("admin/car");
			}
		}
	}

	public function updatecar()
	{
		
			$car_id = $this->input->post('hid_car_id');
			$car_no = $this->input->post('car_no');
			$car_type = $this->input->post('car_type');
			$company_id = $this->input->post('company_id');
			$make = $this->input->post('make');
			$model = $this->input->post('model');
			$total_odometer_reading = $this->input->post('total_odometer_reading');
			$year = $this->input->post('year');
			$fuel_type = $this->input->post('fuel_type');
			$service_kilometer = $this->input->post('service_kilometer');
			$transmission_service = $this->input->post('transmission_service');
			$spark_plug_for_eg = $this->input->post('spark_plug_for_eg');
			$rego_expire_date = date('Y-m-d',strtotime(str_replace('/', '-', $this->input->post('rego_expire_date'))));
			$insurance_expire_date = date('Y-m-d',strtotime(str_replace('/', '-', $this->input->post('insurance_expire_date'))));
			$insurance_expire_pic_old = $this->input->post('insurance_expire_pic_old');
			$car_pic_old = $this->input->post('car_pic_old');
			$is_hybrid = $this->input->post('is_hybrid');
			$status = $this->input->post('status');

			$car_details = $this->db->from('master_car')->where('car_id',$car_id)->get()->row_array();
			$rent_out_details = $this->db->from('rent_out_vehcile')->where('car_id',$car_id)->get()->row_array();

			if(empty($car_details)){
				$this->session->set_flashdata('error_msg', 'Car Details not found');
				$this->editcar($car_id);
			} elseif(!empty($rent_out_details) && ($total_odometer_reading < $car_details['total_odometer_reading'])){
				$this->session->set_flashdata('error_msg', 'Odometer reading should not less than previous reading');
				$this->editcar($car_id);
			}else{

				$data = array(
					'car_no' => $car_no,
					'car_type' => $car_type,
					'company_id' => $company_id,
					'make' => $make,
					'year' => $year,
					'model' => $model,
					'total_odometer_reading' => $total_odometer_reading,
					'last_service_kilometer' => $total_odometer_reading,
					'last_transmission_service' => $total_odometer_reading, 
					'last_spark_plug_for_eg' => $total_odometer_reading,
					'fuel_type' => $fuel_type,
					'service_kilometer' => $service_kilometer,
					'transmission_service' => $transmission_service,
					'spark_plug_for_eg' => $spark_plug_for_eg,
					'rego_expire_date' => $rego_expire_date,
					'insurance_username'=> $this->input->post('insurance_username'),
				    'insurance_password'=> $this->input->post('insurance_password'),
					'insurance_expire_date' => $insurance_expire_date,
					'is_hybrid' => $is_hybrid,
					'status' => $status,
					'updated_by' => $this->admin_session_data['user_id'],
					'updated_ts' => date('Y-m-d H:i:s')
				);

				if(!empty($_FILES['car_pic']['name'])){

					$path1='car_pic';
					$car_pic=$this->image_upload($path1);
					@unlink('./public/admin_images/car_pics/' . $this->input->post('car_pic_old'));
					$data['car_pic'] = $car_pic;
				}
				if(!empty($_FILES['insurance_expire_pic']['name'])){
	
					$path2='insurance_expire_pic';
					$insurance_expire_pic=$this->image_upload($path2);
					@unlink('./public/admin_images/insurance_expire_pics/' . $this->input->post('insurance_expire_pic_old'));
					$data['insurance_expire_pic'] = $insurance_expire_pic;
				}

				$condition = array('car_id' => $car_id);

				$result = $this->mcar->update_car($condition, $data);

				if ($result) {

					//************************************************************************************//	
					//************************This Part is for Activity Log*******************************//

					$activityLogData = array(
						'activity_type' => '<b>Update Car</b>',
						'description' => 'Car - '.$car_no.' Updated',
						'link' => 'admin/car/editcar/'.$car_id,
						'icon' => '<i class="fa fa-history" aria-hidden="true"></i>',
					);

					$this->activity_log($activityLogData);

					//************************This Part is for Activity Log*******************************//
					//************************************************************************************//

					$this->session->set_flashdata('success_msg', 'Car Updated Successfully');
					redirect("admin/car");
				}
			}
	}

	public function deletecar($car_id)
	{
		$data = array('status' => '2');
		$condition = array('car_id' => $car_id);

		$result = $this->mcar->delete_car($condition, $data);

		if ($result) {
			$this->session->set_flashdata('success_msg', 'Car Deleted Successfully');
			redirect("admin/car");
		}
	}

	public function image_upload($path){
		// Upload folder location***
		$config = array();
		$config['upload_path'] = './public/admin_images/'.$path.'s';
		// Allowed file type***
		$config['allowed_types'] = '*';
		$config['encrypt_name'] = TRUE;
		// load upload library***            
		$this->load->library('upload', $config);
		$this->upload->initialize($config);
		if ($this->upload->do_upload($path)) {
			return $this->upload->data()['file_name'];
		}else { 
            echo 'File Name'.$path.' Errors'.$this->upload->display_errors();die;
             
        }
	}
}