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/pmw24/pmw_live_testing/app/application/controllers/customer/Booking.php
<?php 

defined('BASEPATH') OR exit('No direct script access allowed');



class Booking extends MY_Controller {

	public function __construct() {

		parent::__construct();

		$this->redirect_customer();

		$this->customer=$this->session->userdata('customer_data');		

		$this->load->model('customer/mbooking');

		$this->load->model('customer/mjob');

	}

	

	public function index() { 				

		$this->_load_list_view();		

	}

	

	private function _load_list_view() {

		$data['customer'] = $this->customer;

		$data['content'] = 'customer/booking/list';		

		$this->load->view('customer/layouts/index', $data);

	}

	

	public function all_content_list(){

		$list = $this->mbooking->get_datatables();

		$data = array();

        $no = $_POST['start'];

		$i=1;

		 if($no>1)

	    {

	      $i=$i*$no+1;

	    }

		foreach ($list as $person) {

			

			$row = array();	

			$row[]=$i;	

			$row[] = $person->car_no;

			$row[] = $person->service_date;

			$row[] = $person->service_name;

			$row[] = $person->created_ts;

			$row[] = $person->job_note;

            if($person->status == 0){

					$row[] = '<div class="dropdown">

								<span class="label label-primary dropdown-toggle" data-toggle="dropdown">Requested</span>

							</div>';

			}else if($person->status == 1){

				$row[] = '<div class="dropdown">

                            <span class="label label-success dropdown-toggle"  data-toggle="dropdown">Job Assigned</span>

                        </div>';

			} else if($person->status == 2){

				$row[] = '<div class="dropdown">

                            <span class="label label-danger dropdown-toggle"  data-toggle="dropdown">Cancelled</span>

                        </div>';

			}

			$data[] = $row;

			$i++;

        }

		

		$output = array(

                        "draw" => $_POST['draw'],

                        "recordsTotal" => $this->mbooking->count_all(),

                        "recordsFiltered" => $this->mbooking->count_filtered(),

                        "data" => $data,

                );

        echo json_encode($output);

	}



	

	

	

	

	

	

	

	public function add()

	{

		$this->_load_add_view();

	}

	

	private function _load_add_view(){		

		$data['content']='customer/booking/add';

		$car_condition = array("status"=>1,"car_assign_status"=>0,"customer_id"=>$this->customer['customer_id']);

		$data['cars'] = $this->mjob->get_cars('car',$car_condition);

		$mechanic_condition = array("role_id"=>14,"status"=>1);

		$data['mechanics'] = $this->mjob->getRows('admins',$mechanic_condition);



	    $service_condition = array("status"=>1);

		$data['services'] = $this->mjob->getRows('service',$service_condition);

		$this->load->view('customer/layouts/index',$data);

	}

	

	public function add_booking() 

	{

		if($this->input->post()){

			$this->form_validation->set_rules('car_id','Car Id','required');			

			$this->form_validation->set_rules('service_date','Service Date','required');

			$this->form_validation->set_rules('mechanic_id','Mechanic','required');

			$this->form_validation->set_rules('service_id[]','Service','required');

			

			if($this->form_validation->run()==FALSE){

				$this->_load_add_view();

			}else{

				$data['car_id'] = $this->input->post('car_id');				

                

                $service_date = $this->input->post('service_date');

                $service_date_array = explode('/',$service_date);

                $serviceDate = $service_date_array[2]."-".$service_date_array[1]."-".$service_date_array[0];

                

                $data['service_date'] = $serviceDate;

				$data['created_by'] = $this->customer['customer_id'];

				$data['status'] = 0; 

				$data['mechanic_id'] = $this->input->post('mechanic_id');

				$data['job_note'] =$this->input->post('job_note');

				$data['created_ts'] = date('Y-m-d H:i:s');

				$booking_request_id=$this->mcommon->insert('booking_request',$data);

				if($booking_request_id){

                    $service_id = $this->input->post('service_id');

                    foreach($service_id as $key => $service){

                        $service_data[$key]['booking_request_id'] = $booking_request_id;

                        $service_data[$key]['service_id'] = $service;

                    }

                    $this->mcommon->batch_insert('booking_request_services',$service_data);

                }

                

                $this->session->set_flashdata('cus_success_msg','Booking Requested Successfully');

				redirect('customer/booking');

			}	

			

		}

	}

	

	public function edit($car_id){		

		$data['car']=$this->mcar->get_details($car_id);



		//echo '<pre>'; print_r($data['cms']); echo '</pre>'; die;

		

		if(empty($data['car'])){

			$this->_load_list_view();

		}else{			

			$this->_load_details_view($data);

		}

	}

	

	private function _load_details_view($parms){		

		$data['car']=$parms['car'];

		//print_r($data['car']);die;	

		$data['content'] = 'customer/car/edit';

		$this->load->view('customer/layouts/index', $data);

	}

	

	public function edit_car(){

		

		if($this->input->post()){

			$car_id = $this->input->post('car_id');

			$this->form_validation->set_rules('registration_no','Car No','required');	

			$this->form_validation->set_rules('company_name','Model No','required');

			$this->form_validation->set_rules('make','Make','required');

			$this->form_validation->set_rules('model_no','Model No','required');

			$this->form_validation->set_rules('body','Body','required');

			$this->form_validation->set_rules('compliance_date','Compliance Date','required');

			$this->form_validation->set_rules('vin','Vin','required');

			$this->form_validation->set_rules('engine','Engine','required');

			$this->form_validation->set_rules('colour','Colour','required');

			$this->form_validation->set_rules('fuel','Fuel','required');

			$this->form_validation->set_rules('network','Network','required');

			$this->form_validation->set_rules('silver_service','Silver Service','required');

			$this->form_validation->set_rules('camera','Camera','required');

			$this->form_validation->set_rules('registration_expiry_date','Registration Expiry Date','required');

			$this->form_validation->set_rules('registration_due_month','Registration Due Month','required');

			$this->form_validation->set_rules('plate_type','Plate Type','required');

			$this->form_validation->set_rules('status','Status','required');

			$this->form_validation->set_rules('terminal_no','Terminal No','required');

			

			if($this->form_validation->run()==FALSE){

				$data['car']=$this->mcar->get_details($car_id);

				$this->_load_details_view($data);

			}else{				

				$car_no = $this->input->post('registration_no');

				$condition = array("car_no"=>$car_no,"car_id !="=>$car_id);

				$car = $this->mcar->getRow('car',$condition);

				

				if(empty($car)){

					$udata['car_no'] = $car_no;			

					$udata['company_name'] = $this->input->post('company_name');

					$udata['make'] = $this->input->post('make');

					$udata['model_no'] = $this->input->post('model_no');

					$udata['body'] = $this->input->post('body');

					

					$compliance_date = $this->input->post('compliance_date');

					$compliance_date_array = explode('/',$compliance_date);

					$newCompliancDate = $compliance_date_array[2]."-".$compliance_date_array[1]."-".$compliance_date_array[0];

					$udata['compliance_date'] = $newCompliancDate;

				

					$udata['vin'] = $this->input->post('vin');

					$udata['engine'] = $this->input->post('engine');

					$udata['colour'] = $this->input->post('colour');

					$udata['fuel'] = $this->input->post('fuel');

					$udata['network'] = $this->input->post('network');

					$udata['silver_service'] = $this->input->post('silver_service');

					$udata['camera'] = $this->input->post('camera');

					

					$registration_expiry_date = $this->input->post('registration_expiry_date');

					$registration_expiry_date_array = explode('/',$registration_expiry_date);

					$newRegistrationExpiryDate = $registration_expiry_date_array[2]."-".$registration_expiry_date_array[1]."-".$registration_expiry_date_array[0];

					$udata['registration_expiry_date'] = $newRegistrationExpiryDate;

					

					$registration_due_month = $this->input->post('registration_due_month');

					$registration_due_month_array = explode('/',$registration_due_month);

					$newRegistrationdueMonth = $registration_due_month_array[2]."-".$registration_due_month_array[1]."-".$registration_due_month_array[0];					

					$udata['registration_due_month'] = $newRegistrationdueMonth;

					

					$udata['plate_type'] = $this->input->post('plate_type');

					$udata['car_status'] = $this->input->post('status');

					$udata['terminal_no'] = $this->input->post('terminal_no');

					$udata['remarks'] = $this->input->post('remarks');

					$udata['customer_id'] = $this->customer['customer_id'];

					$udata['date_of_update'] = date('Y-m-d H:i:s');					

					$this->mcar->update($condition,$udata);					

					$this->session->set_flashdata('cus_success_msg','Car updated successfully');

					redirect('customer/car');

				} else{

					$this->session->set_flashdata('cus_error_msg','Car No already exist');

					$data['car']=$this->mcar->get_details($car_id);

					$this->_load_details_view($data);



				}

			}

		}

	}

	

	public function all_details(){

		$car_id = $this->input->post('car_id');		

		$result = $this->mcar->get_details($car_id);		

		echo json_encode($result);

	}



	public function car_history(){

		$data['content'] = 'customer/car/car_history';		

		$this->load->view('customer/layouts/index', $data);



	}



	public function car_history_details(){

		$job_id = $this->input->post('job_id');		

		$result = $this->mjob->get_details($job_id);



		$new_service = array();

		$services = $this->mjob->getServices($job_id);

		foreach($services as $key=>$service)

		{

			$new_service[$key] = $service['service_name'];

		}

	    //echo "<pre>";

		//print_r($new_service);

		$services = $this->mservicehistory->get_details($job_id);	

		foreach($services as $key=>$service)

		{

			//$condition = array("service_id"=>$service['service_id']);			

			//$task = $this->mservicehistory->getRows('task',$condition);

			$task=$this->mservicehistory->selected_task_list_for_particular_service($job_id,$service['service_id']);

			$services[$key]['task'] = $task;

		}

		$result['services'] = $services;

		//echo "<pre>";

		//print_r($services);

		$service = implode(',',$new_service);	

		$result['service'] = $service;

		

		$service_date_condition = array("job_id"=>$job_id);

		$job_service_date = $this->mjob->getRow("job_service_date",$service_date_condition);

		

		//print_r($job_service_date);exit;

		

		$result['service_date'] = date("d/m/Y", strtotime($job_service_date['service_date']));



		$result['next_service_date'] = date("d/m/Y", strtotime($job_service_date['next_service_date']));

		

		$result['assign_job'] = $this->mjob->getAsssignJob($job_id);	

		

		echo json_encode($result);

	}

}