the_mechanic/app/Controllers/Client.php
2025-01-04 03:07:18 +00:00

170 lines
6.0 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Models\ClientModel;
use App\Models\VehicleModel;
use App\Models\RoleModel;
use App\Models\UsersModel;
class Client extends BaseController
{
public $session;
protected $UsersModel;
protected $VehicleModel;
public function __construct()
{
$this->session = session(); // Initialize session
$this->UsersModel = new UsersModel();
$this->VehicleModel = new VehicleModel();
}
public function client_index()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$ClientModel = new ClientModel();
$client = $ClientModel->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
$data['client']=$client;
return view('client_list',$data);
}
public function new_client($client_id)
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
if ($client_id === '0') {
$data['client'] = [];
$data['page_name']="Add Client";
} else if ($client_id !== '0') {
$data['page_name']="Edit Client";
$ClientModel = new ClientModel();
$client=$ClientModel->where('client_id', $client_id)->get()->getRowArray();
$data['client']=$client;
}
$data['client_id'] = $client_id;
return view('client_form',$data);
}
public function add_client()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$ClientModel = new ClientModel();
$mobile_no = $this->request->getPost('mobile');
$data = [
'client_name' => $this->request->getPost('client_name'),
'email' => $this->request->getPost('email'),
'address' => $this->request->getPost('address'),
'mobile_no' =>$mobile_no,
'city' => $this->request->getPost('city'),
'state' => $this->request->getPost('state'),
'postal_code' => $this->request->getPost('postalcode'),
'gstnumber' => $this->request->getPost('gstnumber'),
'client_type' => $this->request->getPost('clienttype'),
'isactive' => 1 ,
'branch_id' => $this->session->get('logged_user_branch_id')
];
// print_r($data);die;
$client_id = $this->request->getPost('client_id');
if (!empty($client_id)) {
$data['updated_by'] = (int)$this->session->get('logged_user');
$update= $ClientModel->update($client_id, $data);
if($update){
return json_encode("update");
}
} else {
if($ClientModel->where('mobile_no', $mobile_no)->first()){
$error = "Mobile number already exists";
return json_encode(false);
}else{
$data['created_by'] = (int)$this->session->get('logged_user');
$ClientModel->insert($data);
return json_encode(true);
}
}
// return redirect()->to('client_index');
}
public function delete_client($client_id)
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$model = new ClientModel();
$where = ['client_id' => $client_id, 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id')]; // Assuming 'isactive' is a column in your database
$existingBusiness = $model->where($where)->first();
if ($existingBusiness) {
$data['isactive'] = 0;
if ($model->update($client_id, $data)) {
$vehicle_list = $this->VehicleModel->where('client_id',$client_id)->where('isactive',1)->findAll();
if (count($vehicle_list)) {
foreach ($vehicle_list as $key => $value) {
$this->VehicleModel->update($value['vehicle_id'], $data);
}
}
session()->setFlashdata('success', 'Deleted successfully.');
$this->logger->info("Users: has been Inactivated successfully. Inactivated ID = ".$client_id);
}
}
return redirect()->to('client_index');
}
public function client_quick_create(){
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
// Load ClientModel
$ClientModel = new ClientModel();
// Validate inputs
$validationRules = [
'client_name' => 'required|max_length[100]',
'mobile_no' => 'required' // Assuming mobile number is 10 digits long
];
if (!$this->validate($validationRules)) {
// If validation fails, return validation errors
return $this->response->setJSON(['success' => false, 'errors' => $this->validator->getErrors()]);
}
// If validation passes, proceed to save the client
$data = [
'client_name' => $this->request->getPost('client_name'),
'mobile_no' => $this->request->getPost('mobile_no'),
'client_type' => $this->request->getPost('client_type'),
'branch_id'=> $this->session->get('logged_user_branch_id'),
'city'=>'Chennai',
'state'=>'Tamil Nadu',
'isactive' => 1
];
// Attempt to insert the client data
$id = $ClientModel->insert($data);
if ($id) {
$clientData = $ClientModel->where('client_id',$id)->first();
// If insertion succeeds, return success response
return $this->response->setJSON(['success' => true, 'message' => 'Client saved successfully.','clientData'=>$clientData]);
} else {
// If insertion fails, return error response
return $this->response->setJSON(['success' => false, 'message' => 'Failed to save client.']);
}
}
}