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);
}
}