Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
77e6016fd3
@ -16,6 +16,8 @@ class Acl
|
||||
'#^/getVerifyPosMobileNo#' => ['public' => true],
|
||||
'#^/getVerifiedPosUserData#' => ['public' => true],
|
||||
'#^/swagger#' => ['roles' => [ADMIN_ROLE_ID]],
|
||||
'#^/getEmployeeActiveOrInactivePolicy#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
|
||||
'#^/test/testingquerys#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
|
||||
'#^/fedeploy#' => ['roles' => [ADMIN_ROLE_ID]],
|
||||
'#^/visitOffBoardCheck#' => ['roles' => [ADMIN_ROLE_ID]],
|
||||
'#^/logs#' => ['roles' => [ADMIN_ROLE_ID]],
|
||||
|
||||
@ -836,6 +836,7 @@ $routes->group('test', function($routes) {
|
||||
$routes->get('membervalidation', 'TestingController::membervalidation');
|
||||
$routes->get('generateExcel', 'TestingController::generateExcel');
|
||||
$routes->get('logo_renaming','TestingController::logo_renaming');
|
||||
$routes->get('testingquerys','TestingController::testingquerys');
|
||||
$routes->get('thzReminderCrone','ThzController::getOpenTicketsOlderThan24HoursAndAssignNextLevel');
|
||||
// $routes->get('createDefaultMailTempalteInDB','TestingController::createDefaultMailTempalteInCrossDB');
|
||||
// $routes->get('createDefaultMailTempalteInSameDB','TestingController::createDefaultMailTempalteInSameDB');
|
||||
|
||||
@ -783,11 +783,19 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
|
||||
// 'cd_ac_no' => [
|
||||
// 'rules' => 'required|regex_match[/^[a-zA-Z0-9\/_\\-]+$/]',
|
||||
// 'errors' => [
|
||||
// 'required' => 'Account number is required',
|
||||
// 'regex_match' => 'Account number can only contain letters, numbers, slashes (/), underscores (_), and hyphens (-)',
|
||||
// ]
|
||||
// ],
|
||||
|
||||
'cd_ac_no' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\/_\\-]+$/]',
|
||||
'rules' => 'required|numeric',
|
||||
'errors' => [
|
||||
'required' => 'Account number is required',
|
||||
'regex_match' => 'Account number can only contain letters, numbers, slashes (/), underscores (_), and hyphens (-)',
|
||||
'required' => 'CD Account number is required.',
|
||||
'numeric' => 'CD Account number must contain only numbers.',
|
||||
]
|
||||
],
|
||||
|
||||
@ -981,19 +989,19 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
'client_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_-]+$/]|min_length[2]||max_length[45]',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_-]+$/]|min_length[2]|max_length[45]',
|
||||
'errors' => [
|
||||
'required' => 'Client Name is required',
|
||||
'regex_match' => 'Client Name can only contain letters, numbers, spaces, hyphens(-), and underscores(_).',
|
||||
'regex_match' => 'Client Name can only contain letters, numbers, spaces, hyphens and underscores.',
|
||||
'min_length' => 'Client Name must be at least 2 characters.',
|
||||
'max_length' => 'Client Name must not exceed 45 characters.',
|
||||
]
|
||||
],
|
||||
'short_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]|min_length[2]||max_length[15]',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]|min_length[2]|max_length[15]',
|
||||
'errors' => [
|
||||
'required' => 'Client Short Name is required',
|
||||
'regex_match' => 'Client Short Name can only contain letters, numbers, hyphens(-), and underscores(_) with no spaces.',
|
||||
'regex_match' => 'Client Short Name can only contain letters, numbers, hyphens and underscores.',
|
||||
'min_length' => 'Client Short Name must be at least 2 characters.',
|
||||
'max_length' => 'Client Short Name must not exceed 15 characters.',
|
||||
]
|
||||
@ -1011,21 +1019,31 @@ class ClientController extends AdminController
|
||||
'required' => 'HR File Processed By is required.',
|
||||
]
|
||||
],
|
||||
// 'client_logo' => [
|
||||
// 'rules' => [
|
||||
// 'uploaded[client_logo]', // Add this to check if a file was actually sent
|
||||
// 'is_image[client_logo]',
|
||||
// 'max_size[client_logo,200]',
|
||||
// 'ext_in[client_logo,jpg,jpeg,png]',
|
||||
// 'max_dims[client_logo,100,100]',
|
||||
// ],
|
||||
// 'errors' => [
|
||||
// 'uploaded' => 'Please upload a client logo',
|
||||
// 'is_image' => 'The uploaded file must be an image',
|
||||
// 'max_size' => 'File size should not exceed 200 KB',
|
||||
// 'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
// 'max_dims' => 'Image dimensions must be 100 x 100 pixels',
|
||||
// ]
|
||||
// ],
|
||||
'client_logo' => [
|
||||
'rules' => [
|
||||
'is_image[client_logo]',
|
||||
'max_size[client_logo,200]', // 200 KB
|
||||
'ext_in[client_logo,jpg,jpeg,png]',
|
||||
'max_dims[client_logo,100,100]',
|
||||
],
|
||||
'errors' => [
|
||||
'is_image' => 'The uploaded file must be an image',
|
||||
'max_size' => 'File size should not exceed 200 KB',
|
||||
'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
'max_dims' => 'Image dimensions must be 100 x 100 pixels',
|
||||
]
|
||||
'rules' => 'permit_empty|is_image[client_logo]|max_size[client_logo,200]|ext_in[client_logo,jpg,jpeg,png]|max_dims[client_logo,100,100]',
|
||||
'errors' => [
|
||||
'is_image' => 'The uploaded file must be an image',
|
||||
'max_size' => 'File size should not exceed 200 KB',
|
||||
'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
'max_dims' => 'Image dimensions must be 100 x 100 pixels',
|
||||
]
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
if (!$this->validate($rules)) {
|
||||
@ -1077,6 +1095,65 @@ class ClientController extends AdminController
|
||||
|
||||
public function editClientGeneralInfo()
|
||||
{
|
||||
$rules = [
|
||||
'entity_type_id' => [
|
||||
'rules' => 'required|numeric',
|
||||
'errors' => [
|
||||
'required' => 'Entity Type is required',
|
||||
'numeric' => 'Invalid Entity Type selected'
|
||||
]
|
||||
],
|
||||
'client_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Client Name is required',
|
||||
'regex_match' => 'Client Name can only contain letters, numbers, spaces, hyphens and underscores.',
|
||||
'min_length' => 'Client Name must be at least 2 characters.',
|
||||
'max_length' => 'Client Name must not exceed 45 characters.',
|
||||
]
|
||||
],
|
||||
'short_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Client Short Name is required',
|
||||
'regex_match' => 'Client Short Name can only contain letters, numbers, hyphens and underscores.',
|
||||
'min_length' => 'Client Short Name must be at least 2 characters.',
|
||||
'max_length' => 'Client Short Name must not exceed 15 characters.',
|
||||
]
|
||||
],
|
||||
'pan' => [
|
||||
'rules' => 'required|regex_match[/^[A-Z]{5}[0-9]{4}[A-Z]$/]',
|
||||
'errors' => [
|
||||
'required' => 'PAN Number is required.',
|
||||
'regex_match' => 'Invalid PAN format. Example: ABCDE1234F'
|
||||
]
|
||||
],
|
||||
'hr_file_processed_by' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'HR File Processed By is required.',
|
||||
]
|
||||
],
|
||||
'client_logo' => [
|
||||
'rules' => 'permit_empty|is_image[client_logo]|max_size[client_logo,200]|ext_in[client_logo,jpg,jpeg,png]|max_dims[client_logo,100,100]',
|
||||
'errors' => [
|
||||
'is_image' => 'The uploaded file must be an image',
|
||||
'max_size' => 'File size should not exceed 200 KB',
|
||||
'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
'max_dims' => 'Image dimensions must be 100 x 100 pixels',
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
if (!$this->validate($rules)) {
|
||||
return $this->response->setStatusCode(400)->setJSON([
|
||||
'status' => false,
|
||||
'message' => 'Input validation failed',
|
||||
'code' => 400,
|
||||
'errors' => $this->validator->getErrors()
|
||||
]);
|
||||
}
|
||||
|
||||
$this->myLogger->logme('error', 'edit client general info function called');
|
||||
$uploadFilePath = ROOTPATH . 'public/uploads/logo/';
|
||||
$file_name = file_Upload($this->request->getFile('client_logo'), $uploadFilePath);
|
||||
@ -1559,14 +1636,14 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
];
|
||||
if (!$this->validate($rules)) {
|
||||
return $this->response->setStatusCode(400)->setJSON([
|
||||
'status' => false,
|
||||
'message' => 'Input validation failed',
|
||||
'code' => 400,
|
||||
'errors' => $this->validator->getErrors()
|
||||
]);
|
||||
}
|
||||
// if (!$this->validate($rules)) {
|
||||
// return $this->response->setStatusCode(400)->setJSON([
|
||||
// 'status' => false,
|
||||
// 'message' => 'Input validation failed',
|
||||
// 'code' => 400,
|
||||
// 'errors' => $this->validator->getErrors()
|
||||
// ]);
|
||||
// }
|
||||
|
||||
$data['client_id'] = $this->request->getPost('client_id');
|
||||
$data['created_by'] = get_session_userid();
|
||||
@ -1640,14 +1717,14 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
];
|
||||
if (!$this->validate($rules)) {
|
||||
return $this->response->setStatusCode(400)->setJSON([
|
||||
'status' => false,
|
||||
'message' => 'Input validation failed',
|
||||
'code' => 400,
|
||||
'errors' => $this->validator->getErrors()
|
||||
]);
|
||||
}
|
||||
// if (!$this->validate($rules)) {
|
||||
// return $this->response->setStatusCode(400)->setJSON([
|
||||
// 'status' => false,
|
||||
// 'message' => 'Input validation failed',
|
||||
// 'code' => 400,
|
||||
// 'errors' => $this->validator->getErrors()
|
||||
// ]);
|
||||
// }
|
||||
|
||||
$id = $this->request->getPost('PrimaryKey');
|
||||
$data['client_id'] = $this->request->getPost('client_id');
|
||||
@ -1729,14 +1806,14 @@ class ClientController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_-]+$/]|min_length[3]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Name is required',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, hyphens(-), and underscores(_).',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, hyphens and underscores.',
|
||||
]
|
||||
],
|
||||
'branch_code' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Code is required',
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, hyphens(-), and underscores(_).',
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, hyphens and underscores.',
|
||||
]
|
||||
],
|
||||
'address1' => [
|
||||
@ -1747,23 +1824,34 @@ class ClientController extends AdminController
|
||||
'rules' => 'permit_empty|string',
|
||||
],
|
||||
'state' => [
|
||||
'rules' => 'required|numeric',
|
||||
'errors' => ['required' => 'State is required']
|
||||
'label' => 'State',
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'State is required.']
|
||||
// 'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
// 'errors' => [
|
||||
// 'required' => 'State is required.',
|
||||
// 'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
// ]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'District is required.']
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'City is required.']
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be numeric',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
'gst' => [
|
||||
@ -2120,15 +2208,20 @@ class ClientController extends AdminController
|
||||
|
||||
$rules = [
|
||||
'branch_name' => [
|
||||
'rules' => 'required',
|
||||
'rules' => 'required|min_length[3]|regex_match[/^[a-zA-Z0-9\s\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Name is required',
|
||||
'required' => 'Branch Name is required',
|
||||
'min_length' => 'Branch Name must be at least 3 characters long',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'branch_code' => [
|
||||
'rules' => 'required',
|
||||
// Note: Codes usually don't have spaces, but I've included the others
|
||||
'rules' => 'required|min_length[2]|regex_match[/^[a-zA-Z0-9\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Code is required',
|
||||
'required' => 'Branch Code is required',
|
||||
'min_length' => 'Branch Code must be at least 2 characters long',
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'address1' => [
|
||||
@ -2138,29 +2231,35 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
'state' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'State is required',
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'City is required.',
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
]
|
||||
],
|
||||
'label' => 'State',
|
||||
// 'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
// 'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
'gst' => [
|
||||
'rules' => 'required|regex_match[/^\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}Z[A-Z\d]{1}$/]',
|
||||
'errors' => [
|
||||
@ -2169,10 +2268,11 @@ class ClientController extends AdminController
|
||||
]
|
||||
],
|
||||
'name.*' => [
|
||||
'rules' => 'required|alpha_space',
|
||||
'rules' => 'required|min_length[3]|regex_match[/^[a-zA-Z0-9\s\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Contact name is required',
|
||||
'alpha_space' => 'Contact name may contain only letters and spaces'
|
||||
'min_length' => 'Contact name must be at least 3 characters long',
|
||||
'regex_match' => 'Contact name can only contain letters, numbers, spaces, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'designation.*' => [
|
||||
@ -2294,6 +2394,104 @@ class ClientController extends AdminController
|
||||
$client_id = $this->request->getPost('client_id');
|
||||
$pre_branch_id = $this->request->getPost('pre_branch_id') ?? '';
|
||||
|
||||
$rules = [
|
||||
'branch_name' => [
|
||||
'rules' => 'required|min_length[3]|regex_match[/^[a-zA-Z0-9\s\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Name is required',
|
||||
'min_length' => 'Branch Name must be at least 3 characters long',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'branch_code' => [
|
||||
// Note: Codes usually don't have spaces, but I've included the others
|
||||
'rules' => 'required|min_length[2]|regex_match[/^[a-zA-Z0-9\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Code is required',
|
||||
'min_length' => 'Branch Code must be at least 2 characters long',
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'address1' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'Address Line 1 is required',
|
||||
]
|
||||
],
|
||||
'state' => [
|
||||
'label' => 'State',
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'State is required.']
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
'gst' => [
|
||||
'rules' => 'required|regex_match[/^\d{2}[A-Z]{5}\d{4}[A-Z]{1}[A-Z\d]{1}Z[A-Z\d]{1}$/]',
|
||||
'errors' => [
|
||||
'required' => 'GST number is required',
|
||||
'regex_match' => 'Invalid GST Number. Example: 12ABCDE1234F5Z6'
|
||||
]
|
||||
],
|
||||
'name.*' => [
|
||||
'rules' => 'required|min_length[3]|regex_match[/^[a-zA-Z0-9\s\-_]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Contact name is required',
|
||||
'min_length' => 'Contact name must be at least 3 characters long',
|
||||
'regex_match' => 'Contact name can only contain letters, numbers, spaces, hyphens and underscores.'
|
||||
]
|
||||
],
|
||||
'designation.*' => [
|
||||
'rules' => 'required|alpha_space',
|
||||
'errors' => [
|
||||
'required' => 'Designation is required',
|
||||
'alpha_space' => 'Designation may contain only letters and spaces'
|
||||
]
|
||||
],
|
||||
'email.*' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
'mobile.*' => [
|
||||
'rules' => 'required|numeric|exact_length[10]',
|
||||
'errors' => [
|
||||
'required' => 'Mobile number is required',
|
||||
'numeric' => 'Mobile number must contain digits only',
|
||||
'exact_length' => 'Mobile number must be exactly 10 digits'
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
if (!$this->validate($rules)) {
|
||||
return $this->response->setStatusCode(400)->setJSON([
|
||||
'status' => false,
|
||||
'message' => 'Input validation failed',
|
||||
'code' => 400,
|
||||
'errors' => $this->validator->getErrors()
|
||||
]);
|
||||
}
|
||||
|
||||
$data = $this->request->getPost();
|
||||
$data = sanitizeInputArrayAdvanced($data);
|
||||
$data['pre_branch_id'] = $pre_branch_id;
|
||||
@ -2486,7 +2684,6 @@ class ClientController extends AdminController
|
||||
$sanitized_post_data = sanitizeInputArrayAdvanced($request_post_data);
|
||||
|
||||
$rules = [
|
||||
// --- BASIC SELECTS (Required) ---
|
||||
'client_branch_id' => [
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'Please select a Client Branch.']
|
||||
@ -2506,13 +2703,11 @@ 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' => 'Policy No Only letters, numbers, spaces, underscores, hyphens, forward slashes, and backslashes are allowed.'
|
||||
]
|
||||
],
|
||||
'gst' => [
|
||||
@ -2524,30 +2719,17 @@ class ClientController extends AdminController
|
||||
'less_than_equal_to' => 'GST percentage cannot exceed 100%.'
|
||||
]
|
||||
],
|
||||
|
||||
// --- DATE FIELDS (Required) ---
|
||||
'policy_start_date' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'Start date is required.',
|
||||
]
|
||||
'errors' => ['required' => 'Start date is required.']
|
||||
],
|
||||
'policy_end_date' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'End date is required.',
|
||||
]
|
||||
],
|
||||
|
||||
// --- PERMIT EMPTY FIELDS (Optional) ---
|
||||
'base_policy' => [
|
||||
'rules' => 'permit_empty'
|
||||
'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'
|
||||
|
||||
@ -2770,7 +2770,7 @@ class EmployeeController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
'mobile' => [
|
||||
|
||||
@ -366,20 +366,8 @@ class LeadsController extends BaseController
|
||||
// print_r($this->request->getPost()); die;
|
||||
$id = $this->request->getPost('id');
|
||||
$data = $this->prepareLeadData();
|
||||
// print_r($data); die;
|
||||
|
||||
|
||||
if (!$id) {
|
||||
return $this->insertNewLead($data);
|
||||
} else {
|
||||
return $this->updateOldLead($id, $data);
|
||||
}
|
||||
}
|
||||
|
||||
private function prepareLeadData()
|
||||
{
|
||||
$rules = [
|
||||
|
||||
|
||||
'lead_type' => [
|
||||
'rules' => 'integer',
|
||||
'errors' => ['required' => 'Lead Type is required']
|
||||
@ -396,16 +384,12 @@ class LeadsController extends BaseController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_ -]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Client Name is required',
|
||||
'regex_match' => 'Client Name only letters, numbers and characters _ - and space are allowed'
|
||||
'regex_match' => 'Client Name only letters, numbers, space, hyphens and underscores are allowed'
|
||||
]
|
||||
],
|
||||
'client_short_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => ['required' => 'Client Short Name is required','regex_match' => 'Client Short Name only letters, numbers and characters _ and - are allowed']
|
||||
],
|
||||
'gst' => [
|
||||
'rules' => 'required',
|
||||
'errors' => ['required' => 'GST Number is required']
|
||||
'errors' => ['required' => 'Client Short Name is required','regex_match' => 'Client Short Name only letters, numbers, hyphens and underscores are allowed']
|
||||
],
|
||||
'gst' => [
|
||||
'rules' => 'required|regex_match[/^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$/]',
|
||||
@ -418,7 +402,7 @@ class LeadsController extends BaseController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s_-]+$/]|min_length[3]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Name is required.',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, - and _.',
|
||||
'regex_match' => 'Branch Name can only contain letters, numbers, spaces, hyphens and underscores..',
|
||||
'min_length' => 'Branch Name must be at least 3 characters long.'
|
||||
]
|
||||
],
|
||||
@ -426,21 +410,23 @@ class LeadsController extends BaseController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Branch Code is required.',
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, - and _.'
|
||||
'regex_match' => 'Branch Code can only contain letters, numbers, hyphens and underscores..'
|
||||
]
|
||||
],
|
||||
'contact_person_name' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9_ -]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Contact Person Name is required',
|
||||
'regex_match' => 'Contact person name only letters, numbers and spaces, - and _.'
|
||||
'regex_match' => 'Contact person name only letters, numbers and spaces, hyphens and underscores..'
|
||||
]
|
||||
],
|
||||
'contact_person_mobile' => [
|
||||
'rules' => 'required',
|
||||
'rules' => 'required|regex_match[/^[0-9]+$/]',
|
||||
'errors' => ['required' => 'Contact Person Mobile is required' ,
|
||||
'regex_match' => 'Contact Person Mobile Only numbers'
|
||||
'rules' => 'required|exact_length[10]|regex_match[/^[0-9]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Contact Person Mobile is required' ,
|
||||
'regex_match' => 'Contact Person Mobile Only numbers',
|
||||
'exact_length'=> 'Contact Person Mobile must be exactly 10 digits long.'
|
||||
]
|
||||
],
|
||||
'contact_person_email' => [
|
||||
@ -462,8 +448,7 @@ class LeadsController extends BaseController
|
||||
'errors' => ['required' => 'Status is required']
|
||||
]
|
||||
];
|
||||
$request_data = $this->request->getPost();
|
||||
$data = sanitizeInputArrayAdvanced($request_data);
|
||||
|
||||
if (isset($data['lead_form_type']) && (int)$data['lead_form_type'] === 2) {
|
||||
$rules['client_type'] = [
|
||||
'rules' => 'required',
|
||||
@ -524,8 +509,23 @@ class LeadsController extends BaseController
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// print_r($data); die;
|
||||
|
||||
|
||||
if (!$id) {
|
||||
return $this->insertNewLead($data);
|
||||
} else {
|
||||
return $this->updateOldLead($id, $data);
|
||||
}
|
||||
}
|
||||
|
||||
private function prepareLeadData()
|
||||
{
|
||||
|
||||
$request_data = $this->request->getPost();
|
||||
$data = sanitizeInputArrayAdvanced($request_data);
|
||||
|
||||
$data['client_type'] = 1;
|
||||
$data['pan'] = "";
|
||||
|
||||
|
||||
@ -254,7 +254,7 @@ class MasterController extends AdminController
|
||||
$this->myLogger->logme('error','Insurer Onboarding function called');
|
||||
$headerData['tab_name'] = 'Insurer Masters';
|
||||
$headerData['page_name'] = 'Insurers';
|
||||
|
||||
|
||||
$types = array(
|
||||
(object) array('id' => 'pvt', 'name' => 'PVT'),
|
||||
(object) array('id' => 'psu', 'name' => 'PSU')
|
||||
@ -284,29 +284,78 @@ class MasterController extends AdminController
|
||||
|
||||
$this->myLogger->logme('error','Insurer general info function called');
|
||||
$rules = [
|
||||
'name' => [
|
||||
'rules' => 'required',
|
||||
'errors' => [
|
||||
'required' => 'Name is required'
|
||||
]
|
||||
],
|
||||
'short_name' => [
|
||||
'rules' => 'required|min_length[3]|max_length[8]',
|
||||
'errors' => [
|
||||
'required' => 'Short name is required',
|
||||
'min_length' => 'Short name must be at least 3 characters',
|
||||
'max_length' => 'Short name cannot exceed 8 characters'
|
||||
]
|
||||
],
|
||||
'insurer_logo' => [
|
||||
'name' => [
|
||||
'label' => 'Insurer Name',
|
||||
'rules' => ['required', 'regex_match[/^[a-zA-Z0-9\s\-_]+$/]'],
|
||||
'errors' => [
|
||||
'required' => 'Insurer Name is required.',
|
||||
'regex_match' => 'Insurer Name can only contain letters, numbers, spaces, hyphens, and underscores.',
|
||||
]
|
||||
],
|
||||
'short_name' => [
|
||||
'label' => 'Insurer Short Name',
|
||||
'rules' => ['required', 'regex_match[/^[a-zA-Z0-9\-_]+$/]'],
|
||||
'errors' => [
|
||||
'required' => 'Short Name is required.',
|
||||
'regex_match' => 'Short Name can only contain letters, numbers, hyphens, and underscores.',
|
||||
]
|
||||
],
|
||||
'type' => [
|
||||
'label' => 'Insurer Type',
|
||||
'rules' => 'permit_empty|in_list[pvt,psu]',
|
||||
'errors' => [
|
||||
'in_list' => 'Please select a valid Insurer Type (PVT or PSU).'
|
||||
]
|
||||
],
|
||||
'category' => [
|
||||
'label' => 'Insurer Category',
|
||||
'rules' => 'permit_empty|in_list[life,general]',
|
||||
'errors' => [
|
||||
'in_list' => 'Please select a valid Category (Life or General).'
|
||||
]
|
||||
],
|
||||
'addition_add_day' => [
|
||||
'rules' => 'permit_empty' // Checkboxes return null if unchecked
|
||||
],
|
||||
'deletion_add_day' => [
|
||||
'rules' => 'permit_empty'
|
||||
],
|
||||
'is_multi_event' => [
|
||||
'rules' => 'permit_empty'
|
||||
],
|
||||
'insurer_logo' => [
|
||||
'rules' => 'if_exist|is_image[insurer_logo]|max_size[insurer_logo,200]|ext_in[insurer_logo,jpg,jpeg,png]',
|
||||
'errors' => [
|
||||
'is_image' => 'The uploaded file must be an image',
|
||||
'max_size' => 'File size should not exceed 200 KB',
|
||||
'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
]
|
||||
],
|
||||
];
|
||||
],
|
||||
];
|
||||
// $rules = [
|
||||
// 'name' => [
|
||||
// 'rules' => 'required',
|
||||
// 'errors' => [
|
||||
// 'required' => 'Name is required'
|
||||
// ]
|
||||
// ],
|
||||
// 'short_name' => [
|
||||
// 'rules' => 'required|min_length[3]|max_length[8]',
|
||||
// 'errors' => [
|
||||
// 'required' => 'Short name is required',
|
||||
// 'min_length' => 'Short name must be at least 3 characters',
|
||||
// 'max_length' => 'Short name cannot exceed 8 characters'
|
||||
// ]
|
||||
// ],
|
||||
// 'insurer_logo' => [
|
||||
// 'rules' => 'if_exist|is_image[insurer_logo]|max_size[insurer_logo,200]|ext_in[insurer_logo,jpg,jpeg,png]',
|
||||
// 'errors' => [
|
||||
// 'is_image' => 'The uploaded file must be an image',
|
||||
// 'max_size' => 'File size should not exceed 200 KB',
|
||||
// 'ext_in' => 'Allowed file types: jpg, jpeg, png',
|
||||
// ]
|
||||
// ],
|
||||
// ];
|
||||
|
||||
if (!$this->validate($rules)) {
|
||||
return $this->response->setStatusCode(400)->setJSON([
|
||||
@ -370,34 +419,34 @@ class MasterController extends AdminController
|
||||
],
|
||||
|
||||
'state' => [
|
||||
'rules' => 'required|is_natural_no_zero',
|
||||
'errors' => [
|
||||
'required' => 'State is required'
|
||||
]
|
||||
],
|
||||
|
||||
'district' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'District is required'
|
||||
]
|
||||
],
|
||||
|
||||
'city' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'City is required'
|
||||
]
|
||||
],
|
||||
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required',
|
||||
'numeric' => 'Pincode must contain only numbers',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
]
|
||||
],
|
||||
'label' => 'State',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
|
||||
// ======================
|
||||
// Contact Details (Array)
|
||||
@ -422,7 +471,7 @@ class MasterController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -611,34 +660,34 @@ class MasterController extends AdminController
|
||||
],
|
||||
|
||||
'state' => [
|
||||
'rules' => 'required|is_natural_no_zero',
|
||||
'errors' => [
|
||||
'required' => 'State is required'
|
||||
]
|
||||
],
|
||||
|
||||
'district' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'District is required'
|
||||
]
|
||||
],
|
||||
|
||||
'city' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'City is required'
|
||||
]
|
||||
],
|
||||
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required',
|
||||
'numeric' => 'Pincode must contain only numbers',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
]
|
||||
],
|
||||
'label' => 'State',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
|
||||
// ======================
|
||||
// Contact Details (Array)
|
||||
@ -662,7 +711,7 @@ class MasterController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -1007,34 +1056,34 @@ class MasterController extends AdminController
|
||||
],
|
||||
|
||||
'state' => [
|
||||
'rules' => 'required|is_natural_no_zero',
|
||||
'errors' => [
|
||||
'required' => 'State is required'
|
||||
]
|
||||
],
|
||||
|
||||
'district' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'District is required'
|
||||
]
|
||||
],
|
||||
|
||||
'city' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'City is required'
|
||||
]
|
||||
],
|
||||
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required',
|
||||
'numeric' => 'Pincode must contain only numbers',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
]
|
||||
],
|
||||
'label' => 'State',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
|
||||
// ======================
|
||||
// Contact Details (Array)
|
||||
@ -1058,7 +1107,7 @@ class MasterController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -1320,35 +1369,34 @@ class MasterController extends AdminController
|
||||
],
|
||||
|
||||
'state' => [
|
||||
'rules' => 'required|is_natural_no_zero',
|
||||
'errors' => [
|
||||
'required' => 'State is required'
|
||||
]
|
||||
],
|
||||
|
||||
'district' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'District is required'
|
||||
]
|
||||
],
|
||||
|
||||
'city' => [
|
||||
'rules' => 'required|trim',
|
||||
'errors' => [
|
||||
'required' => 'City is required'
|
||||
]
|
||||
],
|
||||
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required',
|
||||
'numeric' => 'Pincode must contain only numbers',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
]
|
||||
],
|
||||
|
||||
'label' => 'State',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'district' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'District is required.',
|
||||
'regex_match' => 'District can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
// ======================
|
||||
// Contact Details (Array)
|
||||
// ======================
|
||||
@ -1371,7 +1419,7 @@ class MasterController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -3522,7 +3570,7 @@ class MasterController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
'mobile' => [
|
||||
@ -3540,28 +3588,28 @@ class MasterController extends AdminController
|
||||
'min_length' => 'Address must be at least 5 characters'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|alpha_space',
|
||||
'errors' => [
|
||||
'required' => 'City is required',
|
||||
'alpha_space' => 'City must contain only letters and spaces'
|
||||
]
|
||||
],
|
||||
'state' => [
|
||||
'rules' => 'required|alpha_space',
|
||||
'errors' => [
|
||||
'required' => 'State is required',
|
||||
'alpha_space' => 'State must contain only letters and spaces'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required',
|
||||
'numeric' => 'Pincode must contain only digits',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits'
|
||||
]
|
||||
],
|
||||
'label' => 'State',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z\s\-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'State is required.',
|
||||
'regex_match' => 'State name can only contain letters, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'city' => [
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9\s\-]+$/]',
|
||||
'errors' => [
|
||||
'regex_match' => 'City can contain letters, numbers, spaces, and hyphens.'
|
||||
]
|
||||
],
|
||||
'pincode' => [
|
||||
'rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => [
|
||||
'required' => 'Pincode is required.',
|
||||
'numeric' => 'Pincode must be digits only.',
|
||||
'exact_length' => 'Pincode must be exactly 6 digits.'
|
||||
]
|
||||
],
|
||||
'aadhar' => [
|
||||
'rules' => 'required|numeric|exact_length[12]',
|
||||
'errors' => [
|
||||
|
||||
@ -92,7 +92,7 @@ class ThzController extends BaseController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
@ -1136,11 +1136,11 @@ class TicketController extends BaseController
|
||||
$rules = [
|
||||
// --- EMPLOYEE DETAILS ---
|
||||
'emp_code' => [
|
||||
'label' => 'Employee Code',
|
||||
'label' => 'Employee ID',
|
||||
'rules' => 'required|min_length[2]|max_length[20]|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Employee Code is required.',
|
||||
'regex_match' => 'Employee Code cannot contain spaces or special characters (only letters, numbers, - and _ allowed).'
|
||||
'required' => 'Employee ID is required.',
|
||||
'regex_match' => 'Employee ID cannot contain spaces or special characters (only letters, numbers, hyphens and underscores. allowed).'
|
||||
]
|
||||
],
|
||||
'emp_name' => [
|
||||
@ -1170,10 +1170,12 @@ class TicketController extends BaseController
|
||||
'rules' => 'permit_empty|min_length[3]|max_length[50]|regex_match[/^[a-zA-Z0-9\s\-\/_]+$/]',
|
||||
'errors' => [
|
||||
'min_length' => 'Policy Number appears too short (min 5 characters).',
|
||||
'regex_match' => 'Policy Number can only contain letters, numbers, spaces, hyphens(-), underscores(_), and slashes(/).'
|
||||
'regex_match' => 'Policy Number can only contain letters, numbers, spaces, hyphens(-) underscores(_), and slashes(/).'
|
||||
]
|
||||
],
|
||||
'tpa_no' => ['label' => 'TPA ID','rules' => 'permit_empty','errors' => []],
|
||||
'tpa_no' => ['label' => 'TPA ID','rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9]+$/]','errors' => [
|
||||
'regex_match' => 'TPA ID can only contain letters and numbers.'
|
||||
]],
|
||||
'emp_mobile' => ['label' => 'Employee Mobile No','rules' => 'required|numeric|exact_length[10]',
|
||||
'errors' => [
|
||||
'required' => 'Mobile number is required',
|
||||
@ -1189,9 +1191,8 @@ class TicketController extends BaseController
|
||||
]
|
||||
],
|
||||
'emp_personal_mail' => ['label' => 'Personal Mail ID',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Personal Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
@ -1221,15 +1222,29 @@ class TicketController extends BaseController
|
||||
'hospital_address' => ['label' => 'Hospital Address','rules' => 'required',
|
||||
'errors' => ['required' => 'Hospital Address is required']
|
||||
],
|
||||
'hospital_city' => ['label' => 'Hospital City','rules' => 'required',
|
||||
'errors' => ['required' => 'City is required']
|
||||
],
|
||||
'hospital_state' => ['label' => 'Hospital State','rules' => 'required',
|
||||
'errors' => ['required' => 'State is required']
|
||||
],
|
||||
'hospital_pin_code' => ['label' => 'Hospital Pincode','rules' => 'required|numeric|exact_length[6]',
|
||||
'errors' => ['exact_length' => 'Pincode must be 6 digits']
|
||||
],
|
||||
'hospital_state' => [
|
||||
'label' => 'hospital_State',
|
||||
'rules' => 'required|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\-]+$/]',
|
||||
'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]',
|
||||
'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]',
|
||||
'errors' => ['min_length' => 'Phone number too short']
|
||||
],
|
||||
@ -1317,11 +1332,11 @@ class TicketController extends BaseController
|
||||
$rules = [
|
||||
// --- EMPLOYEE DETAILS ---
|
||||
'emp_code' => [
|
||||
'label' => 'Employee Code',
|
||||
'label' => 'Employee ID',
|
||||
'rules' => 'required|min_length[2]|max_length[20]|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Employee Code is required.',
|
||||
'regex_match' => 'Employee Code cannot contain spaces or special characters (only letters, numbers, - and _ allowed).',
|
||||
'required' => 'Employee ID is required.',
|
||||
'regex_match' => 'Employee ID cannot contain spaces or special characters (only letters, numbers, hyphens and underscores. allowed).',
|
||||
]
|
||||
],
|
||||
'emp_name' => [
|
||||
@ -1348,9 +1363,8 @@ class TicketController extends BaseController
|
||||
]
|
||||
],
|
||||
'emp_personal_mail' => ['label' => 'Personal Mail ID',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Personal Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
@ -1457,11 +1471,11 @@ class TicketController extends BaseController
|
||||
$rules = [
|
||||
// --- EMPLOYEE DETAILS ---
|
||||
'emp_code' => [
|
||||
'label' => 'Employee Code',
|
||||
'label' => 'Employee ID',
|
||||
'rules' => 'required|min_length[2]|max_length[20]|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Employee Code is required.',
|
||||
'regex_match' => 'Employee Code cannot contain spaces or special characters (only letters, numbers, - and _ allowed).',
|
||||
'required' => 'Employee ID is required.',
|
||||
'regex_match' => 'Employee ID cannot contain spaces or special characters (only letters, numbers, hyphens and underscores. allowed).',
|
||||
]
|
||||
],
|
||||
'emp_name' => [
|
||||
@ -1490,11 +1504,13 @@ class TicketController extends BaseController
|
||||
// Allows: A-Z, a-z, 0-9, spaces (\s), hyphens (\-), underscores (_), and slashes (\/)
|
||||
'rules' => 'permit_empty|min_length[3]|max_length[50]|regex_match[/^[a-zA-Z0-9\s\-\/_]+$/]',
|
||||
'errors' => [
|
||||
'min_length' => 'Policy Number appears too short (min 5 characters).',
|
||||
'regex_match' => 'Policy Number can only contain letters, numbers, spaces, hyphens(-), underscores(_), and slashes(/).'
|
||||
'min_length' => 'Policy Number appears too short (min 3 characters).',
|
||||
'regex_match' => 'Policy Number can only contain letters, numbers, spaces, hyphens(-) underscores(_), and slashes(/).'
|
||||
]
|
||||
],
|
||||
'tpa_no' => ['label' => 'TPA ID','rules' => 'permit_empty','errors' => []],
|
||||
'tpa_no' => ['label' => 'TPA ID','rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9]+$/]','errors' => [
|
||||
'regex_match' => 'TPA ID can only contain letters and numbers.'
|
||||
]],
|
||||
'emp_mobile' => ['label' => 'Employee Mobile No','rules' => 'required|numeric|exact_length[10]',
|
||||
'errors' => [
|
||||
'required' => 'Mobile number is required',
|
||||
@ -1510,9 +1526,8 @@ class TicketController extends BaseController
|
||||
]
|
||||
],
|
||||
'emp_personal_mail' => ['label' => 'Personal Mail ID',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Personal Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
@ -1638,11 +1653,11 @@ class TicketController extends BaseController
|
||||
$rules = [
|
||||
// --- EMPLOYEE DETAILS ---
|
||||
'emp_code' => [
|
||||
'label' => 'Employee Code',
|
||||
'label' => 'Employee ID',
|
||||
'rules' => 'required|min_length[2]|max_length[20]|regex_match[/^[a-zA-Z0-9_-]+$/]',
|
||||
'errors' => [
|
||||
'required' => 'Employee Code is required.',
|
||||
'regex_match' => 'Employee Code cannot contain spaces or special characters (only letters, numbers, - and _ allowed).',
|
||||
'required' => 'Employee ID is required.',
|
||||
'regex_match' => 'Employee ID cannot contain spaces or special characters (only letters, numbers, hyphens and underscores. allowed).',
|
||||
]
|
||||
],
|
||||
'emp_name' => [
|
||||
@ -1669,9 +1684,8 @@ class TicketController extends BaseController
|
||||
]
|
||||
],
|
||||
'emp_personal_mail' => ['label' => 'Personal Mail ID',
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'rules' => 'permit_empty|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Personal Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
@ -1930,7 +1944,7 @@ class TicketController extends BaseController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
'mail_subject' => [
|
||||
|
||||
@ -142,7 +142,7 @@ class UserController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -326,7 +326,7 @@ class UserController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
|
||||
@ -832,7 +832,7 @@ class UserController extends AdminController
|
||||
'rules' => 'required|regex_match[/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/]',
|
||||
'errors' => [
|
||||
'required' => 'Email address is required.',
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@company.com).'
|
||||
'regex_match' => 'Please enter a valid email format (e.g., name@domain.com).'
|
||||
]
|
||||
],
|
||||
// ======================
|
||||
|
||||
@ -67,12 +67,12 @@
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-6">
|
||||
<label for="mobile">CD Account Number<span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="cd_ac_no_for_cd_master" name="cd_ac_no" required>
|
||||
<input type="text" class="form-control" id="cd_ac_no_for_cd_master" name="cd_ac_no" onkeypress="return onlyNumbers(event)" required data-parsley-type="digits">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6">
|
||||
<label for="mobile">Opening Amount<span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" id="opening_bal" name="opening_bal" onkeypress="return onlyNumbers(event)" required>
|
||||
<input type="text" class="form-control" id="opening_bal" name="opening_bal" onkeypress="return onlyNumbers(event)" required data-parsley-type="digits">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -383,12 +383,23 @@
|
||||
let $label = $('#employee_data_points_label');
|
||||
let $input = $('#emp_mobile_number_for_claim');
|
||||
|
||||
// Remove old attributes but DO NOT clear the .val()
|
||||
$input.removeAttr('onkeypress maxlength oninput');
|
||||
|
||||
if (value == "mobile") {
|
||||
$label.text('Employee Mobile Number');
|
||||
$input.attr('onkeypress', 'return onlyNumbers(event)').attr('maxlength', '10');
|
||||
|
||||
$input.val($input.val().replace(/[^0-9]/g, '').substring(0, 10));
|
||||
$input.attr('oninput', "this.value = this.value.replace(/[^0-9]/g, '').substring(0, 10)");
|
||||
} else {
|
||||
$label.text('Employee ID');
|
||||
$input.removeAttr('onkeypress maxlength');
|
||||
|
||||
$input.attr('onkeypress', 'return onlyEmployee(event)');
|
||||
$input.val($input.val().replace(/[^a-zA-Z0-9\s\-_/]/g, ''));
|
||||
$input.attr('oninput', "this.value = this.value.replace(/[^a-zA-Z0-9\\s\\-_/]/g, '')");
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@ -1069,6 +1080,24 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
function onlyEmployee(event) {
|
||||
var charCode = (event.which) ? event.which : event.keyCode;
|
||||
|
||||
// Allow Numbers (48-57)
|
||||
// Allow Uppercase (65-90)
|
||||
// Allow Lowercase (97-122)
|
||||
// Allow Space (32), Hyphen (45), Underscore (95), Forward Slash (47)
|
||||
if (
|
||||
(charCode >= 48 && charCode <= 57) ||
|
||||
(charCode >= 65 && charCode <= 90) ||
|
||||
(charCode >= 97 && charCode <= 122) ||
|
||||
[32, 45, 95, 47].includes(charCode)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function setClientPolicyData(input) {
|
||||
|
||||
// console.log('policy_value ',input);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user