diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index fb9a1091..c757962c 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -9,6 +9,8 @@ use CodeIgniter\Router\RouteCollection;
$routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']);
+// Reminder Mail Notification
+$routes->get("reminder_mail", "NotificationController::reminder_mail");
// $routes->get('/', 'LoginController::index');
$routes->get('/test', 'Home::index');
@@ -18,6 +20,7 @@ $routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse');
$routes->get('/auth/google', 'LoginController::initiateGoogleOAuth');
$routes->get('/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus');
$routes->get('download-e-card/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1');
+$routes->get('download-kyc-docs/(:segment)', 'ClientController::downloadKYCDocument/$1');
@@ -63,6 +66,11 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) {
$routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
+ $routes->group("notification", ["filter" => "authMVC"], function ($routes) {
+ $routes->post("create", "NotificationController::createNotification");
+ $routes->post("update_enable", "NotificationController::update_enable");
+ $routes->get("getMailTemplateData/(:any)/(:any)", "NotificationController::getMailTemplateData/$1/$2");
+ });
$routes->group("general", ["filter" => "authMVC"], function ($routes) {
$routes->post("create", "ClientController::createClientGeneralInfo");
@@ -219,6 +227,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) {
$routes->get("full-excel-error-file/(:any)", "EmployeeController::downloadFullExcelErrorFile/$1");
$routes->get("id-card", "EmployeeController::viewECard/$1");
$routes->get("preview-card/(:any)", "EmployeeController::previewTemplate/$1");
+ $routes->get("export-import-error-list/(:any)", "EmployeeController::errorListExportImport/$1");
});
$routes->cli('cli/processjob', 'JobWorker::processJob');
@@ -247,6 +256,7 @@ $routes->post("/calculatePremium", "EmployeeRestController::calculatePremium");
+
$routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) {
$routes->get("getEmployeeProfile", "EmployeeRestController::getEmployeeProfile");
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 5449dedb..a6cd25ce 100644
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -30,6 +30,7 @@ use App\Models\PolicyPremium1Model;
use App\Models\PolicyPremium2Model;
use App\Models\EmployeeModel;
use App\Models\EmployeePolicyModel;
+use App\Models\NotificationModel;
@@ -60,6 +61,7 @@ class ClientController extends AdminController
protected $clientDepositModel;
protected $employeeModel;
protected $employeePolicyModel;
+ protected $notificationModel;
public function __construct()
{
@@ -87,6 +89,7 @@ class ClientController extends AdminController
$this->policyPremium2Model = new PolicyPremium2Model();
$this->employeeModel = new EmployeeModel();
$this->employeePolicyModel = new EmployeePolicyModel();
+ $this->notificationModel = new NotificationModel();
@@ -267,17 +270,18 @@ class ClientController extends AdminController
// dd('Hi');
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($id);
// dd($this->clientPolicyModel->getLastQuery());
- // foreach ($clientPoliceData as $key => $value) {
+ foreach ($clientPoliceData as $key => $value) {
- // $clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date));
- // $clientPoliceData[$key]->policy_end_date = date('d-M-Y', strtotime($value->policy_end_date));
- // }
+ $clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date));
+ $clientPoliceData[$key]->policy_end_date = date('d-M-Y', strtotime($value->policy_end_date));
+ }
$editData['client_policy'] = $clientPoliceData;
- // echo "
";
- // dd($clientPoliceData); die;
+ $editData['notification'] =$this->notificationModel->select('template_name,enabled')->where('client_id',$id)->findAll();
+ $editData['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'client_name'];
+
echo view('layout/header', $headerData);
echo view('client_onboarding', $editData);
@@ -587,7 +591,14 @@ class ClientController extends AdminController
$data['insurer_id'] = $insurerId;
$tpaValue = (string) $this->request->getPost('tpa');
- list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
+
+ if ($tpaValue === null || $tpaValue === '') {
+ $tpaBranchId = null;
+ $tpaId = null;
+ } else {
+ list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
+ }
+
$data['client_id'] = $client_id;
$data['tpa_branch_id'] = $tpaBranchId;
@@ -964,6 +975,7 @@ class ClientController extends AdminController
$data = $this->request->getPost();
$insert = true;
} else if ($policy_grid_id == '11') {
+
$premium = $this->request->getPost('11_premium[]');
$sum_insure = $this->request->getPost('11_si[]');
$grade = $this->request->getPost('11_grade[]');
@@ -972,7 +984,7 @@ class ClientController extends AdminController
$data['premium'] = str_replace(',', '', $premium[$i]);
$data['si'] = str_replace(',', '', $sum_insure[$i]);
$data['grade'] = $grade[$i];
- $data['max_si'] = $max_sum_insure[$i];
+ $data['max_si'] = str_replace(',', '', $max_sum_insure[$i]);
$dataa = $this->policyPremium2Model->insert($data);
}
$data = $this->request->getPost();
@@ -1348,6 +1360,13 @@ class ClientController extends AdminController
$data['familytransportationbenefit'] =str_replace(',', '',$this->request->getPost("familytransportationbenefit"));
$data['reasonableandcustomarycharges'] =str_replace(',', '',$this->request->getPost("reasonableandcustomarycharges"));
$data['ayudhtreatmentcover'] =str_replace(',', '',$this->request->getPost("ayudhtreatmentcover"));
+
+ if ($data['ayudhtreatmentcover'] == 1) {
+ $data['ayushTreatmentCoverData'] = str_replace(',', '',$this->request->getPost("ayushTreatmentCoverData"));
+ }else{
+ $data['ayushTreatmentCoverData'] ="";
+ }
+
$data['armdcovered'] =str_replace(',', '',$this->request->getPost("armdcovered"));
$data['suminsuredenhancement'] =str_replace(',', '',$this->request->getPost("suminsuredenhancement"));
$data['automaticsuminsuredreinstatement'] =str_replace(',', '',$this->request->getPost("automaticsuminsuredreinstatement"));
@@ -1363,6 +1382,15 @@ class ClientController extends AdminController
$data['special_condition_label'] = str_replace(',', '',$this->request->getPost("special_condition_label")) ?? [];
$data['special_condition_input'] = str_replace(',', '',$this->request->getPost("special_condition_input")) ?? [];
+ $data['cataract'] =str_replace(',', '',$this->request->getPost("cataract"));
+
+ if ($data['cataract'] == 1) {
+ $data['cataractData'] = str_replace(',', '',$this->request->getPost("cataractData"));
+ }else{
+ $data['cataractData'] ="";
+ }
+
+
$jsonData = json_encode($data);
$dataa = array(
'policy_terms' => $jsonData,
@@ -1656,4 +1684,17 @@ class ClientController extends AdminController
}
+
+
+ public function downloadKYCDocument($file_name)
+ {
+
+ $file = WRITEPATH . 'uploads/client_kyc_documents/' . $file_name; // Example file path
+
+ if (file_exists($file)) {
+ return $this->response->download($file, null)->setFileName($file_name);
+ } else {
+ return "File not found.";
+ }
+ }
}
\ No newline at end of file
diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php
index ccd39f50..1a370981 100644
--- a/app/Controllers/DashboardController.php
+++ b/app/Controllers/DashboardController.php
@@ -22,6 +22,11 @@ class DashboardController extends AdminController
echo view('layout/footer');
}
+ public function dashboardNotifications()
+ {
+ //pull notofications to dashboard especially for file upload cases
+ }
+
}
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index af0710f0..728d81b8 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -9,6 +9,7 @@ use Psr\Log\LoggerInterface;
use App\Helpers\DepositHelper;
use App\Helpers\MailHelper;
+use App\Helpers\sendMailNotification;
use App\Models\EmployeeModel;
@@ -20,10 +21,13 @@ use App\Models\BatchListModel;
use App\Models\BatchFileModel;
use App\Models\EmpEndorsementModel;
use App\Models\ClientDepositModel;
+use App\Models\NotificationModel;
use App\Controllers\Jobs;
+use App\Controllers\JobWorker;
+
+
use PhpOffice\PhpSpreadsheet\Spreadsheet;
-// use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException;
@@ -43,6 +47,7 @@ class EmpDataServiceController extends BaseController
protected $batchFileModel;
protected $empEndorsementModel;
protected $clientDepositModel;
+ protected $notificationModel;
public function __construct()
{
@@ -58,9 +63,10 @@ class EmpDataServiceController extends BaseController
$this->batchFileModel = new BatchFileModel();
$this->empEndorsementModel = new EmpEndorsementModel();
$this->clientDepositModel = new ClientDepositModel();
+ $this->notificationModel = new NotificationModel();
}
-
+
/**
* The below function are Inserts batch files and corresponding batch list entries into the database.
*
@@ -93,6 +99,19 @@ class EmpDataServiceController extends BaseController
}
+ public function insertBatchList($params){
+
+ foreach ($params['batch_list_data'] as $value) {
+
+ $batch_list_data['batch_code'] = $params['batch_code'];
+ $batch_list_data['emp_policy_id'] = $value['primaryKey'];
+ $batch_list_data['created_by'] = get_session_userid();
+ $this->batchListModel->insert($batch_list_data);
+ }
+
+ }
+
+
/**
* Generates an Excel file for Inception_Addititon_DependentAddititon, Correction, SI_Enhancement and Deletion events based on given export data.
*
@@ -107,23 +126,31 @@ class EmpDataServiceController extends BaseController
public function generateExcelForAdditionandInception($export_data)
{
+
+ $return = $this->removeOldExportInfoFromBatchFile($export_data);
+
// Fetch employee data for export from the database
$objects = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($export_data);
-
+
$insurer_id = $this->clientPolicyModel->where('id', $export_data['client_policy_id'])->first();
- $cash_balance = $this->clientDepositModel->where('client_id',$export_data['client_id'] )->where('insurer_id', $insurer_id['insurer_id'])->orderBy('id', 'DESC')->first();
-
-
+ $cash_balance = $this->clientDepositModel->where('client_id', $export_data['client_id'])->where('insurer_id', $insurer_id['insurer_id'])->orderBy('id', 'DESC')->first();
+
+
$totals = 0;
foreach ($objects as $key => $value) {
-
+
$totals += $value->total;
}
- if((int) $cash_balance['balance'] < (int) $totals){
+ if (!empty($cash_balance)) {
- return 0;
+ if ((int) $cash_balance['balance'] < (int) $totals) {
+
+ return 0;
+ }
+ } else {
+ // return 0;
}
@@ -131,6 +158,7 @@ class EmpDataServiceController extends BaseController
$count = count($objects);
$export_data['count'] = $count;
$export_data['amount'] = $totals;
+ $export_data['status'] = 'success';
$this->myLogger->logme('error', 'Inception export data count : {data}', ['data' => $count]);
@@ -177,11 +205,27 @@ class EmpDataServiceController extends BaseController
// If Excel generation is successful
if ($success) {
+
+
// Batch files and list entry
- $return = $this->batchFilesAndBatchListEntry($export_data, $objects);
+ // $return = $this->batchFilesAndBatchListEntry($export_data, $objects);
+
+ $random_number_count = 4;
+ $export_data['batch_code'] = generate_random_string($random_number_count);
+ $export_data['created_by'] = get_session_userid();
+
+ $insert = $this->batchFileModel->insert($export_data);
+ $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
+ $batch_code = $batch_file_batch_code['batch_code'];
+
+ // $this->insertBatchList(['batch_code' => $batch_code, 'batch_list_data' => $objects ]);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'insertBatchList','payload' => ['batch_code' => $batch_code, 'batch_list_data' => $objects ]]);
+
// If batch operation is successful
- if ($return) {
+ if (true) {
// Set headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $export_data['file_name'] . '"');
@@ -195,7 +239,9 @@ class EmpDataServiceController extends BaseController
fclose($tempFile);
return true; // Excel file successfully generated and exported
+
} else {
+
return false; // Batch operation failed
}
}
@@ -289,7 +335,7 @@ class EmpDataServiceController extends BaseController
$ids = [];
$objects = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($export_data);
-
+
$totals = 0;
foreach ($objects as $obj) {
$ids[] = $obj->endorsement_primarykey;
@@ -395,7 +441,7 @@ class EmpDataServiceController extends BaseController
$count = count($objects);
$export_data['count'] = $count;
$export_data['amount'] = $rounded_totals;
-
+
$this->myLogger->logme('error', 'Deletion export data count : {data}', ['data' => $count]);
@@ -490,181 +536,467 @@ class EmpDataServiceController extends BaseController
public function importExcelDataForInception($import_data)
{
- $client_id = $import_data['client_id'];
- $client_policy_id = $import_data['client_policy_id'];
$file = $import_data['file'];
- $data = $this->readExcelToArray($file);
-
- if (!$data) {
-
- return 0;
- }
-
- unset($data[0]);
- array_pop($data);
- $count = count($data);
-
- $missing_id = [];
- $empty_emp_tpa_uh_ids = [];
- $totals = 0;
- foreach ($data as $key => $value) {
-
- try {
-
-
- if ($import_data['insurer_or_tpa'] == 'tpa') {
-
- if ($value[15] === null) {
- $missing_id[] = $key + 1;
- }
- } else if ($import_data['insurer_or_tpa'] == 'insurer') {
-
- if ($value[16] === null) {
- $missing_id[] = $key + 1;
- }
- }
-
- $emp_code = $value[2];
- $name = $value[1];
- $totals += $value[20];
-
- $db = \Config\Database::connect();
-
- // Execute the query
- $query = $db->table('employee_polices');
- $query->select('employee_polices.id');
- $query->join('employees', 'employees.id = employee_polices.employee_id');
- $query->where('employee_polices.client_policy_id', $client_policy_id);
- $query->where('employees.client_id', $client_id);
- $query->where('employees.name', $name);
- $query->where('employees.emp_code', $emp_code);
- if ($import_data['insurer_or_tpa'] == 'tpa') {
-
- $query->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")');
- } else if ($import_data['insurer_or_tpa'] == 'insurer') {
-
- $query->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")');
- }
- $query->where('employee_polices.is_active', 1);
- $query->limit(1);
-
- // Get the result
- $result = $query->get()->getRowArray();
- if (isset($result['id']) && $result['id'] !== null) {
- $empty_emp_tpa_uh_ids[] = $result['id'];
- }
- } catch (\Exception $e) {
-
- return 0;
- }
- }
-
-
- $missing_id_count = count($missing_id);
- $empty_id_count = count($empty_emp_tpa_uh_ids);
-
-
- if ($import_data['insurer_or_tpa'] == 'tpa') {
-
- if ($empty_id_count == 0) {
-
- return 3;
- }
-
- if ($missing_id_count != 0) {
-
- return 2;
- }
- } else if ($import_data['insurer_or_tpa'] == 'insurer') {
-
- if ($empty_id_count == 0) {
-
- return 5;
- }
-
- if ($missing_id_count != 0) {
-
- return 4;
- }
- }
-
- // if ($missing_id_count != $count) {
-
- // return 2;
- // }
-
-
- // if ($empty_emp_tpa_uh_ids != $count) {
-
- // return 3;
- // }
-
-
-
- // dd($empty_emp_tpa_uh_ids);
-
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
$filename = $file->getName();
$this->myLogger->logme('error', 'Inception Import file name : {data}', ['data' => $filename]);
- $import_data['count'] = $count;
+
+ $random_number_count = 4;
+ $import_data['batch_code'] = generate_random_string($random_number_count);
+ $import_data['created_by'] = get_session_userid();
+ $import_data['status'] = 'pending';
$import_data['file_name'] = $filename;
- $import_data['amount'] = $totals;
+ $insert = $this->batchFileModel->insert($import_data);
- $this->insertBatchFileAndBatchListForImportExcel($import_data, $empty_emp_tpa_uh_ids);
-
- // dd($import_data, $empty_emp_tpa_uh_ids);
-
-
- $tpa_id = [];
- $uhid = [];
-
- foreach ($data as $key => $value) {
- $tpa_id[] = $value[15];
- $uhid[] = $value[16];
- }
-
- foreach ($empty_emp_tpa_uh_ids as $key => $id) {
-
- $dataToUpdateTPAID = ['tpa_id' => $tpa_id[$key]];
- $dataToUpdateUHID = ['uhid' => $uhid[$key]];
-
- $this->employeePolicyModel->where('id', $id)
- ->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")')
- ->set($dataToUpdateTPAID)->update();
-
- $this->employeePolicyModel->where('id', $id)
- ->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")')
- ->set($dataToUpdateUHID)->update();
- }
-
-
- if($import_data['insurer_or_tpa'] == 'tpa'){
-
- $policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
- $depositeData = [
- 'employeeIds' => $empty_emp_tpa_uh_ids,
- 'client_id' => $client_id,
- 'client_policy_id' => $client_policy_id,
- 'count' => $count,
- 'event' => $import_data['event_type'],
- 'policy_name' => $policy_name['policy_name'],
- ];
-
- $this->cashDepositCalculationForInception($depositeData);
-
-
- $this->sendMailForDownloadingECard($empty_emp_tpa_uh_ids);
-
- }
+ $file_id['file_id'] = $insert;
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importInceptionFileValidation','payload' => ['file_id' => $insert]]);
return 1;
}
+ public function importInceptionFileValidation($params)
+ {
+
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->where('id', $file_id)->first();
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $batch_code = $file['batch_code'];
+
+
+ $insurer_or_tpa = $file['insurer_or_tpa'];
+ if ($insurer_or_tpa == 'tpa') {
+
+ $id = 'tpa_id';
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ $id = 'uhid';
+ }
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]);
+ array_pop($excel_data);
+
+ $emp_count = count($excel_data);
+
+ $employee_data = $this->employeePolicyModel
+ ->select('
+
+ employee_polices.id as emp_policy_id,
+ employees.name AS emp_name,
+ employees.emp_code AS emp_code,
+ "Has Define" as emp_type,
+ employees.relationship_code AS emp_relationship_code,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employee_polices.pre_existing_alignments,
+ employee_polices.basic_cover_si,
+ employee_polices.date_coverage,
+ TIMESTAMPDIFF(YEAR, employees.dob, CURDATE()) AS emp_age,
+ employees.relationship AS emp_relationship,
+ employees.change_event AS change_event,
+ employee_polices.policy_end_date,
+ employee_polices.days,
+ employee_polices.tpa_id,
+ employee_polices.uhid,
+ employee_polices.premium,
+ employee_polices.rata_premimum,
+ employee_polices.gst,
+ (employee_polices.rata_premimum + employee_polices.gst) AS total
+ ')
+
+ ->join('employees', 'employees.id = employee_polices.employee_id')
+ ->where('employee_polices.client_policy_id', $client_policy_id)
+ ->where('employees.client_id', $client_id)
+ ->where("employee_polices.{$id} IS NULL OR employee_polices.{$id} = ''")
+ ->findAll();
+
+ // echo '';
+ // print_r($employee_data); die;
+
+
+ if ($employee_data == null || empty($employee_data)) {
+
+ if ($insurer_or_tpa == 'tpa') {
+
+ $data = [
+ 'status' => 'failed-1',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ return 3;
+
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ $data = [
+ 'status' => 'failed-2',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ return 5;
+ }
+ }
+
+ $excel_data_count = count($excel_data);
+ $emp_data_count = count($employee_data);
+
+ // dd($excel_data_count, $emp_data_count);
+ $difference = $emp_data_count - $excel_data_count;
+
+ $status = 'in-progress';
+ if ($excel_data_count < $emp_data_count) {
+
+ $status = 'in-progress-partially';
+ $partially_updated_data = 'Expected : ' . $emp_data_count . ', ' . 'Updated : ' . $excel_data_count . ', ' . 'difference : ' . $difference;
+ }
+
+
+ if ($emp_data_count < $excel_data_count) {
+
+ $data = [
+ 'status' => 'failed-3',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ return 6;
+ }
+
+
+ $errors = []; // Initialize an array to store errors
+ $missing_id = [];
+ $batch_list_id = [];
+
+ foreach ($employee_data as $key => $emp_value) {
+
+ $key = $key + 1;
+
+ if(!isset($excel_data[$key])){
+ break;
+ }
+
+ if ($insurer_or_tpa == 'tpa') {
+ if ($excel_data[$key][15] === null) {
+ $missing_id[$key][] = [
+ 'row' => $key,
+ 'column' => 15,
+ ];
+ }
+ } else if ($insurer_or_tpa == 'insurer') {
+ if ($excel_data[$key][16] === null) {
+ $missing_id[$key][] = [
+ 'row' => $key,
+ 'column' => 16,
+ ];
+ }
+ }
+
+
+ if ($emp_value['emp_name'] != $excel_data[$key][1]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 1,
+ 'db_data' => $emp_value['emp_name'],
+ 'excel_data' => $excel_data[$key][1]
+ ];
+ }
+
+ if ($emp_value['emp_code'] != $excel_data[$key][2]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 2,
+ 'db_data' => $emp_value['emp_code'],
+ 'excel_data' => $excel_data[$key][2]
+ ];
+ }
+
+ if ($emp_value['emp_dob'] != $excel_data[$key][5]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 5,
+ 'db_data' => $emp_value['emp_dob'],
+ 'excel_data' => $excel_data[$key][5]
+ ];
+ }
+
+ if ($emp_value['emp_gender'] != $excel_data[$key][6]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 6,
+ 'db_data' => $emp_value['emp_gender'],
+ 'excel_data' => $excel_data[$key][6]
+ ];
+ }
+
+ if ($emp_value['pre_existing_alignments'] != $excel_data[$key][7]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 7,
+ 'db_data' => $emp_value['pre_existing_alignments'],
+ 'excel_data' => $excel_data[$key][7]
+ ];
+ }
+
+ if ($emp_value['basic_cover_si'] != $excel_data[$key][8]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 8,
+ 'db_data' => $emp_value['basic_cover_si'],
+ 'excel_data' => $excel_data[$key][8]
+ ];
+ }
+
+ if ($emp_value['emp_relationship'] != $excel_data[$key][11]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 11,
+ 'db_data' => $emp_value['emp_relationship'],
+ 'excel_data' => $excel_data[$key][11]
+ ];
+ }
+
+ if ($emp_value['policy_end_date'] != $excel_data[$key][13]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 13,
+ 'db_data' => $emp_value['policy_end_date'],
+ 'excel_data' => $excel_data[$key][13]
+ ];
+ }
+
+ if ($emp_value['days'] != $excel_data[$key][14]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 14,
+ 'db_data' => $emp_value['days'],
+ 'excel_data' => $excel_data[$key][14]
+ ];
+ }
+
+ if ($emp_value['premium'] != $excel_data[$key][17]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 17,
+ 'db_data' => $emp_value['premium'],
+ 'excel_data' => $excel_data[$key][17]
+ ];
+ }
+
+ if ($emp_value['rata_premimum'] != $excel_data[$key][18]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 18,
+ 'db_data' => $emp_value['rata_premimum'],
+ 'excel_data' => $excel_data[$key][18]
+ ];
+ }
+
+ if ($emp_value['gst'] != $excel_data[$key][19]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 19,
+ 'db_data' => $emp_value['gst'],
+ 'excel_data' => $excel_data[$key][19]
+ ];
+ }
+
+ if ($insurer_or_tpa == 'tpa') {
+
+ if ($emp_value['uhid'] != $excel_data[$key][16]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 16,
+ 'db_data' => $emp_value['uhid'],
+ 'excel_data' => $excel_data[$key][16]
+ ];
+ }
+
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ if ($emp_value['tpa_id'] != $excel_data[$key][15]) {
+ $errors[$key][] = [
+ 'row' => $key,
+ 'column' => 15,
+ 'db_data' => $emp_value['tpa_id'],
+ 'excel_data' => $excel_data[$key][15]
+ ];
+ }
+ }
+
+
+ $batch_list_id[] = $emp_value['emp_policy_id'];
+ }
+
+
+ $error_count = count($errors);
+ $json_errors = json_encode($errors);
+
+ // echo $json_errors; die;
+
+ $missing_id_count = count($missing_id);
+ $json_missing_id = json_encode($missing_id);
+
+ // dd($error_count, $missing_id_count, $json_errors, $json_missing_id);
+
+ // dd($batch_list_id);
+
+ if ($missing_id_count > 0) {
+
+ $data = [
+ 'error_data' => $json_missing_id,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+ if ($insurer_or_tpa == 'tpa') {
+
+ return 2;
+
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ return 4;
+ }
+ }
+
+
+ if ($error_count > 0) {
+
+ $data = [
+ 'error_data' => $json_errors,
+ 'status' => 'failed',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ return 0;
+
+ } else {
+
+ $data = [
+ 'count' => $emp_count,
+ 'status' => $status,
+ 'error_data' => $partially_updated_data ?? null,
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+
+
+ foreach ($batch_list_id as $key => $value) {
+
+ $data = [
+ 'emp_policy_id' => $value,
+ 'batch_code' => $batch_code,
+ ];
+
+ $insert = $this->batchListModel->insert($data);
+ }
+
+
+ $parameters['file_id'] = $file_id;
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importInceptionUpdateTPAandUHID','payload' => ['file_id' => $file_id]]);
+
+ }
+
+ }
+
+
+ public function importInceptionUpdateTPAandUHID($params)
+ {
+
+ $file_id = $params['file_id'];
+ $file = $this->batchFileModel->find($file_id);
+ if (!$file) {
+ $data = [
+ 'status' => 'failed-4',
+ ];
+
+ $this->batchFileModel->where('id', $file_id)->set($data)->update();
+ return 0; // Return error code if file not found
+ }
+
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $insurer_or_tpa = $file['insurer_or_tpa'];
+ $status = $file['status'];
+ $batch_code = $file['batch_code'];
+
+ $status_val = 'success';
+ if($status == 'in-progress-partially'){
+
+ $status_val = 'partially success';
+ }
+
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+ $excel_data = $this->readExcelFileToArray($file_name_with_path);
+ unset($excel_data[0]); // Remove header row
+ array_pop($excel_data); // Remove footer row
+
+ $totals = 0;
+ $emp_count = count($excel_data);
+ $db = \Config\Database::connect();
+
+ foreach ($excel_data as $key => $value) {
+
+ $name = $value[1];
+ $emp_code = $value[2];
+ $tpa_id = $value[15];
+ $uhid = $value[16];
+ $amount = $value[20];
+
+ $totals += $amount;
+
+ $sql = "
+ UPDATE employee_polices
+ JOIN employees ON employees.id = employee_polices.employee_id
+ SET tpa_id = ?
+ WHERE employees.name = ?
+ AND employees.emp_code = ?
+ AND (employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = '')";
+
+ $params = [$tpa_id, $name, $emp_code];
+ $db->query($sql, $params);
+
+
+
+ $sql = "
+ UPDATE employee_polices
+ JOIN employees ON employees.id = employee_polices.employee_id
+ SET employee_polices.uhid = ?
+ WHERE employees.name = ?
+ AND employees.emp_code = ?
+ AND (employee_polices.uhid IS NULL OR employee_polices.uhid = '')";
+
+ $params = [$uhid, $name, $emp_code];
+ $db->query($sql, $params);
+ }
+
+ // Update batch file status and amount
+ $this->batchFileModel->update($file_id, [
+ 'count' => $emp_count,
+ 'status' => $status_val,
+ 'amount' => $totals,
+ ]);
+
+ return 1;
+ }
+
+
+
+
+
+
+
public function importExcelDataForCorrection($import_data)
{
@@ -1046,7 +1378,7 @@ class EmpDataServiceController extends BaseController
$missing_id = [];
$empty_emp_tpa_uh_ids = [];
- $totals = 0 ;
+ $totals = 0;
foreach ($data as $key => $value) {
try {
@@ -1545,15 +1877,15 @@ class EmpDataServiceController extends BaseController
{
if ($file->isValid() && !$file->hasMoved()) {
$file = $file;
-
+
try {
$reader = IOFactory::createReaderForFile($file->getPathname());
$spreadsheet = $reader->load($file->getPathname());
-
+
// Get the active sheet
$sheet = $spreadsheet->getActiveSheet();
-
+
// Iterate through rows to read data
$data = [];
foreach ($sheet->getRowIterator() as $row) {
@@ -1563,9 +1895,8 @@ class EmpDataServiceController extends BaseController
}
$data[] = $rowData;
}
-
- return $data;
+ return $data;
} catch (SpreadsheetReaderException $e) {
error_log('PhpSpreadsheet reader exception: ' . $e->getMessage());
@@ -1575,7 +1906,7 @@ class EmpDataServiceController extends BaseController
return false;
}
}
-
+
public function insertBatchFileAndBatchListForImportExcel($data, $ids)
@@ -1604,10 +1935,12 @@ class EmpDataServiceController extends BaseController
public function sendMailForDownloadingECard(array $ids)
{
try {
+ $count = 0;
+
foreach ($ids as $key => $id) {
-
+
$get_emp_email_and_other_details = $this->employeePolicyModel
- ->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employees.id as employee_id, employees.emp_code employee_polices.rand_string, employee_polices.tpa_id')
+ ->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')
@@ -1615,58 +1948,34 @@ class EmpDataServiceController extends BaseController
->where('employee_polices.is_active', '1')
->where('employee_polices.id', $id)->first();
- if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "") {
-
- $employee_id = $get_emp_email_and_other_details['employee_id'];
- $name = $get_emp_email_and_other_details['name'];
- $emp_code = $get_emp_email_and_other_details['name'];
- $email = $get_emp_email_and_other_details['email_corporate'];
+ // echo "";
+ // print_r($notification);
+ // die;
+ $client_data = $this->clientModel->where('id',$get_emp_email_and_other_details['client_id'])->first();
+
+ $notification = $this->notificationModel->where('client_id',$get_emp_email_and_other_details['client_id'])->where('template_name','member_ecard_mail')->first();
+ if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "" && $notification['enabled'] == 1) {
$rand_string = $get_emp_email_and_other_details['rand_string'];
$tpa_id = $get_emp_email_and_other_details['tpa_id'];
- $link = generate_download_link($rand_string);
- $subject = 'Download E-Card';
-
- $html = '
- Dear ' .$name .',
- Your Policy( ' .$tpa_id .' ) has been successfully created. Please click the link below to download the insurance card:
- Download Insurance Card
- Thank you,
- ';
+
+ $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;
+ $wholeData = sendMailNotification::sendMailNotification('member_ecard_mail', $params);
+
+ $count++;
-
- if ($email != null && $email != "") {
-
- $mail_data = [
- 'mail' => $email,
- 'subject' => $subject,
- 'message' => $html
- ];
-
- // dd($mail_data);
-
- $result = Mailhelper::send_email($mail_data);
- $decoded_result = (array) json_decode($result);
-
- $data = [
- 'status' => $decoded_result['status'],
- 'message'=>$decoded_result['message'] ?? 'Internal Server Error',
- 'email' => $decoded_result['data']
- ];
-
- // dd($data);
- $this->myLogger->logme('error', 'status : {status}, message : {message}, email : {email}', $data);
-
- }else{
-
- $this->myLogger->log('error', 'The employee (primaryKey : {id}, Name : {name}, Emp Code : {emp_code} ) has no corporate email.', ['id' => $employee_id, 'name' => $name, 'emp_code' => $emp_code]);
-
- }
-
- }else{
-
- $this->myLogger->log('error', 'The employee policy ID ( {id} ) has no active policy or the employee is not active.', ['id' => $id]);
-
+ if($count == 20 || $count == count($ids)-1){
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]);
+ $wholeData = [];
+ $count = 0;
+ }
}
}
return true; // Email(s) sent successfully
@@ -1677,4 +1986,48 @@ class EmpDataServiceController extends BaseController
}
}
+
+
+ public function readExcelFileToArray($path)
+ {
+
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($path);
+ $sheet = $spreadsheet->getActiveSheet();
+
+ $highestRowAndColumn = $sheet->getHighestRowAndColumn();
+ $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
+
+ return $excel_data;
+ }
+
+
+ public function removeOldExportInfoFromBatchFile($params){
+
+ $client_id = $params['client_id'];
+ $client_policy_id = $params['client_policy_id'];
+ $insurer_or_tpa = $params['insurer_or_tpa'];
+ $event_type = $params['event_type'];
+ $actions = $params['actions'];
+
+
+ $batch_data = $this->batchFileModel
+ ->where('client_id', $client_id)
+ ->where('client_policy_id', $client_policy_id)
+ ->where('insurer_or_tpa', $insurer_or_tpa)
+ ->where('event_type', $event_type)
+ ->where('actions', $actions)
+ ->first();
+
+ if(!empty($batch_data)){
+
+ $id = $batch_data['id'];
+ $batch_code = $batch_data['batch_code'];
+
+ $this->batchFileModel->where('id', $id)->delete();
+ $this->batchListModel->where('batch_code', $batch_code)->delete();
+
+ }
+
+
+ }
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index b1b33241..2409f694 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -348,7 +348,7 @@ class EmployeeController extends AdminController
if($return == 0){
- session()->setFlashdata('error', "The insurer has an insufficient deposit amount.");
+ session()->setFlashdata('error', "Insufficient deposit amount.");
return redirect()->to(base_url('employee/upload'));
}
@@ -396,12 +396,35 @@ class EmployeeController extends AdminController
} else if ($actions == 'import') {
$batch_data['file'] = $this->request->getFile('import_file_data');
+
if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') {
- $return = $empDataServiceController->importExcelDataForInception($batch_data);
+
+ $file = $this->request->getFile('import_file_data');
+
+ $is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
+ $filename = $file->getName();
+ $this->myLogger->logme('error', 'Inception Import file name : {data}', ['data' => $filename]);
+
+
+ $random_number_count = 4;
+ $batch_data['batch_code'] = generate_random_string($random_number_count);
+ $batch_data['created_by'] = get_session_userid();
+ $batch_data['status'] = 'pending';
+ $batch_data['file_name'] = $filename;
+
+ $file_id = $this->batchFileModel->insert($batch_data);
+
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'importInceptionFileValidation','payload' => ['file_id' => $file_id]]);
+
+ $return = 1;
+
+ // $return = $empDataServiceController->importExcelDataForInception($batch_data);
+
if ($return == 1) {
- session()->setFlashdata('success', 'Data updated successfully');
+ session()->setFlashdata('success', 'Data updated successfully. File is being validated.');
return redirect()->to(base_url('employee/upload'));
} else if ($return == 2) {
session()->setFlashdata('error', 'The TPA ID column is either partially or entirely empty.');
@@ -418,6 +441,9 @@ class EmployeeController extends AdminController
} else if ($return == 5) {
session()->setFlashdata('error', 'The list of employees provided has already been updated with the UHID, or this is not the correct file');
return redirect()->to(base_url('employee/upload'));
+ } else if ($return == 6) {
+ session()->setFlashdata('error', 'The Excel record count exceeds the DB record count.');
+ return redirect()->to(base_url('employee/upload'));
}
} else if ($event_type == 'correction') {
@@ -714,7 +740,8 @@ class EmployeeController extends AdminController
if (!file_exists($filePath)) {
$error_message = "File not found";
$this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
- return $error_message;
+ $data['message'] = 'Physical File Not Found';
+ return view('errors/404', $data);
}
// Load the Excel file
@@ -1037,4 +1064,81 @@ class EmployeeController extends AdminController
}
+
+ public function errorListExportImport($file_id)
+ {
+
+ $empDataServiceController = new EmpDataServiceController();
+
+ $file = $this->batchFileModel->where('id', $file_id)->first();
+ $client_id = $file['client_id'];
+ $client_policy_id = $file['client_policy_id'];
+ $insurer_or_tpa = $file['insurer_or_tpa'];
+
+ $error_data = json_decode($file['error_data']);
+
+ $file_name_with_path = WRITEPATH . "/uploads/import_excel/" . $file['file_name'];
+
+ if (!file_exists($file_name_with_path)) {
+ $error_message = "File not found";
+ $this->myLogger->logme('error', ($error_message . ' for file id ' . $file_id));
+ $data['message'] = 'Physical File Not Found';
+ return view('errors/404', $data);
+ }
+
+ $excel_data = $empDataServiceController->readExcelFileToArray($file_name_with_path);
+ $excelErrorData['excel_header'] = $excel_data[0];
+ unset($excel_data[0]);
+ array_pop($excel_data);
+
+
+ $finalArray = [];
+ foreach ($error_data as $key => $values) {
+
+ foreach ($values as $key2 => $value) {
+
+ $row = $value->row;
+ $column = $value->column;
+
+ if(property_exists($value, 'db_data')){
+
+ $error = 'Expected value: ' . ($value->db_data == null || $value->db_data == "" ? 'NULL' : $value->db_data);
+
+ }else{
+
+ if ($insurer_or_tpa == 'tpa') {
+
+ $error = 'Expected value : TPA ID';
+
+ } else if ($insurer_or_tpa == 'insurer') {
+
+ $error = 'Expected value : UHID';
+ }
+
+ }
+ $data = ['value' => $excel_data[$row][$column], 'error' => $error,];
+ $excel_data[$row][$column] = $data;
+ }
+
+ array_push($finalArray, $excel_data[$key]);
+ }
+
+
+ foreach ($finalArray as $fkey => $value) {
+ foreach ($value as $vkey => $arrayData) {
+ if (!is_array($arrayData)) {
+ $data = ['value' => $arrayData];
+ $finalArray[$fkey][$vkey] = $data;
+ }
+ }
+ }
+
+ $excelErrorData['excel_data'] = $finalArray;
+ $excelErrorData['file_id'] = $file_id;
+
+ // dd($finalArray);
+
+ echo view('export_import_error_list', $excelErrorData);
+ }
+
}
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index 75348d41..3c8a145d 100644
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -9,10 +9,13 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
+use App\Helpers\sendMailNotification;
+
use App\Models\EmployeeModel;
use App\Models\EmployeePolicyModel;
use App\Models\ClientModel;
+use App\Models\ClientRMModel;
use App\Models\PolicesModel;
use App\Models\RelationshipModel;
use App\Models\FileModel;
@@ -20,6 +23,8 @@ use App\Models\ClientPolicyModel;
use App\Models\PolicyPremium1Model;
use App\Models\PolicyPremium2Model;
use App\Models\PolicyTypeModel;
+use App\Models\NotificationModel;
+use App\Models\UserModel;
use App\Controllers\Jobs ;
use App\Controllers\JobWorker ;
@@ -42,6 +47,7 @@ class EmployeeRestController extends AdminController
protected $employeeModel;
protected $employeePolicyModel;
protected $clientModel;
+ protected $clientRMModel;
protected $fileModel;
protected $policesModel;
protected $relationshipModel;
@@ -49,7 +55,9 @@ class EmployeeRestController extends AdminController
protected $policyPremium1Model;
protected $policyPremium2Model;
protected $policyTypeModel;
-
+ protected $notificationModel;
+ protected $userModel;
+
public function __construct()
{
// helper('utility');
@@ -58,6 +66,7 @@ class EmployeeRestController extends AdminController
$this->employeeModel = new EmployeeModel();
$this->employeePolicyModel = new EmployeePolicyModel();
$this->clientModel = new ClientModel();
+ $this->clientRMModel = new ClientRMModel();
$this->policesModel = new PolicesModel();
$this->relationshipModel = new RelationshipModel();
$this->fileModel= new FileModel();
@@ -65,9 +74,11 @@ class EmployeeRestController extends AdminController
$this->policyPremium1Model = new PolicyPremium1Model();
$this->policyPremium2Model = new PolicyPremium2Model();
$this->policyTypeModel = new PolicyTypeModel();
+ $this->notificationModel = new NotificationModel();
+ $this->userModel = new UserModel();
}
-
+
public function getEmployeeProfile()
{
try {
@@ -304,7 +315,7 @@ class EmployeeRestController extends AdminController
->where('client_policy_id',$value['policy_details']['client_policy_id'] )
->where('employee_id' , $value['temp']['emp_id'] )
->where('is_active', 1 )
- ->set(array('premium'=> $value['policy_details']['premium'] , 'rate_premium'=> $value['policy_details']['rate_premium'] , 'gst'=> $value['policy_details']['gst'] ))
+ ->set(array('premium'=> $value['policy_details']['premium'] , 'rata_premimum'=> $value['policy_details']['rata_premimum'] , 'gst'=> $value['policy_details']['gst'] ))
->update();
}
@@ -594,14 +605,26 @@ class EmployeeRestController extends AdminController
// Upload the Employee Detail in DB by Sheet Data
public function employeeUpload()
{
+
+
+
+
try {
+ // echo $this->request->getPost('client_id');
+ // die;
$file = $this->request->getFile('file');
$client_id = $this->request->getPost('client_id');
$policy_id = $this->request->getPost('policy_id');
+ $client_data = $this->clientModel->where('id', $client_id)->first();
+
+ $notification = $this->notificationModel->where('client_id',$client_id)->where('template_name','member_welcome_mail')->first();
+
$jwt = $this->request->getHeader('Authorization');
$jwtParts = explode(' ', $jwt);
+ // print_r($jwtParts);die;
$token = $jwtParts[2];
+ // return "hello";
$decodedPayload = json_decode(base64_decode(explode('.', $token)[1]), true);
@@ -611,7 +634,6 @@ class EmployeeRestController extends AdminController
$client_policy = $this->clientPolicyModel->where('id', $policy_id)->where('client_id', $client_id)->first();
-
if ($client_policy) {
$policy = $this->policesModel->where('id', $client_policy['policy_id'])->first();
$policy_permium_1 = $this->policyPremium1Model->where(['client_id' => $client_id , 'client_policy_id' => $policy_id,'is_active' =>1])-> first();
@@ -787,105 +809,98 @@ class EmployeeRestController extends AdminController
$count = 0;
for ($a=0; $a employeeModel->checkExistingEmployee($dataToInsert[$a]);
- $emp_id =0;
-
- $data_after_gpa_or_gmc =[];
- if ($policy['policy_type_id'] == 1) {
- if (strtolower($dataToInsert[$a]['relationship']) == 'self') {
- $data_after_gpa_or_gmc = $dataToInsert[$a];
- }
- }else{
- $data_after_gpa_or_gmc = $dataToInsert[$a];
- }
- date_default_timezone_set('Asia/Kolkata');
- $current_timestamp = time();
- $formatted_date_time = date('Y-m-d H:i:s', $current_timestamp);
-
- if ($employee) {
-
-
- $emp_id =$employee['id'];
- $id =$emp_id;
- $data_after_gpa_or_gmc['id'] = $id;
- $data_after_gpa_or_gmc['updated_by'] = $employee_id;
- $data_after_gpa_or_gmc['updated_at'] = $formatted_date_time;
- $result = $this->employeeModel->save($data_after_gpa_or_gmc);
- if ($result) {
- $log_message = 'Update Employee - '.$employee['name'].'('.$employee['emp_code'].') with PK '.$employee['id'];
- $this->myLogger->logme('error',('Update - ' . $employee['id'].' - '. $employee['emp_code'] .' - '.$employee['name']));
- }
- }else{
- if ($dataToInsert[$a]['emp_code'] != 0) {
- $result =false;
- if (count($data_after_gpa_or_gmc) != 0) {
- $data_after_gpa_or_gmc['created_by'] = $employee_id;
- $result = $this->employeeModel->insert($data_after_gpa_or_gmc);
- }
- $emp_id =$result;
- if ($result) {
- $emp = $this->employeeModel->where('id', $result)->get()->getResult();
-
- $policy_name = $this->employeePolicyModel->where('employee_id', $result)->get()->getResult();;
-
-
- $log_message = 'Insert Employee- '.$dataToInsert[$a]['name'] .'('.$dataToInsert[$a]['emp_code'] .') with PK ';
- $this->myLogger->logme('error',('Insert - ' . $dataToInsert[$a]['emp_code'] .' - '. $dataToInsert[$a]['name']));
- }
- }
- }
- $emp_policy_data =[
- 'employee_id'=>$emp_id,
- 'client_policy_id'=>$policy_id,
- 'status'=> 'draft',
- 'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null
- ];
-
- $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id,'client_policy_id' => $policy_id]);
- if ($employee_policy) {
- foreach ($employee_policy as $existing_policy) {
- $emp_policy_data['id']= $existing_policy['id'];
- $emp_policy_data['updated_at'] = $formatted_date_time;
- $this->employeePolicyModel->save($emp_policy_data);
- }
- } else {
- $emp_policy = $this->employeePolicyModel->insert($emp_policy_data);
- }
-
-
- //trigger
- $mail = $dataToInsert[$a]['email_corporate'];
- $subject = 'Welcome, Employee Benefit Program Enrolment';
- // $message = 'Dear ' . $dataToInsert[$a]['name'] . ",
We are glad to welcome you to the employee benefit program ," .$policy_name['name'] ."offered by your employer,
Click on the link below to review your personal and family details:
Review Details" ;
- $data['employee_name']=$dataToInsert[$a]['name'];
- $data['policy_name']=$policy['name'];
- $data['App_Url'] = $_ENV['App_Url'];
+ $employee = $this->employeeModel->checkExistingEmployee($dataToInsert[$a]);
+ $emp_id =0;
- $message = view('mail_welcome', $data);
+ $data_after_gpa_or_gmc =[];
+ if ($policy['policy_type_id'] == 1) {
+ if (strtolower($dataToInsert[$a]['relationship']) == 'self') {
+ $data_after_gpa_or_gmc = $dataToInsert[$a];
+ }
+ }else{
+ $data_after_gpa_or_gmc = $dataToInsert[$a];
+ }
+ date_default_timezone_set('Asia/Kolkata');
+ $current_timestamp = time();
+ $formatted_date_time = date('Y-m-d H:i:s', $current_timestamp);
- if ($dataToInsert[$a]['relationship'] == 'Self' && $mail != null || $mail != '') {
- $count++;
- $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $message];
+ if ($employee) {
+
+
+ $emp_id =$employee['id'];
+ $id =$emp_id;
+ $data_after_gpa_or_gmc['id'] = $id;
+ $data_after_gpa_or_gmc['updated_by'] = $employee_id;
+ $data_after_gpa_or_gmc['updated_at'] = $formatted_date_time;
+ $result = $this->employeeModel->save($data_after_gpa_or_gmc);
+ if ($result) {
+ $log_message = 'Update Employee - '.$employee['name'].'('.$employee['emp_code'].') with PK '.$employee['id'];
+ $this->myLogger->logme('error',('Update - ' . $employee['id'].' - '. $employee['emp_code'] .' - '.$employee['name']));
+ }
+ }else{
+ if ($dataToInsert[$a]['emp_code'] != 0) {
+ $result =false;
+ if (count($data_after_gpa_or_gmc) != 0) {
+ $data_after_gpa_or_gmc['created_by'] = $employee_id;
+ $result = $this->employeeModel->insert($data_after_gpa_or_gmc);
+ }
+ $emp_id =$result;
+ if ($result) {
+ $emp = $this->employeeModel->where('id', $result)->get()->getResult();
+
+ $policy_name = $this->employeePolicyModel->where('employee_id', $result)->get()->getResult();;
+
+
+ $log_message = 'Insert Employee- '.$dataToInsert[$a]['name'] .'('.$dataToInsert[$a]['emp_code'] .') with PK ';
+ $this->myLogger->logme('error',('Insert - ' . $dataToInsert[$a]['emp_code'] .' - '. $dataToInsert[$a]['name']));
+ }
+ }
+ }
+ $emp_policy_data =[
+ 'employee_id'=>$emp_id,
+ 'client_policy_id'=>$policy_id,
+ 'status'=> 'draft',
+ 'basic_cover_si'=>isset($basic_cover_si[$a]) ? $basic_cover_si[$a] : null
+ ];
+
+ $employee_policy = $this->employeePolicyModel->checkExistingEmpPolicy(['employee_id' => $emp_id,'client_policy_id' => $policy_id]);
+ if ($employee_policy) {
+ foreach ($employee_policy as $existing_policy) {
+ $emp_policy_data['id']= $existing_policy['id'];
+ $emp_policy_data['updated_at'] = $formatted_date_time;
+ $this->employeePolicyModel->save($emp_policy_data);
+ }
+ } else {
+ $emp_policy = $this->employeePolicyModel->insert($emp_policy_data);
}
- // print_r($wholeData);
- // if ($dataToInsert[$a]['email_corporate'] != null || $dataToInsert[$a]['email_corporate'] != '' && $dataToInsert[$a]['relationship'] == 'Self') {
- if($count == 20 || $a == count($dataToInsert)-1){
- $job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]);
- // $wholeData[]= $r;
- // Mailhelper::bulk_mail($wholeData);
- $wholeData = [];
- $count = 0;
+ if ($notification['enabled'] == 1) {
+ //trigger
+ if ($dataToInsert[$a]['relationship'] == 'Self') {
+
+ $params['dataToInsert'] = $dataToInsert[$a];
+ $params['notification'] = $notification;
+ $params['client_data'] = $client_data;
+
+ $wholeData[] = sendMailNotification::sendMailNotification('member_welcome_mail', $params);
+ $count++;
+ }
+ if($count == 20 || $a == count($dataToInsert)-1){
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $wholeData]);
+ // $wholeData[]= $r;
+
+ // Mailhelper::bulk_mail($wholeData);
+ $wholeData = [];
+ $count = 0;
+ }
+
+
+ // if ($dataToInsert[$a]['email_corporate'] != null || $dataToInsert[$a]['email_corporate'] != '' && $dataToInsert[$a]['relationship'] == 'Self') {
+
}
- // print_r($r);//die();
- // $jobWorker = new JobWorker();
- //JobWorker::processJob($r);
- // $return_log = MailHelper::send_email($mail,$subject, $message);
- // $return_log = json_decode($return_log);
- // $this->myLogger->logme('info', "Email Status : {mail_status}, Sender Email:{email}", ['mail_status' => $return_log->status, 'email'=> $return_log->data]);
}
return $this->respond(['status' => 'success', 'code' => 200, 'message' => "Success" ], 200);
}else{
@@ -949,6 +964,7 @@ public function getEmployeePolicy()
// Filter employee data where the family_floater_key is 'self'
$selfData = array_filter($empData, fn($arr) => trim(strtolower($arr['family_floater_key'])) === 'self');
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$selfData[0]['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
$self['is_value_exist'] = true;
$self['data']['family_floater_key'] = 'self';
@@ -958,6 +974,7 @@ public function getEmployeePolicy()
$self['data']['dob'] = $this->convertDateFormatDMY($selfData[0]['dob']);
$self['data']['mobile'] = $selfData[0]['mobile'];
$self['data']['client_policy_id'] = $array->ClientPolicyId;
+ $self['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
$array->mapped_family_floaters = $self;
@@ -996,6 +1013,7 @@ public function getEmployeePolicy()
if(count($empData)){
foreach ($empData as $key => $value) {
if ($value['family_floater_key'] === $dependent) {
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
$temp['is_value_exist'] = true;
$temp['data']['family_floater_key'] = $familyFloatesValue;
$temp['data']['employee_id'] = $value['id'];
@@ -1003,7 +1021,12 @@ public function getEmployeePolicy()
$temp['data']['name'] = $value['name'];
$temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']);
$temp['data']['client_policy_id'] = $array->ClientPolicyId;
- $temp['data']['form_type'] = $dependent;
+ $temp['data']['form_type'] = $dependent;
+ $temp['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
+ $ageKey = ($dependent == 'parent' || $dependent == 'parent_in_law') ? 'elders' : $dependent;
+
+ $temp['data']['age_validation'] = $decodedArray->age_ratio->$ageKey;
+
array_push($data,$temp);
unset($empData[$key]);
$floters = array_diff($floters, [$familyFloatesValue]);
@@ -1012,7 +1035,9 @@ public function getEmployeePolicy()
}
}
}
-
+ // dd($data);
+
+
// Remove Unwanted floter key from floters array based on either-parents-pil term value
if($familyFloates->{'either-parents-pil'} == 1 && count($floters))
{
@@ -1147,13 +1172,16 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
// Convert familyFloaters terms data to plain array
$floters = $this->FloterConvertion($familyFloates);
-
$data = [];
foreach ($floters as $familyFloatesValue) {
$dependent = preg_replace('/\d/', '', $familyFloatesValue);
+
+
if(count($empData)){
foreach ($empData as $key => $value) {
if ($value['family_floater_key'] === $dependent) {
+ $employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array->ClientPolicyId)->where('is_active', 1 )->get()->getRow();
+ // dd( $employee_policy);
$temp['is_value_exist'] = true;
$temp['data']['family_floater_key'] = $familyFloatesValue;
$temp['data']['employee_id'] = $value['id'];
@@ -1161,7 +1189,11 @@ public function getGmcParrentsPolicy($GmcParrentsPolicy,$emp_code,$client_id)
$temp['data']['name'] = $value['name'];
$temp['data']['dob'] = $this->convertDateFormatDMY($value['dob']);
$temp['data']['client_policy_id'] = $array->ClientPolicyId;
- $temp['data']['form_type'] = $dependent;
+ $temp['data']['form_type'] = $dependent;
+ $temp['data']['basic_cover_si'] = $employee_policy->basic_cover_si;
+ $ageKey = ($dependent == 'parent' || $dependent == 'parent_in_law') ? 'elders' : $dependent;
+ $temp['data']['age_validation'] = $array->Policy_Terms->age_ratio->$ageKey;
+
array_push($data,$temp);
unset($empData[$key]);
$floters = array_diff($floters, [$familyFloatesValue]);
@@ -1300,6 +1332,7 @@ public function getAddOnPolicy()
if(count($clientPolicy))
{
+ $band = $addOnEmployeeData = $this->employeeModel->where('is_active', 1 )->where('emp_code',$this->request->getGet('emp_code'))->where('client_id',$this->request->getGet('client_id'))->where('family_floater_key','self')->get()->getRow()->band;
$PolicyData = [];
foreach ($clientPolicy as $key => $array) {
$responce = [];
@@ -1307,9 +1340,26 @@ public function getAddOnPolicy()
$decodedArray = json_decode($array['policy_terms']);
$policy_terms = $decodedArray;
$getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($array['id'],$array['client_id']);
+ $uniqueData = [];
+ $siValues = [];
+ foreach ($getSlabAndGridData['slab_rates'] as $item) {
+ if($getSlabAndGridData['grid_master']['emp_band'] == 1 ){
+ if ($item['grade'] == $band) {
+ $uniqueData[] = $item;
+ }
+ }else{
+ if (!in_array($item['si'], $siValues)) {
+ $uniqueData[] = $item;
+ $siValues[] = $item['si'];
+ }
+ }
+
+ }
+
+
$responce['policy_name'] = $this->policesModel->where('id',$array['policy_id'])->get()->getRow()->name;
- $responce['SlabRates'] = $getSlabAndGridData['slab_rates'];
+ $responce['SlabRates'] = $uniqueData;
$responce['GridMaster'] = $getSlabAndGridData['grid_master'];
$responce['client_id'] = $array['client_id'];
$responce['client_policy_id'] = $array['id'];
@@ -1460,11 +1510,12 @@ public function getAddOnPolicy()
}else if($array['is_addon'] == 2 && $array['policy_type_id'] == 4)//Topup policy
{
+
$whereArray = [];
foreach ( $decodedArray->family_floaters as $key => $value) {
if($value != 0){
- if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else{ $text = $key; }
+ if($key == 'parents'){ $text = 'parent'; }else if($key == 'childrens'){ $text = 'child'; }else if($key == 'parents-in-law'){$text = 'parent_in_law';}else{ $text = $key; }
array_push($whereArray,$text);
}
}
@@ -1483,7 +1534,7 @@ public function getAddOnPolicy()
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow();
if(isset($employee_policy->basic_cover_si)){ $only_si_value = $employee_policy->basic_cover_si; }
- if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premium;}
+ if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;}
if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;}
$temp3['is_value_exist'] = true;
$temp3['data']['employee_id'] = $value['id'];
@@ -1532,7 +1583,7 @@ public function getAddOnPolicy()
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->where('is_active', 1 )->get()->getRow();
if(isset($employee_policy->basic_cover_si)){ $only_si_value = $employee_policy->basic_cover_si; }
- if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premium;}
+ if(isset($employee_policy->premium)){ $only_si_premium_value = $only_si_premium_value + $employee_policy->rata_premimum;}
if(isset($employee_policy->gst)){ $only_si_gst_value = $only_si_gst_value + $employee_policy->gst;}
$temp3['is_value_exist'] = true;
$temp3['data']['employee_id'] = $value['id'];
@@ -1574,9 +1625,9 @@ public function getAddOnPolicy()
public function iAgreeForAddOn()
{
-
$postData = json_decode($this->request->getBody(), true);
+
$client_policy_id = $postData['client_policy_id'];
$emp_code = $postData['emp_code'];
$client_id = $postData['client_id'];
@@ -1589,15 +1640,41 @@ public function iAgreeForAddOn()
if (!is_null($client_policy_id) && is_array($client_policy_id))
{
+ $array_list = [];
foreach ($client_policy_id as $key => $value)
{
$this->employeePolicyModel->where('client_policy_id', $value )
->where('is_active', 1 )
->set(array('status'=>'enrolled'))
->update();
+ $find = $this->employeeModel->getEmpFamilybyEmpCode(client_policy_id: $value,emp_code: $emp_code,client_id: $client_id,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']);
+ $array_list[] = $find;
}
+ $params ['array_list'] = $array_list;
+ $params ['client_policy_id'] = $client_policy_id;
+ $params ['emp_code'] = $emp_code;
+ $params ['client_id'] = $client_id;
+ $wholeData =sendMailNotification::sendMailNotification('member_review_and_summary_mail', $params);
+
+ MailHelper::send_email($wholeData[0]);
+
+ if (isset($wholeData[0])) {
+
+ $account_manager_wholeData =sendMailNotification::sendMailNotification('account_maneger_summary_mail', $params);
+
+ foreach ($account_manager_wholeData as $key => $value) {
+ MailHelper::send_email($value);
+ }
+
+ $client_hr_wholeData =sendMailNotification::sendMailNotification('client_hr_summary_mail', $params);
+
+ foreach ($client_hr_wholeData as $key => $value) {
+ MailHelper::send_email($value);
+ }
+ }
+
}
-
+
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
}
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index ffdc8372..085c2727 100644
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -34,7 +34,7 @@ class EmployeeServiceController extends AdminController
protected $policiesModel;
protected $empEndorsementModel;
protected $general_relationships = ['self' => ['name' => 'Self', 'gender' => 'M','age_min' => 18,'age_max' => null], 'spouse' => ['name' => 'Spouse', 'gender' => 'F','age_min' => 18,'age_max' => null], 'son' => ['name' => 'Son', 'gender' => 'M','age_min' => null,'age_max' => 25], 'daughter' => ['name' => 'Daughter', 'gender' => 'F','age_min' => null,'age_max' => 25], 'father' => ['name' => 'Father', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother' => ['name' => 'Mother', 'gender' => 'F','age_min' => 18,'age_max' => null], 'father-in-law' => ['name' => 'Father in Law', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother-in-law' => ['name' => 'Mother in Law', 'gender' => 'F','age_min' => 18,'age_max' => null]];
- protected $inception_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'dob'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'DOB','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_dob_diff','params'=>['row','relationship','default_age_ratio']],'gender'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Gender','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['M','F']],'relationship'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'RELATIONSHIP','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_relationship','params'=>['row','relationship','policy_terms']],'basic_cover_si'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'BASIC COVER SI','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'doc'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Date of Coverage','is_mandatory'=>['A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'params'=>['row']],'doj'=>['col_idx'=>8,'col_cell_name'=>'I','col_name'=>'DOJ','is_mandatory'=>false,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_doj','params'=>['row']],'basic_pay'=>['col_idx'=>9,'col_cell_name'=>'J','col_name'=>'Basic Pay','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_basic_pay','params'=>['row','policy_terms','slab_details']],'band_grade'=>['col_idx'=>10,'col_cell_name'=>'K','col_name'=>'Band/Grade','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_employee_band','params'=>['row','policy_terms','slab_details']],'designation'=>['col_idx'=>11,'col_cell_name'=>'L','col_name'=>'Designation','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'phone'=>['col_idx'=>12,'col_cell_name'=>'M','col_name'=>'Phone','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'email'=>['col_idx'=>13,'col_cell_name'=>'N','col_name'=>'Email','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'pre_existing_ailments'=>['col_idx'=>14,'col_cell_name'=>'O','col_name'=>'PRE EXISTING AILMENTS','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['0','1']],'change_event'=>['col_idx'=>15,'col_cell_name'=>'P','col_name'=>'Change event','is_mandatory'=>['A','DA','D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>16,'col_cell_name'=>'Q','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>17,'col_cell_name'=>'R','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
+ protected $inception_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'dob'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'DOB','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_dob_diff','params'=>['row','relationship','default_age_ratio']],'gender'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Gender','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['M','F']],'relationship'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'RELATIONSHIP','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_relationship','params'=>['row','relationship','policy_terms']],'basic_cover_si'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'BASIC COVER SI','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'doc'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Date of Coverage','is_mandatory'=>['A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'params'=>['row']],'doj'=>['col_idx'=>8,'col_cell_name'=>'I','col_name'=>'DOJ','is_mandatory'=>false,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_doj','params'=>['row']],'basic_pay'=>['col_idx'=>9,'col_cell_name'=>'J','col_name'=>'Basic Pay','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_basic_pay','params'=>['row','policy_terms','slab_details']],'band_grade'=>['col_idx'=>10,'col_cell_name'=>'K','col_name'=>'Band/Grade','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_employee_band','params'=>['row','policy_terms','slab_details']],'designation'=>['col_idx'=>11,'col_cell_name'=>'L','col_name'=>'Designation','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'phone'=>['col_idx'=>12,'col_cell_name'=>'M','col_name'=>'Phone','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_dup_mobileno','params' => ['row','existing_mobilenos']],'email'=>['col_idx'=>13,'col_cell_name'=>'N','col_name'=>'Email','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'pre_existing_ailments'=>['col_idx'=>14,'col_cell_name'=>'O','col_name'=>'PRE EXISTING AILMENTS','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['0','1']],'change_event'=>['col_idx'=>15,'col_cell_name'=>'P','col_name'=>'Change event','is_mandatory'=>['A','DA','D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>16,'col_cell_name'=>'Q','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>17,'col_cell_name'=>'R','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
protected $deletion_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'change_event'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'Change event','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
@@ -154,6 +154,9 @@ class EmployeeServiceController extends AdminController
//remove header
unset($excel_data[0]);
$relationship = $this->general_relationships;
+ //get exisiting mobilr nos
+ $existing_mobilenos = $this->employeePolicyModel->getExisitingMobileNos(client_policy_id: $file['policy_id']);
+ // dd($existing_mobilenos);
foreach ($excel_data as $row_key => $row)
{
@@ -273,7 +276,7 @@ class EmployeeServiceController extends AdminController
{
//proceed next data level validation in JOB queue
$job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'excelFileDataValidation','payload' => ['file_id' => $file_id]]);
+ $r = Jobs::addJob(['job_name' => 'excelFileDataValidation','payload' => ['file_id' => $file_id]]);
// $jobWorker = new JobWorker();
// JobWorker::processJob($r);
}
@@ -471,7 +474,7 @@ class EmployeeServiceController extends AdminController
{
//proceed next data level validation in JOB queue
$job_details = new Jobs();
- $r = Jobs::addJob(['job_name' => 'employeesOnboardPreprocess','payload' => ['file_id' => $file_id]]);
+ $r = Jobs::addJob(['job_name' => 'employeesOnboardPreprocess','payload' => ['file_id' => $file_id]]);
// $jobWorker = new JobWorker();
// JobWorker::processJob($r);
}
@@ -607,7 +610,7 @@ class EmployeeServiceController extends AdminController
// die();
- return ($employee_data_group_by_family);
+ return (($employee_data_group_by_family));
}
@@ -855,9 +858,10 @@ class EmployeeServiceController extends AdminController
$temp = $value['temp'];
unset($value['policy_details']);
unset($value['temp']);
-
+ // Kint::dump($value);
+ // Kint::dump($policy_data);
//start implemet of si enhancement of grid type 10,11
- if(count($employee) && (($file['action'] == 'dependent_addition' && in_array($value['temp']['source'],[10,11]) && ($slab_details['slab_rates'][0]['premium_type'] == 1 && strtolower($value['relationship']) == 'self') || ($slab_details['slab_rates'][0]['premium_type'] == 1 || $slab_details['slab_rates'][0]['premium_type'] == null))))
+ if(count($employee) && (($file['action'] == 'dependent_addition' && in_array($value['temp']['source'],[10,11]) && ($slab_details['slab_rates'][0]['premium_type'] == 1 && strtolower($value['relationship']) == 'self') || ($slab_details['slab_rates'][0]['premium_type'] == 2 || $slab_details['slab_rates'][0]['premium_type'] == null))))
{
$res = $this->employeesSIEnhanceProcessWhileOnbboard(employee:$employee[0],policy_data: $policy_data,file:$file);// where employee holds existing emp data and policy_data holds new si enhancement
if(!$res)
@@ -928,8 +932,8 @@ class EmployeeServiceController extends AdminController
$employee = $this->employeeModel->where('emp_code', $employee['emp_code'])->where('name',$employee['name'])->where('client_id',$employee['client_id'])->where('is_active',1)->first();
$employee_policy = $this->employeePolicyModel->where('employee_id',$employee['id'])->where('client_policy_id',$file['policy_id'])->first();
-
- $slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($employee_policy['policy_id'],$employee['client_id']);
+ // dd($employee_policy);
+ $slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($employee_policy['client_policy_id'],$employee['client_id']);
//check si has changed in normal case OR check premium only changed, still treat as SI enhancement in grid type 10
if($employee_policy['basic_cover_si'] != $policy_data['basic_cover_si'] || ($slab_details['grid_master']['ui_type'] == 10 && $policy_data['premimum'] != null && $policy_data['premimum'] != "" && $employee_policy['premimum'] != $policy_data['premimum']))
diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php
index 00b060ae..9ae90d51 100644
--- a/app/Controllers/JobWorker.php
+++ b/app/Controllers/JobWorker.php
@@ -14,7 +14,11 @@ class JobWorker extends AdminController
* Constructs the class
*/
- private static $event_class_mapping = ['add' => ['type' => 'HC','handler' => 'App\\Helpers\\HttpRequestHelper'], 'sub' => ['type' => 'CC','handler' => 'App\\Controllers\\Jobs\SubJob'],'fancy_date_time_format' => [ 'type' => 'HF','handler' => 'fancy_date_time_format'],'addNumber' => ['type' => 'HC','handler' => 'App\\Model\\HttpRequestHelper'],'excelFileFormatValidation' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'excelFileDataValidation' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'employeesOnboardPreprocess' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'employeeDisembark' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'employeesSIEnhanceProcess' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'employeesCorrectionProcess' => ['type' => 'CC','handler' => 'App\\Controllers\\EmployeeServiceController'],'send_email' => ['type' => 'HC','handler' => 'App\\Helpers\\MailHelper'],'bulk_mail' => ['type' => 'HC','handler' => 'App\\Helpers\\MailHelper']];
+ private static $event_class_mapping = [
+ 'add' => ['type' => 'HC', 'handler' => 'App\\Helpers\\HttpRequestHelper'], 'sub' => ['type' => 'CC', 'handler' => 'App\\Controllers\\Jobs\SubJob'], 'fancy_date_time_format' => ['type' => 'HF', 'handler' => 'fancy_date_time_format'], 'addNumber' => ['type' => 'HC', 'handler' => 'App\\Model\\HttpRequestHelper'], 'excelFileFormatValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'excelFileDataValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesOnboardPreprocess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeeDisembark' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesSIEnhanceProcess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'employeesCorrectionProcess' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmployeeServiceController'], 'send_email' => ['type' => 'HC', 'handler' => 'App\\Helpers\\MailHelper'], 'bulk_mail' => ['type' => 'HC', 'handler' => 'App\\Helpers\\MailHelper'], 'insertBatchList' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importInceptionFileValidation' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ 'importInceptionUpdateTPAandUHID' => ['type' => 'CC', 'handler' => 'App\\Controllers\\EmpDataServiceController'],
+ ];
public function __construct()
{
// echo 'HiC';//die();
@@ -66,6 +70,7 @@ class JobWorker extends AdminController
*/
public static function processJob(array $jobdata = [])
{
+
// print_r($jobdata);
// echo 'listen';
// die();
diff --git a/app/Controllers/NotificationController.php b/app/Controllers/NotificationController.php
new file mode 100644
index 00000000..e0a6280c
--- /dev/null
+++ b/app/Controllers/NotificationController.php
@@ -0,0 +1,159 @@
+myLogger = \Config\Services::mylogger();
+ $this->notificationModel = new NotificationModel();
+ }
+
+ // This is for Template Name Camel Case to Snake Case for store in DB
+ public function camelCaseToSnakeCase($input)
+ {
+ $input = preg_replace('/(?camelCaseToSnakeCase($this->request->getPost('template_name'));
+ $form_data['subject'] = $this->request->getPost('subject');
+ $form_data['mail_content'] = $this->request->getPost('mailContent');
+ $form_data['client_id'] = $this->request->getPost('client_id');
+ $notificationModel = new NotificationModel();
+
+ $find_notification = $notificationModel->where('client_id',$form_data['client_id'])->where('template_name',$form_data['template_name'])->first();
+ if ($find_notification) {
+ $id = $find_notification['id'];
+ $form_data['updated_by'] = get_session_userid();
+ $notificationModel->update($id,$form_data);
+ $complete = "Update";
+ }else{
+ $form_data['created_by'] = get_session_userid();
+ $notificationModel->insert($form_data);
+ $complete = "Inserted";
+ }
+ return json_encode($complete);
+
+ }
+
+ // This is for the Enabls in Notification area and Update the Recipient and HR Mail Id in( Enables -> Notification table and Mail id's -> Client table)
+ public function update_enable()
+ {
+ $checkboxNames = [
+ 'member_welcome_mail_btn',
+ 'member_reminder_mail_btn',
+ 'member_ecard_mail_btn',
+ 'member_review_and_summary_mail_btn',
+ 'account_maneger_summary_mail_btn',
+ 'client_hr_summary_mail_btn'
+ ];
+ $data = [];
+
+ foreach ($checkboxNames as $checkboxName)
+ {
+ $data[str_replace('_btn', '', $checkboxName)] = ($this->request->getPost($checkboxName) === "true") ? 1 : 0;
+ }
+
+ $notificationModel = new NotificationModel();
+ $clientModel = new ClientModel();
+
+ $id =$this->request->getPost('client_id');
+ $clientData['common_mails'] = $this->request->getPost('nhance_team_mail_ids');
+ $clientData['hr_mails'] = $this->request->getPost('hr_mail_id');
+ $clientModel->update($id,$clientData);
+
+ foreach ($data as $key => $value)
+ {
+ $find = $notificationModel->where('client_id',$this->request->getPost('client_id'))->where('template_name', $key)->first();
+ if ($find)
+ {
+ $id = $find['id'];
+ $changeData['enabled']= $value;
+ $update = $notificationModel->update($id, $changeData);
+ }
+ }
+ return json_encode("true");
+ }
+
+ // This for Load the Template Data for in View Page
+ public function getMailTemplateData($template_name,$client_id)
+ {
+ $notificationModel = new NotificationModel();
+
+ $value = $notificationModel->where('client_id',$client_id)->where('template_name',$template_name)->first();
+
+ return json_encode($value);
+ }
+
+ // This will send the Reminder Mail
+ public function reminder_mail()
+ {
+ $clientModel = new ClientModel();
+ $employeeModel = new EmployeeModel();
+ $notificationModel = new NotificationModel();
+
+ $client_list = $clientModel->where('is_active',1)->findAll();
+
+ $wholeData = [];
+ foreach($client_list as $key=>$value){
+ $notification_data = $notificationModel->where('client_id',$value['id'])->where('template_name', 'member_reminder_mail')->first();
+
+ $client_data = $clientModel->where('id', $value['id'])->first();
+
+ if(isset($notification_data) && $notification_data['enabled'] == 1){
+ $emp_data = $employeeModel->where('client_id', $value['id'])->where('is_active',1)->where('emp_status','draft')->findAll();
+ if( count($emp_data) != 0)
+ {
+ $params['emp_data'] = $emp_data;
+ $params['client_data'] = $client_data;
+ $params['notification_data'] = $notification_data;
+ $wholeData[] =sendMailNotification::sendMailNotification('member_reminder_mail', $params);
+ }
+ }
+ }
+
+ $count = 0;
+ foreach ($wholeData as $index => $values) {
+ $whole_index = $index;
+ foreach ($values as $index => $value) {
+ $count++;
+ $temp_whole_data[] = $value;
+ if($count == 20 || $whole_index == count($wholeData)-1 && $index == count($values)-1){
+ $job_details = new Jobs();
+ $r = Jobs::addJob(['job_name' => 'bulk_mail','payload' => $temp_whole_data]);
+
+ $temp_whole_data = [];
+ $count = 0;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/Controllers/PendingActionsController.php b/app/Controllers/PendingActionsController.php
new file mode 100644
index 00000000..9670dbba
--- /dev/null
+++ b/app/Controllers/PendingActionsController.php
@@ -0,0 +1,26 @@
+setTo($emaill);
+ if (!empty($bcc)) {
+ // Convert the comma-separated string into an array
+ $bccList = explode(',', $bcc);
+ // Trim whitespace from each email ID
+ $bccList = array_map('trim', $bccList);
+ // Set BCC recipients
+ $email->setBCC($bccList);
+ }
+
$email->setSubject($subject);
+
$email->setMessage($message);
if ($email->send()) {
@@ -44,6 +61,7 @@ class MailHelper
public static function bulk_mail(array $mails = [])
{
+ // print_r();die;
$model = new JobModel();
$start = microtime(true);
$runtime= 0;
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index 26fc7dc2..e4561843 100644
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -990,7 +990,7 @@ if (!function_exists('premium_calculation_manager'))
$familiy_si_covered = ($familiy_si_covered >= $slab_value['max_si'] ? $slab_value['max_si'] : $familiy_si_covered);
$emp_data['policy_details']['basic_cover_si'] = $familiy_si_covered;
- $emp_data['policy_details']['date_coverage'] = (empty($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
$emp_data['policy_details']['premium'] = get_premium_for_si(slab_details: $slab_details,si_amount: $familiy_si_covered,band: $employee_received_band);
@@ -1015,7 +1015,7 @@ if (!function_exists('premium_calculation_manager'))
{
$emp_data['policy_details']['basic_cover_si'] = $employee_received_si;
- $emp_data['policy_details']['date_coverage'] = (empty($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
$emp_data['policy_details']['premium'] = $slab_value['premium'];
@@ -1040,7 +1040,7 @@ if (!function_exists('premium_calculation_manager'))
{
$emp_data['policy_details']['basic_cover_si'] = $employee_received_si;
- $emp_data['policy_details']['date_coverage'] = (empty($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
+ $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
$emp_data['policy_details']['premium'] = $slab_value['premium'];
@@ -1281,4 +1281,20 @@ if(!function_exists('remap_default_age_ratio_into_relationship'))
return $general_relationships;
}
+}
+
+
+if(!function_exists('check_dup_mobileno'))
+{
+ function check_dup_mobileno(array $row,array $existing_mobilenos)
+ {
+ foreach($existing_mobilenos as $k => $value)
+ {
+ if ($row['12'] == $value['mobile']) {
+ return array('status' => false,'error' => "Duplicate Mobile No");
+ // break;
+ }
+ }
+ return array('status' => true);
+ }
}
\ No newline at end of file
diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php
new file mode 100644
index 00000000..f93e79f6
--- /dev/null
+++ b/app/Helpers/sendMailNotification.php
@@ -0,0 +1,413 @@
+", $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+ if ($dataToInsert['relationship'] == 'Self' && $mail != null || $mail != '') {
+ $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails']];
+ }
+ return $wholeData;
+ } else if($action == 'member_reminder_mail'){
+
+ // print_r($params);die;
+ $EmployeeModel = new EmployeeModel();
+ $emp_data = $params['emp_data'];
+ $notification_data = $params['notification_data'];
+ $client_data = $params['client_data'];
+
+ $subject = $notification_data['subject'];
+ $app_link = $_ENV['App_Url'];
+ $mail_content = $notification_data['mail_content'];
+ $nhance_logo = $_ENV['NHANCE_LOGO'];
+
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ if ($emp_data && (isset($notification_data) && $notification_data['enabled'] == 1)) {
+ foreach ($emp_data as $key => $value) {
+ if ($value['relationship'] != 'Self') {
+
+ $emp_data = $EmployeeModel->where('client_id', $client_data['id'])->where('emp_code', $value['emp_code'])->where('is_active',1)->findAll();
+
+ foreach ($emp_data as $key => $value) {
+ if ($value['relationship'] == 'Self') {
+ $employee_name =$value['name'];
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+
+ $mail = $value['email_corporate'];
+ }
+ }
+ }else{
+ $employee_name =$value['name'];
+ $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content);
+ $mail = $value['email_corporate'];
+ }
+ $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+ }
+ return $wholeData;
+ }else{
+ return "false";
+ }
+ } 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'];
+
+
+ $mail_content = $notification['mail_content'];
+ $mail = $get_emp_email_and_other_details['email_corporate'];
+ $subject = $notification['subject'];
+ $link = generate_download_link($rand_string);
+ $app_link = $_ENV['App_Url'];
+ $name = $get_emp_email_and_other_details['name'];
+ $mail_content = $notification['mail_content'];
+ $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]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[member_name]]", $name, $mail_content);
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+ // $mail_content = str_replace("[[tpa_id]]", $tpa_id, $mail_content);
+ $mail_content = str_replace("[[ecard_download_link]]", "Download Insurance Card", $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $wholeData = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content,'bcc'=> $client_data['common_mails']];
+
+ return $wholeData;
+ } else if($action == 'member_review_and_summary_mail'){
+
+ $array_list = $params['array_list'];
+ $client_policy_id = $params['client_policy_id'];
+ $emp_code = $params['emp_code'];
+ $client_id = $params['client_id'];
+
+ $clientModel = new ClientModel();
+ $notificationModel = new NotificationModel();
+
+ $client_data =$clientModel->where('id', $client_id)->first();
+ $notification_data = $notificationModel->where('client_id' ,$client_id)->where('template_name', $action)->first();
+
+ if ($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_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ if($inner_item['relationship'] == 'Self' || $inner_item['relationship'] == 'self'){
+ $mail = $inner_item['email_corporate'];
+ $name = $inner_item['name'];
+ }
+ // print_r($inner_item);die;
+ $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;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+ $mail_content = str_replace("[[member_name]]", $name, $mail_content);
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+ // $mail = "aadhavanvalli@gmail.com";
+
+ $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+
+ return $wholeData;
+
+ }
+ // print_r($wholeData);die;
+ } else if($action == 'account_maneger_summary_mail'){
+
+ $client_id = $params['client_id'];
+
+ $clientModel = new ClientModel();
+
+ $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 ($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_data['client_name'], $mail_content);
+ $mail_content = str_replace("[[nhance_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ $array_list = $params['array_list'];
+
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ // print_r($inner_item);die;
+ $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;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+
+ $account_manager_mail_list = [];
+ foreach ($user_list as $key => $value) {
+ $full_name = $value['first_name'] .' ' .$value['last_name'];
+ $mail_content = str_replace("[[member_name]]", $full_name , $mail_content);
+
+ $wholeData[] = ['mail' => $value['email'], 'subject' => $subject,'message'=> $mail_content];
+ // $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'];
+
+ $clientModel = new ClientModel();
+
+ $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 ($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]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_logo]]", "
", $mail_content);
+ $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content);
+
+ $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content);
+
+ // Step 1: Replace the placeholder with an HTML table structure
+ $mail = '';
+ // print_r($array_list);die;
+ $table_content = '';
+ $addtional_premium = 0;
+ $gst = 0;
+ $array_list = $params['array_list'];
+
+ foreach ($array_list as $item) {
+ $table_content .= 'Policy Name : ';
+ $temp_data ='';
+ foreach ($item as $inner_item) {
+ $policy_name = $inner_item['policy_name'];
+ $temp_data .= '| ' . $inner_item['name'] . ' | '.$inner_item['mobile'].' | ₹'.number_format($inner_item['basic_cover_si'], 2, '.', ',').' | '.\DateTime::createFromFormat('Y-m-d', $inner_item['dob'])->format('d-m-Y').' |
';
+ // print_r($inner_item);die;
+ $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;
+ }
+ }
+ $table_content .= $policy_name.'
| Name | Mobile Number | Sum Insure | Date Of Birth |
';
+ $table_content .= $temp_data;
+ $table_content .= '
';
+
+ if ($is_addon == 2 || $is_addon == 3) {
+ $addon_list_array = [
+ 'policy_name'=>$policy_name,
+ 'addtional_premium'=>$addtional_premium,
+ 'gst'=>$gst
+ ];
+ $Addon_list[]= $addon_list_array;
+
+ }
+
+
+ $temp_data = '';
+ $addtional_premium = 0;
+ $gst = 0;
+
+ }
+
+ $table_content .='
| Policy Name | Additional Premium | GST | Total |
';
+ $sum_tolal = 0;
+ foreach ($Addon_list as $key => $value) {
+ $sum_tolal = $value['gst'] + $value['addtional_premium'] + $sum_tolal;
+ $table_content .= '| '.$value['policy_name'].' | ₹'.$value['addtional_premium'].' | '.$value['gst'].' | '.$value['gst'] + $value['addtional_premium'] .' |
';
+ }
+ $table_content .= ' | | Total | '.$sum_tolal.' |
';
+ $table_content .= '
';
+
+ $mail_content = str_replace("[[member_summary]]", $table_content , $mail_content);
+
+
+ $hr_mails = $client_data['hr_mails'];
+ $mail_array = explode(',', $hr_mails);
+ $mail_array = array_map('trim', $mail_array);
+
+ foreach ($mail_array as $key => $value) {
+ $wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content];
+ // $wholeData[] = ['mail' => $value, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']];
+ }
+
+ return $wholeData;
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/Models/BatchFileModel.php b/app/Models/BatchFileModel.php
index 5976d6a2..1d2b4a0d 100644
--- a/app/Models/BatchFileModel.php
+++ b/app/Models/BatchFileModel.php
@@ -22,6 +22,8 @@ class BatchFileModel extends Model
"updated_by",
"is_active",
"amount",
+ "status",
+ "error_data",
];
// Callbacks
diff --git a/app/Models/ClientModel.php b/app/Models/ClientModel.php
index 6b55dd11..27b48bc9 100644
--- a/app/Models/ClientModel.php
+++ b/app/Models/ClientModel.php
@@ -26,6 +26,8 @@ class ClientModel extends Model
"created_by",
"updated_by",
"is_active",
+ "common_mails",
+ "hr_mails"
];
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 1fc9a45d..291b13f9 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -76,8 +76,8 @@ class ClientPolicyModel extends Model
->select('policy_type.policy_type as policy_type_name')
->join('insurers', 'insurers.id = client_policy.insurer_id')
->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id')
- ->join('tpa', 'tpa.id = client_policy.tpa_id')
- ->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id')
+ ->join('tpa', 'tpa.id = client_policy.tpa_id', 'left')
+ ->join('tpa_branch', 'client_policy.tpa_branch_id = tpa_branch.id', 'left')
->join('policies', 'policies.id = client_policy.policy_id')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('client_policy.client_id', $client_id)
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index 7e86f74d..7ec30755 100644
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -98,13 +98,15 @@ class EmployeeModel extends Model
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [],array $relationship = [])
{
- $result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit'])
+ $result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit','policies.name as policy_name','client_policy.is_addon'])
->join('employee_polices', 'employee_polices.employee_id = employees.id')
+ ->join('client_policy', 'client_policy.id = employee_polices.client_policy_id')
+ ->join('policies', 'policies.id = client_policy.policy_id')
->where('employees.is_active',1)
->when($client_policy_id, function($query) use ($client_policy_id){
return $query->where('employee_polices.client_policy_id',$client_policy_id);
})
-
+
->where('employee_polices.is_active',1)
->where('employees.is_active',1)
// ->where('employees.emp_code',$emp_code)
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index ef52cb07..5b5caf18 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -771,5 +771,22 @@ class EmployeePolicyModel extends Model
}
+ public function getExisitingMobileNos(string $client_policy_id)
+ {
+ $result = $this->select(['employee_polices.id','emp.id as emp_id','emp.relationship','emp.emp_code','emp.name','emp.email_corporate','emp.mobile as mobile'])
+ ->join('employees emp', 'employee_polices.employee_id = emp.id')
+ ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id')
+ ->where('employee_polices.client_policy_id',$client_policy_id)
+ ->whereIn('employee_polices.status', ['Active'])
+ ->whereIn('emp.emp_status', ['Active'])
+ ->where('emp.is_active', 1)
+ ->where('emp.relationship', 'Self')
+ ->where('emp.mobile is not null')
+ ->where('employee_polices.is_active', 1)
+ ->findAll();
+
+ return ($result);
+ }
+
}
\ No newline at end of file
diff --git a/app/Models/NotificationModel.php b/app/Models/NotificationModel.php
new file mode 100644
index 00000000..d78d2a69
--- /dev/null
+++ b/app/Models/NotificationModel.php
@@ -0,0 +1,12 @@
+
-.table-responsive {
- overflow-x: auto;
-}
+ .table-responsive {
+ overflow-x: auto;
+ }
@@ -27,29 +27,51 @@
Action |
Count |
Amount |
+
status |
- $file) {
+ $file) {
?>
-
- |
- |
- 5 ? substr($file['file_name'], 0, 10) . "..." : $file['file_name'] ?> |
- |
- |
- |
- |
- |
- |
- |
-
-
+
+ |
+ |
+ 5 ? substr($file['file_name'], 0, 10) . "..." : $file['file_name'] ?> |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+
+
+
+
+ failed
+
+ failed
+
+ failed
+
+ failed
+
+
+
+ |
+
+
+
@@ -59,31 +81,31 @@
\ No newline at end of file
diff --git a/app/Views/client_basic_info.php b/app/Views/client_basic_info.php
index 3f08c20a..68749f6f 100644
--- a/app/Views/client_basic_info.php
+++ b/app/Views/client_basic_info.php
@@ -203,11 +203,13 @@ input:checked + .slider:before {
document.addEventListener("DOMContentLoaded", function() {
const switchCheckbox = document.getElementById('switch-checkbox');
const switchInner = document.querySelector('.switch-inner');
-
- switchInner.addEventListener('click', function() {
+ if (switchInner) {
+ switchInner.addEventListener('click', function() {
switchCheckbox.checked = !switchCheckbox.checked;
switchInner.style.transform = switchCheckbox.checked ? 'translateX(100%)' : 'translateX(0)';
});
+ }
+
});
diff --git a/app/Views/client_kyc.php b/app/Views/client_kyc.php
index d842b1f4..f53b7c16 100644
--- a/app/Views/client_kyc.php
+++ b/app/Views/client_kyc.php
@@ -176,6 +176,26 @@
$('#name_'+item.kyc_doc_type_id).html(item.file_name);
$('#form_'+item.kyc_doc_type_id).hide();
+ console.log('step 1')
+
+ if(item.file_name != null && item.file_name != ""){
+ console.log('step 2')
+
+ $('#download_'+item.kyc_doc_type_id).show();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '= base_url('download-kyc-docs/') ?>' + item.file_name);
+ $('#delete_'+item.kyc_doc_type_id).show();
+
+ }
+ else{
+ console.log('step 3')
+
+ $('#download_'+item.kyc_doc_type_id).hide();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '#');
+ $('#delete_'+item.kyc_doc_type_id).hide();
+
+ }
+ console.log('step 4')
+
});
},
@@ -212,19 +232,27 @@
var tbody = $('#tbody');
tbody.empty();
- $.each(res.data, function (index, item) {
+ $.each(res.data, function(index, item) {
var row = `
- | ${item.file_name} |
- |
+ ${item.file_name} |
+
+
+ |
|
- |
+
+
+
+ |
`;
tbody.append(row);
});
+
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
@@ -250,7 +278,10 @@
| ${item.other_docs_name} |
${item.file_name} |
- |
+
+
+
+ |
`;
@@ -267,6 +298,29 @@
$('#name_'+item.kyc_doc_type_id).show();
$('#name_'+item.kyc_doc_type_id).html(item.file_name);
$('#form_'+item.kyc_doc_type_id).hide();
+
+ console.log('step 1')
+
+ if(item.file_name != null && item.file_name != ""){
+ console.log('step 2')
+
+ $('#download_'+item.kyc_doc_type_id).show();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '= base_url('download-kyc-docs/') ?>' + item.file_name);
+ $('#delete_'+item.kyc_doc_type_id).show();
+
+
+ }
+ else{
+ console.log('step 3')
+
+ $('#download_'+item.kyc_doc_type_id).hide();
+ $('#download_' + item.kyc_doc_type_id).attr('href', '#');
+ $('#delete_'+item.kyc_doc_type_id).hide();
+
+
+ }
+ console.log('step 4')
+
}, 1000);
});
@@ -335,7 +389,10 @@
| ${item.other_docs_name} |
${item.file_name} |
- |
+
+
+
+ |
`;
}
diff --git a/app/Views/client_onboarding.php b/app/Views/client_onboarding.php
index d2e73c99..5ae22d1a 100644
--- a/app/Views/client_onboarding.php
+++ b/app/Views/client_onboarding.php
@@ -76,6 +76,12 @@ body {
Branch & Contacts
+
+
+
+ Notifications
+
+
@@ -84,6 +90,8 @@ body {
+
+
@@ -187,6 +195,24 @@ body {
}
+
+ function client_notification() {
+ var check_client_id = $('#general_PrimaryKey');
+
+
+ if(check_client_id[0].value == '' || check_client_id[0].value == null || check_client_id[0].value == 0){
+ $('#btnBranchAdd').hide();
+ toastr.warning('Please Add the Client!', 'warning',{timeOut: 2000});
+ }else{
+ if ($('#btnBranchBack')[0].style.display == 'none') {
+ $('#btnBranchAdd').show();
+ }
+ }
+
+ }
+
+
+
document.getElementById("kyc_tab").addEventListener("click", function(event) {
event.preventDefault();
client_kyc_docs();
@@ -209,6 +235,12 @@ body {
event.preventDefault();
client_branch_contact();
});
+
+ // document.getElementById("notification_tab").addEventListener("click", function(event) {
+ // event.preventDefault();
+ // client_notification();
+ // });
+
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index 782c000d..8ee76ec5 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -80,7 +80,7 @@