GWM : Enquiry

This commit is contained in:
Gowtham M 2025-09-03 15:49:10 +05:30
parent 4541afe9cc
commit 8ba82c4d4b
6 changed files with 116 additions and 32 deletions

View File

@ -27,7 +27,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
//api's with token //api's with token
// $routes->group('api', ['filter' => ["jwtAuth","appSignature"] ], function ($routes) { $routes->group('api', ['filter' => ["jwtAuth","appSignature"] ], function ($routes) {
//Master //Master
@ -35,6 +35,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
$routes->get('master/getVehicleTypeMaster', 'MasterController::getVehicleTypeMaster'); $routes->get('master/getVehicleTypeMaster', 'MasterController::getVehicleTypeMaster');
$routes->get('master/getInsurancePlanTypeMaster', 'MasterController::getInsurancePlanTypeMaster'); $routes->get('master/getInsurancePlanTypeMaster', 'MasterController::getInsurancePlanTypeMaster');
$routes->get('master/getInsurersMaster', 'MasterController::getInsurersMaster'); $routes->get('master/getInsurersMaster', 'MasterController::getInsurersMaster');
$routes->get('master/getStaffMaster', 'MasterController::getStaffMaster');
//Agent //Agent
$routes->get('agent/agentList', 'AgentController::agentList'); $routes->get('agent/agentList', 'AgentController::agentList');
@ -59,8 +60,12 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
//Enquiry //Enquiry
$routes->get('enquiry/enquiryList', 'EnquiryController::enquiryList'); $routes->get('enquiry/enquiryList', 'EnquiryController::enquiryList');
$routes->post('enquiry/enquiryAssignUpdate', 'EnquiryController::enquiryAssignUpdate');
$routes->post('enquiry/createEnquiry', 'EnquiryController::createEnquiry');
$routes->post('enquiry/updateEnquiry', 'EnquiryController::updateEnquiry');
$routes->get('enquiry/downloadEnquiryFile', 'EnquiryController::downloadEnquiryFile');
// }); });

View File

@ -4,14 +4,17 @@ namespace App\Controllers;
use CodeIgniter\RESTful\ResourceController; use CodeIgniter\RESTful\ResourceController;
use App\Models\EnquiryModel; use App\Models\EnquiryModel;
use App\Models\AgentModel;
class EnquiryController extends ResourceController class EnquiryController extends ResourceController
{ {
protected $enquiryModel; protected $enquiryModel;
protected $AgentModel;
public function __construct() public function __construct()
{ {
$this->enquiryModel = new EnquiryModel(); $this->enquiryModel = new EnquiryModel();
$this->AgentModel = new AgentModel();
} }
// List all enquiries // List all enquiries
@ -22,6 +25,7 @@ class EnquiryController extends ResourceController
$agent_id = $this->request->getGet('agent_id'); $agent_id = $this->request->getGet('agent_id');
$staff_id = $this->request->getGet('staff_id'); $staff_id = $this->request->getGet('staff_id');
$enquiry_id = $this->request->getGet('enquiry_id'); $enquiry_id = $this->request->getGet('enquiry_id');
$manager_id = $this->request->getGet('manager_id');
if (!empty($agent_id)) { if (!empty($agent_id)) {
$data = $this->enquiryModel->getEnquiry('AGENT', $agent_id); $data = $this->enquiryModel->getEnquiry('AGENT', $agent_id);
@ -29,6 +33,8 @@ class EnquiryController extends ResourceController
$data = $this->enquiryModel->getEnquiry('STAFF', $staff_id); $data = $this->enquiryModel->getEnquiry('STAFF', $staff_id);
} elseif (!empty($enquiry_id)) { } elseif (!empty($enquiry_id)) {
$data = $this->enquiryModel->getEnquiry('ENQUIRY',$enquiry_id); $data = $this->enquiryModel->getEnquiry('ENQUIRY',$enquiry_id);
} elseif (!empty($manager_id)) {
$data = $this->enquiryModel->getEnquiry('MANAGER',$manager_id);
} else { } else {
$data = $this->enquiryModel->getEnquiry('ALL'); $data = $this->enquiryModel->getEnquiry('ALL');
} }
@ -40,23 +46,6 @@ class EnquiryController extends ResourceController
} }
} }
// Find a single enquiry
public function findEnquiry()
{
try {
$id = $this->request->getGet('id');
$record = $this->enquiryModel->find($id);
if (!$record) {
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => []], 200);
}
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $record], 200);
} catch (\Exception $e) {
return $this->respond(['status' => 'failed', 'code' => 500, 'error' => $e->getMessage()], 500);
}
}
// CREATE enquiry // CREATE enquiry
public function createEnquiry() public function createEnquiry()
{ {
@ -99,14 +88,14 @@ class EnquiryController extends ResourceController
$insertData = [ $insertData = [
'agent_id' => $data['agent_id'], 'agent_id' => $data['agent_id'],
'reg_no' => $data['reg_no'], 'reg_no' => $data['reg_no'],
'vehicle_type_id' => $data['vehicle_type_id'] ?? null, 'vehicle_type_id' => $data['vehicle_type_id'],
'insurer_id' => $data['insurer_id'] ?? null, 'insurer_id' => $data['insurer_id'],
'rc_file_name' => $rcFileName, 'rc_file_name' => $rcFileName,
'id_proof_file_name' => $idProofFileName, 'id_proof_file_name' => $idProofFileName,
'previous_policy_file_name' => $previousPolicyFileName, 'previous_policy_file_name' => $previousPolicyFileName,
'remarks' => $data['remarks'] ?? null, 'remarks' => $data['remarks'],
'status' => $data['status'] ?? 'Pending', 'manager_id' => $data['manager_id'] ,
'created_by' => $data['created_by'] ?? null 'created_by' => $data['created_by']
]; ];
$this->enquiryModel->insert($insertData); $this->enquiryModel->insert($insertData);
@ -141,7 +130,6 @@ class EnquiryController extends ResourceController
'vehicle_type_id' => $data['vehicle_type_id'] ?? $enquiry['vehicle_type_id'], 'vehicle_type_id' => $data['vehicle_type_id'] ?? $enquiry['vehicle_type_id'],
'insurer_id' => $data['insurer_id'] ?? $enquiry['insurer_id'], 'insurer_id' => $data['insurer_id'] ?? $enquiry['insurer_id'],
'remarks' => $data['remarks'] ?? $enquiry['remarks'], 'remarks' => $data['remarks'] ?? $enquiry['remarks'],
'status' => $data['status'] ?? $enquiry['status'],
'updated_by' => $data['updated_by'] ?? null, 'updated_by' => $data['updated_by'] ?? null,
]; ];
@ -183,22 +171,92 @@ class EnquiryController extends ResourceController
} }
} }
// Activate/Deactivate enquiry //Assign to staff
public function toggleEnquiryStatus() public function enquiryAssignUpdate()
{ {
try { try {
$id = $this->request->getPost('id');
$isActive = $this->request->getPost('is_active');
if (!$id) { $data = $this->request->getPost();
if (!isset($data['id'])) {
return $this->respond(['status' => 'failed', 'code' => 200, 'error' => 'ID Required'], 200); return $this->respond(['status' => 'failed', 'code' => 200, 'error' => 'ID Required'], 200);
} }
$this->enquiryModel->update($id, ['is_active' => $isActive]); $id = $data['id'];
$enquiry = $this->enquiryModel->find($id);
if (!$enquiry) {
return $this->respond(['status' => 'failed', 'code' => 200, 'error' => 'Data Not Found'], 200);
}
$updateData = [
'assigned_to' => $data['assigned_to']
];
$this->enquiryModel->update($id, $updateData);
return $this->respond(['status' => 'success', 'code' => 200, 'message' => 'Enquiry updated successfully'], 200);
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $data], 200);
return $this->respond(['status' => 'success', 'code' => 200, 'message' => 'Status updated'], 200);
} catch (\Exception $e) { } catch (\Exception $e) {
return $this->respond(['status' => 'failed', 'code' => 500, 'error' => $e->getMessage()], 500); return $this->respond(['status' => 'failed', 'code' => 500, 'error' => $e->getMessage()], 500);
} }
} }
// Download enquiry file
public function downloadEnquiryFile()
{
try {
$enquiryId = $this->request->getGet('enquiry_id');
$fileType = $this->request->getGet('file_type'); // rc | id_proof | previous_policy
if (!$enquiryId || !$fileType) {
return $this->respond(['status' => 'failed','code' => 400,'data' => 'enquiry_id and file_type are required'], 200);
}
// Map file_type to DB column and folder
$fileMap = [
'rc' => ['column' => 'rc_file_name', 'folder' => 'rc'],
'id_proof' => ['column' => 'id_proof_file_name', 'folder' => 'id_proof'],
'previous_policy' => ['column' => 'previous_policy_file_name', 'folder' => 'previous_policy'],
];
if (!array_key_exists($fileType, $fileMap)) {
return $this->respond(['status' => 'failed','code' => 400,'data' => 'Invalid file_type'], 200);
}
$fileColumn = $fileMap[$fileType]['column'];
$folder = $fileMap[$fileType]['folder'];
// Fetch record from DB
$fileRecord = $this->enquiryModel->where('is_active', 1)->find($enquiryId);
if (!$fileRecord || empty($fileRecord[$fileColumn])) {
return $this->respond([ 'status' => 'failed','code' => 404,'data' => 'File not found in database'], 200);
}
$filePath = WRITEPATH . "uploads/enquiry/{$folder}/" . $fileRecord[$fileColumn];
if (!file_exists($filePath)) {
return $this->respond(['status' => 'failed','code' => 404,'data' => 'File missing on server'], 200);
}
// Force file download
return $this->response->download($filePath, null);
} catch (\Exception $e) {
return $this->respond(['status' => 'failed','code' => 500,'message' => $e->getMessage() ], 500);
}
}
} }

View File

@ -7,6 +7,7 @@ use App\Models\RoleMasterModel;
use App\Models\VehicleTypeMasterModel; use App\Models\VehicleTypeMasterModel;
use App\Models\InsurancePlanTypeMasterModel; use App\Models\InsurancePlanTypeMasterModel;
use App\Models\InsurersModel; use App\Models\InsurersModel;
use App\Models\StaffModel;
class MasterController extends ResourceController class MasterController extends ResourceController
@ -17,6 +18,7 @@ class MasterController extends ResourceController
protected $VehicleTypeMasterModel; protected $VehicleTypeMasterModel;
protected $InsurancePlanTypeMasterModel; protected $InsurancePlanTypeMasterModel;
protected $InsurersModel; protected $InsurersModel;
protected $StaffModel;
public function __construct() public function __construct()
@ -26,6 +28,7 @@ class MasterController extends ResourceController
$this->VehicleTypeMasterModel = new VehicleTypeMasterModel(); $this->VehicleTypeMasterModel = new VehicleTypeMasterModel();
$this->InsurancePlanTypeMasterModel = new InsurancePlanTypeMasterModel(); $this->InsurancePlanTypeMasterModel = new InsurancePlanTypeMasterModel();
$this->InsurersModel = new InsurersModel(); $this->InsurersModel = new InsurersModel();
$this->StaffModel = new StaffModel();
} }
@ -80,6 +83,17 @@ class MasterController extends ResourceController
return $this->respond(['status' => 200,'message' => 'success','data' => $data]); return $this->respond(['status' => 200,'message' => 'success','data' => $data]);
} }
public function getStaffMaster()
{
$data = $this->StaffModel->select('id,name')->where('is_active',1)->where('riole_id',2)->findAll();
if (!$data) {
return $this->failNotFound('No data found');
}
return $this->respond(['status' => 200,'message' => 'success','data' => $data]);
}
// public function getTravelStatusMaster() // public function getTravelStatusMaster()
// { // {

View File

@ -20,6 +20,7 @@ class EnquiryModel extends Model
'remarks', 'remarks',
'status', 'status',
'is_active', 'is_active',
'manager_id',
'assigned_to', 'assigned_to',
'created_by', 'created_by',
'updated_by' 'updated_by'
@ -69,6 +70,10 @@ class EnquiryModel extends Model
{ {
return $data->where('partner_enquiry.id', $Id)->first(); return $data->where('partner_enquiry.id', $Id)->first();
} }
else if($getBy == 'MANAGER')
{
return $data->where('partner_enquiry.manager_id', $Id)->first();
}
} }
} }

View File

@ -16,6 +16,7 @@ class PolicyModel extends Model
'policy_pdf_file_name', 'policy_pdf_file_name',
'policy_payment_receipt_file_name', 'policy_payment_receipt_file_name',
'is_active', 'is_active',
'manager_id',
'created_by', 'created_by',
'updated_by' 'updated_by'
]; ];

View File

@ -16,6 +16,7 @@ class QuotationModel extends Model
'status', 'status',
'reject_reason', 'reject_reason',
'is_active', 'is_active',
'manager_id',
'created_by', 'created_by',
'updated_by' 'updated_by'
]; ];