Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev

This commit is contained in:
VENKATESHWARAN 2025-01-20 10:45:43 +05:30
commit c72ad51b81
9 changed files with 172 additions and 386 deletions

View File

@ -313,14 +313,8 @@ class EmployeeController extends AdminController
'c.short_name', 'c.short_name',
'cb.branch_name', 'cb.branch_name',
'cp.id as client_policy_id', 'cp.id as client_policy_id',
'(SELECT COUNT(*) '"0" as employee_count',
FROM employees e '"0" as total',
JOIN employee_polices ep ON e.id = ep.employee_id
WHERE e.file_id = files.id AND ep.client_policy_id = files.policy_id) as employee_count',
'(SELECT SUM(ep.rata_premimum) + SUM(ep.gst)
FROM employees e
JOIN employee_polices ep ON e.id = ep.employee_id
WHERE e.file_id = files.id AND ep.client_policy_id = files.policy_id) as total',
'policy_type.policy_type' , 'policy_type.policy_type' ,
'cp.policy_no' , 'cp.policy_no' ,
]) ])

View File

@ -194,6 +194,11 @@ class MailHelper
} else { } else {
$bcc = ''; $bcc = '';
} }
if(isset($params['cc'])){
$cc = $params['cc'];
}else{
$cc = '';
}
$from_address = getenv('email.fromEmail'); $from_address = getenv('email.fromEmail');
@ -255,7 +260,6 @@ class MailHelper
} }
$apiResponse = json_decode($response, true); $apiResponse = json_decode($response, true);
if ($httpCode === 200) { if ($httpCode === 200) {
return json_encode(['status' => 'success', 'code' => 200, 'message' => 'Email Sent Successfully...', 'data' => $emaill], 200); return json_encode(['status' => 'success', 'code' => 200, 'message' => 'Email Sent Successfully...', 'data' => $emaill], 200);
} else { } else {
@ -297,6 +301,8 @@ class MailHelper
$message = $params['message']; $message = $params['message'];
$attachments = isset($params['attachments']) ? $params['attachments'] : []; $attachments = isset($params['attachments']) ? $params['attachments'] : [];
$common = isset($params['common']) ? $params['common'] : ''; $common = isset($params['common']) ? $params['common'] : '';
$bcc = isset($params['bcc']) ? $params['bcc'] : '';
$cc = isset($params['cc']) ? $params['cc'] : '';
$from_address = getenv('email.fromEmail'); $from_address = getenv('email.fromEmail');
try { try {
@ -317,6 +323,34 @@ class MailHelper
'htmlbody' => $message 'htmlbody' => $message
]; ];
// Add CC recipients if provided
if (!empty($cc)) {
$postData['cc'] = [];
// Handle both string and array inputs for CC
$ccEmails = is_array($cc) ? $cc : [$cc];
foreach ($ccEmails as $ccEmail) {
$postData['cc'][] = [
'email_address' => [
'address' => $ccEmail
]
];
}
}
// Add BCC recipients if provided
if (!empty($bcc)) {
$postData['bcc'] = [];
// Handle both string and array inputs for BCC
$bccEmails = is_array($bcc) ? $bcc : [$bcc];
foreach ($bccEmails as $bccEmail) {
$postData['bcc'][] = [
'email_address' => [
'address' => $bccEmail
]
];
}
}
// Handle attachments // Handle attachments
if (!empty($attachments)) { if (!empty($attachments)) {
$postData['attachments'] = []; $postData['attachments'] = [];
@ -328,13 +362,12 @@ class MailHelper
$postData['attachments'][] = [ $postData['attachments'][] = [
'content' => base64_encode(file_get_contents($attachment['filePath'])), 'content' => base64_encode(file_get_contents($attachment['filePath'])),
'name' => $attachment['fileName'], 'name' => $attachment['fileName'],
'mime_type' => $fileMimeType, // Add mime_type field 'mime_type' => $fileMimeType,
]; ];
} }
} }
} }
curl_setopt_array($curl, [ curl_setopt_array($curl, [
CURLOPT_URL => "https://api.zeptomail.in/v1.1/email", CURLOPT_URL => "https://api.zeptomail.in/v1.1/email",
CURLOPT_RETURNTRANSFER => true, CURLOPT_RETURNTRANSFER => true,
@ -355,12 +388,12 @@ class MailHelper
$mail_result = curl_exec($curl); $mail_result = curl_exec($curl);
$err = curl_error($curl); $err = curl_error($curl);
curl_close($curl); curl_close($curl);
// log_message('error','inside mail helper');
// log_message('error', $response.' error->'.$err);die();
$res['params'] = $params; $res['params'] = $params;
$MailDataHelper = new GmailResponseHandler(); $MailDataHelper = new GmailResponseHandler();
$apiResponse = json_decode($mail_result, true); $apiResponse = json_decode($mail_result, true);
$res['zepto_api'] = $apiResponse; $res['zepto_api'] = $apiResponse;
if (isset($apiResponse['error'])) { if (isset($apiResponse['error'])) {
$response = $res; $response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response); $MailDataHelper->receive_and_distribute_param_to_functions($response);
@ -372,9 +405,6 @@ class MailHelper
], 404); ], 404);
} }
// $apiResponse = json_decode($response, true);
// Check if request_id exists in response (indicates success)
if (isset($apiResponse['data'])) { if (isset($apiResponse['data'])) {
$response = $res; $response = $res;
$MailDataHelper->receive_and_distribute_param_to_functions($response); $MailDataHelper->receive_and_distribute_param_to_functions($response);
@ -398,7 +428,6 @@ class MailHelper
], 500); ], 500);
} }
} }
public static function bulk_mail(array $mails = []) public static function bulk_mail(array $mails = [])
{ {
$model = new JobModel(); $model = new JobModel();

View File

@ -226,6 +226,7 @@ class EmployeePolicyModel extends Model
public function getInceptionEmployeeDataForExportExcel($ref_data, $return_type = 0) public function getInceptionEmployeeDataForExportExcel($ref_data, $return_type = 0)
{ {
$client_id = $ref_data['client_id'];
$client_policy_id = $ref_data['client_policy_id']; $client_policy_id = $ref_data['client_policy_id'];
$client_branch_id = $ref_data['client_branch_id']; $client_branch_id = $ref_data['client_branch_id'];
$insurer_or_tpa = $ref_data['insurer_or_tpa']; $insurer_or_tpa = $ref_data['insurer_or_tpa'];
@ -318,6 +319,9 @@ class EmployeePolicyModel extends Model
WHERE batch_files.event_type = '{$event}' WHERE batch_files.event_type = '{$event}'
AND batch_files.actions = 'export' AND batch_files.actions = 'export'
AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}' AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
AND batch_files.client_policy_id = '{$client_policy_id}'
AND batch_files.client_policy_id = '{$client_id}'
) as batch_data ON employee_polices.id = batch_data.emp_policy_id ) as batch_data ON employee_polices.id = batch_data.emp_policy_id
WHERE employee_polices.client_policy_id = '{$client_policy_id}' WHERE employee_polices.client_policy_id = '{$client_policy_id}'
AND (employee_polices.{$id} IS NULL OR employee_polices.{$id} = '') AND (employee_polices.{$id} IS NULL OR employee_polices.{$id} = '')

View File

@ -1,9 +1,10 @@
<style> <style>
custom-dropdown-menu {
.custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -15,15 +16,9 @@ custom-dropdown-menu {
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
@ -31,40 +26,6 @@ custom-dropdown-menu {
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} }
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style> </style>
<div class="row" id="insurer_list"> <div class="row" id="insurer_list">
<div class="col-12"> <div class="col-12">

View File

@ -108,11 +108,11 @@ table.dataTable tbody td {
color: gray; color: gray;
} }
custom-dropdown-menu { .custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -124,15 +124,9 @@ custom-dropdown-menu {
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
@ -140,43 +134,6 @@ custom-dropdown-menu {
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} }
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style> </style>
<div class="row" id="inception_list"> <div class="row" id="inception_list">

View File

@ -1,9 +1,10 @@
<style> <style>
custom-dropdown-menu {
.custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -15,15 +16,9 @@
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
@ -31,40 +26,6 @@
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} }
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style> </style>
<div class="row" id="kyc_list"> <div class="row" id="kyc_list">
<div class="col-12"> <div class="col-12">

View File

@ -37,11 +37,12 @@ table.dataTable tbody td {
margin-bottom: 10px; margin-bottom: 10px;
} }
custom-dropdown-menu {
.custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -53,15 +54,9 @@ custom-dropdown-menu {
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
@ -69,40 +64,6 @@ custom-dropdown-menu {
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} }
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style> </style>

View File

@ -45,11 +45,11 @@ table.dataTable tbody td {
.addbtnStyle{ .addbtnStyle{
margin-left: 20px !important; margin-left: 20px !important;
} }
custom-dropdown-menu { .custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -61,15 +61,9 @@ custom-dropdown-menu {
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
@ -77,41 +71,6 @@ custom-dropdown-menu {
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} }
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style> </style>
<style> <style>

View File

@ -1,9 +1,10 @@
<style> <style>
custom-dropdown-menu {
.custom-dropdown-menu {
display: none; display: none;
position: fixed; position: absolute;
background-color: #ffffff !important; background-color: #ffffff !important;
border: 1px solid rgba(0,0,0,.15); border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem; border-radius: 0.25rem;
padding: 0.5rem 0; padding: 0.5rem 0;
min-width: 10rem; min-width: 10rem;
@ -15,57 +16,16 @@ custom-dropdown-menu {
display: block !important; display: block !important;
width: 100% !important; width: 100% !important;
padding: 0.5rem 1rem !important; padding: 0.5rem 1rem !important;
clear: both !important;
font-weight: 400 !important;
color: #212529 !important; color: #212529 !important;
text-align: inherit !important;
white-space: nowrap !important;
background-color: transparent !important;
border: 0 !important;
text-decoration: none !important; text-decoration: none !important;
position: relative !important; background-color: transparent !important;
} }
.custom-dropdown-menu .dropdown-item:hover { .custom-dropdown-menu .dropdown-item:hover {
background-color: #f8f9fa !important; background-color: #f8f9fa !important;
color: #16181b !important; color: #16181b !important;
cursor: pointer !important; cursor: pointer !important;
} } </style>
.custom-dropdown-menu .dropdown-item i {
margin-right: 8px !important;
vertical-align: middle !important;
}
.table tbody tr {
cursor: pointer;
}
/* Ensure the dropdown menu has a solid background */
.custom-dropdown-menu::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #ffffff;
z-index: -1;
}
/* Add a subtle backdrop effect */
.custom-dropdown-menu::after {
content: '';
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.05);
z-index: -2;
pointer-events: none;
}
</style>
<div class="row" id="tpa_list"> <div class="row" id="tpa_list">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">