diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 5afb6bb..5c77edf 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -507,7 +507,7 @@ class ClientController extends AdminController // echo "
";
// print_r($data); die;
- $data['placeHolders'] = ['member_name', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name'];
+ $data['placeHolders'] = ['member_name', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name', 'enrollment_open_date', 'enrollment_close_date'];
// dd($data['placeHolders']);
@@ -653,7 +653,7 @@ class ClientController extends AdminController
$editData['client_policy'] = $clientPoliceData;
$editData['client_policy']['role'] = get_role_id();
$editData['notification'] = $this->notificationModel->select('template_name,enabled')->where('client_id', $id)->findAll();
- $editData['placeHolders'] = ['member_name', 'member_mobile', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name'];
+ $editData['placeHolders'] = ['member_name', 'member_mobile', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name', 'enrollment_open_date', 'enrollment_close_date'];
$editData['auto_fetch_client_list'] = $this->getClientListFromPost();
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index dcb7ec7..f6ae2ae 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -279,10 +279,15 @@ class EmployeeController extends AdminController
$client_id = $this->request->getPost('client_id');
$policy_id = $this->request->getPost('policy_id');
$branch_id = $this->request->getPost('branch_id');
+ $enrollment_open_date = $this->request->getPost('enrollment_open_date');
+ $enrollment_close_date = $this->request->getPost('enrollment_close_date');
$action = $this->request->getPost('upload-action-type');
$status = 'inprogress';
- $file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $loggedInUserID, 'status' => $status, 'action' => $action, 'client_branch_id' => $branch_id,'uploaded_by' => 1]); //here field policy_id have client_policy_id and not policy id from policy master
+ $enrollment_open_date = change_date_format($enrollment_open_date, 'd/m/Y', 'Y-m-d');
+ $enrollment_close_date = change_date_format($enrollment_close_date, 'd/m/Y', 'Y-m-d');
+
+ $file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $loggedInUserID, 'status' => $status, 'action' => $action, 'client_branch_id' => $branch_id,'uploaded_by' => 1, 'enrollment_open_date' => $enrollment_open_date, 'enrollment_close_date' => $enrollment_close_date]); //here field policy_id have client_policy_id and not policy id from policy master
$this->myLogger->logme("error", '{file_id} uploaded success', ['file_id' => $file_id]);
//start validation process
@@ -328,7 +333,7 @@ class EmployeeController extends AdminController
$data['fileList'] = $this->fileModel
->select([
- 'files.id','files.file_name','files.created_by','files.created_at','files.is_active','files.status','files.client_id','files.policy_id','files.client_branch_id','files.action','files.uploaded_by',
+ 'files.id','files.file_name','files.created_by','files.created_at','files.is_active','files.status','files.client_id','files.policy_id','files.client_branch_id','files.action','files.uploaded_by', 'enrollment_open_date', 'enrollment_close_date',
'up.emp_code',
'up.first_name',
'c.short_name',
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index 348b42a..05d9602 100755
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -236,7 +236,7 @@ class EmployeeRestController extends AdminController
$data = $this->request->getJSON();
//enrolment check
- $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id);
+ $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id, $data[0]->emp_code);
if($openForEnrollment == false){
return $this->respond(['status' => 'failed','code' => 404,'data' => [],'message' => 'Enrollment closed.'], 200);
}
@@ -573,7 +573,7 @@ class EmployeeRestController extends AdminController
// print_r($requestData);
// dd($requestData);
- $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id);
+ $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id, $requestData[0]->emp_code);
if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); }
foreach ($requestData as $key => $value)
@@ -1455,16 +1455,46 @@ class EmployeeRestController extends AdminController
$array->family_floaters_of_dependent_and_gst_value = 0;
}
- $checkGmcParentsPolicyExist = $this->clientPolicyModel->select('client_policy.id as ClientPolicyId , client_policy.client_id as ClientId, client_policy.policy_type_id as policy_type_id, policy_type.long_name as Policy_Name , client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type , client_policy.policy_terms as Policy_Terms , client_policy.is_premium_summery as is_premium_summery, client_policy.enrolment_visibility')
- ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
- ->where('client_policy.policy_type_id', 3 )
- ->where('client_policy.is_addon', 1 )
- ->where('client_policy.client_id', $this->request->getGet('client_id') )
- ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
- ->where('client_policy.is_active', 1 )
- ->where('client_policy.enrolment_visibility', 1 )
- ->get()
- ->getResult();
+ $checkGmcParentsPolicyExist = $this->clientPolicyModel->select("
+ client_policy.id as ClientPolicyId,
+ client_policy.client_id as ClientId,
+ client_policy.policy_type_id as policy_type_id,
+ policy_type.long_name as Policy_Name ,
+ client_policy.is_addon as is_addon ,
+ (
+ SELECT COALESCE(
+ MAX(
+ CASE
+ WHEN ep.enrollment_open_date <= CURDATE()
+ AND ep.enrollment_close_date >= CURDATE()
+ THEN 1
+ ELSE 0
+ END
+ ), 0
+ )
+ FROM employee_polices ep
+ INNER JOIN employees e ON e.id = ep.employee_id
+ WHERE e.is_active = 1
+ AND ep.is_active = 1
+ AND ep.enrollment_open_date IS NOT NULL
+ AND ep.enrollment_close_date IS NOT NULL
+ AND e.emp_code = '{$emp_code}'
+ AND ep.client_policy_id = client_policy.id
+ ) AS OpenForEnrollment,
+ client_policy.inception_type as inception_type ,
+ client_policy.policy_terms as Policy_Terms ,
+ client_policy.is_premium_summery as is_premium_summery,
+ client_policy.enrolment_visibility
+ ")
+ ->join('policy_type', 'client_policy.policy_type_id = policy_type.id', 'left')
+ ->where('client_policy.policy_type_id', 3 )
+ ->where('client_policy.is_addon', 1 )
+ ->where('client_policy.client_id', $this->request->getGet('client_id') )
+ ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') )
+ ->where('client_policy.is_active', 1 )
+ ->where('client_policy.enrolment_visibility', 1 )
+ ->get()
+ ->getResult();
if($checkGmcParentsPolicyExist)
{
$GmcParrentsData = $this->getGmcParrentsPolicy($checkGmcParentsPolicyExist,$emp_code,$client_id,$client_branch_id);
@@ -1746,7 +1776,36 @@ class EmployeeRestController extends AdminController
public function getAdditionalGPAPolicy($empData,$policy_type,$emp_code,$client_id,$client_branch_id,$login_by_hr)
{
- $checkPolicyExist = $this->clientPolicyModel->select('client_policy.id as ClientPolicyId , client_policy.client_id as ClientId, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type , client_policy.policy_terms as Policy_Terms , client_policy.enrolment_visibility,client_policy.is_premium_summery')
+ $checkPolicyExist = $this->clientPolicyModel->select("
+ client_policy.id as ClientPolicyId ,
+ client_policy.client_id as ClientId,
+ client_policy.policy_type_id as policy_type_id,
+ client_policy.is_addon as is_addon ,
+ (
+ SELECT COALESCE(
+ MAX(
+ CASE
+ WHEN ep.enrollment_open_date <= CURDATE()
+ AND ep.enrollment_close_date >= CURDATE()
+ THEN 1
+ ELSE 0
+ END
+ ), 0
+ )
+ FROM employee_polices ep
+ INNER JOIN employees e ON e.id = ep.employee_id
+ WHERE e.is_active = 1
+ AND ep.is_active = 1
+ AND ep.enrollment_open_date IS NOT NULL
+ AND ep.enrollment_close_date IS NOT NULL
+ AND e.emp_code = '{$emp_code}'
+ AND ep.client_policy_id = client_policy.id
+ ) AS OpenForEnrollment,
+ client_policy.inception_type as inception_type ,
+ client_policy.policy_terms as Policy_Terms ,
+ client_policy.enrolment_visibility,
+ client_policy.is_premium_summery
+ ")
->where('client_policy.policy_type_id', $policy_type )
->where('client_policy.is_addon', 1 )
->where('client_policy.client_id', $client_id )
@@ -2062,6 +2121,7 @@ class EmployeeRestController extends AdminController
{
try {
+ $emp_code = $this->request->getGet('emp_code');
$addOnEmployeeData = $this->employeeModel->where('is_active', 1 )
->where('emp_code',$this->request->getGet('emp_code'))
->where('client_id',$this->request->getGet('client_id'))
@@ -2070,7 +2130,30 @@ class EmployeeRestController extends AdminController
- $clientPolicy = $this->clientPolicyModel->where('client_id',$this->request->getGet('client_id'))
+ $clientPolicy = $this->clientPolicyModel->select("
+ client_policy.*,
+ (
+ SELECT COALESCE(
+ MAX(
+ CASE
+ WHEN ep.enrollment_open_date <= CURDATE()
+ AND ep.enrollment_close_date >= CURDATE()
+ THEN 1
+ ELSE 0
+ END
+ ), 0
+ )
+ FROM employee_polices ep
+ INNER JOIN employees e ON e.id = ep.employee_id
+ WHERE e.is_active = 1
+ AND ep.is_active = 1
+ AND ep.enrollment_open_date IS NOT NULL
+ AND ep.enrollment_close_date IS NOT NULL
+ AND e.emp_code = '{$emp_code}'
+ AND ep.client_policy_id = client_policy.id
+ ) AS open_for_enrollment
+ ")
+ ->where('client_id',$this->request->getGet('client_id'))
->where('client_branch_id',$this->request->getGet('client_branch_id'))
->where('policy_status', 1)
->where('is_active', 1)
@@ -2079,6 +2162,7 @@ class EmployeeRestController extends AdminController
if(count($clientPolicy))
{
+
$self = $this->employeeModel->where('employees.is_active', 1)
->where('employees.emp_code', $this->request->getGet('emp_code'))
->where('employees.client_id', $this->request->getGet('client_id'))
@@ -3632,15 +3716,25 @@ class EmployeeRestController extends AdminController
}
- public function findThePolicyIsOpenForEnrollment($plicy_id)
+ public function findThePolicyIsOpenForEnrollment($plicy_id, $emp_code)
{
- $policy = $this->clientPolicyModel->where('id',$plicy_id)->where('open_for_enrollment',1)->find();
-
+ // $policy = $this->clientPolicyModel->where('id',$plicy_id)->where('open_for_enrollment',1)->find();
+ $policy = $this->employeePolicyModel
+ ->join('employees', 'employee_polices.employee_id = employees.id')
+ ->where('employees.emp_code',$emp_code)
+ ->where('employees.family_floater_key','self')
+ ->where('employee_polices.client_policy_id',$plicy_id)
+ ->where('employee_polices.enrollment_open_date <= CURDATE()', null, false)
+ ->where('employee_polices.enrollment_close_date >= CURDATE()', null, false)
+ ->where('employees.is_active', 1)
+ ->where('employee_polices.is_active', 1)
+ ->find();
+
if($policy)
- return true;
+ return true;
else
- return false;
+ return false;
}
@@ -3782,7 +3876,9 @@ class EmployeeRestController extends AdminController
->where('employees.is_active', 1)
->where('employee_polices.is_active', 1)
->where('cp.enrolment_visibility', 1)
- ->where('cp.open_for_enrollment', 1)
+ // ->where('cp.open_for_enrollment', 1)
+ ->where('employee_polices.enrollment_open_date <= CURDATE()', null, false)
+ ->where('employee_polices.enrollment_close_date >= CURDATE()', null, false)
->where('cp.policy_status', 1)
->whereIn('cp.policy_type_id', [1, 2, 3, 6, 7])
->orderBy('employees.created_at', 'desc')
@@ -3834,7 +3930,9 @@ class EmployeeRestController extends AdminController
->where('employees.is_active', 1)
->where('employee_polices.is_active', 1)
->where('cp.enrolment_visibility', 1)
- ->where('cp.open_for_enrollment', 1)
+ // ->where('cp.open_for_enrollment', 1)
+ ->where('employee_polices.enrollment_open_date <= CURDATE()', null, false)
+ ->where('employee_polices.enrollment_close_date >= CURDATE()', null, false)
->where('cp.policy_status', 1)
->whereIn('cp.policy_type_id', [1, 2, 3, 6, 7])
->orderBy('employees.created_at', 'desc');
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index 300e6aa..15da05b 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -2085,6 +2085,9 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){
$policy_data['basic_cover_si'] = $row[9];
$policy_data['date_coverage'] = $row[13] != "" && $row[13] != null ? change_date_format($row[13],'d-M-Y','Y-m-d') : null;
$policy_data['client_policy_id'] = $file['policy_id'];
+ $policy_data['enrollment_open_date'] = $file['enrollment_open_date'] ?? null;
+ $policy_data['enrollment_close_date'] = $file['enrollment_close_date'] ?? null;
+
$employee = $this->employeeModel->checkExistingEmployee($value,$file['client_branch_id']);
unset($value['temp']);
@@ -2167,6 +2170,8 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){
'client_policy_id' => $file['policy_id'],
'employee_policy_id' => $emp_policy_id ?? null,
'employee_id' => $emp_id,
+ 'enrollment_open_date' => $file['enrollment_open_date'] ?? null,
+ 'enrollment_close_date' => $file['enrollment_close_date'] ?? null,
'mail_type' => 'member_welcome_mail',
];
//store email and mail content via helper to send notification
diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php
index 859cd08..01b1d80 100755
--- a/app/Helpers/sendMailNotification.php
+++ b/app/Helpers/sendMailNotification.php
@@ -51,12 +51,23 @@ class sendMailNotification
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
+ $enrollment_open_date = !empty($dataToInsert['enrollment_open_date'] ?? null)
+ ? change_date_format($dataToInsert['enrollment_open_date'], 'Y-m-d', 'F d, Y')
+ : 'N/A';
+
+ $enrollment_close_date = !empty($dataToInsert['enrollment_close_date'] ?? null)
+ ? change_date_format($dataToInsert['enrollment_close_date'], 'Y-m-d', 'F d, Y')
+ : 'N/A';
+
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $employee_name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $employee_mobile_no, $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
+ $mail_content = str_replace(["[[enrollment_open_date]]", "{{enrollment_open_date}}"], $enrollment_open_date, $mail_content);
+ $mail_content = str_replace(["[[enrollment_close_date]]", "{{enrollment_close_date}}"], $enrollment_close_date, $mail_content);
+
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
if ($dataToInsert['relationship'] == 'Self' && $mail != null || $mail != '') {
@@ -1247,6 +1258,13 @@ class sendMailNotification
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
+ $enrollment_open_date = !empty($dataToInsert['enrollment_open_date'] ?? null)
+ ? date('F d, Y', strtotime(str_replace('/', '-', $dataToInsert['enrollment_open_date'] ?? '')))
+ : date('F d, Y');
+
+ $enrollment_close_date = !empty($dataToInsert['enrollment_close_date'] ?? null)
+ ? date('F d, Y', strtotime(str_replace('/', '-', $dataToInsert['enrollment_close_date'] ?? '')))
+ : date('F d, Y', strtotime('+15 days'));
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
@@ -1256,6 +1274,9 @@ class sendMailNotification
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
+ $mail_content = str_replace(["[[enrollment_open_date]]", "{{enrollment_open_date}}"], $enrollment_open_date, $mail_content);
+ $mail_content = str_replace(["[[enrollment_close_date]]", "{{enrollment_close_date}}"], $enrollment_close_date, $mail_content);
+
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
if ($mail != null || $mail != '') {
diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php
index 765b8af..6adc430 100755
--- a/app/Helpers/utility_helper.php
+++ b/app/Helpers/utility_helper.php
@@ -556,7 +556,9 @@ if (!function_exists('change_date_format')) {
if ($source_format !== null && $output_format !== null) {
$date = DateTime::createFromFormat($source_format, $date_str);
if (!$date) {
- throw new Exception("Invalid date string for source format: $source_format");
+ // throw new Exception("Invalid date string for source format: $source_format");
+ log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
+ return null;
}
return $date->format($output_format);
}
@@ -565,7 +567,9 @@ if (!function_exists('change_date_format')) {
if ($source_format !== null && $output_format === null) {
$date = DateTime::createFromFormat($source_format, $date_str);
if (!$date) {
- throw new Exception("Invalid date string for source format: $source_format");
+ // throw new Exception("Invalid date string for source format: $source_format");
+ log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
+ return null;
}
return $date->format('Y-m-d'); // MySQL default format
}
@@ -580,10 +584,17 @@ if (!function_exists('change_date_format')) {
}
// If no format matches, throw an exception
$allowed_placeholders = implode(', ', $allowed_formats);
- throw new Exception("Invalid date string format. Allowed formats: $allowed_placeholders");
+ // throw new Exception("Invalid date string format. Allowed formats: $allowed_placeholders");
+ log_message(
+ 'error',
+ "❌ Date format error: Invalid date string. Allowed formats: {$allowed_placeholders} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"
+ );
+ return null;
}
} catch (Exception $e) {
- return "Error: " . $e->getMessage();
+ // return "Error: " . $e->getMessage();
+ log_message('error', "❌ Date format error: {$e->getMessage()} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
+ return null;
}
return null;
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index c556bdb..c5bd85b 100755
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -159,9 +159,11 @@ class EmployeeModel extends Model
client_policy.policy_id as PolicyId,
client_policy.id as ClientPolicyId,
client_policy.is_premium_summery,
- CASE
- WHEN client_policy.open_for_enrollment IS NULL THEN 0
- ELSE client_policy.open_for_enrollment
+ CASE
+ WHEN employee_polices.enrollment_open_date <= CURDATE()
+ AND employee_polices.enrollment_close_date >= CURDATE()
+ THEN 1
+ ELSE 0
END AS OpenForEnrollment,
client_policy.disclaimer,
client_policy.policy_type_id ,
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index d29c75f..306e6ee 100755
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -35,7 +35,9 @@ class EmployeePolicyModel extends Model
"claim_status",
'ecard_sent_status',
'payable_employee',
- 'file_id'
+ 'file_id',
+ "enrollment_open_date",
+ "enrollment_close_date",
];
// Callbacks
diff --git a/app/Models/FileModel.php b/app/Models/FileModel.php
index 5b27a7d..2029ea9 100755
--- a/app/Models/FileModel.php
+++ b/app/Models/FileModel.php
@@ -20,7 +20,9 @@ class FileModel extends Model
"policy_id",
"client_branch_id",
"uploaded_by",
- "updated_by"
+ "updated_by",
+ "enrollment_open_date",
+ "enrollment_close_date",
];
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index b2f4917..93b0328 100755
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -156,7 +156,7 @@ input:checked + .slider:before {
Client Branch
Date
- Enrolment Status
+
Status
Action
@@ -299,7 +299,8 @@ input:checked + .slider:before {
-->
-
+
+
-
-
-
-
+
-
-
-
-
-
+