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

134 lines
4.6 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Models\OutsourceModel;
use CodeIgniter\API\ResponseTrait;
class Outsourcing extends BaseController
{
public $session;
use ResponseTrait;
public function __construct()
{
$this->session = session();
}
public function outsourcing_index()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
$OutsourceModel = new OutsourceModel();
$os_data = $OutsourceModel->findAll();
$data['out_source'] = $os_data;
return view('outsourcing_list', $data);
}
public function create_os()
{
if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
try {
$name = $this->request->getPost('name');
$id = $this->request->getPost('id');
$OutsourceModel = new OutsourceModel();
if ($id == '') {
$complaint = $OutsourceModel->where(['name' => $name, 'is_active' => 1])
->where('id !=', $id)
->findAll();
} else {
$complaint = $OutsourceModel->where(['name' => $name, 'is_active' => 1])->findAll();
}
if (!empty($complaint)) {
$result = "Name Already Exist";
return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 200);
}
$data = [
"name" => $name,
"labour_cost" => $this->request->getPost('labour_cost'),
"cost_with_tax" => $this->request->getPost('cost_with_tax'),
"tax" => $this->request->getPost('tax'),
"description" => $this->request->getPost('description'),
];
if ($id == '') {
$OutsourceModel = new OutsourceModel();
$data['business_id'] = $this->session->get('logged_user_business_id');
$inserted = $OutsourceModel->insert($data);
if ($inserted) {
$result = $data;
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
} else {
$result = "No Match's";
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404);
}
} else {
$OutsourceModel = new OutsourceModel();
$updated = $OutsourceModel->update($this->request->getPost('id'),$data);
if ($updated) {
$result = $data;
return $this->respond(['status' => 'success','code' => 200,'data' => $result],200);
} else {
$result = "No Match's";
return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404);
}
}
} catch (\Exception $e) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $e],500);
}
}
public function edit_OS($id)
{
$OutsourceModel = new OutsourceModel();
$os_data = $OutsourceModel->where('id',$id)->findAll();
$data['page_name']= 'Edit Out Source';
$data['os_data']= $os_data;
return json_encode($data);
}
public function delete_outsource($id)
{
if (!empty($id)) {
$OutsourceModel = new OutsourceModel();
$data['is_active'] = 0;
if ($OutsourceModel->update($id, $data)) {
// Return success response
return redirect()->to('outsourcing_index');
}
}
// Return error response if deletion fails
return $this->response->setJSON(['success' => false]);
}
public function status_outsource()
{
try {
$id = $this->request->getPost('outsource_id');
$isactive = $this->request->getPost('isactive');
$OutsourceModel = new OutsourceModel();
$data = [
'is_active' => $isactive
];
$updated = $OutsourceModel->update($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);
}
}
}
?>