select('file_path, file_name')
->where('notification_id', $notification['id'])
->where('is_active', 1)
->findAll();
$attachments = [];
foreach ($attachment_data as $data) {
$resolved = storage_resolve_mail_attachment_path($data['file_path'] ?? null, $data['file_name'] ?? null);
if (($resolved['success'] ?? false) && ! empty($resolved['path'])) {
$attachments[] = [
"filePath" => $resolved['path'],
"fileName" => $resolved['display_name'] ?? $data['file_name'],
];
}
}
$mail = $dataToInsert['email_corporate'];
$subject = $notification['subject'];
$app_link = $_ENV['App_Url'];
$employee_name =$dataToInsert['name'];
$employee_mobile_no =$dataToInsert['mobile'];
$mail_content = $notification['mail_content'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$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(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
if ($dataToInsert['relationship'] == 'Self' && $mail != null || $mail != '') {
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'attachments' => $attachments, 'common' => $common];
}
return $wholeData;
} else if($action == 'member_reminder_mail'){
$EmployeeModel = new EmployeeModel();
$emp_data = $params['emp_data'];
$notification_data = $params['notification_data'];
$client_data = $params['client_data'];
$common = $params['common'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$mail_content = $notification_data['mail_content'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$employee_name =$emp_data['name'];
$employee_mobile_no =$emp_data['mobile'];
$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 = $emp_data['email_corporate'];
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'common' => $common];
return $wholeData;
} else if($action == 'member_ecard_mail'){
$notification = $params['notification'];
$get_emp_email_and_other_details = $params['get_emp_email_and_other_details'];
$rand_string = $params['rand_string'];
$client_data = $params['client_data'];
$tpa_id = $params['tpa_id'];
$common = $params['common'];
$mailAttachmentModel = new MailAttachmentModel();
$attachment_data = $mailAttachmentModel
->select('file_path, file_name')
->where('notification_id', $notification['id'])
->where('is_active', 1)
->findAll();
$attachments = [];
foreach ($attachment_data as $data) {
$resolved = storage_resolve_mail_attachment_path($data['file_path'] ?? null, $data['file_name'] ?? null);
if (($resolved['success'] ?? false) && ! empty($resolved['path'])) {
$attachments[] = [
"filePath" => $resolved['path'],
"fileName" => $resolved['display_name'] ?? $data['file_name'],
];
}
}
$mail_content = $notification['mail_content'];
$mail = $get_emp_email_and_other_details['email_corporate'];
$subject = $notification['subject'];
$cleanedText = mb_convert_encoding($subject, 'UTF-8', 'UTF-8'); // Normalize encoding
$cleanedText = preg_replace('/[^\x20-\x7E]/', '', $cleanedText);
$subject = $cleanedText;
// $link = generate_download_link($rand_string).'/1';
$link = generate_ecard_download_link_based_on_tpa($params);
$app_link = $_ENV['App_Url'];
$name = $get_emp_email_and_other_details['name'];
$employee_mobile_no = $get_emp_email_and_other_details['mobile'];
$mail_content = $notification['mail_content'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
// dd("3333333333333");
$post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $employee_mobile_no, $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content);
// $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content);
$mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'],'attachments' => $attachments, 'reply_to' => $client_data['reply_to'], 'common' => $common];
return $wholeData;
} else if($action == 'member_common_mail'){
$notification = $params['notification'];
$get_emp_email_and_other_details = $params['get_emp_email_and_other_details'];
$rand_string = $params['rand_string'];
$client_data = $params['client_data'];
$tpa_id = $params['tpa_id'];
$common = $params['common'];
$mail_content = $notification['mail_content'];
$mail = $get_emp_email_and_other_details['email_corporate'];
$subject = $notification['subject'];
$cleanedText = mb_convert_encoding($subject, 'UTF-8', 'UTF-8'); // Normalize encoding
$cleanedText = preg_replace('/[^\x20-\x7E]/', '', $cleanedText);
$subject = $cleanedText;
$link = generate_download_link($rand_string).'/1';
$app_link = $_ENV['App_Url'];
$name = $get_emp_email_and_other_details['name'];
$employee_mobile_no = $get_emp_email_and_other_details['mobile'];
$mail_content = $notification['mail_content'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $employee_mobile_no, $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content);
// $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content);
$mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'cc' => $params['test_mail_list'],'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'common' => $common];
return $wholeData;
}else if($action == 'member_review_and_summary_mail'){
$array_list = $params['array_list'];//employeee lst
$client_policy_id = $params['client_policy_id'];
$emp_code = $params['emp_code'];
$client_id = $params['client_id'];
$common = $params['common'];
$clientModel = new ClientModel();
$notificationModel = new NotificationModel();
$clientPolicyModel = new ClientPolicyModel();
$PolicyPremium1Model = new PolicyPremium1Model();
$PolicyPremium2Model = new PolicyPremium2Model();
$client_data =$clientModel->where('id', $client_id)->first();
$notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
// dd($notification_data);
if (isset($notification_data) && $notification_data['enabled'] == 1) {
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$mail = '';
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$Addon_list = [];
$name = '';
$employee_mobile_no = '';
$emp_code = '';
// echo '
';
// dd($array_list); die;
foreach ($array_list as $item) {
$payable_employee_array = [];
if (count($item) != 0) {
$table_content .= 'Policy Type :';
$temp_data = '';
$policy_name = '';
$is_addon = '';
$rowspan = count($item) ?? 2;
$is_si_set = 0;
foreach ($item as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
// dd($policy_premium_data);
if($inner_item['payable_employee'] == 1 && $client_policy_data['policy_type_id'] == 2){
$payable_employee_array['emp_data'][] = $inner_item;
}
// dd($policy_premium_data);
$policy_name = $inner_item['policy_name'];
if ($inner_item['relationship'] == 'Self') {
$emp_code = '(' . $inner_item['emp_code'] . ')';
$mail = $inner_item['email_corporate'];
$name = $inner_item['name'];
$employee_mobile_no = $inner_item['mobile'];
}
$si = '';
$premium = '';
$gst_forself = '';
// if(checkFamilyFloaters($policy_premium_data, $client_policy_data, $inner_item)){
if($policy_premium_data['premium_type'] == 2){
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
}else{
if ($inner_item['relationship'] == 'Self') {
$payable_employee_array['si_amount'] = $inner_item['basic_cover_si'];
$payable_employee_array['self_premium'] = $inner_item['rata_premimum'];
$payable_employee_array['self_gst'] = $inner_item['gst'];
}
empty($inner_item['basic_cover_si']) ? $si = 0 : $si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
}
$premium = '₹ ' .format_indian_number(round($inner_item['rata_premimum']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
// }
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . ($inner_item['relationship'] == 'Self' ? ' (' . $inner_item['emp_code'] . ')' : '') . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
if($policy_premium_data['premium_type'] == 2){
$temp_data .= '' . $si . ' ';
}else{
// $temp_data .= (($si != 0 && count($item) != 1) ? ('' . $si . ' ') : ($si == 0 ? "" : '' . $si . ' ') );
if ($si != 0 && count($item) != 1 && $is_si_set == 0) {
$temp_data .= '' . $si . ' ';
$is_si_set = 1;
} else {
if ($is_si_set == 1) {
$temp_data .= '';
} else {
$temp_data .= '' . $si . ' ';
}
}
}
// Only Display SI Topup and Dependent Addon
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
}
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . '
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($is_addon == 2 || $is_addon == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
if ($is_addon == 2 || $is_addon == 3) {
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
// dd($payable_employee_array);
// dd(count($payable_employee_array['emp_data']));
if(isset($payable_employee_array['emp_data']) && count($payable_employee_array['emp_data']) > 0){
$table_content .= 'Policy Type :';
$temp_data = '';
$is_addon = '';
$rowspan = count($payable_employee_array['emp_data']) ?? 2;
$self_si_amount = $payable_employee_array['si_amount'] ?? 0;
$self_premium = $payable_employee_array['self_premium'] ?? 0;
$self_gst = $payable_employee_array['self_gst'] ?? 0;
// dd($payable_employee_array['si_amount'], $self_si_amount);
foreach ($payable_employee_array['emp_data'] as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
// dd($policy_premium_data);
$si = '';
$premium = '';
$gst_forself = '';
if($policy_premium_data['premium_type'] == 2){
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
}else{
empty($self_si_amount) ? $si = 0 : $si = '₹ ' .format_indian_number($self_si_amount);
}
if($policy_premium_data['premium_type'] == 1){
empty($self_premium) ? $premium = 0 : $premium = '₹ ' .format_indian_number($self_premium);
empty($self_gst) ? $gst_forself = 0 : $gst_forself = '₹ ' .format_indian_number($self_gst);
}else{
$premium = '₹ ' .format_indian_number(round($inner_item['rata_premimum']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
}
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . ($inner_item['relationship'] == 'Self' ? ' (' . $inner_item['emp_code'] . ')' : '') . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
// dd($si);
if($policy_premium_data['premium_type'] == 2){
$temp_data .= '' . $si . ' ';
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
}else{
if($policy_premium_data['premium_type'] == 1){
$temp_data .= (($si != 0 && count($item) != 1) ? ('' . $si . ' ') : ($si == 0 ? "" : '' . $si . ' ') );
$temp_data .= (($premium != 0 && count($item) != 1) ? ('' . $premium . ' ') : ($premium == 0 ? "" : '' . $premium . ' ') );
$temp_data .= (($gst_forself != 0 && count($item) != 1) ? ('' . $gst_forself . ' ') : ($gst_forself == 0 ? "" : '' . $gst_forself . ' ') );
}else{
$temp_data .= (($si != 0 && count($item) != 1) ? ('' . $si . ' ') : ($si == 0 ? "" : '' . $si . ' ') );
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
}
$self_si_amount = 0;
$self_premium = 0;
$self_gst = 0;
}
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . ' ( Payable By Employee )
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
$table_content .= 'Premium ';
$table_content .= 'GST ';
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type . '( Payable By Employee )',
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
}
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
// Center align for table header and body
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$sum_total = 0;
foreach ($Addon_list as $key => $value) {
$total_addon = $value['gst'] + $value['addtional_premium'];
$sum_total += $total_addon;
$table_content .= '';
$table_content .= '' . $value['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($value['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($value['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
}
$sum_total_words = numberToWords($sum_total);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($sum_total) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// $table_content .= '' . $sum_total_words . '';
}
// dd($payable_employee_array, $Addon_list);
// print_r($table_content); die;
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name . ' (' . $emp_code . ')' , $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $employee_mobile_no, $mail_content);
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
// print_r($mail_content); die;
// $mail = "aadhavanvalli@gmail.com";
// if (isset($mail) && !empty($mail)) {
$wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'common' => $common];
// }
return $wholeData;
}
} else if($action == 'account_maneger_summary_mail'){
$client_id = $params['client_id'];
$client_policy_id = $params['client_policy_id'];
$common = $params['common'];
$clientModel = new ClientModel();
$notificationModel = new NotificationModel();
$clientRMModel =new ClientRMModel();
$clientPolicyModel = new ClientPolicyModel();
$PolicyPremium1Model = new PolicyPremium1Model();
$PolicyPremium2Model = new PolicyPremium2Model();
$client_data =$clientModel->where('id', $client_id)->first();
$notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
if (isset($notification_data) && $notification_data['enabled'] == 1) {
$client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll();
$user_list= [];
foreach ($client_rm_data as $key => $value) {
if($value['level'] == 3){
$userModel = new UserModel();
$user_data = $userModel->where('id', $value['user_id'])->first();
$user_list[]=$user_data;
}
}
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$mail = '';
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$array_list = $params['array_list'];
$Addon_list = [];
foreach ($array_list as $item) {
$payable_employee_array = [];
if (count($item) != 0) {
$table_content .= '
Policy Type :';
$temp_data = '';
$policy_name = '';
$is_addon = '';
foreach ($item as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
if($inner_item['payable_employee'] == 1 && $client_policy_data['policy_type_id'] == 2){
$payable_employee_array[] = $inner_item;
}
$policy_name = $inner_item['policy_name'];
if ($inner_item['relationship'] == 'Self') {
$emp_code = ' (' . $inner_item['emp_code'] . ')';
} else {
$emp_code = '';
}
$si = '';
$premium = '';
$gst_forself = '';
// if(checkFamilyFloaters($policy_premium_data, $client_policy_data, $inner_item)){
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
$premium = '₹ ' .format_indian_number(round($inner_item['premium']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
// }
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . $emp_code . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
$temp_data .= '' . $si . ' ';
// Only Display SI Topup and Dependent Addon
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
}
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . '
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($is_addon == 2 || $is_addon == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
if ($is_addon == 2 || $is_addon == 3) {
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
if(count($payable_employee_array) > 0){
$table_content .= 'Policy Type :';
$temp_data = '';
$is_addon = '';
foreach ($payable_employee_array as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
$si = '';
$premium = '';
$gst_forself = '';
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
$premium = '₹ ' .format_indian_number(round($inner_item['rata_premimum']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . ($inner_item['relationship'] == 'Self' ? ' (' . $inner_item['emp_code'] . ')' : '') . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
$temp_data .= '' . $si . ' ';
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . ' ( Payable By Employee )
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
$table_content .= 'Premium ';
$table_content .= 'GST ';
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type . '( Payable By Employee )',
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
}
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
// Center align for table header and body
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$sum_total = 0;
foreach ($Addon_list as $key => $value) {
$total_addon = $value['gst'] + $value['addtional_premium'];
$sum_total += $total_addon;
$table_content .= '';
$table_content .= '' . $value['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($value['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($value['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
}
$sum_total_words = numberToWords($sum_total);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($sum_total) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// $table_content .= '' . $sum_total_words . '';
}
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$account_manager_mail_list = [];
if(isset($user_list)){
foreach ($user_list as $key => $value) {
$full_name = $value['first_name'] .' ' .$value['last_name'];
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $full_name , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData[] = ['mail' => $value['email'], 'subject' => $subject,'message'=> $mail_content, 'reply_to' => $client_data['reply_to'], 'common' => $common];
// $wholeData[] = ['mail' => $value['email'], 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'}};
}
return $wholeData;
}
}
} else if($action == 'client_hr_summary_mail'){
$client_id = $params['client_id'];
$client_policy_id = $params['client_policy_id'];
$common = $params['common'];
$clientModel = new ClientModel();
$clientPolicyModel = new ClientPolicyModel();
$PolicyPremium1Model = new PolicyPremium1Model();
$PolicyPremium2Model = new PolicyPremium2Model();
$client_data =$clientModel->where('id', $client_id)->first();
$notificationModel = new NotificationModel();
$notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
$clientRMModel =new ClientRMModel();
if (isset($notification_data['enabled']) && $notification_data['enabled'] == 1) {
$client_rm_data= $clientRMModel->where('client_id', $client_id)->where('is_active',1)->findAll();
$user_list= [];
foreach ($client_rm_data as $key => $value) {
if($value['level'] == 3){
$userModel = new UserModel();
$user_data = $userModel->where('id', $value['user_id'])->first();
$user_list[]=$user_data;
}
}
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
// $client_logo = $nhance_logo;
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$mail = '';
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$array_list = $params['array_list'];
$Addon_list = [];
foreach ($array_list as $item) {
$payable_employee_array = [];
if (count($item) != 0) {
$table_content .= '
Policy Type :';
$temp_data = '';
$policy_name = '';
$is_addon = '';
foreach ($item as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
if($inner_item['payable_employee'] == 1 && $client_policy_data['policy_type_id'] == 2){
$payable_employee_array[] = $inner_item;
}
$policy_name = $inner_item['policy_name'];
if ($inner_item['relationship'] == 'Self') {
$emp_code = ' (' . $inner_item['emp_code'] . ')';
} else {
$emp_code = '';
}
$si = '';
$premium = '';
$gst_forself = '';
// dd($policy_premium_data, $client_policy_data, $inner_item);
// if(checkFamilyFloaters($policy_premium_data, $client_policy_data, $inner_item)){
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
$premium = '₹ ' .format_indian_number(round($inner_item['premium']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
// }
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . $emp_code . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
$temp_data .= '' . $si . ' ';
// Only Display SI Topup and Dependent Addon
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
}
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
if ($inner_item['is_addon'] == 2 || $inner_item['is_addon'] == 3) {
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . '
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($is_addon == 2 || $is_addon == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
if ($is_addon == 2 || $is_addon == 3) {
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
if(count($payable_employee_array) > 0){
$table_content .= 'Policy Type :';
$temp_data = '';
$is_addon = '';
foreach ($payable_employee_array as $inner_item) {
//getting policy premium data
$client_policy_data = $clientPolicyModel->where('id', $inner_item['client_policy_id'])->first();
if($client_policy_data['policy_type_id'] == 1 || $client_policy_data['policy_type_id'] == 6 || $client_policy_data['policy_type_id'] == 7 ){
$policy_premium_data = $PolicyPremium1Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}else{
$policy_premium_data = $PolicyPremium2Model->where('client_policy_id', $inner_item['client_policy_id'])->where('is_active', '1')->first();
}
//end of getting policy premium data
$si = '';
$premium = '';
$gst_forself = '';
$si = '₹ ' .format_indian_number($inner_item['basic_cover_si']);
$premium = '₹ ' .format_indian_number(round($inner_item['rata_premimum']));
$gst_forself = '₹ ' .format_indian_number(round($inner_item['gst']));
$temp_data .= '';
$temp_data .= '' . $inner_item['name'] . ($inner_item['relationship'] == 'Self' ? ' (' . $inner_item['emp_code'] . ')' : '') . ' ';
$temp_data .= '' . $inner_item['relationship'] . ' ';
$temp_data .= '' . \DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y') . ' ';
$temp_data .= '' . $si . ' ';
$temp_data .= '' . $premium . ' ';
$temp_data .= '' . $gst_forself . ' ';
$temp_data .= ' ';
$is_addon = $inner_item['is_addon'];
$addtional_premium = $inner_item['rata_premimum'] + $addtional_premium;
$gst = $inner_item['gst'] + $gst;
}
$policy_name_for_policy_type = $inner_item['policy_name'];
if($client_policy_data['policy_type_id'] == 3 && $client_policy_data['is_addon'] == 3){
$policy_name_for_policy_type = 'Add-On Group Medical Coverage for Parents';
}
$table_content .= $policy_name_for_policy_type . ' ( Payable By Employee )
';
$table_content .= '';
// Add text-align: center to the table head
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
$table_content .= 'Premium ';
$table_content .= 'GST ';
$table_content .= ' ';
$table_content .= '';
// Add text-align: center to the table body
$table_content .= '' . $temp_data . '';
$table_content .= '
';
$addon_list_array = [
'policy_name' => $policy_name_for_policy_type . '( Payable By Employee )',
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
$temp_data = '';
$addtional_premium = 0;
$gst = 0;
}
}
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
// Center align for table header and body
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$sum_total = 0;
foreach ($Addon_list as $key => $value) {
$total_addon = $value['gst'] + $value['addtional_premium'];
$sum_total += $total_addon;
$table_content .= '';
$table_content .= '' . $value['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($value['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($value['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
}
$sum_total_words = numberToWords($sum_total);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($sum_total) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// $table_content .= '' . $sum_total_words . '';
}
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$hr_mails = $client_data['hr_mails'];
$mail_array = explode(',', $hr_mails);
$mail_array = array_map('trim', $mail_array);
$wholeData = [];
foreach ($mail_array as $key => $value) {
$wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content, 'reply_to' => $client_data['reply_to'], 'common' => $common];
// $wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'}};
}
return $wholeData;
}
}
}
public static function sendMailNotificationForTesting($action, $params)
{
$wholeData =[];
if ($action == 'member_welcome_mail') {
$clientModel = new ClientModel();
$notification = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
$mail_content = $notification['mail_content'];
$subject = $notification['subject'];
$mailAttachmentModel = new MailAttachmentModel();
$attachment_data = $mailAttachmentModel
->select('file_path, file_name')
->where('notification_id', $notification['id'])
->where('is_active', 1)
->findAll();
$attachments = [];
foreach ($attachment_data as $data) {
$resolved = storage_resolve_mail_attachment_path($data['file_path'] ?? null, $data['file_name'] ?? null);
if (($resolved['success'] ?? false) && ! empty($resolved['path'])) {
$attachments[] = [
"filePath" => $resolved['path'],
"fileName" => $resolved['display_name'] ?? $data['file_name'],
];
}
}
// print_r($attachments); die;
$employee_name = 'John Doe';
$mobile = 9080706050;
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$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}}"], $mobile, $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
if ( isset($mail) && !empty($mail) ) {
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to'], 'attachments' => $attachments];
}
return $wholeData;
} else if($action == 'member_reminder_mail'){
$notification_data = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$app_link = $_ENV['App_Url'];
$employee_name = 'John Doe';
$mobile = 9080706050;
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $employee_name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content);
if ((isset($notification_data) && $notification_data['enabled'] == 1)) {
if (isset($mail) && !empty($mail)) {
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to']];
}
}
return $wholeData;
} else if($action == 'member_ecard_mail'){
$notification = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
$mailAttachmentModel = new MailAttachmentModel();
$attachment_data = $mailAttachmentModel
->select('file_path, file_name')
->where('notification_id', $notification['id'])
->where('is_active', 1)
->findAll();
$attachments = [];
foreach ($attachment_data as $data) {
$resolved = storage_resolve_mail_attachment_path($data['file_path'] ?? null, $data['file_name'] ?? null);
if (($resolved['success'] ?? false) && ! empty($resolved['path'])) {
$attachments[] = [
"filePath" => $resolved['path'],
"fileName" => $resolved['display_name'] ?? $data['file_name'],
];
}
}
$mail_content = $notification['mail_content'];
$subject = $notification['subject'];
$rand_string = 'HX3kUh';
$link = generate_download_link($rand_string).'/1';
$name = 'John Doe';
$mobile = 9080706050;
$nhance_logo = $_ENV['NHANCE_LOGO'];
$app_link = $_ENV['App_Url'];
$post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails'],'attachments' => $attachments, 'reply_to' => $client_data['reply_to']];
return $wholeData;
}else if($action == 'member_common_mail'){
$notification = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
$mailAttachmentModel = new MailAttachmentModel();
$attachment_data = $mailAttachmentModel
->select('file_path, file_name')
->where('notification_id', $notification['id'])
->where('is_active', 1)
->findAll();
$attachments = [];
foreach ($attachment_data as $data) {
$resolved = storage_resolve_mail_attachment_path($data['file_path'] ?? null, $data['file_name'] ?? null);
if (($resolved['success'] ?? false) && ! empty($resolved['path'])) {
$attachments[] = [
"filePath" => $resolved['path'],
"fileName" => $resolved['display_name'] ?? $data['file_name'],
];
}
}
$mail_content = $notification['mail_content'];
$subject = $notification['subject'];
$rand_string = 'HX3kUh';
$link = generate_download_link($rand_string).'/1';
$name = 'John Doe';
$mobile = 9080706050;
$nhance_logo = $_ENV['NHANCE_LOGO'];
$app_link = $_ENV['App_Url'];
$post_enrollment_app_link = $_ENV['POST_ENROLLMENT_APP_LINK'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name, $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[post_enrollment_app_link]]", "{{post_enrollment_app_link}}"], "Review Details", $mail_content);
$mail_content = str_replace(["[[ecard_download_link]]", "{{ecard_download_link}}"], "Download Insurance Card", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = preg_replace('/
]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'cc' => $params['test_mail_list'], 'bcc'=> $client_data['common_mails'],'attachments' => $attachments, 'reply_to' => $client_data['reply_to']];
return $wholeData;
} else if($action == 'member_review_and_summary_mail'){
$array_list = [
'policy_name' => 'Health Insurance Plan',
'emp_code' => 'E12345',
'name' => 'John Doe',
'relationship' => 'Self',
'dob' => '1985-05-15',
'basic_cover_si' => 500000,
'premium' => 12000,
'gst' => 2160,
'rata_premimum' => 12000,
'is_addon' => 2,
'mobile' => 9080706050
];
$notification_data = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
if (isset($notification_data) && $notification_data['enabled'] == 1) {
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$Addon_list = [];
$name = $array_list['name'];
$mobile = $array_list['mobile'];
$emp_code = '';
if (!empty($array_list)) {
$table_content .= '
Policy Type :';
$policy_name = $array_list['policy_name'];
if ($array_list['relationship'] == 'Self') {
$emp_code = ' (' . $array_list['emp_code'] . ')';
} else {
$emp_code = '';
}
// Start table row
$table_content .= $policy_name . '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Table body with details
$table_content .= '';
$table_content .= '';
$table_content .= '' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . ' ';
$table_content .= '' . $array_list['relationship'] . ' ';
$table_content .= '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . ' ';
$table_content .= '₹' . format_indian_number($array_list['basic_cover_si']) . ' ';
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= '₹' . format_indian_number(round($array_list['premium'])) . ' ';
$table_content .= '₹' . format_indian_number(round($array_list['gst'])) . ' ';
}
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// Calculate additional premium and GST if applicable
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$addtional_premium = $array_list['rata_premimum'];
$gst = $array_list['gst'];
// Prepare addon summary
$addon_list_array = [
'policy_name' => $policy_name,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
// Generate summary table for addon if applicable
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium'];
$table_content .= '';
$table_content .= '' . $Addon_list[0]['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$sum_total_words = numberToWords($total_addon);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
}
}
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name . ' (' . $emp_code . ')' , $mail_content);
$mail_content = str_replace(["[[member_mobile]]", "{{member_mobile}}"], $mobile, $mail_content);
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails'], 'reply_to' => $client_data['reply_to']];
return $wholeData;
}
} else if($action == 'account_maneger_summary_mail'){
$array_list = [
'policy_name' => 'Health Insurance Plan',
'emp_code' => 'E12345',
'name' => 'John Doe',
'relationship' => 'Self',
'dob' => '1985-05-15',
'basic_cover_si' => 500000,
'premium' => 12000,
'gst' => 2160,
'rata_premimum' => 12000,
'is_addon' => 2
];
$notification_data = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
if (isset($notification_data) && $notification_data['enabled'] == 1) {
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$Addon_list = [];
$name = $array_list['name'];
$emp_code = '';
if (!empty($array_list)) {
$table_content .= '
Policy Type :';
$policy_name = $array_list['policy_name'];
if ($array_list['relationship'] == 'Self') {
$emp_code = ' (' . $array_list['emp_code'] . ')';
} else {
$emp_code = '';
}
// Start table row
$table_content .= $policy_name . '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Table body with details
$table_content .= '';
$table_content .= '';
$table_content .= '' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . ' ';
$table_content .= '' . $array_list['relationship'] . ' ';
$table_content .= '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . ' ';
$table_content .= '₹' . format_indian_number($array_list['basic_cover_si']) . ' ';
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= '₹' . format_indian_number(round($array_list['premium'])) . ' ';
$table_content .= '₹' . format_indian_number(round($array_list['gst'])) . ' ';
}
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// Calculate additional premium and GST if applicable
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$addtional_premium = $array_list['rata_premimum'];
$gst = $array_list['gst'];
// Prepare addon summary
$addon_list_array = [
'policy_name' => $policy_name,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
// Generate summary table for addon if applicable
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium'];
$table_content .= '';
$table_content .= '' . $Addon_list[0]['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$sum_total_words = numberToWords($total_addon);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
}
}
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name . ' (' . $emp_code . ')' , $mail_content);
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'reply_to' => $client_data['reply_to']];
return $wholeData;
}
} else if($action == 'client_hr_summary_mail'){
$array_list = [
'policy_name' => 'Health Insurance Plan',
'emp_code' => 'E12345',
'name' => 'Ramakrishnaparamahamsar',
'relationship' => 'Self',
'dob' => '1985-05-15',
'basic_cover_si' => 500000,
'premium' => 12000,
'gst' => 2160,
'rata_premimum' => 12000,
'is_addon' => 2
];
$notification_data = $params['notification_data'];
$client_data = $params['client_data'];
$mail = $params['test_mail'];
if (isset($notification_data['enabled']) && $notification_data['enabled'] == 1) {
$mail_content = $notification_data['mail_content'];
$subject = $notification_data['subject'];
$app_link = $_ENV['App_Url'];
$nhance_logo = $_ENV['NHANCE_LOGO'];
$client_logo = base_url() . "public/uploads/logo/" . $client_data['client_logo'];
$mail_content = str_replace(["[[nhance_logo]]", "{{nhance_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_logo]]", "{{client_logo}}"], "
", $mail_content);
$mail_content = str_replace(["[[client_name]]", "{{client_name}}"], $client_data['client_name'], $mail_content);
$mail_content = str_replace(["[[app_link]]", "{{app_link}}"], "Review Details", $mail_content);
// Step 1: Replace the placeholder with an HTML table structure
$table_content = '';
$addtional_premium = 0;
$gst = 0;
$Addon_list = [];
$name = $array_list['name'];
$emp_code = '';
if (!empty($array_list)) {
$table_content .= '
Policy Type :';
$policy_name = $array_list['policy_name'];
if ($array_list['relationship'] == 'Self') {
$emp_code = ' (' . $array_list['emp_code'] . ')';
} else {
$emp_code = '';
}
// Start table row
$table_content .= $policy_name . '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Name ';
$table_content .= 'Relation ';
$table_content .= 'Date Of Birth ';
$table_content .= 'Sum Insured ';
// Only Display SI Topup and Dependent Addon
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= 'Premium ';
$table_content .= 'GST ';
}
$table_content .= ' ';
$table_content .= '';
// Table body with details
$table_content .= '';
$table_content .= '';
$table_content .= '' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . ' ';
$table_content .= '' . $array_list['relationship'] . ' ';
$table_content .= '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . ' ';
$table_content .= '₹' . format_indian_number($array_list['basic_cover_si']) . ' ';
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$table_content .= '₹' . format_indian_number(round($array_list['premium'])) . ' ';
$table_content .= '₹' . format_indian_number(round($array_list['gst'])) . ' ';
}
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
// Calculate additional premium and GST if applicable
if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) {
$addtional_premium = $array_list['rata_premimum'];
$gst = $array_list['gst'];
// Prepare addon summary
$addon_list_array = [
'policy_name' => $policy_name,
'addtional_premium' => round($addtional_premium),
'gst' => round($gst)
];
$Addon_list[] = $addon_list_array;
}
// Generate summary table for addon if applicable
if (count($Addon_list) > 0) {
$table_content .= '
';
$table_content .= '';
$table_content .= '';
$table_content .= '';
$table_content .= 'Policy Name ';
$table_content .= 'Additional Premium ';
$table_content .= 'GST ';
$table_content .= 'Total ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '';
$total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium'];
$table_content .= '';
$table_content .= '' . $Addon_list[0]['policy_name'] . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . ' ';
$table_content .= '₹' . format_indian_number($Addon_list[0]['gst']) . ' ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$sum_total_words = numberToWords($total_addon);
$table_content .= '';
$table_content .= 'Total ';
$table_content .= '₹' . format_indian_number($total_addon) . ' ';
$table_content .= ' ';
$table_content .= '';
$table_content .= '
';
}
}
$mail_content = str_replace(["[[member_name]]", "{{member_name}}"], $name . ' (' . $emp_code . ')' , $mail_content);
$mail_content = str_replace(["[[member_summary]]", "{{member_summary}}"], $table_content , $mail_content);
$mail_content = preg_replace('/]*>( |\s)*<\/p>/i', '', $mail_content);
$data['params'] = $params;$data['client_logo'] = $client_logo;
$data['mail_content'] = $mail_content;
$mail_content = view('mail_template', $data);
$wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'reply_to' => $client_data['reply_to']];
return $wholeData;
}
}
}
}