diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 70f9ee8b..9cf2030c 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -648,7 +648,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'] = ['hr_name', 'member_name', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name'];
// dd($data['placeHolders']);
@@ -952,7 +952,7 @@ class ClientController extends AdminController
}, $rawList)) : [];
$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'] = ['hr_name', '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['api_data'] = $this->clientApi->where("client_id", $id)->where("is_active", 1)->first();
// dd($editData);
@@ -8728,6 +8728,8 @@ class ClientController extends AdminController
$member_ecard_mail_template = $this->notificationModel->where('client_id', NULL)->where('template_name', 'member_ecard_mail')->get()->getResultArray()[0] ?? [];
$member_common_mail_template = $this->notificationModel->where('client_id', NULL)->where('template_name', 'member_common_mail')->get()->getResultArray()[0] ?? [];
+
+ $hr_cd_insufficient_balance_mail_template = $this->notificationModel->where('client_id', NULL)->where('template_name', 'hr_cd_insufficient_balance_mail')->get()->getResultArray()[0] ?? [];
$default_member_welcome_mail_template = [
'client_id' => $client_id,
@@ -8799,6 +8801,20 @@ class ClientController extends AdminController
'mail_content_copy' => null
];
+ $hr_cd_insufficient_balance_mail_template = [
+ 'client_id' => $client_id,
+ 'template_name' => 'hr_cd_insufficient_balance_mail',
+ 'subject' => $hr_cd_insufficient_balance_mail_template['subject'] ?? '',
+ 'mail_content' => $hr_cd_insufficient_balance_mail_template['mail_content'] ?? '',
+ 'mail_content_json' => $hr_cd_insufficient_balance_mail_template['mail_content_json'] ?? '',
+
+ 'created_by' => get_session_userid(),
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'updated_by' => null,
+ 'updated_at' => date('Y-m-d H:i:s'),
+ 'mail_content_copy' => null
+ ];
+
$this->myLogger->logme('error', 'Default Mail Template Data ' . json_encode([
$default_member_welcome_mail_template,
$default_member_remainder_mail_template,
@@ -8812,7 +8828,8 @@ class ClientController extends AdminController
$default_member_remainder_mail_template,
$default_member_review_and_summary_mail_template,
$default_member_ecard_mail_template,
- $default_member_common_mail_template
+ $default_member_common_mail_template,
+ $hr_cd_insufficient_balance_mail_template,
]);
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index f6cfb67a..cff84df8 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -734,17 +734,23 @@ class EmpDataServiceController extends BaseController
if($export_data['insurer_or_tpa'] == 'insurer')
{
if (!empty($cash_balance)) {
- if ((int) $cash_balance['balance'] < (int) $rounded_totals) {
- $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
- $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- session()->set('cd_balance', false);
- session()->set('cd_amount', $cash_balance['balance']);
- session()->set('excel_file_amt', $rounded_totals);
+ if ((int) $cash_balance['balance'] < (int) $totals) {
+ clear_cd_balance_session(); // Clear old junk first
+
+ $cd_session_data = json_encode([
+ 'cd_balance' => false,
+ 'cd_amount' => $cash_balance['balance'],
+ 'excel_file_amt' => $totals
+ ]);
+
+ session()->set('cd_balance_info', $cd_session_data);
+ session()->set('cd_balance', 'insufficient'); // Use a string status for clarity
+
+ $hr_data = $this->getHrdataForInsufficientMailSend($export_data['client_branch_id']);
+ session()->set('hr_data', json_encode(['client_id' => $export_data['client_id'], 'hr_data' => $hr_data]));
}else{
- session()->set('cd_balance', true);
- session()->set('cd_amount', $cash_balance['balance']);
- session()->set('excel_file_amt', $rounded_totals);
-
+ session()->set('cd_balance', 'sufficient'); // Use a string status for clarity
+ session()->set('cd_balance_info', null);
}
}
}
@@ -1065,17 +1071,23 @@ class EmpDataServiceController extends BaseController
if($export_data['insurer_or_tpa'] != 'tpa')// check overal emp premium amt with cd balance only for insurer export, not tpa export
{
if (!empty($cash_balance)) {
- if ((int) $cash_balance['balance'] < (int) $totals) {
- $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
- $this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- session()->set('cd_balance', false);
- session()->set('cd_amount', $cash_balance['balance']);
- session()->set('excel_file_amt', $totals);
+ if ((int) $cash_balance['balance'] < (int) $totals) {
+ clear_cd_balance_session(); // Clear old junk first
+
+ $cd_session_data = json_encode([
+ 'cd_balance' => false,
+ 'cd_amount' => $cash_balance['balance'],
+ 'excel_file_amt' => $totals
+ ]);
+
+ session()->set('cd_balance_info', $cd_session_data);
+ session()->set('cd_balance', 'insufficient'); // Use a string status for clarity
+
+ $hr_data = $this->getHrdataForInsufficientMailSend($export_data['client_branch_id']);
+ session()->set('hr_data', json_encode(['client_id' => $export_data['client_id'], 'hr_data' => $hr_data]));
}else{
- session()->set('cd_balance', true);
- session()->set('cd_amount', $cash_balance['balance']);
- session()->set('excel_file_amt', $totals);
-
+ session()->set('cd_balance', 'sufficient'); // Use a string status for clarity
+ session()->set('cd_balance_info', null);
}
}
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index db0468ae..d3cd3d25 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -31,6 +31,7 @@ use App\Models\UserModel;
use App\Models\PartnerEndorsementRequestModel;
use App\Models\TpaApiDataModel;
use App\Models\LevelContactModel;
+use App\Models\NotificationModel;
use App\Controllers\Jobs;
@@ -4555,29 +4556,39 @@ class EmployeeController extends AdminController
$client_data = $this->clientModel->where('is_active', 1)->where('id', $post_data['client_id'])->first();
- $common['mail_type'] = "insufficient_cd_balance_by_hr";
+ if(empty($client_data)){
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'No client found'], 200);
+ }
+
+ $notificationModal = new NotificationModel();
+ $notification_data = $notificationModal
+ ->where('client_id', $post_data['client_id'])
+ ->where('template_name', 'hr_cd_insufficient_balance_mail')
+ ->where('is_active', 1)
+ ->first();
+
+ if(empty($notification_data)){
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'No template found'], 200);
+ }
+
+ if(empty($notification_data['subject']) || empty($notification_data['mail_content'])){
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'Template subject or mail content is empty'], 200);
+ }
+
+ if(empty($notification_data['enabled']) || $notification_data['enabled'] != 1){
+ return $this->respond(['status' => false, 'code' => 404, 'message' => 'Template is disabled'], 200);
+
+ }
+
+ $common['mail_type'] = "hr_cd_insufficient_balance_mail";
$common['client_id'] = $post_data['client_id'];
- $subject = 'Insufficient CD Balance Notification';
- $mail_content = '
- Dear {{HR_NAME}},
-
- Greetings from Nhance.
-
- We would like to inform you that the CD balance for {{CLIENT_NAME}} is currently low / insufficient, which may impact further processing of insurance-related activities.
-
- Kindly request you to credit the required amount at the earliest to avoid any service disruption.
-
- Please let us know once the amount is credited, or if you need any clarification from our end.
-
- Thank you for your support and cooperation.
- ';
-
+ $subject = $notification_data['subject'];
+ $mail_content = $notification_data['mail_content'];
foreach ($post_data['mails'] as $hr_id => $hr_data) {
- $mail_content = str_ireplace('{{HR_NAME}}', $hr_data['name'], $mail_content);
- $mail_content = str_ireplace('{{CLIENT_NAME}}', $client_data['client_name'], $mail_content);
-
+ $mail_content = str_ireplace('{{hr_name}}', $hr_data['name'], $mail_content);
+ $mail_content = str_ireplace('{{client_name}}', $client_data['client_name'], $mail_content);
$res = MailHelper::send_email(['mail' => $hr_data['mail'], 'subject' => $subject, 'message' => $mail_content, 'common' => $common]);
}
diff --git a/app/Controllers/NotificationController.php b/app/Controllers/NotificationController.php
index b0e5b4cf..8014f0c5 100755
--- a/app/Controllers/NotificationController.php
+++ b/app/Controllers/NotificationController.php
@@ -94,7 +94,8 @@ class NotificationController extends AdminController
'member_ecard_mail_btn',
'member_review_and_summary_mail_btn',
'account_maneger_summary_mail_btn',
- 'client_hr_summary_mail_btn'
+ 'client_hr_summary_mail_btn',
+ 'hr_cd_insufficient_balance_mail_btn',
];
$data = [];
$emptyTemplate = [];
diff --git a/app/Views/notification.php b/app/Views/notification.php
index 93e8213e..7948a3a4 100755
--- a/app/Views/notification.php
+++ b/app/Views/notification.php
@@ -131,6 +131,8 @@
$member_review_and_summary_mail = 0;
$account_maneger_summary_mail = 0;
$client_hr_summary_mail = 0;
+ $hr_cd_insufficient_balance_mail = 0;
+
if (isset($notification)) {
foreach ($notification as $value) {
@@ -161,6 +163,10 @@
if ($value['template_name'] == 'client_hr_summary_mail') {
$client_hr_summary_mail = $value['enabled'];
}
+
+ if ($value['template_name'] == 'hr_cd_insufficient_balance_mail') {
+ $hr_cd_insufficient_balance_mail = $value['enabled'];
+ }
}
}
?>
@@ -265,6 +271,7 @@
+
@@ -283,6 +290,26 @@
+
+
+
+
+
+
+
+ HR CD Insufficient Balance Mail
+
+
+
+
+
+
+
+
+
@@ -988,6 +1015,89 @@
+
+
+