FIX_TrackerIssuesFixes

This commit is contained in:
sanjeev.p 2026-02-13 16:28:04 +05:30
parent 1b79f2404b
commit 68edb80f5d
2 changed files with 89 additions and 63 deletions

View File

@ -2689,7 +2689,7 @@ class ClientController extends AdminController
'errors' => ['required' => 'Please select a Client Branch.']
],
'policy_type_id' => [
'rules' => 'required|is_natural_no_zero',
'rules' => ['required', 'is_natural_no_zero'],
'errors' => [
'required' => 'Policy Type is required.',
'is_natural_no_zero' => 'Please select a valid Policy Type.'
@ -2707,11 +2707,16 @@ class ClientController extends AdminController
'rules' => ['required', 'regex_match[/^[a-zA-Z0-9\s_\-\/\\\]+$/]'],
'errors' => [
'required' => 'Policy No is required.',
'regex_match' => 'Policy No Only letters, numbers, spaces, underscores, hyphens, forward slashes, and backslashes are allowed.'
'regex_match' => 'Invalid characters in Policy No.'
]
],
'gst' => [
'rules' => 'required|numeric|greater_than_equal_to[0]|less_than_equal_to[100]',
'rules' => [
'required',
'numeric',
'greater_than_equal_to[0]',
'less_than_equal_to[100]'
],
'errors' => [
'required' => 'GST percentage is required.',
'numeric' => 'GST must be a valid number.',
@ -2735,16 +2740,31 @@ class ClientController extends AdminController
'rules' => 'permit_empty'
],
'disclaimer' => [
'rules' => 'permit_empty|string|min_length[5]',
'rules' => ['permit_empty', 'string', 'min_length[5]'],
'errors' => ['min_length' => 'Disclaimer should be at least 5 characters long if provided.']
],
// --- CHECKBOXES (Permit Empty) ---
'enrolment_visibility' => ['rules' => 'permit_empty'],
'is_lgbtq' => ['rules' => 'permit_empty']
];
if (!$this->validate($rules)) {
// 2. Run the initial validation
$isValid = $this->validate($rules);
// 3. Perform manual date comparison
$start = $this->request->getPost('policy_start_date');
$end = $this->request->getPost('policy_end_date');
$startDate = change_date_format($start ?? null, 'd-m-Y', 'Y-m-d') ?? null;
$endDate = change_date_format($end ?? null, 'd-m-Y', 'Y-m-d') ?? null;
if ($startDate && $endDate && ($endDate < $startDate)) {
// Manually push the error into the validator
$this->validator->setError('policy_end_date', 'Policy start and end date are mismatched (End date cannot be before Start date).');
$isValid = false;
}
// 4. Check final status
if (!$isValid) {
return $this->response->setStatusCode(400)->setJSON([
'status' => false,
'message' => 'Input validation failed',
@ -2851,13 +2871,12 @@ class ClientController extends AdminController
public function editClientPolicy()
{
$rules = [
// --- BASIC SELECTS (Required) ---
'client_branch_id' => [
'rules' => 'required',
'errors' => ['required' => 'Please select a Client Branch.']
],
'policy_type_id' => [
'rules' => 'required|is_natural_no_zero',
'rules' => ['required', 'is_natural_no_zero'],
'errors' => [
'required' => 'Policy Type is required.',
'is_natural_no_zero' => 'Please select a valid Policy Type.'
@ -2871,17 +2890,20 @@ class ClientController extends AdminController
'rules' => 'required',
'errors' => ['required' => 'Please select a TPA.']
],
// --- TEXT FIELDS (Required & Specific Format) ---
'policy_no' => [
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_\-\/\\\]+$/]',
'rules' => ['required', 'regex_match[/^[a-zA-Z0-9\s_\-\/\\\]+$/]'],
'errors' => [
'required' => 'This field is required.',
'regex_match' => 'Only letters, numbers, spaces, _, -, /, and \ are allowed.'
'required' => 'Policy No is required.',
'regex_match' => 'Invalid characters in Policy No.'
]
],
'gst' => [
'rules' => 'required|numeric|greater_than_equal_to[0]|less_than_equal_to[100]',
'rules' => [
'required',
'numeric',
'greater_than_equal_to[0]',
'less_than_equal_to[100]'
],
'errors' => [
'required' => 'GST percentage is required.',
'numeric' => 'GST must be a valid number.',
@ -2889,47 +2911,47 @@ class ClientController extends AdminController
'less_than_equal_to' => 'GST percentage cannot exceed 100%.'
]
],
// --- DATE FIELDS (Required) ---
'policy_start_date' => [
'rules' => 'required|valid_date',
'errors' => [
'required' => 'Start date is required.',
'valid_date' => 'Enter a valid date format (YYYY-MM-DD).'
]
'rules' => 'required',
'errors' => ['required' => 'Start date is required.']
],
'policy_end_date' => [
'rules' => 'required|valid_date',
'errors' => [
'required' => 'End date is required.',
'valid_date' => 'Enter a valid date format (YYYY-MM-DD).'
]
],
// --- PERMIT EMPTY FIELDS (Optional) ---
'base_policy' => [
'rules' => 'permit_empty'
'rules' => 'required',
'errors' => ['required' => 'End date is required.']
],
'wellness_plan_id' => [
'rules' => 'permit_empty|alpha_numeric',
'errors' => [
'alpha_numeric' => 'Wellness Plan ID can only contain letters and numbers (no spaces or special characters).'
]
'errors' => ['alpha_numeric' => 'Wellness Plan ID can only contain letters and numbers.']
],
'wellness_vendor_id' => [
'rules' => 'permit_empty'
],
'disclaimer' => [
'rules' => 'permit_empty|string|min_length[5]',
'rules' => ['permit_empty', 'string', 'min_length[5]'],
'errors' => ['min_length' => 'Disclaimer should be at least 5 characters long if provided.']
],
// --- CHECKBOXES (Permit Empty) ---
'enrolment_visibility' => ['rules' => 'permit_empty'],
'is_lgbtq' => ['rules' => 'permit_empty']
];
if (!$this->validate($rules)) {
// 2. Run the initial validation
$isValid = $this->validate($rules);
// 3. Perform manual date comparison
$start = $this->request->getPost('policy_start_date');
$end = $this->request->getPost('policy_end_date');
$startDate = change_date_format($start ?? null, 'd-m-Y', 'Y-m-d') ?? null;
$endDate = change_date_format($end ?? null, 'd-m-Y', 'Y-m-d') ?? null;
if ($startDate && $endDate && ($endDate < $startDate)) {
// Manually push the error into the validator
$this->validator->setError('policy_end_date', 'Policy start and end date are mismatched (End date cannot be before Start date).');
$isValid = false;
}
// 4. Check final status
if (!$isValid) {
return $this->response->setStatusCode(400)->setJSON([
'status' => false,
'message' => 'Input validation failed',

View File

@ -1216,36 +1216,31 @@ class TicketController extends BaseController
'claim_type' => ['label' => 'Claim Type','rules' => 'required',
'errors' => ['required' => 'Claim Type is required']
],
'hospital_name' => ['label' => 'Hospital Name','rules' => 'required',
'errors' => ['required' => 'Hospital Name is required']
],
'hospital_address' => ['label' => 'Hospital Address','rules' => 'required',
'errors' => ['required' => 'Hospital Address is required']
'hospital_name' => ['label' => 'Hospital Name','rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
'errors' => ['required' => 'Hospital Name is required','regex_match' => 'Hospital Name can contain letters, numbers, spaces, and hyphens.']
],
'hospital_address' => ['label' => 'Hospital Address','rules' => 'permit_empty','errors' => []],
'hospital_state' => [
'label' => 'hospital_State',
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z\s\-]+$/]',
'errors' => [
'required' => 'Hospital State is required.',
'regex_match' => 'Hospital State name can only contain letters, spaces, and hyphens.'
]
],
'hospital_city' => [
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
'errors' => [
'required' => 'Hospital City is required',
'regex_match' => 'Hospital City can contain letters, numbers, spaces, and hyphens.'
]
],
'hospital_pin_code' => [
'rules' => 'required|numeric|exact_length[6]',
'rules' => 'permit_empty|numeric|exact_length[6]',
'errors' => [
'required' => 'Hospital Pincode is required.',
'numeric' => 'Hospital Pincode must be digits only.',
'exact_length' => 'Hospital Pincode must be exactly 6 digits.'
]
],
'hospital_phone_no' => ['label' => 'Hospital Phone','rules' => 'required|numeric|min_length[10]',
'hospital_phone_no' => ['label' => 'Hospital Phone','rules' => 'permit_empty|numeric|min_length[10]',
'errors' => ['min_length' => 'Phone number too short']
],
'doa' => ['label' => 'DOA', 'rules' => 'required',
@ -1551,22 +1546,31 @@ class TicketController extends BaseController
'claim_type' => ['label' => 'Claim Type','rules' => 'required',
'errors' => ['required' => 'Claim Type is required']
],
'hospital_name' => ['label' => 'Hospital Name','rules' => 'required',
'errors' => ['required' => 'Hospital Name is required']
'hospital_name' => ['label' => 'Hospital Name','rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
'errors' => ['required' => 'Hospital Name is required','regex_match' => 'Hospital Name can contain letters, numbers, spaces, and hyphens.']
],
'hospital_address' => ['label' => 'Hospital Address','rules' => 'required',
'errors' => ['required' => 'Hospital Address is required']
'hospital_address' => ['label' => 'Hospital Address','rules' => 'permit_empty','errors' => []],
'hospital_state' => [
'label' => 'hospital_State',
'rules' => 'permit_empty|regex_match[/^[a-zA-Z\s\-]+$/]',
'errors' => [
'regex_match' => 'Hospital State name can only contain letters, spaces, and hyphens.'
]
],
'hospital_city' => ['label' => 'Hospital City','rules' => 'required',
'errors' => ['required' => 'City is required']
'hospital_city' => [
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
'errors' => [
'regex_match' => 'Hospital City can contain letters, numbers, spaces, and hyphens.'
]
],
'hospital_state' => ['label' => 'Hospital State','rules' => 'required',
'errors' => ['required' => 'State is required']
'hospital_pin_code' => [
'rules' => 'permit_empty|numeric|exact_length[6]',
'errors' => [
'numeric' => 'Hospital Pincode must be digits only.',
'exact_length' => 'Hospital Pincode must be exactly 6 digits.'
]
],
'hospital_pin_code' => ['label' => 'Hospital Pincode','rules' => 'required|numeric|exact_length[6]',
'errors' => ['exact_length' => 'Pincode must be 6 digits']
],
'hospital_phone_no' => ['label' => 'Hospital Phone','rules' => 'required|numeric|min_length[10]',
'hospital_phone_no' => ['label' => 'Hospital Phone','rules' => 'permit_empty|numeric|min_length[10]',
'errors' => ['min_length' => 'Phone number too short']
],
'doa' => ['label' => 'DOA', 'rules' => 'required',