FIX_Vechile Validation in Enquiry
This commit is contained in:
parent
0580c4e0ec
commit
f6d1406cd4
@ -129,7 +129,7 @@ $routes->group('api', ['filter' => 'appSignature'], function ($routes) {
|
||||
$routes->get('dashboard/handlerDashboard', 'DashboardController::handlerDashboard');
|
||||
$routes->get('dashboard/staffDashboard', 'DashboardController::staffDashboard');
|
||||
$routes->get('dashboard/agentDashboard', 'DashboardController::agentDashboard');
|
||||
|
||||
|
||||
$routes->get("dashboard/businessDashboard", "DashboardController::businessDashboard");
|
||||
$routes->get("dashboard/partnerDashboard", "DashboardController::partnerDashboard");
|
||||
|
||||
|
||||
@ -665,11 +665,81 @@ class EnquiryController extends ResourceController
|
||||
return $this->respond(['status' => 'success','data' => $enquiryId ], 200);
|
||||
}
|
||||
|
||||
public function checkDuplicate()
|
||||
public function checkVehicleDuplicate()
|
||||
{
|
||||
$request = $this->request->getGet("reg_no");
|
||||
}
|
||||
// --- 1. Input Validation ---
|
||||
$reg_no = $this->request->getGet("reg_no");
|
||||
|
||||
if (!$reg_no) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'error',
|
||||
'message' => 'Please provide a valid vehicle registration number.'
|
||||
])->setStatusCode(400);
|
||||
}
|
||||
|
||||
// --- 2. Step 1: Check in partner_enquiry (Active/Latest Record) ---
|
||||
// Get the LATEST ACTIVE enquiry record for the registration number
|
||||
$enquiry = $this->db->table("partner_enquiry")
|
||||
->select("*")
|
||||
->where("reg_no", $reg_no)
|
||||
->where("is_active", 1) // Only consider active enquiries
|
||||
->orderBy("id", "DESC")
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
// If no active enquiry is found, the vehicle is considered 'not' a duplicate
|
||||
if (!$enquiry) {
|
||||
return $this->response->setJSON([
|
||||
"status" => "not exists",
|
||||
"message" => "No active record found for this vehicle number in enquiries."
|
||||
]);
|
||||
}
|
||||
|
||||
// NOTE: The previous check for $enquiry["is_active"] == 0 is now redundant
|
||||
// because the query already filters for where("is_active", 1).
|
||||
|
||||
// --- 3. Step 2: Check in partner_policy (Active Policy for Enquiry) ---
|
||||
// Get the LATEST ACTIVE policy for the found enquiry
|
||||
$policy = $this->db->table("partner_policy")
|
||||
->select("*")
|
||||
->where("enquiry_id", $enquiry["id"])
|
||||
->where("is_active", 1) // Only consider active policies
|
||||
->orderBy("id", "DESC")
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
// If no active policy is found for the active enquiry, return "not"
|
||||
if (!$policy) {
|
||||
return $this->response->setJSON([
|
||||
"status" => "exists",
|
||||
"message" => "Vehicle enquiry found but no active policy issued."
|
||||
]);
|
||||
}
|
||||
|
||||
// --- 4. Step 3: Compare end_date >= CURRENT_DATE ---
|
||||
$currentDate = date("Y-m-d");
|
||||
|
||||
// The policy is active if the end_date is TODAY or in the FUTURE.
|
||||
if ($policy["end_date"] >= $currentDate) {
|
||||
// ACTIVE POLICY → 'exists'
|
||||
$msg = $enquiry["name"]." with policy ".$policy["policy_number"]." for vehicle ".$reg_no." already exists and is active.";
|
||||
|
||||
return $this->response->setJSON([
|
||||
"status" => "exists",
|
||||
"message" => $msg,
|
||||
"ref" => [
|
||||
"enquiry" => $enquiry,
|
||||
"policy" => $policy
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
// POLICY expired (end_date is in the past)
|
||||
return $this->response->setJSON([
|
||||
"status" => "not exists",
|
||||
"message" => "Policy exists but is expired for vehicle number " . $reg_no
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user