the_mechanic/app/Controllers/Vehicle.php

208 lines
7.5 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Models\VehicleModel;
use App\Models\ClientModel;
use App\Models\RoleModel;
use App\Models\BikemakeModel;
use App\Models\BikemodelsModel;
use CodeIgniter\API\ResponseTrait;
class Vehicle extends BaseController
{
public $session;
use ResponseTrait;
protected $bikeMakeModel;
protected $bikeModelsModel;
public function __construct()
{
$this->session = session();
$this->bikeMakeModel = new BikemakeModel();
$this->bikeModelsModel = new BikemodelsModel();
}
public function vehicle_index()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$VehicleModel = new VehicleModel();
$vehicle = $VehicleModel->getCustomerandVehicle($this->session->get('logged_user_branch_id'));
$data['vehicle'] = $vehicle;
$ClientModel = new ClientModel();
$client = $ClientModel->where('branch_id', $this->session->get('logged_user_branch_id'))->findAll();
$data['client']=$client;
return view('vehicle_list',$data);
}
public function new_vehicle($vehicle_id)
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
if ($vehicle_id === '0') {
$ClientModel = new ClientModel();
$data['vehicle'] = [];
$data['page_name']="Add vehicle";
$client = $ClientModel->where('branch_id', $this->session->get('logged_user_branch_id'))->findAll();
$data['client']=$client;
} else if ($vehicle_id !== '0') {
$data['page_name']="Edit vehicle";
$VehicleModel = new VehicleModel();
$vehicle= $VehicleModel->select('vehicle.*, model.model_name as model_name')
->join('model', 'model.model_id = vehicle.model')
->where('vehicle.vehicle_id', $vehicle_id)
->where('vehicle.branch_id', $this->session->get('logged_user_branch_id'))
->get()->getRowArray();
$data['vehicle']=$vehicle;
$ClientModel = new ClientModel();
$client=$ClientModel->where('branch_id', $this->session->get('logged_user_branch_id'))->findAll();
$data['client']=$client;
}
// dd($vehicle);
$data['vehicle_id'] = $vehicle_id;
$data['makeData'] =$this->bikeMakeModel->where('make_id != ', 0)->where('business_id', $this->session->get('logged_user_business_id'))->findAll();
return view('vehicle_form',$data);
}
public function add_vehicle()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$VehicleModel = new VehicleModel();
$reg_no = $this->request->getPost('regno');
$vehicle = $VehicleModel->where('reg_no',$reg_no)->first();
// if(!$vehicle){
$data = [
'client_id' => $this->request->getPost('client_name'),
'email' => $this->request->getPost('email'),
'gstnumber' => $this->request->getPost('gstnumber'),
'address' => $this->request->getPost('address'),
'mobile_no' => $this->request->getPost('mobile_no'),
'city' => $this->request->getPost('city'),
'state' => $this->request->getPost('state'),
'postal_code' => $this->request->getPost('postalcode'),
'make' => $this->request->getPost('make'),
'model' => $this->request->getPost('model'),
'reg_no' => $reg_no,
'colour' => $this->request->getPost('colour'),
'year_of_manufacturing' => $this->request->getPost('year_of_manufacturing'),
'branch_id' => $this->session->get('logged_user_branch_id'),
'specific' => $this->request->getPost('specific'),
'isactive' => 1 // Assuming this is a default value or handled separately
];
$vehicle_id = $this->request->getPost('vehicle_id');
if (!empty($vehicle_id)) {
$data['updated_by'] = (int)$this->session->get('logged_user');
$VehicleModel->update($vehicle_id, $data);
} else {
$data['created_by'] = (int)$this->session->get('logged_user');
$VehicleModel->insert($data);
}
return redirect()->to('vehicle_index');
// }else{
// $this->session->setFlashdata('error', 'Vehicle with this registration number already exists.');
// return redirect()->back()->withInput();
// }
}
public function delete_vehicle($vehicle_id)
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$model = new VehicleModel();
$where = ['vehicle_id' => $vehicle_id, 'isactive' => 1]; // Assuming 'isactive' is a column in your database
$existingBusiness = $model->where($where)->first();
if ($existingBusiness) {
$data['isactive'] = 0;
if ($model->update($vehicle_id, $data)) {
session()->setFlashdata('success', 'Deleted successfully.');
$this->logger->info("Users: has been Inactivated successfully. Inactivated ID = ".$vehicle_id);
}
}
return redirect()->to('vehicle_index');
}
public function get_models()
{
$selected_makes = $this->request->getPost('selected_makes');
$BikemodelModel = new BikemodelsModel();
$formatted_models = [];
foreach ($selected_makes as $make_id) {
$models = $BikemodelModel->where('make_id', $make_id)->where('business_id', $this->session->get('logged_user_business_id'))->findAll();
foreach ($models as $model) {
$formatted_model = [
'model_id' => $model['model_id'],
'model_name' => $model['model_name']
];
$formatted_models[] = $formatted_model;
}
}
return $this->response->setJSON($formatted_models);
}
public function checkRegisterNo(){
// if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$VehicleModel = new VehicleModel();
$reg_no = $this->request->getPost('register_number');
$register_find = $VehicleModel->where('reg_no',$reg_no)->first();
if ($register_find) {
return json_encode($register_find);
}else{
return json_encode(false);
}
}
public function status_vehicle()
{
try {
$vehicle_id = $this->request->getPost('vehicle_id');
$isactive = $this->request->getPost('isactive');
$VehicleModel = new VehicleModel();
$data = [
'isactive' => $isactive
];
$updated = $VehicleModel->update($vehicle_id, $data);
if ($updated) {
$result = $data;
return $this->respond(['status' => 'success','code' => 200],200);
} else {
$result = "No Match's";
return $this->respond(['status' => 'failed','code' => 404],404);
}
} catch (\Exception $exception) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500);
}
}
}