File: /var/www/html/pmw24/app/application/controllers/customer/Car.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Car extends MY_Controller {
public function __construct() {
parent::__construct();
$this->redirect_customer();
$this->customer=$this->session->userdata('customer_data');
$this->load->model('customer/mcar');
$this->load->model('customer/mjob');
$this->load->model('customer/mservicehistory');
}
public function index() {
$this->_load_list_view();
}
private function _load_list_view() {
$data['customer'] = $this->customer;
$data['content'] = 'customer/car/list';
$this->load->view('customer/layouts/index', $data);
}
public function all_content_list(){
$list = $this->mcar->get_datatables();
$data = array();
$no = $_POST['start'];
$i=1;
if($no>1)
{
$i=$i*$no+1;
}
foreach ($list as $person) {
$view = '';
$edit='';
$status='';
$row = array();
$row[]=$i;
$view = '<a class="cstm_view btn btn-info btn-circle" id="view" href="javascript:void(0)" title="View" data-id="'.$person->car_id.'"><i class="fa fa-eye"></i></a>';
$status = ($person->status==1?'<a class="cstm_view_status btn btn-success btn-circle deactive_btn" href="javascript:void(0);" data-href="'.base_url('customer/car/set_active_inactive_car/'.$person->car_id).'" title="Inactive"><i class="fa fa-check"></i></a>':'<a class="cstm_view_status btn btn-danger btn-circle active_btn" href="javascript:void(0);" data-href="'.base_url('customer/car/set_active_inactive_car/'.$person->car_id).'" title="Active"><i class="fa fa-remove"></i></a>');
$edit = '<a href="'.base_url('customer/car/edit/'.$person->car_id).'" title="Edit" class="btn btn-info btn-circle"><i class="fa fa-edit"></i></a>';
$row[]= $view.' '.$status.' '.$edit;
$row[] = $person->car_no;
$row[] = $person->company_name;
$row[] = $person->make;
$row[] = $person->model_no;
$row[] = $person->body;
//$row[] = date('d/m/Y',strtotime($person->compliance_date));
$row[] = $person->vin;
$row[] = $person->engine;
$row[] = $person->fuel;
//$row[] = $person->network;
$row[] = $person->colour;
//$row[] = $person->silver_service;
//$row[] = $person->camera;
//$row[] = date('d/m/Y',strtotime($person->registration_expiry_date));
//$row[] = date('d/m/Y',strtotime($person->registration_due_month));
//$row[] = $person->plate_type;
//$row[] = $person->car_status;
//$row[] = $person->terminal_no;
$data[] = $row;
$i++;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->mcar->count_all(),
"recordsFiltered" => $this->mcar->count_filtered(),
"data" => $data,
);
echo json_encode($output);
}
public function all_content_list_history(){
$list = $this->mcar->get_datatables_history();
$data = array();
$no = $_POST['start'];
$i=1;
if($no>1)
{
$i=$i*$no+1;
}
foreach ($list as $person) {
$row = array();
$row[]=$i;
//$condition = array("job_id"=>$person->job_id,"assign_status"=>1);
$row[] = $person->car_no;
$condition = array("job_id"=>$person->job_id);
$assign_job = $this->mcar->getRow('assign_job',$condition);
if(!empty($assign_job))
{
$mechanic_condition = array("admin_id"=>$assign_job['mechanic_id']);
$mechanic = $this->mcar->getRow('admins',$mechanic_condition);
if(!empty($mechanic)){
$row[] = $mechanic['first_name']." ".$mechanic['last_name'];
} else{
$row[] = 'N/A';
}
}
$new_service = array();
$services = $this->mcar->getServices($person->job_id);
foreach($services as $key=>$service)
{
$new_service[$key] = $service['service_name'];
}
$service = implode(',',$new_service);
$row[] = $service;
$service_date_condition = array("job_id"=>$person->job_id);
$job_service_date = $this->mcar->getRow("job_service_date",$service_date_condition);
//$row[] = $job_service_date['service_date'];
$row[] = date("d/m/Y", strtotime($job_service_date['service_date']));
if($person->job_status == 0){
$job_status = "Not Started";
}else if($person->job_status == 1){
$job_status = "In Progress";
}else if($person->job_status == 2){
$job_status = "Completed";
if(!empty($job_service_date['service_end_date']))
{
$job_status=$job_status.' On <b>'.date("d/m/Y", strtotime($job_service_date['service_end_date'])).'</b>';
}
}
$row[] = $job_status;
$condition = array("job_id"=>$person->job_id);
$assign_job = $this->mcar->getRowA("assign_job",$condition);
//$row[] = $assign_job['assign_status'];
// if($assign_job['assign_status'] != ""){
// if($assign_job['assign_status'] == 1)
// {
// $row[] = '<div class="dropdown">
// <span class="label label-primary dropdown-toggle" data-toggle="dropdown">Accepted</span>
// </div>';
// }else if($assign_job['assign_status'] == 0){
// $row[] = '<div class="dropdown">
// <span class="label label-danger dropdown-toggle" data-toggle="dropdown">Rejected</span>
// </div>';
// }
// else if($assign_job['assign_status'] == 2){
// $row[] = '<div class="dropdown">
// <span class="label label-success dropdown-toggle" data-toggle="dropdown">Assigned</span>
// </div>';
// }
// }else{
// $row[] = $assign_job['assign_status'];
// }
$row[] = '<a class="cstm_view" id="car_history_view" style="padding-left:5px" href="javascript:void(0)" data-id="'.$person->job_id.'" title="Job Details"><i class="glyphicon glyphicon-eye-open"></i></a>';
$data[] = $row;
$i++;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->mcar->count_all_history(),
"recordsFiltered" => $this->mcar->count_filtered_history(),
"data" => $data,
);
echo json_encode($output);
}
public function all_content_list_invoice_history(){
$list = $this->mcar->get_datatables_invoice_history();
$data = array();
$no = $_POST['start'];
$i=1;
if($no>1)
{
$i=$i*$no+1;
}
foreach ($list as $person) {
$row = array();
$row[]=$i;
//$condition = array("job_id"=>$person->job_id,"assign_status"=>1);
$row[] = $person->car_no;
$row[] = $person->mechanic;
$row[] = $person->items;
$row[] = date("d/m/Y", strtotime($person->date_of_creation));
$job_status = "Completed";
$job_status=$job_status.' On <b>'.date("d/m/Y", strtotime($person->date_of_creation)).'</b>';
$row[] = $job_status;
$row[] = '<a class="cstm_view" id="car_invoice_history_view" style="padding-left:5px" href="javascript:void(0)" data-id="'.$person->id.'" title="Job Details"><i class="glyphicon glyphicon-eye-open"></i></a>';
$data[] = $row;
$i++;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->mcar->count_all_invoice_history(),
"recordsFiltered" => $this->mcar->count_filtered_invoice_history(),
"data" => $data,
);
echo json_encode($output);
}
private function searcharray($value, $key, $array) {
foreach ($array as $k => $val) {
if ($val[$key] == $value) {
return $val;
}
}
return null;
}
public function set_active_inactive_car($car_id){
$result = array();
$result = $this->mcar->set_active_inactive_car($car_id);
if($result)
{
$this->session->set_flashdata('cus_success_msg','Car status changed successfully...');
redirect('customer/car');
}else{
$this->session->set_flashdata('cus_error_msg','Oops!Something went wrong...');
redirect('customer/car');
}
}
public function add()
{
$this->_load_add_view();
}
private function _load_add_view(){
$data['content']='customer/car/add';
$data['customer_list']=$this->mcar->getDetails('customer',array('status'=>1));
$this->load->view('customer/layouts/index',$data);
}
public function add_car()
{
if($this->input->post()){
$this->form_validation->set_rules('registration_no','Car No','required|is_unique[car.car_no]');
$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){
$this->_load_add_view();
}else{
$data['car_no'] = $this->input->post('registration_no');
$data['company_name'] = $this->input->post('company_name');
$data['make'] = $this->input->post('make');
$data['model_no'] = $this->input->post('model_no');
$data['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];
// $data['compliance_date'] = $newCompliancDate;
$data['vin'] = $this->input->post('vin');
$data['engine'] = $this->input->post('engine');
$data['colour'] = $this->input->post('colour');
$data['fuel'] = $this->input->post('fuel');
//$data['network'] = $this->input->post('network');
//$data['silver_service'] = $this->input->post('silver_service');
// $data['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];
// $data['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];
// $data['registration_due_month'] = $newRegistrationdueMonth;
//$data['plate_type'] = $this->input->post('plate_type');
//$data['car_status'] = $this->input->post('status');
//$data['terminal_no'] = $this->input->post('terminal_no');
$data['remarks'] = $this->input->post('remarks');
$data['customer_id'] = $this->customer['customer_id'];
$data['status'] = 1;
$data['created_by'] = 0;
$data['date_of_creation'] = date('Y-m-d H:i:s');
$data['date_of_update'] = date('Y-m-d H:i:s');
$this->mcar->add($data);
$this->session->set_flashdata('cus_success_msg','Car added successfully');
redirect('customer/car');
}
}
}
public function edit($car_id){
$data['car']=$this->mcar->get_details($car_id);
//echo '<pre>'; print_r($data['car']); 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['updated_by'] = 0;
$udata['date_of_update'] = date('Y-m-d H:i:s');
$this->mcar->update(array('car_id'=>$car_id),$udata);
//echo $this->db->last_query();die;
$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_invoice_history(){
$data['content'] = 'customer/car/invoice_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);
}
public function car_invoice_history_details(){
$invoice_id = $this->input->post('invoice_id');
$result = $this->mcar->get_car_invoice_history_details($invoice_id);
$result['services'] = $this->mcommon->getDetails('invoice_details',array('invoice_id'=>$invoice_id));
echo json_encode($result);
}
}