Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
velz 2024-11-26 08:56:26 +05:30
commit 31820a8905
29 changed files with 3911 additions and 1234 deletions

View File

@ -309,6 +309,11 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->post("update_emp_data", "EmployeeController::update_emp_data");
$routes->get("checkDeletionGetDataFunction", "EmployeeController::checkDeletionGetDataFunction");
$routes->get("download_import_excel/(:any)", "EmployeeController::downloadSampleImportExcelFile/$1");
$routes->get("getInsurerBranchContacts/(:any)", "LeadsController::getInsurerBranchContacts/$1");
$routes->get("download_import_file/(:any)", "EmployeeController::download_import_file/$1");
$routes->get('log_list', 'EmployeeController::listLogs');
$routes->get('view_log/(:any)', 'EmployeeController::viewLog/$1');
$routes->get('download_log/(:any)', 'EmployeeController::downloadLog/$1');
});
$routes->group("policy_tranction", ["filter" => "authMVC"], function ($routes) {
@ -355,6 +360,7 @@ $routes->group("leads", ["filter" => "authMVC"], function ($routes) {
$routes->get("sendMail", "LeadsController::sendMailWithAttachement");
$routes->get("exportQCRandRFQ/(:any)", "LeadsController::exportQCRandRFQ/$1");
$routes->get("featchLeadDataAndInsertClient/(:any)", "LeadsController::featchLeadDataAndInsertClient/$1");
$routes->get("featchClientPolicyFromLead/(:any)", "LeadsController::featchClientPolicyFromLead/$1");
});
$routes->group("rfq", ["filter" => "authMVC"], function ($routes) {

View File

@ -287,7 +287,7 @@ class ClientController extends AdminController
$headerData['page_name'] = 'Client List';
$data['clientList'] = $this->clientModel->getCreatedByUserName();
$data['client_rm'] = $this->clientRMModel->getAllClientRM();
// $data['lead_data'] = $this->leadsModel->getLeadForInsertClientList();
$data['lead_data'] = $this->leadsModel->getLeadForInsertClientList();
// dd($data);
@ -553,6 +553,7 @@ class ClientController extends AdminController
$editData['client_branch'] = $this->clientBranchModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
$editData['client_relation'] = $this->clientRMModel->where(['client_id' => $id, 'is_active' => 1])->findAll();
$editData['client_branch']['role'] = get_role_id();
$editData['lead_data'] = $this->leadsModel->getLeadForInsertClientList(2, $id);
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($id);
foreach ($clientPoliceData as $key => $value) {

View File

@ -3976,22 +3976,75 @@ class EmpDataServiceController extends BaseController
// print_r($arrayData);
if (!empty($arrayData)) {
// dd($arrayData);
// echo '<pre>';
// print_r($arrayData); die;
$client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first();
$units = json_decode($client_branch_data['units']);
// dd($client_branch_data, $units);
$get_insurer_id_from_client_policy = db_connect()->table('client_policy')
->select('insurer_id')
->where('id', $arrayData['client_policy_id'])
->get()
->getRowArray();
// dd($get_insurer_id_from_client_policy);
$add_one_day = 0;
if (!empty($get_insurer_id_from_client_policy)) {
$get_the_insurer_add_one_for_delete = db_connect()
->table('insurers')
->select('deletion_add_day')
->where('id', $get_insurer_id_from_client_policy['insurer_id'])
->get()
->getRowArray();
// dd($get_the_insurer_add_one_for_delete, $get_the_insurer_add_one_for_delete['deletion_add_day']);
if (!empty($get_the_insurer_add_one_for_delete) && $get_the_insurer_add_one_for_delete['deletion_add_day'] == 1) {
$add_one_day = 1;
}
}
// dd($add_one_day);
foreach($units as $unit) {
// $amount = $this->employeePolicyModel->query("
// SELECT SUM(rata_premimum + gst) AS total_sum
// FROM employee_polices
// JOIN employees ON employees.id = employee_polices.employee_id
// WHERE employees.unit = '$unit'
// AND employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ")
// ")->getRow();
$amount = $this->employeePolicyModel->query("
SELECT SUM(rata_premimum + gst) AS total_sum
FROM employee_polices
JOIN employees ON employees.id = employee_polices.employee_id
WHERE employees.unit = '$unit'
AND employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ")
")->getRow();
SELECT
SUM(ROUND(
((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + '$add_one_day')) / 365) +
(((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + '$add_one_day')) / 365) * 0.18),
2
)) AS total_sum
FROM
employee_polices
JOIN
employees ON employees.id = employee_polices.employee_id
JOIN
emp_endorsement ON emp_endorsement.pk = employee_polices.id
WHERE
employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ")
AND emp_endorsement.pk IN (" . implode(',', $arrayData['employeeIds']) . ")
AND emp_endorsement.field_name = 'date_of_exit'
")->getRow();
// dd(db_connect()->getLastQuery(), $amount);
if($amount){
$insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
@ -4016,6 +4069,7 @@ class EmpDataServiceController extends BaseController
$response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
}
}
$msg = "Deletion Cash Deposite Updated Successfully -- ";
return [$msg];
// print_r($response);
@ -4255,136 +4309,103 @@ class EmpDataServiceController extends BaseController
public function sendMailForDownloadingECard(array $ids, $single_mail = null)
{
$this->myLogger->logme('error', 'sendMailForDownloadingECard - function called');
if (count($ids) > 0) {
$temp_id = $ids[0];
$get_client_info_for_notification = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate,employees.client_id as client_id, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', '1')
->where('employee_polices.id', $ids[0])->first();
$client_data = $this->clientModel->where('id', $get_client_info_for_notification['client_id'])->first();
$notification = $this->notificationModel->where('client_id', $get_client_info_for_notification['client_id'])->where('template_name', 'member_ecard_mail')->first();
if ($notification != null && !empty($notification) && $notification['enabled'] == 1) {
try {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - inside try');
$count = 0;
$counts = 0;
foreach ($ids as $key => $id) {
$get_emp_email_and_other_details = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.relationship, employees.emp_code, employees.email_corporate,employees.client_id as client_id, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', '1')
->where('employee_polices.id', $id)->first();
$this->myLogger->logme('error', 'sendMailForDownloadingECard - emp_policy_id : {id}', ['id' => $id]);
if ($get_emp_email_and_other_details != null && !empty($get_emp_email_and_other_details)) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Send Bulk Mail function inside if condition ',);
$rand_string = $get_emp_email_and_other_details['rand_string'];
$tpa_id = $get_emp_email_and_other_details['tpa_id'];
$params['rand_string'] = $rand_string;
$params['tpa_id'] = $tpa_id;
$params['notification'] = $notification;
$params['client_data'] = $client_data;
$params['notification'] = $notification;
$params['notification'] = $notification;
$params['get_emp_email_and_other_details'] = $get_emp_email_and_other_details;
// $this->myLogger->logme('error', 'sendMailForDownloadingECard - Send Bulk Mail function end ',);
if (isset($get_emp_email_and_other_details['email_corporate']) && !empty($get_emp_email_and_other_details['email_corporate']) && $get_emp_email_and_other_details['relationship'] == 'Self') {
$wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
// print_r($wholeData);die;
$count++;
}
$counts++;
$this->myLogger->logme('error', 'sendMailForDownloadingECard - counts : {data}', ['data' => $counts]);
$this->myLogger->logme('error', 'sendMailForDownloadingECard - count : {data}', ['data' => $count]);
$this->myLogger->logme('error', 'sendMailForDownloadingECard - ids count : {data}', ['data' => count($ids)]);
$this->myLogger->logme('error', 'sendMailForDownloadingECard - whole count : {data}', ['data' => count($wholeData)]);
if ($count == 20 || $counts == count($ids) - 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - ids count : {data}', ['data' => count($ids)]);
if(count($wholeData) > 0){
$this->myLogger->logme('error', 'sendMailForDownloadingECard - create a job to bulk mail',);
$job_details = new Jobs();
$r = Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
$wholeData = [];
$count = 0;
}
}else{
// for view member individual employee send self and self family ecard
if($single_mail){
if(count($wholeData) > 0){
$this->myLogger->logme('error', 'sendMailForDownloadingECard - create a job for single mail to bulk mail function',);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Function called');
$mail_send_return = MailHelper::send_email($wholeData[0]);
$this->myLogger->logme("info", $mail_send_return);
return $mail_send_return;
// $job_details = new Jobs();
// $r = Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
// $wholeData = [];
// $count = 0;
}
}
}
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Send Bulk Mail function end ',);
}
}
return true; // Email(s) sent successfully
} catch (\Exception $e) {
// Log the error
$this->myLogger->logme('error', 'sendMailForDownloadingECard : inside catch');
$this->myLogger->logme('error', 'Error occurred while sending email: ' . $e->getMessage());
return false; // Email(s) sending failed
}
} else {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - the client notification setup not created or not enabled the E-Card Notification');
return false;
}
} else {
if (empty($ids)) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - employee_policy_ids are empty');
return false;
}
$temp_id = $ids[0];
$get_client_info = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.client_id, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', '1')
->where('employee_polices.id', $temp_id)
->first();
if (!$get_client_info) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - No client information found for the first ID');
return false;
}
$client_data = $this->clientModel->where('id', $get_client_info['client_id'])->first();
$notification = $this->notificationModel
->where('client_id', $get_client_info['client_id'])
->where('template_name', 'member_ecard_mail')
->first();
if (empty($notification) || $notification['enabled'] != 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Notification setup not enabled or missing for E-Card Notification');
return false;
}
try {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Inside try block');
$count = 0;
$processedCount = 0;
$wholeData = [];
foreach ($ids as $id) {
$emp_details = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.relationship, employees.emp_code, employees.email_corporate, employees.client_id, employees.name, employee_polices.rand_string, employee_polices.tpa_id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employees.emp_status', 'active')
->where('employees.is_active', '1')
->where('employee_polices.status', 'active')
->where('employee_polices.is_active', '1')
->where('employee_polices.id', $id)
->first();
if ($emp_details) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Processing employee_policy_id: {id}', ['id' => $id]);
if (!empty($emp_details['email_corporate']) && $emp_details['relationship'] === 'Self') {
$params = [
'rand_string' => $emp_details['rand_string'],
'tpa_id' => $emp_details['tpa_id'],
'notification' => $notification,
'client_data' => $client_data,
'get_emp_email_and_other_details' => $emp_details,
];
$wholeData[] = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
$count++;
}
$processedCount++;
// Send batch emails or handle single email
if ($count == 20 || $processedCount == count($ids)) {
if (!empty($wholeData)) {
if ($single_mail == 1) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Sending single mail');
$mail_result = MailHelper::send_email($wholeData[0]);
$this->myLogger->logme('info', 'sendMailForDownloadingECard - Single mail result: {result}', ['result' => $mail_result]);
return $mail_result;
} else {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Creating a job for bulk mail');
Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $wholeData]);
$wholeData = [];
$count = 0;
}
}
}
}
}
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Email processing completed');
return true;
} catch (\Exception $e) {
$this->myLogger->logme('error', 'sendMailForDownloadingECard - Exception occurred: {message}', ['message' => $e->getMessage()]);
return false;
}
}
public function readExcelFileToArray($path)
{

View File

@ -1074,6 +1074,7 @@ class EmployeeController extends AdminController
// Step 1: Attempt to fetch employee code and client policy ID
$this->myLogger->logme('error', 'Fetching employee code and client policy ID.');
$get_emp_code_and_client_policy_id = $this->employeePolicyModel
->select('employee_polices.client_policy_id, employees.emp_code, tpa.short_name,employees.client_id')
->join('client_policy', 'client_policy.id = employee_polices.client_policy_id')
@ -1086,6 +1087,10 @@ class EmployeeController extends AdminController
->where('employee_polices.is_active', '1')
->where('employee_polices.rand_string', $rand_string)
->first();
// dd($this->employeePolicyModel->getLastQuery());
// dd($rand_string, $get_emp_code_and_client_policy_id);
if ($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == "") {
$this->myLogger->logme('error', 'Member not found in this rand_string: ' . $rand_string);
@ -1222,7 +1227,8 @@ class EmployeeController extends AdminController
// $file['action'] = 'si_enhancement';
// $result = [];
// !dd($file);
if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'enrollment') {
if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'enrollment' || $file['action'] == 'missed_inception') {
if($file['action'] == 'enrollment'){
$result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['draft','enrolled'], policy_status: ['draft','enrolled']);
@ -1442,9 +1448,9 @@ class EmployeeController extends AdminController
// array_pop($excel_data);
// }
if($event_type == 'deletion'){
array_pop($excel_data);
}
// if($event_type == 'deletion'){
// array_pop($excel_data);
// }
$finalArray = [];
foreach ($error_data as $key => $values) {
@ -1785,20 +1791,37 @@ class EmployeeController extends AdminController
public function checkDeletionGetDataFunction()
{
$batch_data = [
'client_id' => 77,
'client_policy_id' => 203,
'client_branch_id' => 53,
'insurer_or_tpa' => 'tpa',
];
// $batch_data = [
// 'client_id' => 77,
// 'client_policy_id' => 203,
// 'client_branch_id' => 53,
// 'insurer_or_tpa' => 'tpa',
// ];
$result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data);
// $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data);
// print_rr($result); die;
//-------------------------------------------------------------------------------------------------------------
// $ids = [
// 'employeeIds' => [20252, 20258, 20277, 20282, 20196, 20237, 20314, 20325, 20356],
// 'client_id' => 17,
// 'client_policy_id' => 30,
// 'client_branch_id' => 18,
// 'cd_ac_no' => $CD_Account_Number['cd_ac_no'] ?? null,
// 'endorsement_no' => $endorsement_id ?? null,
// 'count' => 9,
// // 'event_name' => $file['event_type'],
// // 'policy_name' => $policy_name['policy_name'],
// // 'user_id' => $user_id,
// ];
// $empDataServiceController = new EmpDataServiceController();
// $result = $empDataServiceController->cashDepositCalculationForDeletion($ids);
print_rr($result); die;
}
// ----------------------------------------------------------------------------------------------------------
// ---------- DOWNLOAD IMPORT BATCH FILE AND SAMPLE FILE ------------------------------------------------------------------------------------------------
public function downloadSampleImportExcelFile($actionType = null)
{
@ -1834,4 +1857,94 @@ class EmployeeController extends AdminController
echo view('errors/html/production');
}
}
public function download_import_file($file_id)
{
// $actionType = $this->request->getGet();
$file_data = $this->batchFileModel->where('id', $file_id)->first();
$fileName = $file_data['file_name'];
$filePath = WRITEPATH . '/uploads/import_excel/' . $fileName;
try {
// Check if the file exists
if (file_exists($filePath)) {
// Set the appropriate MIME type
$mimeType = mime_content_type($filePath);
// Send the file to the client for download
return $this->response->download($filePath, null, $mimeType);
} else {
$data['message'] = 'The Physical File Not Found';
echo view('errors/404', $data);
}
} catch (\Exception $e) {
// Handle any exceptions
$errorMessage = $e->getMessage();
$this->myLogger->logme('error', $errorMessage);
// You can return an error response here
echo $errorMessage;
}
}
//--------- LOG FILE VIEW AND DOWNLOAD ---------------------------------------------------------------------------------------------
public function listLogs()
{
$logPath = WRITEPATH . 'logs/';
$logs = [];
// Check if the log directory exists
if (is_dir($logPath)) {
$files = array_diff(scandir($logPath), ['.', '..']); // Exclude '.' and '..'
$files = array_reverse($files);
foreach ($files as $file) {
if (is_file($logPath . $file)) {
$logs[] = $file; // Add log files to the list
}
}
}
$data['logs'] = $logs;
$data['server_details'] = get_server_details();
// Pass log files to the view
return $this->loadLayout('log_view', $data);
}
public function downloadLog($fileName)
{
$logPath = WRITEPATH . 'logs/' . $fileName;
// Check if the requested file exists
if (file_exists($logPath)) {
return $this->response->download($logPath, null)->setFileName($fileName);
}
// Redirect back with an error if file doesn't exist
return redirect()->back()->with('error', 'Log file not found.');
}
public function viewLog($fileName)
{
$logPath = WRITEPATH . 'logs/' . $fileName;
if (file_exists($logPath)) {
$content = file_get_contents($logPath);
$data['fileName'] = $fileName;
$data['content'] = $content;
$data['server_details'] = get_server_details();
return $this->loadLayout('log_content_view', $data);
}
return redirect()->back()->with('error', 'Log file not found.');
}
}

File diff suppressed because it is too large Load Diff

View File

@ -173,7 +173,7 @@ class MasterController extends AdminController
$editData['policy_type'] = $this->policyTypeModel->whereIn('id', [1,2,6,7])->findAll();
$editData['events'] = ['inception' => 'Inception', 'addition' => 'Addition', 'dependent_addition' => 'Dependent Addition', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement', 'all' => 'All'];
$editData['events'] = ['inception' => 'Inception', 'missed_inception' => 'Missed Inception', 'addition' => 'Addition', 'dependent_addition' => 'Dependent Addition', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement', 'all' => 'All'];
$editData['action'] = ['import' => 'Import', 'export' => 'Export'];
$editData['db_column_name'] = [

View File

@ -106,7 +106,9 @@ class MailHelper
//check CC mail
if (isset($params['cc'])) {
$cc = $params['cc'];
$cc = explode(',', $cc);
if(!is_array($cc)){
$cc = explode(',', $cc);
}
}else{
$cc = [];
}

View File

@ -151,6 +151,11 @@ class sendMailNotification
$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);
@ -258,6 +263,7 @@ class sendMailNotification
$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']));

View File

@ -474,4 +474,30 @@ if (!function_exists('print_rr')) {
print_r($data);
echo "</pre>";
}
}
}
if (!function_exists('get_server_details')) {
/**
* Get the hostname and server name.
*
* @return array
*/
function get_server_details(): array
{
$hostname = gethostname(); // Get the hostname of the server
$serverName = $_SERVER['SERVER_NAME'] ?? 'Unknown'; // Get the server name
return [
'hostname' => $hostname,
'server_name' => $serverName,
];
}
}
if (!function_exists('isJsonString')) {
function isJsonString($input)
{
json_decode($input); // Decode the string
return (json_last_error() === JSON_ERROR_NONE); // Check if the last JSON error is "no error"
}
}

View File

@ -75,11 +75,11 @@ class EmployeePolicyModel extends Model
return $data;
}
// ----------------------------------------------------------------------------------------------------------
public function getEmployeePolicy($client_id = 0, $policy_id=0, $status=[], $branch_id=0, $emp_code="", $emp_name="")
{
// ----------------------------------------------------------------------------------------------------------
public function getEmployeePolicy($client_id = 0, $policy_id = 0, $status = [], $branch_id = 0, $emp_code = "", $emp_name = "")
{
// dd($status);
$result = $this->select([
'employee_polices.*',
'policy_type.policy_type as policy_name',
@ -91,7 +91,7 @@ class EmployeePolicyModel extends Model
'tpab.branch_code as tpa_branch_code',
'cm.client_name',
'cm.short_name as client_short_name',
'emp.id as employee_primary_id',
// 'emp.id as employee_primary_id',
'emp.relationship',
'emp.relationship_code',
'emp.change_event',
@ -112,27 +112,27 @@ class EmployeePolicyModel extends Model
'client_branch.branch_code as client_branch_code',
'cp.policy_no',
])
->join('employees emp', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id', 'left') //pm - policy master
->join('policy_type', 'policy_type.id = cp.policy_type_id')
->join('insurers im', 'cp.insurer_id = im.id') //im - insurer master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurer branch
->join('tpa tpam', 'cp.tpa_id = tpam.id', 'left') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id', 'left') //tpab - tpa branch
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->join('client_branch', 'emp.client_branch_id = client_branch.id') //cm - client master
->orderBy('emp.emp_code', 'ASC')
->orderBy('employee_polices.employee_id', 'ASC');
->join('employees emp', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id', 'left') //pm - policy master
->join('policy_type', 'policy_type.id = cp.policy_type_id')
->join('insurers im', 'cp.insurer_id = im.id') //im - insurer master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurer branch
->join('tpa tpam', 'cp.tpa_id = tpam.id', 'left') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id', 'left') //tpab - tpa branch
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->join('client_branch', 'emp.client_branch_id = client_branch.id') //cm - client master
->orderBy('emp.emp_code', 'ASC')
->orderBy('employee_polices.employee_id', 'ASC');
// Conditionally add where clauses
if ($client_id !=0 && !empty($client_id)) {
if ($client_id != 0 && !empty($client_id)) {
$result->where('emp.client_id', $client_id);
}
if ($branch_id !=0 && !empty($branch_id)) {
if ($branch_id != 0 && !empty($branch_id)) {
$result->where('emp.client_branch_id', $branch_id);
}
if ($policy_id !=0 && !empty($policy_id)) {
if ($policy_id != 0 && !empty($policy_id)) {
$result->where('employee_polices.client_policy_id', $policy_id);
}
@ -141,22 +141,20 @@ class EmployeePolicyModel extends Model
$result->where('employee_polices.status !=', 'expired');
if (in_array("active", $status)) {
$result->where('employee_polices.tpa_id IS NOT NULL');
$result->where('employee_polices.uhid IS NOT NULL');
$result->whereIn('employee_polices.status', $status);
} elseif (in_array("pending", $status)) {
$result->where('employee_polices.tpa_id IS NULL');
$result->where('employee_polices.uhid IS NULL');
$result->whereIn('employee_polices.status', array_merge($status, ['active']));
} else {
$result->whereIn('employee_polices.status', $status);
}
// if($status == 'active'){
// $result->where('employee_polices.tpa_id IS NOT NULL');
// $result->where('employee_polices.uhid IS NOT NULL');
@ -174,13 +172,13 @@ class EmployeePolicyModel extends Model
if (!empty($emp_name)) {
$result->like('emp.name', $emp_name);
}
// Always check these conditions
$result->where('employee_polices.is_active', 1)
->where('emp.is_active', 1);
->where('emp.is_active', 1);
return $result->findAll();
}
}
public function getEmployeePolicyForEcard($policy_id = 0)
{
@ -575,6 +573,12 @@ class EmployeePolicyModel extends Model
}
}
$status_condition = "{$insurer_or_tpa}" === 'tpa'
? "employee_polices.status = 'inactive' AND employees.emp_status = 'inactive'"
: "employee_polices.status = 'active' AND employees.emp_status = 'active'";
$endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NOT NULL OR a.endorsement_id != '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')";
$query = $this->db->query("
SELECT DISTINCT
a.id as endorsement_primarykey,
@ -659,24 +663,23 @@ class EmployeePolicyModel extends Model
WHERE employee_polices.client_policy_id = {$client_policy_id}
AND employees.client_branch_id = {$client_branch_id}
AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
$endorsement_condition
AND a.actions = 'd'
AND a.status != 'truncated'
AND employee_polices.is_active = 1
AND employee_polices.status = 'active'
AND employees.is_active = 1
AND employees.emp_status = 'active'
AND $status_condition
group by group_key
");
$result = $query->getResult();
// dd($this->db->getLastQuery(), $result);
return $result;
}
public function fetchEmpEndorsementData($fetch_data)
{
// dd($fetch_data);

View File

@ -43,6 +43,7 @@ class LeadsModel extends Model
'proposed_insurer_branch_id',
'proposed_tpa_id',
'proposed_tpa_branch_id',
'proposel_data',
'status',
'notes',
'created_at',
@ -119,12 +120,25 @@ class LeadsModel extends Model
}
public function getLeadForInsertClientList()
public function getLeadForInsertClientList($type = null, $client_id = null)
{
return $this
$query = $this->db->table('leads')
->select('leads.*, user_profiles.first_name as user_name')
->join('user_profiles', 'leads.created_by = user_profiles.id')
->where('leads.is_active', 1)
->where('leads.status', 'won')
->findAll();
->where("leads.proposel_data IS NOT NULL AND leads.proposel_data <> ''");
if ($type) {
$query->where('leads.lead_type', $type);
}
if ($client_id) {
$query->where('leads.client_id', $client_id);
}
$result = $query->get()->getResultArray();
return $result;
}

View File

@ -26,27 +26,35 @@ class LevelContactModel extends Model
];
public function getContectForRFQ(){
$result = $this
->select('
level_contacts.id,
insurers.short_name as insurer_name,
insurer_branch.branch_code,
level_contacts.name as contect_person_name,
level_contacts.email as contect_person_email,
')
->join('insurer_branch', 'level_contacts.ref_id = insurer_branch.id')
->join('insurers', 'insurer_branch.insurer_id = insurers.id')
->where('level_contacts.contact_type', 'insurer')
->where('level_contacts.is_active', 1)
->where('insurer_branch.is_active', 1)
->where('insurers.is_active', 1)
->findAll();
public function getContactForRFQ($insurer_id = null, $insurer_branch_id = null)
{
$query =
$this->db->table('level_contacts')
->select('
level_contacts.id,
insurers.short_name as insurer_name,
insurer_branch.branch_code,
level_contacts.name as contact_person_name,
level_contacts.email as contact_person_email
')
->join('insurer_branch', 'level_contacts.ref_id = insurer_branch.id')
->join('insurers', 'insurer_branch.insurer_id = insurers.id')
->where('level_contacts.contact_type', 'insurer')
->where('level_contacts.is_active', 1)
->where('insurer_branch.is_active', 1)
->where('insurers.is_active', 1);
if ($insurer_branch_id) {
$query->where('insurer_branch.id', $insurer_branch_id);
}
if ($insurer_id) {
$query->where('insurer_branch.insurer_id', $insurer_id);
}
$result = $query->get()->getResultArray();
return $result;
}
}

View File

@ -57,4 +57,29 @@ class RFQModel extends Model
return $data;
}
public function getRFQTableDataWithLeadIDAndType($lead_id, $type){
return $this->select('
leads.client_name,
leads.client_short_name,
insurers.name as insurer_name,
insurer_branch.branch_name as insurer_branch_name,
tpa.name as tpa_name,
tpa_branch.branch_name as tpa_branch_name,
policy_type.policy_type,
rfq.json
')
->join('leads', 'rfq.lead_id = leads.id')
->join('policy_type', 'leads.policy_type_id = policy_type.id')
->join('insurers', 'leads.insurer_id = insurers.id', 'left')
->join('insurer_branch', 'leads.insurer_branch_id = insurer_branch.id', 'left')
->join('tpa', 'leads.tpa_id = tpa.id', 'left')
->join('tpa_branch', 'leads.tpa_branch_id = tpa_branch.id', 'left')
->where('rfq.lead_id', $lead_id)
->where('rfq.type', $type)
->where('rfq.is_active', 1)
->first();
}
}

View File

@ -28,6 +28,8 @@ class TPABranchModel extends Model
{
$query = $this->select('tpa_branch.*, T.short_name as tpa_short_name, T.name as tpa_name')
->join('tpa T', 'tpa_branch.tpa_id = T.id', 'left')
->where('T.is_active', 1)
->where('tpa_branch.is_active', 1)
->find();
return $query;
}

View File

@ -124,5 +124,15 @@ class UserModel extends Model
}
}
public function getUserListForRFQ(){
return $this->db->table('user_profiles')
->select('user_profiles.*')
->select('roles.role as user_role')
->join('roles', 'roles.id = user_profiles.role')
->get()
->getResultArray();
}
}
?>

View File

@ -71,36 +71,73 @@
</td>
<td>
<?php if ($file['status'] == 'failed') { ?>
<?php echo $file['status']; ?> <a
href="<?= base_url('/util/export-import-error-list/') . $file['id'] ?>"
<?php echo $file['status']; ?>
<a href="<?= base_url('/util/export-import-error-list/') . $file['id'] ?>"
class="fe-alert-circle" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to show the error"></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } else if ($file['status'] == 'partially success') { ?>
<?php echo $file['status']; ?>
<?php if ($file['error_data'] != 0) { ?>
<a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="<?= $file['error_data'] ?>"></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } ?>
<?php } else if ($file['status'] == 'failed-1') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top"
title="<?= $file['event_type'] == 'inception' ? 'The list of employees provided has already been updated with the TPA ID.' : 'The list of employees provided has already been updated with the ENDORSEMENT ID.' ?> "></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } else if ($file['status'] == 'failed-2') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top"
title="<?= $file['event_type'] == 'inception' ? 'The list of employees provided has already been updated with the UHID.' : 'The list of employees provided has already been updated with the ENDORSEMENT ID.' ?>"></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } else if ($file['status'] == 'failed-3') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top"
title="The Excel record count exceeds the DB record count."></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } else if ($file['status'] == 'failed-4') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="Physical File Not Found."></a>
<?php } else if ($file['status'] == 'failed-5') { ?>
failed <a class="fe-alert-circle" style="color: #000;" data-toggle="tooltip"
data-placement="top" title="Wrong File Uploaded"></a>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } else { ?>
<?php echo $file['status']; ?>
&nbsp;
<a href="<?= base_url('/util/download_import_file/') . $file['id'] ?>"
class="fa fa-download" style="color: #000;" aria-hidden="true" target="_blank"
data-toggle="tooltip" data-placement="top" title="Click to Download"></a>
<?php } ?>
</td>

View File

@ -100,7 +100,7 @@ table.dataTable thead th {
<option value="">Select Lead</option>
<?php if(isset($lead_data)) { ?>
<?php foreach ($lead_data as $value) { ?>
<option value="<?= $value['id']?>"><?= $value['client_name'] ?></option>
<option value="<?= $value['id']?>"><?= $value['client_name'] ?> - <?= $value['branch_name'] ?> - <?= $value['user_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
@ -275,7 +275,7 @@ function featchClient(){
$('.loader-mask').delay(350).fadeOut('slow');
if(res.status == true){
let client_url = '<?= base_url('client/list/') ?>'+res.client_id;
let client_url = '<?= base_url('client/list/') ?>' + res.client_id + '?client_policy_id=' + res.client_policy_id+'#police-tab';
toastr.success(res.message, 'SUCCESS')
window.location.href = client_url
}else{
@ -294,4 +294,5 @@ function featchClient(){
}
});
}
</script>

View File

@ -2,7 +2,8 @@
<div class="row float-right" style="padding-bottom: 10px; position: relative;right: 13px;">
<button type="button" id="BtnAdd" class="btn btn-primary waves-effect waves-light btnAdd btn-sm"><span class="fa fa-plus-square" aria-hidden="true" style="padding: 5px 10px;"></span>Add Policy</button>
<button type="button" id="BtnAdd" class="btn btn-primary waves-effect waves-light btnAdd btn-sm" style="position: relative;right: 10px;"><span class="fa fa-plus-square" aria-hidden="true" style="padding: 5px 10px;"></span>Add Policy</button>
<button type="button" id="BtnAddSuccess" class="btn btn-success waves-effect waves-light BtnAddSuccess btn-sm" onclick="showModal()"><span class="fa fa-plus-square" aria-hidden="true" style="padding: 5px 10px;"></span>Add Policy From Lead</button>
</div>
<div class="table-responsive" id="table_list">
@ -193,6 +194,36 @@
<?php include('policy_gpa_terms.php'); ?>
<?php include('other_policy_terms.php'); ?>
<!-- Center modal content -->
<div class="modal fade" id="lead_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="false">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myCenterModalLabel">Lead List</h4>
<button type="button" id="close_btn" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<div class="form-group col-md-12">
<label for="lead_id"> Lead List <span class="text-danger">*</span></label>
<select class="form-control" id="lead_id" name="lead_id" required>
<option value="">Select Lead</option>
<?php if(isset($lead_data)) { ?>
<?php foreach ($lead_data as $value) { ?>
<option value="<?= $value['id']?>" data-clientid="<?= $value['client_id']?>", data-branchid="<?= $value['client_branch_id']?>"><?= $value['client_name'] ?> - <?= $value['branch_name'] ?> - <?= $value['user_name'] ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="form-group text-right m-b-0" id="hide_smbt_btn">
<button type="submit" class="btn btn-primary" onclick="featchClient()">Featch Client</button>
</div>
</div>
</div><!-- /.modal-content -->
</div>
</div><!-- /.modal -->
<script>
$('#inception_type').change(function () {
@ -394,6 +425,7 @@
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('.BtnAddSuccess').hide();
$('#insurer').val('').change();
$('#tpa').val('').change();
$('#policy_no').val('').change();
@ -426,6 +458,7 @@
$('#table_list').show();
$('.btnBack').hide();
$('.btnAdd').show();
$('.BtnAddSuccess').show();
$('#insurer').val('').change();
$('#tpa').val('').change();
$('#policy_no').val('').change();
@ -515,6 +548,7 @@
$('#table_list').show();
$('.btnBack').hide();
$('.btnAdd').show();
$('.BtnAddSuccess').show();
var message = (policy_PrimaryKey === '') ?
'Policy Created successfully' : 'Policy Updated Successfully';
toastr.success(message, 'Success');
@ -695,7 +729,6 @@
// get the client policy data for edit
$('body').on('click', '.btnPolicyEdit', function() {
var policy_form_action = '';
var policy_id = $(this).attr('data-id');
@ -730,6 +763,7 @@
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('.BtnAddSuccess').hide();
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id).change();
var tpaValue = '';
@ -1724,5 +1758,258 @@
});
})
$(document).ready(function () {
// Check if the URL contains a hash
const hash = window.location.hash;
// If hash is '#police-tab', trigger a click on the tab
if (hash === '#police-tab') {
$(`a[href="${hash}"]`).click();
// Get the `client_policy_id` from the URL
const urlParams = new URLSearchParams(window.location.search);
const clientPolicyId = urlParams.get('client_policy_id');
if (clientPolicyId) {
// Call your function with the `client_policy_id`
setTimeout(function() {
getClientPolicyDataForEdit(clientPolicyId);
}, 3000);
}
}
});
function getClientPolicyDataForEdit(client_policy_id){
var policy_form_action = '';
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
fetchClientBranch()
$.ajax({
url: '<?= base_url("client/policy/list/") ?>' + client_policy_id,
type: "GET",
dataType: 'json',
success: function(res) {
console.log('client_policy_res', res);
var gst = (res.data.gst == 0.00) ? 18 : res.data.gst;
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1100);
$('#policy_form_action').val('<?= base_url("client/policy/edit"); ?>');
if (res.status === false) {
toastr.error(res.message);
return;
}
$('#add_form').show();
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('.BtnAddSuccess').hide();
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id).change();
var tpaValue = '';
if (res.data.tpa_branch_id && res.data.tpa_id) {
tpaValue = res.data.tpa_branch_id + '-' + res.data.tpa_id;
}
$('#tpa').val(tpaValue).change();
$('#policy_type').val(res.data.policy_type_id).change();
$('#base_policy').val(res.data.base_policy);
$('#policy_type_id').val(res.data.policy_type_id);
$('#policy_PrimaryKey').val(res.data.id);
$('#insurer_policy_id').val(res.data.policy_id);
$('#policy_no').val(res.data.policy_no);
$('#start_date').val(rearrangeDateFormat(res.data.policy_start_date));
$('#open_date').val(rearrangeDateFormat(res.data.open_date));
$('#end_date').val(rearrangeDateFormat(res.data.policy_end_date));
$('#close_date').val(rearrangeDateFormat(res.data.close_date));
$('#reminder_date').val(rearrangeDateFormat(res.data.reminder_date));
$('#disclaimer').val(res.data.disclaimer);
$('#gst_no').val(gst);
$('#policy_status').val(checkDateStatus(res.data.policy_end_date));
$('#policy_status_field').show();
if (res.data.inception_type == 2) {
$('#inception_type').prop('checked', true);
$('#open_date').parent().show();
$('#close_date').parent().show();
$('#reminder_date').parent().show();
$('.dateofdata').attr('required', true);
} else {
$('#inception_type').prop('checked', false);
$('#open_date').parent().hide();
$('#close_date').parent().hide();
$('#reminder_date').parent().hide();
$('.dateofdata').attr('required', false);
}
if (res.data.enrolment_visibility == 1) {
$('#policy_visibility').prop('checked', true);
} else {
$('#policy_visibility').prop('checked', false);
}
if (res.data.policy_type_id == '4' || res.data.policy_type_id == '5') {
$('#base_policy_id').show();
$('#base_policy').prop('required', true);
$('#first').show();
$('#second').show();
$('#third').show();
} else if (res.data.policy_type_id == '0') {
$('#first').hide();
$('#second').hide();
$('#third').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
} else if (res.data.policy_type_id == '1' || res.data.policy_type_id == '2' || res.data.policy_type_id == '6' || res.data.policy_type_id == '7') {
$('#first').show();
$('#second').show();
$('#third').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}else if(res.data.policy_type_id == '3'){
$('#first').show();
$('#second').show();
$('#third').show();
$('#base_policy_id').show();
$('#base_policy').prop('required', false);
$('#base_danger').hide();
}
if (res.data.is_addon == 2 || res.data.is_addon == 3) {
$("#insurer").next(".select2-container").css({
'pointer-events': 'none',
});
$('#select2-insurer-container').css({
'background-color': '#ebebe0',
});
$("#tpa").next(".select2-container").css({
'pointer-events': 'none',
});
$('#select2-tpa-container').css({
'background-color': '#ebebe0',
});
} else {
$("#insurer").next(".select2-container").css({
'pointer-events': 'auto',
});
$('#select2-insurer-container').css({
'background-color': 'transparent',
});
$("#tpa").next(".select2-container").css({
'pointer-events': 'auto',
});
$('#select2-tpa-container').css({
'background-color': 'transparent',
});
}
if (res.data.policy_type_id == '1' || res.data.policy_type_id == '6' || res.data.policy_type_id == '7') {
$('#tpa').prop('required', false);
$('#tpa_danger').hide()
} else {
$('#tpa').prop('required', true);
$('#tpa_danger').show()
}
setTimeout(() => {
$('#client_branch').val(res.data.client_branch_id).select2();
}, 1000);
setTimeout(function(){
appendCDACNO(res.cd_data, res.data.cd_ac_no) // append and select the current CD Account Number
appendBasePolicyList(res.client_policy_list, res.data.base_policy, res.data.client_branch_id); // append and select the Base palicy
}, 2000)
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
//console.log('Something Wrong!', 'warning');
}, 1000);
}
});
}
function showModal(){
var myModal = new bootstrap.Modal(document.getElementById('lead_modal'));
myModal.show();
}
function featchClient(){
let lead_id = $('#lead_id').val();
let client_id = $('#lead_id option:selected').data('clientid');
let branch_id = $('#lead_id option:selected').data('branchid');
console.log('lead_id : ', lead_id)
let url = '<?= base_url('leads/featchClientPolicyFromLead/') ?>' + client_id + '/' + branch_id + '/' + lead_id
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if(res.status == true){
let client_url = '<?= base_url('client/list/') ?>' + res.client_id + '?client_policy_id=' + res.client_policy_id+'#police-tab';
toastr.success(res.message, 'SUCCESS')
window.location.href = client_url;
}else{
toastr.success(res.message, 'WARNING');
}
$('.close').click()
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('.close').click()
}
});
}
</script>

View File

@ -445,35 +445,47 @@
function send_mail_for_individual_employee_ecard(id){
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
Swal.fire({
title: "Do you want to send Ecard Mail?",
showDenyButton: true,
showCancelButton: false,
confirmButtonText: "Yes,Send",
denyButtonText: "Don't Send"
}).then((result) => {
$.ajax({
if (result.isConfirmed) {
url: '<?php echo base_url('util/send_mail_for_individual_employee_ecard/');?>'+id,
type: "GET",
dataType: 'json',
success: function (res) {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
console.log('send_mail_for_individual_employee_ecard response', res)
$.ajax({
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
url: '<?php echo base_url('util/send_mail_for_individual_employee_ecard/');?>'+id,
type: "GET",
dataType: 'json',
success: function (res) {
if(res.status == true){
toastr.success(res.message, 'SUCCESS');
}else{
toastr.error(res.message, 'ERROR');
}
},
error: function (xhr, status, error) {
console.log('send_mail_for_individual_employee_ecard response', res)
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.error(xhr.responseText);
console.error(status, error);
}
if(res.status == true){
toastr.success(res.message, 'SUCCESS');
}else{
toastr.error(res.message, 'ERROR');
}
},
error: function (xhr, status, error) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.error(xhr.responseText);
console.error(status, error);
}
});
}
});
}

View File

@ -64,7 +64,7 @@ table.dataTable tbody td {
<?php foreach($status as $key => $value) { ?>
<option value="<?= $key ?>"
<?php
if ((!isset($getData) || count($getData['status']) == 0) && $key == 'active') {
if ((!isset($getData) || count($getData['status']) > 0) && $key == 'active') {
echo 'selected';
}
?>>
@ -417,27 +417,27 @@ document.getElementById('toggleIcon').addEventListener('click', function() {
function sendManualEcard(input)
{
console.log('sendManualEcard function called');
{
console.log('sendManualEcard function called');
var client_id = $('#clients').val()
var client_branch_id = $('#branch_id').val()
var policy_id = $('#policies').val()
var client_id = $('#clients').val()
var client_branch_id = $('#branch_id').val()
var policy_id = $('#policies').val()
console.log('input', input);
console.log('client_id', client_id);
console.log('client_branch_id', client_branch_id);
console.log('input', input);
console.log('client_id', client_id);
console.log('client_branch_id', client_branch_id);
if(client_id == 0 || client_branch_id == 0 || policy_id == 0)
{
Swal.fire({
title: "warning!",
text: 'Please select the Client, Client Branch and Policy.',
icon: "warning"
});
if(client_id == 0 || client_branch_id == 0 || policy_id == 0)
{
Swal.fire({
title: "warning!",
text: 'Please select the Client, Client Branch and Policy.',
icon: "warning"
});
return false
}
return false
}
Swal.fire({
title: "Do you want to send Ecard Mail?",
@ -475,9 +475,9 @@ function sendManualEcard(input)
}
});
// Swal.fire("Saved!", "", "success");
}
}
});
}
}
</script>

View File

@ -554,6 +554,7 @@
var policy_value = $('#policy').val()
var event_type_data = $('#event_type_data').val();
var action_type = $('#action_type').val()
var event_type_data = $('#event_type_data').val();
console.log('policy_value', policy_value)
@ -570,6 +571,18 @@
$("#event_type").attr("name", "event_type");
$("#event_type").select2('destroy');
}else if(insurer_or_tpa == 'insurer' && action_type == 'export' && event_type_data == 1){
$("#event_type").attr("multiple", "multiple");
$("#event_type").attr("name", "event_type[]");
$("#event_type").select2();
}else if(insurer_or_tpa == 'insurer' && action_type == 'export' && event_type_data == 0){
$("#event_type").removeAttr("multiple");
$("#event_type").attr("name", "event_type");
$("#event_type").select2('destroy');
}else{
if(policy_value != 0){
$("#event_type").attr("multiple", "multiple");
@ -577,9 +590,10 @@
$("#event_type").select2();
}
}
}) ;
});
$('#action_type').change(function(){
var action_type = $(this).val()
var policy_value = $('#policy').val()
var insurer_or_tpa = $('#insurer_or_tpa').val()
@ -588,6 +602,7 @@
console.log('policy_value', policy_value)
// if(insurer_or_tpa == 'import' || event_type_data == 0){
if(action_type == 'import'){
$("#event_type").removeAttr("multiple");
@ -600,6 +615,18 @@
$("#event_type").attr("name", "event_type");
$("#event_type").select2('destroy');
}else if(action_type == 'export' && insurer_or_tpa == 'insurer' && event_type_data == 1){
$("#event_type").attr("multiple", "multiple");
$("#event_type").attr("name", "event_type[]");
$("#event_type").select2();
}else if(action_type == 'export' && insurer_or_tpa == 'insurer' && event_type_data == 0){
$("#event_type").removeAttr("multiple");
$("#event_type").attr("name", "event_type");
$("#event_type").select2('destroy');
}else{
if(policy_value != 0){
$("#event_type").attr("multiple", "multiple");
@ -607,7 +634,7 @@
$("#event_type").select2();
}
}
})
});
$(document).ready(function(){
@ -624,7 +651,7 @@
}
})
})
});
//------------------------------------------------------------------------------------------------------

View File

@ -418,6 +418,7 @@ function getLeadsDataForEdit(input) {
$('#renewalDiv').show();
$('#freshDiv').hide();
$('.proposed_div').show().find('select, input').attr('required', 'required');
$('#policy_end_date, #policy_start_date, #claim').removeAttr('required');
} else {
$('#renewalDiv').find('select, input').removeAttr('required');
$('#freshDiv').find('select, input').attr('required', 'required');
@ -495,11 +496,14 @@ function getBranchData(input) {
}
}
//Client Policy Data
function getPolicyData(input) {
var client_policy_id = $(input).val();
if (client_policy_id) {
// Client Policy Data
function getPolicyData(client_policy_id, increment_count) {
console.log('client_policy_id', client_policy_id);
console.log('increment_count', increment_count);
if (client_policy_id) {
// Show loader
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
@ -508,46 +512,71 @@ function getPolicyData(input) {
type: "GET",
dataType: 'json',
success: function(res) {
console.log('getPolicyData response:', res);
console.log('getPolicyData response', res);
if (res.status === true && res.data) {
for (let i = 1; i <= increment_count; i++) {
console.log('Updating fields for row:', i);
if (res.status == true) {
$('#gst').val(res.data.gst);
$('#pan').val(res.data.pan);
$('#branch_name').val(res.data.branch_name);
$('#branch_code').val(res.data.branch_code);
$('#contact_person_name').val(res.contact.name);
$('#contact_person_mobile').val(res.contact.mobile);
$('#contact_person_email').val(res.contact.email);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
const insurer = `${res.data.insurer_branch_id}-${res.data.insurer_id}`;
const tpa = `${res.data.tpa_branch_id}-${res.data.tpa_id}`;
// Update fields with response data
$(`#policy_type_id_${i}`).val(res.data.policy_type_id).trigger('change');
$(`#insurer_${i}`).val(insurer).trigger('change');
$(`#tpa_${i}`).val(tpa).trigger('change');
$(`#proposed_insurer_${i}`).val(insurer).trigger('change');
$(`#proposed_tpa_${i}`).val(tpa).trigger('change');
}
} else {
console.warn('Invalid response:', res.message || 'Unknown error');
$('#gst').val('');
$('#pan').val('');
$('#branch_name').val('');
$('#branch_code').val('');
$('#contact_person_name').val('');
$('#contact_person_mobile').val('');
$('#contact_person_email').val('');
console.log(res.message, 'warning');
// Reset fields if response is invalid
for (let i = 1; i <= increment_count; i++) {
$(`#policy_type_id_${i}`).val('').trigger('change');
$(`#insurer_${i}`).val('').trigger('change');
$(`#tpa_${i}`).val('').trigger('change');
$(`#proposed_insurer_${i}`).val('').trigger('change');
$(`#proposed_tpa_${i}`).val('').trigger('change');
}
}
// Hide loader
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
console.error('AJAX Error:', xhr.responseText || error);
// Reset fields on error
for (let i = 1; i <= increment_count; i++) {
$(`#policy_type_id_${i}`).val('').trigger('change');
$(`#insurer_${i}`).val('').trigger('change');
$(`#tpa_${i}`).val('').trigger('change');
$(`#proposed_insurer_${i}`).val('').trigger('change');
$(`#proposed_tpa_${i}`).val('').trigger('change');
}
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
} else {
console.warn('Client policy ID is required.');
// Reset fields if no client policy ID is provided
for (let i = 1; i <= increment_count; i++) {
$(`#policy_type_id_${i}`).val('').trigger('change');
$(`#insurer_${i}`).val('').trigger('change');
$(`#tpa_${i}`).val('').trigger('change');
$(`#proposed_insurer_${i}`).val('').trigger('change');
$(`#proposed_tpa_${i}`).val('').trigger('change');
}
}
}
// Salse team user list data
function selecSalsePerson(salse_person_ids) {
@ -569,7 +598,7 @@ function selecSalsePerson(salse_person_ids) {
var increment = 1;
function addHTMLInput() {
function addHTMLInput(check) {
const container = document.getElementById('dynamic-form-container');
const newRow = document.createElement('div');
@ -598,9 +627,9 @@ function addHTMLInput() {
</select>
</div>
<div class="form-group col-md-3">
<label for="insurer">Insurer <span class="text-danger">*</span></label>
<select class="form-control" id="insurer_${increment}" name="insurer[]" onchange="insurerChange(this, ${increment})" required>
<div class="form-group col-md-3 proposed_div">
<label for="insurer">Insurer <span class="text-danger"></span></label>
<select class="form-control" id="insurer_${increment}" name="insurer[]" onchange="insurerChange(this, ${increment})">
<option value="">Select Insurer</option>
<?php if (isset($insurer)) { ?>
<?php foreach ($insurer as $value) { ?>
@ -612,9 +641,9 @@ function addHTMLInput() {
</select>
</div>
<div class="form-group col-md-3">
<label for="tpa">TPA <span class="text-danger">*</span></label>
<select class="form-control" id="tpa_${increment}" name="tpa[]" onchange="tpaChange(this, ${increment})" required>
<div class="form-group col-md-3 proposed_div">
<label for="tpa">TPA <span class="text-danger"></span></label>
<select class="form-control" id="tpa_${increment}" name="tpa[]" onchange="tpaChange(this, ${increment})">
<option value="">Select TPA</option>
<?php if (isset($tpa)) { ?>
<?php foreach ($tpa as $value) { ?>
@ -631,19 +660,19 @@ function addHTMLInput() {
<input type="text" class="form-control" id="no_of_lives" name="no_of_lives[]" placeholder="Enter Lives" required>
</div>
<div class="form-group col-md-3">
<label for="policy_start_date_${increment}">Date of Commencement <span class="text-danger">*</span></label>
<input type="text" class="form-control policy_start_date" id="policy_start_date_${increment}" name="policy_start_date[]" placeholder="Enter DOC" required>
<div class="form-group col-md-3 proposed_div">
<label for="policy_start_date_${increment}">Date of Commencement <span class="text-danger"></span></label>
<input type="text" class="form-control policy_start_date" id="policy_start_date_${increment}" name="policy_start_date[]" placeholder="Enter DOC">
</div>
<div class="form-group col-md-3 proposed_div">
<label for="policy_end_date_${increment}">Date of Expiry <span class="text-danger"></span></label>
<input type="text" class="form-control policy_end_date" id="policy_end_date_${increment}" name="policy_end_date[]" placeholder="Enter DOE">
</div>
<div class="form-group col-md-3">
<label for="policy_end_date_${increment}">Date of Expiry <span class="text-danger">*</span></label>
<input type="text" class="form-control policy_end_date" id="policy_end_date_${increment}" name="policy_end_date[]" placeholder="Enter DOE" required>
</div>
<div class="form-group col-md-3">
<label for="claims">Claims <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="claims" name="claims[]" placeholder="Enter Claims" required>
<label for="claims">Claims <span class="text-danger"></span></label>
<input type="text" class="form-control" id="claims" name="claims[]" placeholder="Enter Claims">
</div>
<div class="form-group col-md-3">
@ -652,8 +681,8 @@ function addHTMLInput() {
</div>
<div class="form-group col-md-3 proposed_div" style="display: none;">
<label for="proposed_insurer">Proposed Insurer <span class="text-danger">*</span></label>
<select class="form-control" id="proposed_insurer_${increment}" name="proposed_insurer[]" required>
<label for="proposed_insurer">Proposed Insurer <span class="text-danger"></span></label>
<select class="form-control" id="proposed_insurer_${increment}" name="proposed_insurer[]">
<option value="">Select Insurer</option>
<?php if (isset($insurer)) { ?>
<?php foreach ($insurer as $value) { ?>
@ -666,8 +695,8 @@ function addHTMLInput() {
</div>
<div class="form-group col-md-3 proposed_div" style="display: none;">
<label for="proposed_tpa">Proposed TPA <span class="text-danger">*</span></label>
<select class="form-control" id="proposed_tpa_${increment}" name="proposed_tpa[]" required>
<label for="proposed_tpa">Proposed TPA <span class="text-danger"></span></label>
<select class="form-control" id="proposed_tpa_${increment}" name="proposed_tpa[]">
<option value="">Select TPA</option>
<?php if (isset($tpa)) { ?>
<?php foreach ($tpa as $value) { ?>
@ -681,7 +710,7 @@ function addHTMLInput() {
<div class="form-group col-md-12 btnDiv" style="position: relative;top: 28px;float: right;text-align: end;">
<a class="btn btn-danger waves-effect waves-light" onclick="removeHTMLInput(this)">x</a>
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput()">+</a>
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput(1)">+</a>
</div>
`;
@ -691,9 +720,11 @@ function addHTMLInput() {
var lead_type = $('#lead_type').val();
if (lead_type == 2) {
$('.proposed_div').show().find('select, input').attr('required', 'required');
// $('.proposed_div').show().find('select, input').attr('required', 'required');
$('.proposed_div').show();
} else {
$('.proposed_div').hide().find('select, input').removeAttr('required');
// $('.proposed_div').hide().find('select, input').removeAttr('required');
$('.proposed_div').hide()
}
// Scroll the newly added select into view and focus on it
@ -724,6 +755,19 @@ function addHTMLInput() {
allowInput: false
});
$('#source_policy_id').on('change', function(){
let client_policy_id = $(this).val();
console.log('client_policy_id', client_policy_id)
getPolicyData(client_policy_id, increment)
})
if(check == 1){
let client_policy_id = $('#source_policy_id').val();
if(client_policy_id){
getPolicyData(client_policy_id, increment)
}
}
increment++; // Increment after adding the input
}
@ -828,6 +872,9 @@ $('#lead_type').change(function() {
$('#freshDiv').find('select, input').removeAttr('required');
$('#renewalDiv').show();
$('.proposed_div').show().find('select, input').attr('required', 'required');
$('#policy_end_date').removeAttr('required');
$('#policy_start_date').removeAttr('required');
$('#claims').removeAttr('required');
$('#freshDiv').hide();
$('#gst').val('');

View File

@ -74,7 +74,7 @@ table.dataTable tbody td {
</thead>
<tbody>
<?php if(isset($lead_data_list) && count($lead_data_list) > 0) { ?>
<?php if(isset($lead_data_list)) { ?>
<?php foreach($lead_data_list as $index => $row){ ?>
<tr>
<td><?php echo $index + 1; ?></td>

View File

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>View Log: <?= esc($fileName) ?></title>
</head>
<body>
<div class="row">
<div class="form-group col-10">
<h3> <?= $server_details['hostname'] . '/' . $server_details['server_name'] . ' - ' ?> Log File: <?= esc($fileName) ?></h3>
</div>
<div class="form-group col-2">
<a href="<?= base_url('util/log_list') ?>" class="btn btn-primary float-md-right">Back to Logs</a>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<pre style="background-color: #f5f5f5; padding: 15px; border: 1px solid #ccc;">
<?= esc($content) ?>
</pre>
</div>
</div>
</div>
</div>
<a href="<?= base_url('util/log_list') ?>">Back to Logs</a>
</body>
</html>

49
app/Views/log_view.php Normal file
View File

@ -0,0 +1,49 @@
<title>Log Files</title>
<style>
.table th,
.table td {
padding: 8px;
}
table.dataTable tbody td {
padding: 4px 4px !important;
}
</style>
<h3> <?= $server_details['hostname'] . '/' . $server_details['server_name'] . ' - ' ?> Log Files</h3>
<?php if (session()->getFlashdata('error')): ?>
<p style="color: red;"><?= session()->getFlashdata('error') ?></p>
<?php endif; ?>
<table class="table table-striped mb-0 nowrap" cellspacing="0" id="tickets-table">
<thead class="bg-light">
<tr>
<th>S.No.</th>
<th>Log File</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php if (!empty($logs)): ?>
<?php foreach ($logs as $index => $log): ?>
<tr>
<td><?= $index + 1 . '.' ?></td>
<td><?= esc($log) ?></td>
<td>
<a href="<?= base_url('util/view_log/' . urlencode($log)) ?>">View</a> |
<a href="<?= base_url('util/download_log/' . urlencode($log)) ?>">Download</a>
</td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="2">No log files found.</td>
</tr>
<?php endif; ?>
</tbody>
</table>

View File

@ -765,10 +765,11 @@
var toolbar = "bold,italic,strikethrough,|,superscript,subscript,|,align,";
const editorConfig = {
buttons: toolbar,
buttons: toolbar.concat(['fontsize']),
fontsize: [8, 10, 12, 14, 16, 18, 20, 22, 24], // Customize font sizes
showPlaceholder: false,
toolbarButtonSize: 'small',
toolbarAdaptive: false,
toolbarButtonSize: 'small',
toolbarAdaptive: false,
saveHeightInStorage: true,
minHeight: 400,
extraButtons: [
@ -959,6 +960,14 @@
formData.push({ name: 'mailContent', value: mailContent });
formData.push({ name: 'client_id', value: $('#general_PrimaryKey').val() });
formData.forEach(function(item) {
if (item.name === 'subject') {
// Clean the subject value by removing unwanted characters
item.value = item.value.replace(/[Â]/g, "").replace(/[^\x20-\x7E]/g, '');
}
});
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var form_action = '<?= base_url("client/notification/create") ?>';

View File

@ -1293,7 +1293,7 @@
var index = $('.modifyclassinput').length;
var appendElement = `<div class="form-group col-md-6 form-group-client-policy-masters removeDom">
<label for="specialconditionlabel" class="special_condition_label[]" style="width: 450px;position: relative;bottom: 6px;">
<input class="form-control" name="special_condition_label[]" id="special_condition_label[]" style="position: relative;right: 15px;">
<input class="form-control" name="special_condition_label[]" id="special_condition_label[]" style="position: relative;right: 5px;">
<span class="specialConditionClose" style="color: red; float: right;position: relative;bottom: 28px;left: 15px;">X</span>
</label>
<input type="text" name="special_condition_input[]" id="special_condition_input[]" class="form-control s special_condition_input[]">

View File

@ -705,7 +705,7 @@
var appendElement = `<div class="form-group col-md-6 form-group-client-policy-masters removeDom">
<label for="specialconditionlabel" class="special_condition_label[]" style="width: 450px;position: relative;bottom: 6px;">
<input class="form-control" name="gpa_special_condition_label[]" id="gpa_special_condition_label[]" style="position: relative;right: 15px;">
<input class="form-control" name="gpa_special_condition_label[]" id="gpa_special_condition_label[]" style="position: relative;right: 5px;">
<span class="specialConditionClose" style="color: red; float: right;position: relative;bottom: 28px;left: 15px;">X</span>
</label>

File diff suppressed because it is too large Load Diff