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}}"], "Client Logo", $mail_content); $mail_content = str_replace(["[[nhance_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($is_addon == 2 || $is_addon == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; } $sum_total_words = numberToWords($sum_total); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $value['policy_name'] . '₹' . format_indian_number($value['addtional_premium']) . '₹' . format_indian_number($value['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($sum_total) . '
'; // $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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($is_addon == 2 || $is_addon == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; } $sum_total_words = numberToWords($sum_total); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $value['policy_name'] . '₹' . format_indian_number($value['addtional_premium']) . '₹' . format_indian_number($value['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($sum_total) . '
'; // $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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($is_addon == 2 || $is_addon == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Add text-align: center to the table body $table_content .= '' . $temp_data . ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
'; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; } $sum_total_words = numberToWords($sum_total); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $value['policy_name'] . '₹' . format_indian_number($value['addtional_premium']) . '₹' . format_indian_number($value['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($sum_total) . '
'; // $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}}"], "Client Logo", $mail_content); $mail_content = str_replace(["[[nhance_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Table body with details $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . '' . $array_list['relationship'] . '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . '₹' . format_indian_number($array_list['basic_cover_si']) . '₹' . format_indian_number(round($array_list['premium'])) . '₹' . format_indian_number(round($array_list['gst'])) . '
'; // 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium']; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $sum_total_words = numberToWords($total_addon); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $Addon_list[0]['policy_name'] . '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . '₹' . format_indian_number($Addon_list[0]['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($total_addon) . '
'; } } $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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Table body with details $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . '' . $array_list['relationship'] . '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . '₹' . format_indian_number($array_list['basic_cover_si']) . '₹' . format_indian_number(round($array_list['premium'])) . '₹' . format_indian_number(round($array_list['gst'])) . '
'; // 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium']; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $sum_total_words = numberToWords($total_addon); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $Addon_list[0]['policy_name'] . '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . '₹' . format_indian_number($Addon_list[0]['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($total_addon) . '
'; } } $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}}"], "Nhance Logo", $mail_content); $mail_content = str_replace(["[[client_logo]]", "{{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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; // Only Display SI Topup and Dependent Addon if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; // Table body with details $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; if ($array_list['is_addon'] == 2 || $array_list['is_addon'] == 3) { $table_content .= ''; $table_content .= ''; } $table_content .= ''; $table_content .= ''; $table_content .= '
NameRelationDate Of BirthSum InsuredPremiumGST
' . nl2br(wordwrap($array_list['name'] . $emp_code, 11, "\n", true)) . '' . $array_list['relationship'] . '' . \DateTime::createFromFormat('Y-m-d', $array_list['dob'])->format('d-m-Y') . '₹' . format_indian_number($array_list['basic_cover_si']) . '₹' . format_indian_number(round($array_list['premium'])) . '₹' . format_indian_number(round($array_list['gst'])) . '
'; // 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 .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $total_addon = $Addon_list[0]['gst'] + $Addon_list[0]['addtional_premium']; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $sum_total_words = numberToWords($total_addon); $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= ''; $table_content .= '
Policy NameAdditional PremiumGSTTotal
' . $Addon_list[0]['policy_name'] . '₹' . format_indian_number($Addon_list[0]['addtional_premium']) . '₹' . format_indian_number($Addon_list[0]['gst']) . '₹' . format_indian_number($total_addon) . '
Total₹' . format_indian_number($total_addon) . '
'; } } $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; } } } }