MERGE_DEV

This commit is contained in:
velz 2024-04-16 09:55:42 +05:30
parent 4c09a3286e
commit 07aef79902
29 changed files with 2809 additions and 1397 deletions

View File

@ -211,6 +211,10 @@ $routes->group("/util", ["filter" => "authMVC"], function($routes){
$routes->get("get-emp-endorsement/(:any)", "EmployeeController::getEmpEndoresmentEntry/$1");
$routes->post("import-export", "EmployeeController::importExport");
$routes->get("featch-client-policy-list/(:any)", "ClientController::getClientPolicyList/$1");
$routes->get("download-file-list/(:any)", "EmployeeController::downloadFileList/$1");
$routes->get("featch-emp-list", "EmployeeController::featchEmpList/$1");
$routes->get("view-success-emp-list", "EmployeeController::viewUploadedEmployeeList/$1");
$routes->get("fetch-policy-for-policy-type", "ClientController::fetchPolicyDataForPolicyType/$1");
});
@ -232,11 +236,14 @@ $routes->group("/api", ["filter" => "authJWT"], function($routes){
});
$routes->get("/getEmployeeProfile", "EmployeeRestController::getEmployeeProfile/$1");
$routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfile");
$routes->post("/calculatePremium", "EmployeeRestController::calculatePremium");
$routes->group("employeeRest", ["filter" => "authJWT"], function($routes){
$routes->get("getEmployeeProfile", "EmployeeRestController::getEmployeeProfile");
$routes->post("employeeUpload", "EmployeeRestController::employeeUpload");
$routes->get("relationshipList", "EmployeeRestController::relationshipList");
$routes->get("getEmployeeAndDependence", "EmployeeRestController::getEmployeeAndDependence");

View File

@ -150,7 +150,6 @@ class ClientController extends AdminController
public function clientOnboarding()
{
$this->myLogger->logme('error','Client Onboarding function called');
$headerData['page_name'] = 'Client Onboarding';
@ -162,6 +161,7 @@ class ClientController extends AdminController
$data['state'] = $this->stateModel->getAllStates();
$data['RM'] = $this->userModel->findAll();
$data['policyGridData'] = $this->policyGridModel->findAll();
$data['policy_type'] = ['1'=>'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon'];
// echo "<pre>";
// print_r($data); die;
@ -196,7 +196,8 @@ class ClientController extends AdminController
$subTypeOptions = [
1 => 'Deposit',
2 => 'Adjustment',
3 => 'Deletion',
3 => 'Refund',
4 => 'Debit',
// Add more options as needed
];
$data['subTypeOptions'] = $subTypeOptions;
@ -243,7 +244,7 @@ class ClientController extends AdminController
public function editClientOnboarding($id = null)
{
{
$this->myLogger->logme('error','Edit Client Onboarding function called');
$headerData['page_name'] = 'Edit Client Onboarding';
@ -256,6 +257,7 @@ class ClientController extends AdminController
$editData['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames();
$editData['kyc_docs'] = $this->kycDocsModel->findAll();
$editData['policyGridData'] = $this->policyGridModel->findAll();
$editData['policy_type'] = ['1'=>'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon'];
$editData['client'] = $this->clientModel->where(['id' => $id])->first();
@ -274,9 +276,8 @@ class ClientController extends AdminController
$editData['client_policy'] = $clientPoliceData;
// echo "<pre>";
// print_r($clientPoliceData); die;
// dd($editData); die;
echo view('layout/header', $headerData);
echo view('client_onboarding', $editData);
@ -576,6 +577,8 @@ class ClientController extends AdminController
$insurerValue = (string) $this->request->getPost('insurer');
list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
$client_id = $this->request->getPost('client_id');
$data['insurer_branch_id'] = $insurerBranchId;
$data['insurer_id'] = $insurerId;
@ -583,12 +586,11 @@ class ClientController extends AdminController
$tpaValue = (string) $this->request->getPost('tpa');
list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
$data['client_id'] = $client_id;
$data['tpa_branch_id'] = $tpaBranchId;
$data['tpa_id'] = $tpaId;
$data['policy_id'] = $this->request->getPost('policy_id');
$data['policy_type_id'] = $this->request->getPost('policy_type_id');
$data['client_id'] = $this->request->getPost('client_id');
$data['no_of_lives'] = $this->request->getPost('no_of_lives');
$data['policy_status'] = $this->request->getPost('policy_status');
@ -602,29 +604,28 @@ class ClientController extends AdminController
$data['earned_premium_amount'] = $this->request->getPost('earned_premium_amount');
$data['claims_incurred_amount'] = $this->request->getPost('claims_incurred_amount');
$data['is_addon'] = $this->request->getPost('is_addon');
$data['base_policy'] = $this->request->getPost('base_policy');
$data['base_policy'] = $this->request->getPost('base_policy');
$data['policy_status'] = 1;
if (!isset($data['is_addon'])) {
$data['is_addon'] = 0;
} elseif ($data['is_addon']) {
$data['is_addon'] = 1;
}
$policy_terms = $this->clientPolicyModel->where('id', $this->request->getPost('base_policy'))->first();
if ( $this->request->getPost('is_addon') == 2 || $this->request->getPost('is_addon') == 3) {
$data['policy_terms'] = $policy_terms['policy_terms'];
}
$data['policy_start_date'] = change_date_format($this->request->getPost('policy_start_date'), 'd-m-Y', 'Y-m-d');
$data['policy_end_date'] = change_date_format($this->request->getPost('policy_end_date'), 'd-m-Y', 'Y-m-d');
$data['created_by'] = get_session_userid();
$insert = $this->clientPolicyModel->insert($data);
if($insert){
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id'));
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));
// }
return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'CERATE'], 200);
}else{
return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200);
@ -636,9 +637,12 @@ class ClientController extends AdminController
$this->myLogger->logme('error','Client policy function called');
$id = $this->request->getPost('PrimaryKey');
$client_id = $this->request->getPost('client_id');
$insurerValue = (string) $this->request->getPost('insurer');
list($insurerBranchId, $insurerId) = explode('-', $insurerValue);
@ -649,6 +653,7 @@ class ClientController extends AdminController
list($tpaBranchId, $tpaId) = explode('-', $tpaValue);
$data['tpa_branch_id'] = $tpaBranchId;
$data['client_id'] = $client_id;
$data['tpa_id'] = $tpaId;
$data['policy_id'] = $this->request->getPost('policy_id');
$data['policy_type_id'] = $this->request->getPost('policy_type_id');
@ -669,29 +674,30 @@ class ClientController extends AdminController
$data['claims_incurred_amount'] = $this->request->getPost('claims_incurred_amount');
$data['is_addon'] = $this->request->getPost('is_addon');
$data['base_policy'] = $this->request->getPost('base_policy');
$data['policy_status'] = 1;
$policy_terms = $this->clientPolicyModel->where('id', $this->request->getPost('base_policy'))->first();
if ( $this->request->getPost('is_addon') == 2 || $this->request->getPost('is_addon') == 3) {
$data['policy_terms'] = $policy_terms['policy_terms'];
}
if (!isset($data['is_addon'])) {
$data['is_addon'] = 0;
} elseif ($data['is_addon']) {
$data['is_addon'] = 1;
}
// dd($data);
$data['updated_by'] = get_session_userid();
$insert = $this->clientPolicyModel->update($id,$data);
$lastQuery = $this->clientPolicyModel->getLastQuery();
// echo '<pre>';
// print_r($lastQuery); die;
// print_r($data); die;
if($insert){
$clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($client_id);
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));
// }
return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'EDIT'], 200);
}else{
return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200);
@ -704,6 +710,7 @@ class ClientController extends AdminController
$policy_type = $this->request->getPost('policy_type');
$client_id = $this->request->getPost('client_id');
$client_policy_id = $this->request->getPost('client_policy_id');
$premium_type = $this->request->getPost('premium_type');
if(!empty($client_id) && $client_id != null){
$client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$client_id = $client_policy_data['client_id'];
@ -719,6 +726,7 @@ class ClientController extends AdminController
$data['client_id'] = $client_id;
$data['client_policy_id'] = $client_policy_id;
$data['policy_grid_id'] = $policy_grid_id;
$data['premium_type'] = $premium_type;
$premium = [];
@ -943,10 +951,9 @@ class ClientController extends AdminController
$insurer_id = $client_policy_data['insurer_id'];
$client_id = $client_policy_data['client_id'];
$polices = $this->policesModel->where(['insurer_id' => $insurer_id, 'is_active' => 1])->findAll();
$client_policy_list = $this->clientPolicyModel->select('policies.*')
->join('policies', 'policies.id = client_policy.policy_id')
->where('client_id', $client_id)
->findAll();
$client_policy_list = $this->clientPolicyModel->getpolicyWithPattern( $client_id );
return $this->respond(['status' => true,'code' => 200, 'client_policy_list' => $client_policy_list, 'data' => $client_policy_data, "insurer_id" => $client_policy_data['insurer_id'], 'policy' => $polices], 200);
}else{
return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200);
@ -970,7 +977,7 @@ class ClientController extends AdminController
->where("employees.emp_status",'active')
->countAllResults();
if($emp_count = 0){
if($emp_count == 0){
$emp_count = true;
}else{
$emp_count = false;
@ -1252,7 +1259,7 @@ class ClientController extends AdminController
->where("employees.emp_status",'active')
->countAllResults();
if($emp_count = 0){
if($emp_count == 0){
$emp_count = true;
}else{
$emp_count = false;
@ -1366,7 +1373,8 @@ class ClientController extends AdminController
}
public function updateClientPolicyStatus(){
public function updateClientPolicyStatus()
{
$client_policy_id = $this->request->getGet('client_policy_id');
$record = $this->clientPolicyModel->where('id', $client_policy_id)->first();
@ -1437,12 +1445,10 @@ class ClientController extends AdminController
}
public function getClientPolicyList($client_id = null){
public function getClientPolicyList($client_id = null)
{
$record = $this->clientPolicyModel->select('policies.*')
->join('policies', 'policies.id = client_policy.policy_id')
->where('client_id', $client_id)
->findAll();
$record = $this->clientPolicyModel->getpolicyWithPattern( $client_id);
if ($record) {
return $this->respond(['Status' => true,'code' => 200,'data' => $record], 200);
@ -1451,4 +1457,38 @@ class ClientController extends AdminController
}
}
public function fetchPolicyDataForPolicyType($client_policy_id){
$client_policy_id = $this->request->getGet('client_policy_id');
$policy_type = $this->request->getGet('policy_type');
$client_id = $this->clientPolicyModel->where('id', $client_policy_id)->first();
$insurer_id = $client_id['insurer_id'];
if( $policy_type == 2 ){
$polices = $this->policesModel
->select('policies.*')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('policy_type.policy_type', 'GMC - Top-up')
->where(['policies.insurer_id' => $insurer_id, 'policies.is_active' => 1])->findAll();
}else if( $policy_type == 3 ){
$polices = $this->policesModel
->select('policies.*')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->whereIn('policy_type.policy_type', ['GMC - Parents', 'GMC - Top-up(Parents)'])
->where(['policies.insurer_id' => $insurer_id, 'policies.is_active' => 1])->findAll();
}
$data = $this->clientPolicyModel->getClientPolicyByPolicyType($client_id['client_id'], $policy_type);
return $this->respond(['Status' => true,'code' => 200,'data' => $data, 'client_policy_id' => $client_policy_id, 'policy' => $polices], 200);
}
}

View File

@ -22,7 +22,8 @@ use App\Models\ClientDepositModel;
use App\Controllers\Jobs ;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
class EmpDataServiceController extends BaseController
{
@ -122,9 +123,27 @@ class EmpDataServiceController extends BaseController
// Define headers for the Excel file
$headers = [
'S.No', 'NAME OF EMP/DEP', 'EMP ID', 'EMP/DEP TYPE', 'RELATION', 'DOB', 'GENDER', 'PRE EXISTING AILMENTS',
'BASIC COVER SI', 'DATE OF COVERAGE', 'AGE', 'RELATIONSHIP', 'REMARKS', 'POLICY END DATE', 'NO OF DAYS', 'TPA ID', 'UHID',
'PREMIUM', 'PR0 RATA PREMIUM', 'GST', 'TOTAL'
'S.No',
'NAME OF EMP/DEP',
'EMP ID',
'EMP/DEP TYPE',
'RELATION',
'DOB',
'GENDER',
'PRE EXISTING AILMENTS',
'BASIC COVER SI',
'DATE OF COVERAGE',
'AGE',
'RELATIONSHIP',
'REMARKS',
'POLICY END DATE',
'NO OF DAYS',
'TPA ID',
'UHID',
'PREMIUM',
'PR0 RATA PREMIUM',
'GST',
'TOTAL'
];
// Generate Excel file
@ -445,95 +464,112 @@ 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'];
$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_code = generate_random_string($random_number_count);
$this->myLogger->logme('error','Inception Import BATCH CODE : {data}', ['data'=> $batch_code ]);
$import_data['batch_code'] = $batch_code;
$import_data['created_by'] = get_session_userid();
$import_data['file_name'] = $filename;
$insert = $this->batchFileModel->insert($import_data);
$batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
$batch_code_for_batch_list['batch_code'] = $batch_file_batch_code['batch_code'];
$batch_code_for_batch_list['created_by'] = get_session_userid();
$file_name_with_path = WRITEPATH."/uploads/import_excel/".$batch_file_batch_code['file_name'];
//check the file exist or not
if(!file_exists($file_name_with_path))
{
return 2;
}
$data = read_excel_file_to_array($file_name_with_path);
$data = $this->readExcelToArray($file);
unset($data[0]);
array_pop($data);
$count = count($data);
$this->batchFileModel->where('id', $insert)->set('count', $count)->update();
// dd($data );
$employeeIds = [];
foreach ($data as $key => $value) {
// Check if the array is not empty and has the necessary data
if (!empty($value) && (isset($value[15]) || isset($value[16]))) {
// Extract the client_policy_id and tpa_id from the array
$tpa_id = $value[15] != null ? $value[15] : '';
$uhid = $value[16] != null ? $value[16] : '';
$missing_id = [];
$empty_emp_tpa_uh_ids = [];
foreach ($data as $key => $value) {
try {
if ($value[15] === null) {
$missing_id[] = $key + 1;
}
$emp_code = $value[2];
$name = $value[1];
$val = $this->employeePolicyModel
->select('employee_polices.id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employee_polices.client_policy_id', $client_policy_id)
->where('employees.client_id', $client_id)
->where('employees.name', $name)
->where('employees.emp_code', $emp_code)
->where('employee_polices.is_active', 1)
->first();
$db = \Config\Database::connect();
if ($val !== null) {
$id = $val['id'];
$batch_code_for_batch_list['emp_policy_id'] = $id;
$this->batchListModel->insert($batch_code_for_batch_list);
array_push($employeeIds, $id);
// Execute the query
$query = $db->table('employee_polices')
->select('employee_polices.id')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employee_polices.client_policy_id', $client_policy_id)
->where('employees.client_id', $client_id)
->where('employees.name', $name)
->where('employees.emp_code', $emp_code)
->where('(employee_polices.tpa_id IS NULL OR employee_polices.tpa_id = "")')
->where('(employee_polices.uhid IS NULL OR employee_polices.uhid = "")')
->where('employee_polices.is_active', 1)
->limit(1)
->get();
// Get the result
$result = $query->getRowArray();
if (isset($result['id']) && $result['id'] !== null) {
$empty_emp_tpa_uh_ids[] = $result['id'];
}
} catch (\Exception $e) {
// Handle the exception here
return 0;
}
}
$updateData = [
'client_policy_id' => $client_policy_id,
'client_id' => $client_id,
'name' => $name,
'emp_code' => $emp_code,
'uhid' => $uhid,
'tpa_id' => $tpa_id
];
$missing_id_count = count($missing_id);
$empty_id_count = count($empty_emp_tpa_uh_ids);
$this->employeePolicyModel->updateTPAIDorUHID($updateData);
// dd($count, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
if ($missing_id_count != $count && $missing_id_count != 0) {
return 2;
}
if ($empty_emp_tpa_uh_ids != $count && $empty_id_count == 0) {
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;
$import_data['file_name'] = $filename;
$this->insertBatchFileAndBatchListForImportExcel($import_data, $empty_emp_tpa_uh_ids);
// dd($import_data, $empty_emp_tpa_uh_ids);
foreach ($data as $key => $value) {
if (!empty($value) && (isset($value[15]) || isset($value[16]))) {
$tpa_id = $value[15] !== null ? $value[15] : '';
$uhid = $value[16] !== null ? $value[16] : '';
foreach ($empty_emp_tpa_uh_ids as $id) {
// Update employee policies based on the ID
$this->employeePolicyModel->where('id', $id)->set(['tpa_id' => $tpa_id, 'uhid' => $uhid])->update();
}
// $query = $this->employeePolicyModel->getLastQuery();
// echo $query . "<br>";
}else{
} else {
return 0;
}
}
$policy_name = $this->getPolicyNameUsingClientPolicyId($client_policy_id);
$depositeData = [
'employeeIds'=>$employeeIds,
'employeeIds'=>$empty_emp_tpa_uh_ids,
'client_id'=>$client_id,
'client_policy_id'=>$client_policy_id,
'count'=>$count,
@ -554,6 +590,76 @@ class EmpDataServiceController extends BaseController
$client_policy_id = $import_data['client_policy_id'];
$file = $import_data['file'];
$data = $this->readExcelToArray($file);
unset($data[0]);
$count = count($data);
$missing_id = [];
$empty_emp_tpa_uh_ids = [];
foreach ($data as $key => $value) {
try {
if ($value[10] === null) {
$missing_id[] = $key + 1;
}
$emp_code = $value[0];
$uhid = $value[1];
$endorsement_id = $value[10] != null ? $value[10] : '';
$db = \Config\Database::connect();
// Execute the query
$query = $db->table('emp_endorsement')
->select('emp_endorsement.id')
->join('employees', 'employees.id = emp_endorsement.pk')
->join('employee_polices', 'employee_polices.employee_id = employees.id')
->where('employee_polices.client_policy_id', $client_policy_id)
->where('employees.client_id', $client_id)
->where('employee_polices.uhid', $uhid)
->where('employees.emp_code', $emp_code)
->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
->groupBy('emp_endorsement.group_key')
->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) {
// Handle the exception here
return 0;
}
}
$missing_id_count = count($missing_id);
$empty_id_count = count($empty_emp_tpa_uh_ids);
// if($missing_id_count != $count){
// return 2;
// }
if($missing_id_count != 0 ){
return 2;
}
// if($empty_emp_tpa_uh_ids != $count){
// return 3;
// }
if( $empty_id_count == 0){
return 3;
}
// dd($count, $missing_id, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
$filename = $file->getName();
@ -601,6 +707,7 @@ class EmpDataServiceController extends BaseController
->where('employees.emp_code', $emp_code)
->where('employees.is_active', 1)
->first();
$batch_code_for_batch_list['emp_policy_id'] = $val['id'];
$this->batchListModel->insert($batch_code_for_batch_list);
@ -654,6 +761,74 @@ class EmpDataServiceController extends BaseController
$client_policy_id = $import_data['client_policy_id'];
$file = $import_data['file'];
$data = $this->readExcelToArray($file);
unset($data[0]);
$count = count($data);
$missing_id = [];
$empty_emp_tpa_uh_ids = [];
foreach ($data as $key => $value) {
try {
if ($value[19] === null) {
$missing_id[] = $key + 1;
}
$emp_name = $value[1];
$emp_code = $value[2];
$endorsement_id = $value[19] != null ? $value[19] : '';
$db = \Config\Database::connect();
// Execute the query
$query = $db->table('emp_endorsement')
->select('emp_endorsement.id')
->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
->where('employees.emp_code', $emp_code)
->where('employees.name', $emp_name)
->where('employees.client_id', $client_id)
->where('emp_endorsement.actions', 'si')
->where('employee_polices.client_policy_id', $client_policy_id)
->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
->groupBy('emp_endorsement.group_key');
// Get the result
$result = $query->get()->getRowArray();
if (isset($result['id']) && $result['id'] !== null) {
$empty_emp_tpa_uh_ids[] = $result['id'];
}
} catch (\Exception $e) {
// Handle the exception here
return 0;
}
}
$missing_id_count = count($missing_id);
$empty_id_count = count($empty_emp_tpa_uh_ids);
// if($missing_id_count != $count){
// return 2;
// }
if($missing_id_count != 0 ){
return 2;
}
// if($empty_emp_tpa_uh_ids != $count){
// return 3;
// }
if( $empty_id_count == 0){
return 3;
}
// dd($count, $missing_id, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
$filename = $file->getName();
@ -678,7 +853,7 @@ class EmpDataServiceController extends BaseController
{
return 2;
}
$data = read_excel_file_to_array($file_name_with_path);
unset($data[0]);
$count = count($data);
@ -750,10 +925,7 @@ class EmpDataServiceController extends BaseController
$this->batchListModel->insert($batch_code_for_batch_list);
array_push($employeeIds, $id);
}
// $query = $this->employeePolicyModel->getLastQuery();
// echo $query . "<br>";
}else{
return 0;
@ -786,6 +958,77 @@ class EmpDataServiceController extends BaseController
$file = $import_data['file'];
$data = $this->readExcelToArray($file);
unset($data[0]);
array_pop($data);
$count = count($data);
$missing_id = [];
$empty_emp_tpa_uh_ids = [];
foreach ($data as $key => $value) {
try {
if ($value[15] === null) {
$missing_id[] = $key + 1;
}
$emp_name = $value[2]; //employee name
$emp_code = $value[1]; //employee code
$date_of_exit = $value[7]; // date of releving
$endorsement_id = $value[15] != null ? $value[15] : ''; //endorsement id
$db = \Config\Database::connect();
// Execute the query
$query = $db->table('emp_endorsement')
->select('emp_endorsement.id')
->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
->where('employees.emp_code', $emp_code)
->where('employees.name', $emp_name)
->where('employees.client_id', $client_id)
->where('emp_endorsement.actions', 'd')
->where('employee_polices.client_policy_id', $client_policy_id)
->where('(emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = "")')
->groupBy('emp_endorsement.group_key');
$result = $query->get()->getRowArray();
if (isset($result['id']) && $result['id'] !== null) {
$empty_emp_tpa_uh_ids[] = $result['id'];
}
} catch (\Exception $e) {
// Handle the exception here
return 0;
}
}
$missing_id_count = count($missing_id);
$empty_id_count = count($empty_emp_tpa_uh_ids);
// if($missing_id_count != $count){
// return 2;
// }
if($missing_id_count != 0 ){
return 2;
}
// if($empty_emp_tpa_uh_ids != $count){
// return 3;
// }
if( $empty_id_count == 0){
return 3;
}
// dd($count, $missing_id_count, $empty_id_count, $data, $empty_emp_tpa_uh_ids);
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
$filename = $file->getName();
@ -947,7 +1190,7 @@ class EmpDataServiceController extends BaseController
$data = [
'amount' => $amount->total_sum,
'sub_type_id' => 1,
'sub_type_id' => 4,
'client_id' => $arrayData['client_id'],
'insurer_id' => $insurer_id['insurer_id'],
'description' => $description,
@ -986,7 +1229,7 @@ class EmpDataServiceController extends BaseController
$data = [
'amount' => $amount->total_sum,
'sub_type_id' => 1,
'sub_type_id' => 4,
'client_id' => $arrayData['client_id'],
'insurer_id' => $insurer_id['insurer_id'],
'description' => $description,
@ -1027,7 +1270,7 @@ class EmpDataServiceController extends BaseController
$data = [
'amount' => $amount->total_sum,
'sub_type_id' => 1,
'sub_type_id' => 3,
'client_id' => $arrayData['client_id'],
'insurer_id' => $insurer_id['insurer_id'],
'description' => $description,
@ -1219,4 +1462,59 @@ class EmpDataServiceController extends BaseController
// -----------------------------------------------------------------------------------
public function readExcelToArray($file)
{
if ($file->isValid() && !$file->hasMoved()) {
$file = $file;
$reader = new Xlsx();
$spreadsheet = $reader->load($file->getPathname());
// Get the active sheet
$sheet = $spreadsheet->getActiveSheet();
// Iterate through rows to read data
$data = [];
foreach ($sheet->getRowIterator() as $row) {
$rowData = [];
foreach ($row->getCellIterator() as $cell) {
$rowData[] = $cell->getValue();
}
$data[] = $rowData;
}
return $data;
} else {
return false;
}
}
public function insertBatchFileAndBatchListForImportExcel($data, $ids)
{
$random_number_count = 4;
$data['batch_code'] = generate_random_string($random_number_count);
$data['created_by'] = get_session_userid();
$insert = $this->batchFileModel->insert($data);
$batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
if($insert){
foreach($ids as $id){
$batch_list_data['batch_code'] = $batch_file_batch_code['batch_code'];
$batch_list_data['emp_policy_id'] = $id;
$batch_list_data['created_by'] = get_session_userid();
$this->batchListModel->insert($batch_list_data);
}
}
return true;
}
}

View File

@ -217,7 +217,7 @@ class EmployeeController extends AdminController
$data['insurer_or_tpa'] = ['insurer' => 'Insurer','tpa' =>'TPA'];
$data['fileList'] = $this->fileModel
->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name'])
->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id'])
->join('user_profiles up','files.created_by = up.id')
->join('client_policy cp','files.policy_id = cp.id','left')
->join('policies pm','cp.policy_id = pm.id','left')
@ -397,15 +397,16 @@ class EmployeeController extends AdminController
return redirect()->to(base_url('employee/upload'));
}else if($return == 2){
session()->setFlashdata('error', 'File not found');
session()->setFlashdata('error', 'The TPA ID or UHID columns are empty.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 0){
session()->setFlashdata('error', 'Something went wrong');
session()->setFlashdata('error', 'Please upload the correct file, something went wrong.');
return redirect()->to(base_url('employee/upload'));
}
}else if($event_type == 'correction'){
}else if($return == 3){
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
} }else if($event_type == 'correction'){
$return = $empDataServiceController->importExcelDataForCorrection($batch_data);
if($return == 1){
@ -413,11 +414,14 @@ class EmployeeController extends AdminController
return redirect()->to(base_url('employee/upload'));
}else if($return == 2){
session()->setFlashdata('error', 'File not found');
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 0){
session()->setFlashdata('error', 'Something went wrong');
session()->setFlashdata('error', 'Please upload the correct file, something went wrong.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 3){
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
@ -429,11 +433,14 @@ class EmployeeController extends AdminController
return redirect()->to(base_url('employee/upload'));
}else if($return == 2){
session()->setFlashdata('error', 'File not found');
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 0){
session()->setFlashdata('error', 'Something went wrong');
session()->setFlashdata('error', 'Please upload the correct file, something went wrong.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 3){
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
@ -445,11 +452,14 @@ class EmployeeController extends AdminController
return redirect()->to(base_url('employee/upload'));
}else if($return == 2){
session()->setFlashdata('error', 'File not found');
session()->setFlashdata('error', 'The Endorsement ID columns are empty.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 0){
session()->setFlashdata('error', 'Something went wrong');
session()->setFlashdata('error', 'Please upload the correct file, something went wrong.');
return redirect()->to(base_url('employee/upload'));
}else if($return == 3){
session()->setFlashdata('error', 'File already uploaded');
return redirect()->to(base_url('employee/upload'));
}
@ -549,6 +559,7 @@ class EmployeeController extends AdminController
}
// @param int $client_policy_id
// this funciton initiate Inception/adition/DA of employees data only form enrollment app when passing
// client_policy_id pull draft and enrolled status employees and proceed to calculatin and make entry in DB
@ -558,5 +569,91 @@ class EmployeeController extends AdminController
$res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
dd($res);
}
public function downloadFileList($fileName = null)
{
// $actionType = $this->request->getGet();
try {
$filePath = WRITEPATH . '/uploads/excel/' . $fileName;
// Check if the file exists
if (file_exists($filePath)) {
// Set the appropriate MIME type
$mimeType = mime_content_type($filePath);
// Send the file to the client for download
return $this->response->download($filePath, null, $mimeType);
} else {
throw new \CodeIgniter\Exceptions\PageNotFoundException();
}
} catch (\Exception $e) {
// Handle any exceptions
$errorMessage = $e->getMessage();
$this->myLogger->logme('error', $errorMessage);
// You can return an error response here
echo $errorMessage;
}
}
public function featchEmpList()
{
$client_id = $this->request->getGet('client_id');
$policy_id = $this->request->getGet('policy_id');
$emp_data['employees'] = $this->employeePolicyModel->getEmployeePolicyForFileList($client_id, $policy_id);
$html = view('employee_data_list', $emp_data);
return $this->respond(['dataStatus' => true,'code' => 200,'data' => $html], 200);
}
public function viewUploadedEmployeeList()
{
$file_id = $this->request->getGet('file_id');
// $emp_data['employees'] = $this->employeePolicyModel->getViewEmpSuccessList($file_id);
// $html = view('view_file_upload_emp_list', $emp_data);
$file_name = $this->fileModel
->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id'])
->join('user_profiles up','files.created_by = up.id')
->join('client_policy cp','files.policy_id = cp.id','left')
->join('policies pm','cp.policy_id = pm.id','left')
->join('clients c','files.client_id = c.id and files.client_id = cp.client_id','left')
->where('files.id', $file_id)->first();
try {
$filePath = WRITEPATH . '/uploads/excel/' . $file_name['file_name'];
if (file_exists($filePath)) {
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
$highestRowAndColumn = $sheet->getHighestRowAndColumn();
$excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
$emp_data['thead'] = $excel_data[0];
unset($excel_data[0]);
$emp_data['tbody'] = $excel_data;
$html = view('view_file_upload_emp_list', $emp_data);
} else {
$html = '<div class="text-center">No Data Found</div>';
}
return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html, 'file_data' => $file_name], 200);
} catch (\Exception $e) {
// Handle exception
$errorMessage = 'Error occurred: ' . $e->getMessage();
$this->myLogger->logme('error', $errorMessage);
$html = '<div class="text-center">No Data Found</div>';
return $this->respond(['dataStatus' => false, 'code' => 500, 'data' => $html, 'file_data' => $file_name], 500);
}
}
}

View File

@ -72,6 +72,7 @@ class EmployeeRestController extends AdminController
if ($emp_code) {
$relationship = 'self';
$employee = $this->employeeModel->where('emp_code', $emp_code)
->where('is_active', 1 )
->where('relationship', $relationship)
->first();
$result = $employee;
@ -92,7 +93,7 @@ class EmployeeRestController extends AdminController
$data = $this->request->getJSON();
if ($data) {
$id = $data->id;
$employee = $this->employeeModel->update($id, $data);
$employee = $this->employeeModel->where('is_active', 1 )->update($id, $data);
if ($employee) {
$result = [];
@ -114,7 +115,7 @@ class EmployeeRestController extends AdminController
try {
$emp_code = $this->request->getGet('emp_code');
if ($emp_code) {
$employee = $this->employeeModel->where('emp_code', $emp_code)->findAll();
$employee = $this->employeeModel->where('is_active', 1 )->where('emp_code', $emp_code)->findAll();
$dateConverter = function($item) {
if ($item['dob'] !== '0000-00-00') {
$dateTime = \DateTime::createFromFormat('Y-m-d', $item['dob']);
@ -146,7 +147,7 @@ class EmployeeRestController extends AdminController
foreach ($data as $item) {
$id = $item->id;
$item->dob = $this->convertDateFormatYMD($item->dob);
$employee = $this->employeeModel->update($id, (array)$item);
$employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item);
if ($employee) {
$updatedCount++;
}
@ -180,7 +181,8 @@ class EmployeeRestController extends AdminController
$id = $item->id;
$item->family_floater_key = $this->RelationshipMap($item->relationship);
$item->dob = $this->convertDateFormatYMD($item->dob);
$employee = $this->employeeModel->update($id, (array)$item);
$item->emp_status = 'Draft';
$employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item);
if ($employee) {
$Count++;
}
@ -188,7 +190,8 @@ class EmployeeRestController extends AdminController
//create new data
$item->family_floater_key = $this->RelationshipMap($item->relationship);
$item->dob = $this->convertDateFormatYMD($item->dob);
$employee = $this->employeeModel->insert($item);
$item->emp_status = 'Draft';
$employee = $this->employeeModel->where('is_active', 1 )->insert($item);
if ($employee) {
if(!isset($item->is_addon_value))
@ -285,13 +288,17 @@ class EmployeeRestController extends AdminController
if($this->request->getGet('id'))
{
$delete = $this->employeeModel->where('id', $this->request->getGet('id'))->delete();
if ($delete) {
return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200);
} else {
return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 404);
}
$this->employeeModel->where('id', $this->request->getGet('id') )
->where('is_active', 1 )
->set(array('is_active'=> 0 ))
->update();
$this->employeePolicyModel->where('employee_id',$this->request->getGet('id') )
->where('is_active', 1 )
->set(array('is_active'=> 0 ))
->update();
return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200);
}else{
return $this->respond(['status' => 'failed','code' => 404,'data' => [] ], 404);
}
@ -498,6 +505,7 @@ class EmployeeRestController extends AdminController
$checkIfExist = $this->employeePolicyModel->where('employee_id', $value->employee_id)
->where('client_policy_id', $value->client_policy_id)
->where('is_active', 1 )
->findAll();
$getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($value->client_policy_id,$value->client_id);
$SlabRatesArray = $getSlabAndGridData['slab_rates'];
@ -514,6 +522,7 @@ class EmployeeRestController extends AdminController
$data['client_policy_id']= $value->client_policy_id;
$data['basic_cover_si']= $value->basic_cover_si;
$data['premium']= $premium;
$data['status'] = 'Draft';
$this->employeePolicyModel->insert($data);
}
@ -561,7 +570,7 @@ class EmployeeRestController extends AdminController
$jwt = $this->request->getHeader('Authorization');
$jwtParts = explode(' ', $jwt);
$token = $jwtParts[1];
$token = $jwtParts[2];
$decodedPayload = json_decode(base64_decode(explode('.', $token)[1]), true);
@ -576,8 +585,9 @@ class EmployeeRestController extends AdminController
$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();
$policy_permium_2 = $this->policyPremium2Model->where(['client_id' => $client_id , 'client_policy_id' => $policy_id,'is_active' =>1])-> first();
$sum_insured_amount_for_check_employee_1 = $policy_permium_1['si'];
$sum_insured_amount_for_check_employee_2 = $policy_permium_2['si'];
$sum_insured_amount_for_check_employee_1 = isset($policy_permium_1['si']) ? $policy_permium_1['si'] : null;
$sum_insured_amount_for_check_employee_2 = isset($policy_permium_2['si']) ? $policy_permium_2['si'] : null;
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
$filename = $file->getName();
@ -871,7 +881,7 @@ public function getEmployeePolicy()
// Retrieve employee policy data by passing the employee primary key
$empPolicy = $this->employeeModel->getEmployeePolicy($id);
// Retrieve employee and dependents data by passing the employee code
$employeeData = $this->employeeModel->where('emp_code',$emp_code)->where('is_addon_value',0)->findAll();
$employeeData = $this->employeeModel->where('emp_code',$emp_code)->where('is_active', 1 )->where('is_addon_value',0)->findAll();
if ($empPolicy) {
@ -1079,8 +1089,8 @@ public function getAddOnPolicy()
{
try {
$addOnEmployeeData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))->where('is_addon_value',1)->findAll();
$GMCEmployeeData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))->where('is_addon_value',0)->findAll();
$addOnEmployeeData = $this->employeeModel->where('is_active', 1 )->where('emp_code',$this->request->getGet('emp_code'))->where('is_addon_value',1)->findAll();
$GMCEmployeeData = $this->employeeModel->where('is_active', 1 )->where('emp_code',$this->request->getGet('emp_code'))->where('is_addon_value',0)->findAll();
$clientPolicy = $this->clientPolicyModel->where('client_id',$this->request->getGet('client_id'))->findAll();
@ -1122,7 +1132,7 @@ public function getAddOnPolicy()
if(count($addOnEmployeeData)){
foreach ($addOnEmployeeData as $key => $value) {
if ($value['family_floater_key'] === $dependent) {
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->get()->getRow();
$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)){ $dependent_and_si_value = $employee_policy->basic_cover_si; }
if(isset($employee_policy->premium)){ $dependent_and_si_premium_value = $employee_policy->premium;}
@ -1153,6 +1163,7 @@ public function getAddOnPolicy()
{
$GMCEmpData = $this->employeeModel->where('emp_code',$this->request->getGet('emp_code'))
->where('is_addon_value',0)
->where('is_active', 1 )
->where('family_floater_key','parent')
->findAll();
@ -1207,7 +1218,7 @@ public function getAddOnPolicy()
$only_si_premium_value = null;
foreach ($GMCEmployeeData as $key => $value) {
$employee_policy = $this->employeePolicyModel->where('employee_id',$value['id'])->where('client_policy_id',$array['id'])->get()->getRow();
$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 = $employee_policy->premium;}
$temp3['is_value_exist'] = true;
@ -1247,6 +1258,20 @@ public function getAddOnPolicy()
public function iAgreeForAddOn()
{
$emp_code = $this->request->getGet('emp_code');
$client_policy_id = $this->request->getGet('client_policy_id');
$client_id = $this->request->getGet('client_id');
$this->employeeModel->where('emp_code', $emp_code )
->where('is_active', 1 )
->set(array('emp_status'=>'Enrolled'))
->update();
$this->employeePolicyModel->where('client_id', $client_id )
->where('client_policy_id', $client_policy_id )
->where('is_active', 1 )
->set(array('status'=>'Enrolled'))
->update();
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
}

View File

@ -15,8 +15,8 @@ class LoginController extends BaseController
public function index(){
//$session_data = ['isLoggedIn' => True ,'userid' => '25'];
//set_session_data($session_data);
// $session_data = ['isLoggedIn' => True ,'userid' => '25'];
// set_session_data($session_data);
// $isLoggedIn = check_session();
$isLoggedIn = check_session();

View File

@ -97,7 +97,7 @@ class RestAuthenticationController extends AdminController
$otp = $this->request->getJSON()->otp;
$employeeData = $this->employeeModel->where('mobile', $mobile_number)->first();
if ($employeeData && $otp == $employeeData["otp"]) {
if ($employeeData && $otp == $employeeData["otp"] || $employeeData && isset($this->request->getJSON()->login_by_hr)) {
$auth = HttpRequestHelper::getRequestInfo();
if ($auth) {
$data = [

View File

@ -268,39 +268,25 @@ if (! function_exists('transform_objects_to_array_for_deletion')) {
if (!function_exists('add_totals_row')) {
function add_totals_row(Spreadsheet $spreadsheet, array $data, array $headers)
{
//find the index value
$rata = array_search('PRO RATA PREMIUM', $headers);
$gst = array_search('GST', $headers);
$total = array_search('TOTAL', $headers);
function add_totals_row(Spreadsheet $spreadsheet, array $data)
{
// Calculate GST, Pro Rata Premium, and Total sums
$gstSum = 0;
$proRataPremiumSum = 0;
$totalSum = 0;
foreach ($data as $row) {
$gstSum += $row[$gst];
$proRataPremiumSum += $row[$rata];
$totalSum += $row[$total];
$gstSum += $row[18];
$proRataPremiumSum += $row[19];
$totalSum += $row[20];
}
$cellValue = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
$prev_index = $rata - 1;
$cellValueTotal = $cellValue[$prev_index];
$cellValueRata = $cellValue[$rata];
$cellValueGST = $cellValue[$gst];
$cellValueTotalSum = $cellValue[$total];
// Add a new row with sums
$lastRow = count($data) + 1; // To get the last row number
$spreadsheet->getActiveSheet()->setCellValue($cellValueTotal . ($lastRow + 1), 'TOTALS');
$spreadsheet->getActiveSheet()->setCellValue($cellValueRata . ($lastRow + 1), $proRataPremiumSum);
$spreadsheet->getActiveSheet()->setCellValue($cellValueGST . ($lastRow + 1), $gstSum);
$spreadsheet->getActiveSheet()->setCellValue($cellValueTotalSum . ($lastRow + 1), $totalSum);
$spreadsheet->getActiveSheet()->setCellValue('R' . ($lastRow + 1), 'TOTALS');
$spreadsheet->getActiveSheet()->setCellValue('S' . ($lastRow + 1), $gstSum);
$spreadsheet->getActiveSheet()->setCellValue('T' . ($lastRow + 1), $proRataPremiumSum);
$spreadsheet->getActiveSheet()->setCellValue('U' . ($lastRow + 1), $totalSum);
}
}
@ -543,4 +529,4 @@ if (!function_exists('format_Excel_BasedOn_Client'))
return $data;
}
}
}

View File

@ -80,6 +80,7 @@ class ClientPolicyModel extends Model
->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)
->where('client_policy.policy_status', 1)
->get()
->getResult();
@ -118,6 +119,7 @@ class ClientPolicyModel extends Model
}
public function getinsurerswithclientid($id){
return $this->db->table('client_policy')
@ -146,6 +148,7 @@ class ClientPolicyModel extends Model
}
public function getinsurerswithinsurenceid($insurerId){
return $this->db->table('client_policy')
@ -159,11 +162,15 @@ class ClientPolicyModel extends Model
->get()
->getResult();
}
public function getClientById($id) {
$query = $this->db->table('clients')->getWhere(['id' => $id]);
// Debug statement
return $query->getRow();
}
public function getDepositData($clientId, $insurerId)
{
// Fetch the deposit data based on client and insurer IDs
@ -181,6 +188,7 @@ class ClientPolicyModel extends Model
->get()
->getResult();
}
public function getDepositSummary($clientId, $insurerId)
{
// Fetch the sum of credit and debit transactions and calculate the balance
@ -265,6 +273,71 @@ public function updateStatus(){
}
public function getpolicyWithPattern($client_id){
$query = "
SELECT client_policy.*, policies.name, policies.policy_type_id
FROM client_policy
JOIN policies ON policies.id = client_policy.policy_id
JOIN policy_type ON policy_type.id = policies.policy_type_id
WHERE policy_type.policy_type = 'GMC'
AND client_policy.client_id = {$client_id}";
$result = $this->db->query($query)->getResult();
return $result;
}
public function getTopUpPolicy($client_id, $type){
$query = "
SELECT client_policy.*, policies.name, policies.policy_type_id
FROM client_policy
JOIN policies ON policies.id = client_policy.policy_id
JOIN policy_type ON policy_type.id = policies.policy_type_id
WHERE policy_type.policy_type = '{$type}'
AND client_policy.client_id = {$client_id}";
$result = $this->db->query($query)->getResult();
return $result;
}
public function getClientPolicyByPolicyType($client_id, $type){
$query = $this->db->table('client_policy')
->select('client_policy.*, insurers.name as insurer_name, insurers.short_name as insurer_short')
->select('tpa.name as tpa_name, tpa.short_name as tpa_short')
->select('policies.name as policy_name, policies.policy_type_id')
->select('policy_type.policy_type as policy_type_name')
->select('insurer_branch.branch_name as insurer_branch_name, insurer_branch.branch_code as insurer_branch_code')
->select('tpa_branch.branch_name as tpa_branch_name, tpa_branch.branch_code as tpa_branch_code')
->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('policies', 'policies.id = client_policy.policy_id')
->join('policy_type', 'policy_type.id = policies.policy_type_id')
->where('client_policy.client_id', $client_id)
->where('client_policy.policy_status', 1);
if ($type == 2) {
$query->where('policy_type.policy_type', 'GMC - Top-up');
} else if ($type == 3) {
$query->whereIn('policy_type.policy_type', ['GMC - Parents', 'GMC - Top-up(Parents)']);
}
$result = $query->get()->getResult();
return $result;
}
}

View File

@ -643,4 +643,41 @@ class EmployeePolicyModel extends Model
//----------------------------------------------------------------------------------------------
public function getEmployeePolicyForFileList($client_id, $policy_id)
{
$result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active','emp.mobile as mobile'])
->join('employees emp', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master
->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch
->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->where('emp.client_id',$client_id)
->where('employee_polices.client_policy_id',$policy_id);
$result->whereIn('employee_polices.status', ['draft', 'enrolled']);
$result = $result->findAll();
return ($result);
}
public function getViewEmpSuccessList($file_id){
return $this->db->table('employees emp')
->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active','emp.mobile as mobile'])
->join('employee_polices', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master
->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch
->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->where('emp.file_id',$file_id)
->whereIn('employee_polices.status', ['draft', 'enrolled'])
->get()->getResultArray();
}
}

View File

@ -24,6 +24,7 @@ class PolicyPremium1Model extends Model
"created_by",
"updated_by",
'is_active',
'premium_type',
];
}

View File

@ -23,6 +23,7 @@ class PolicyPremium2Model extends Model
"created_by",
"updated_by",
'is_active',
'premium_type',
];

View File

@ -1,25 +1,32 @@
<style>
.table-responsive {
overflow-x: auto;
}
</style>
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Batch List</h4>
</div>
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Batch List</h4>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
</div>
<div class="table-responsive">
<table id="datatable-buttons" class="table table-hover m-0 table-centered dt-responsive nowrap w-100">
<thead class="bg-light">
<tr>
<th class="font-weight-medium">SNO</th>
<th class="font-weight-medium">Batch Code</th>
<th class="font-weight-medium">File Name</th>
<th class="font-weight-medium">Client</th>
<th class="font-weight-medium">Client Policy</th>
<th class="font-weight-medium">Event Type</th>
<th class="font-weight-medium">Insurer/TPA</th>
<th class="font-weight-medium">Action</th>
<th class="font-weight-medium">Count</th>
</tr>
<tr>
<th class="font-weight-medium">SNO</th>
<th class="font-weight-medium">Batch Code</th>
<th class="font-weight-medium">File Name</th>
<th class="font-weight-medium">Client</th>
<th class="font-weight-medium">Client Policy</th>
<th class="font-weight-medium">Event Type</th>
<th class="font-weight-medium">Insurer/TPA</th>
<th class="font-weight-medium">Action</th>
<th class="font-weight-medium">Count</th>
</tr>
</thead>
<tbody class="font-12">
@ -28,7 +35,7 @@
{
foreach ($batch_list as $key => $file) {
?>
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<td><?php echo $file['batch_code']?></td>
@ -41,9 +48,40 @@
<td><?php echo $file['count']?></td>
</tr>
<?php }}?>
</tbody>
</table>
<div>
</div>
</div>
</div>
</div><!-- end col -->
</div><!-- end col -->
<script>
$(document).ready(function() {
$('#datatable-buttons').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
buttons: [{
extend: 'csv',
text: 'CSV',
title: 'Batch List',
className: 'my_class',
}],
initComplete: function(settings, json) {
$('.my_class').css({
position: "relative",
left: "50px"
});
},
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true
});
});
</script>

View File

@ -46,6 +46,26 @@
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label for="email"> Policy Type<span class="text-danger">*</span></label>
<select class="form-control" id="policy_type" name="is_addon" required>
<option value="0">Select Policy Type</option>
<?php foreach($policy_type as $key => $value) { ?>
<option value="<?= $key ?>"><?= $value ?></option>
<?php } ?>
</select>
</div>
<div class="form-group col-md-4" id="base_policy_id" style="display: none;">
<label for="addon_policy">Base Policy<span class="text-danger">*</span></label>
<select class="form-control" id="base_policy" name="base_policy">
<option value="" selected>Select Base Policy</option>
</select>
</div>
</div>
<div class="form-row" id="first" style="display: none;">
<div class="form-group col-md-4">
<label for="email">Insurer<span class="text-danger">*</span></label>
<select class="form-control" id="insurer" name="insurer" required>
@ -74,7 +94,7 @@
</div>
</div>
<div class="form-row">
<div class="form-row" id="second" style="display: none;">
<div class="form-group col-md-4">
<label for="policy_start_date">Policy Start Date<span
class="text-danger">*</span></label>
@ -93,24 +113,6 @@
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4" style="margin-top: 49px;">
<label class="switch">
<input id="is_addon" type="checkbox" name="is_addon"
<?= (isset($client['is_addon']) && $client['is_addon'] == 1) ? 'checked' : '' ?>>
<span class="slider round" style="height: 27px;"></span>
</label>
<label for="is_addon" style="position: absolute;left: 70px;bottom: 2px;">Is AddOn Policy</label>
</div>
<div class="form-group col-md-4" id="base_policy_id" style="display: none;">
<label for="addon_policy">Base Policy<span class="text-danger">*</span></label>
<select class="form-control" id="base_policy" name="base_policy">
<option value="" selected>Select Base Policy</option>
</select>
</div>
</div>
<div id="policy_fields"></div>
</div>
@ -136,6 +138,14 @@
var policy_PrimaryKey = $('#client_id_policy').val();
var policy_client = $('#policy_PrimaryKey').val();
$(document).ready(function() {
// Initialize select2
$("#insurer").select2();
$("#policy").select2();
$("#tpa").select2();
$("#base_policy").select2();
});
$(document).ready(function() {
$('#policy_status_field').hide()
@ -151,7 +161,6 @@ $(document).ready(function() {
onChange: function(selectedDates, dateStr, instance) {
var endDate = new Date(selectedDates[0]);
endDate.setFullYear(endDate.getFullYear() + 1);
endDatePicker.setDate(endDate);
}
});
@ -181,16 +190,21 @@ $(document).ready(function() {
$('#table_list').hide();
$('.btnBack').show();
$('.btnAdd').hide();
$('#insurer').val('');
$('#tpa').val('');
$('#start_date').val('');
$('#end_date').val('');
$('#policy').html('<option value="" selected>Select Policy</option>');
$('#is_addon').prop('checked', false);
$('#insurer').val('').change();
$('#tpa').val('').change();
$('#start_date').val('').change();
$('#end_date').val('').change();
$('#policy').html('<option value="" selected>Select Policy</option>').change();
$('#policy_form_action').val('<?= base_url("client/policy/create"); ?>');
$('#policy_status_field').hide()
$('#base_policy_id').hide();
$('#first').hide();
$('#second').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
})
@ -201,10 +215,10 @@ $(document).ready(function() {
$('#table_list').show();
$('.btnBack').hide();
$('.btnAdd').show();
$('#insurer').val('');
$('#tpa').val('');
$('#start_date').val('');
$('#end_date').val('');
$('#insurer').val('').change();
$('#tpa').val('').change();
$('#start_date').val('').change();
$('#end_date').val('').change();
$('#policy').html('<option value="" selected>Select Policy</option>');
$('#base_policy_id').hide();
@ -345,7 +359,7 @@ $("#policy_form").submit(function(event) {
search_term = 'GPA';
} else {
search_term =
subject; // Set default value if neither 'GMC' nor 'GPA' exists
subject; // Set default value if neither 'GMC' nor 'GPA' exists
}
console.log('search_term :', search_term)
@ -378,7 +392,6 @@ $("#policy_form").submit(function(event) {
$('#start_date').val('');
$('#end_date').val('');
$('#policy').html('<option value="" selected>Select Policy</option>');
$('#is_addon').prop('checked', false);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -398,63 +411,66 @@ $("#policy_form").submit(function(event) {
});
});
/********* To get th POLICY base on Insurer *******/
$('#insurer').change(function() {
var id = $(this).val();
var parts = id.split('-');
var secondPart = parts[1];
var url = "<?= base_url("util/police-by-insurer/") ?>" + secondPart;
$(document).ready(function() {
/********* To get th POLICY base on Insurer *******/
$('#insurer').change(function() {
var id = $(this).val();
var parts = id.split('-');
var secondPart = parts[1];
var url = "<?= base_url("util/police-by-insurer/") ?>" + secondPart;
$.get(url, function(res) {
// res = JSON.parse(res)//
// console.log(res)
var OptionsHTML = '';
OptionsHTML += '<option value="" selected>Select Policy</option>';
$.each(res.data, function(index, item) {
OptionsHTML += '<option data-id="' + item.policy_type_id + '" value="' + item.id +
'">' + item.name + '</option>';
$.get(url, function(res) {
// res = JSON.parse(res)//
// console.log(res)
var OptionsHTML = '';
OptionsHTML += '<option value="" selected>Select Policy</option>';
$.each(res.data, function(index, item) {
OptionsHTML += '<option data-id="' + item.policy_type_id + '" value="' +
item.id +
'">' + item.name + '</option>';
});
$('#policy').html(OptionsHTML);
}).fail(function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
});
$('#policy').html(OptionsHTML);
}).fail(function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
});
});
/********* set the Policy_Type_id for Form Submit *******/
$('#policy').change(function() {
$(document).ready(function() {
/********* set the Policy_Type_id for Form Submit *******/
$('#policy').change(function() {
var id = $(this).val();
var dataId = $(this).children('option:selected').attr('data-id');
console.log('id', id)
$('#policy_type_id').val(dataId);
var id = $(this).val();
var dataId = $(this).children('option:selected').attr('data-id');
console.log('id', id)
$('#policy_type_id').val(dataId);
// $('#base_policy option').each(function() {
// var val = $(this).val();
// if (val == id) {
// $(this)
// .hide(); // Hide the option if its value matches the selected value of #policy
// } else {
// $(this).show(); // Show all other options
// }
// });
// if(dataId == 1){
// appendPolicyFormFields(1);
// }else if (dataId >= 1){
// appendPolicyFormFields(2);
// }
$('#base_policy option').each(function() {
var val = $(this).val();
if (val == id) {
$(this).hide(); // Hide the option if its value matches the selected value of #policy
} else {
$(this).show(); // Show all other options
}
});
// if(dataId == 1){
// appendPolicyFormFields(1);
// }else if (dataId >= 1){
// appendPolicyFormFields(2);
// }
});
// get the client policy data for edit
$('body').on('click', '.btnPolicyEdit', function() {
var policy_form_action = '';
// var policy_id = $(this).data('id');
// console.log('1', policy_id)
var policy_id = $(this).attr('data-id');
// console.log('2', policy_id)
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
@ -463,13 +479,14 @@ $('body').on('click', '.btnPolicyEdit', function() {
type: "GET",
dataType: 'json',
success: function(res) {
console.log(res)
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
// console.log('clientPolicy : ', res);
$('#policy_form_action').val('<?= base_url("client/policy/edit"); ?>');
if (res.status === false) {
@ -482,9 +499,12 @@ $('body').on('click', '.btnPolicyEdit', function() {
$('.btnBack').show();
$('.btnAdd').hide();
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id);
$('#tpa').val(res.data.tpa_branch_id + '-' + res.data.tpa_id);
$('#policy').val(res.data.policy_id);
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id).change();
$('#tpa').val(res.data.tpa_branch_id + '-' + res.data.tpa_id).change();
// $('#policy').val(res.data.policy_id).change();
$('#policy_type').val(res.data.is_addon).change();
$('#base_policy').val(res.data.base_policy);
$('#policy_type_id').val(res.data.policy_type_id);
$('#policy_PrimaryKey').val(res.data.id);
$('#start_date').val(rearrangeDateFormat(res.data.policy_start_date));
@ -492,27 +512,25 @@ $('body').on('click', '.btnPolicyEdit', function() {
$('#policy_status').val(checkDateStatus(res.data.policy_end_date));
$('#policy_status_field').show();
if (res.data.is_addon == 1) {
$('#is_addon').prop('checked', true);
if (res.data.is_addon != '1' && res.data.is_addon != '0') {
$('#base_policy_id').show();
} else {
$('#is_addon').prop('checked', false);
$('#base_policy').prop('required', true);
$('#first').show();
$('#second').show();
} else if (res.data.is_addon == '0') {
$('#first').hide();
$('#second').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
} else if (res.data.is_addon == '1') {
$('#first').show();
$('#second').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}
/** do not delete this comment condition
// if(res.data.policy_type_id == 1){
// appendPolicyFormFields(1, res.data);
// }else if(res.data.policy_type_id >= 2) {
// appendPolicyFormFields(2, res.data);
// }
do not delete this comment condition **/
var policeOptionHTML = '';
$.each(res.policy, function(index, item) {
// console.log(item)
policeOptionHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.policy_id === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
@ -522,13 +540,16 @@ $('body').on('click', '.btnPolicyEdit', function() {
var OptionsHTML = '';
OptionsHTML += '<option value="" selected>Select Base Policy</option>';
$.each(res.client_policy_list, function(index, item) {
if (res.data.policy_id !== item.id) {
OptionsHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.base_policy === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
}
OptionsHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.base_policy === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
});
$('#base_policy').html(OptionsHTML);
setTimeout(function() {
$('#policy').val(res.data.policy_id).change();
}, 3000);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -542,6 +563,7 @@ $('body').on('click', '.btnPolicyEdit', function() {
});
});
$('body').on('click', '.btnOpenEnroll', function() {
var client_policy_id = $(this).attr('data-id');
@ -959,19 +981,41 @@ function removeClientPolicy(element) {
}
$('#is_addon').change(function() {
$('#policy_type').change(function() {
$('#insurer').val('').change();
$('#tpa').val('').change();
$('#start_date').val('');
$('#end_date').val('');
$('#base_policy').val('0');
if ($(this).val() != '1' && $(this).val() != '0') {
if ($(this).is(':checked')) {
$('#base_policy_id').show();
$('#base_policy').prop('required', true);
}else{
$('#first').show();
$('#second').show();
} else if ($(this).val() == '0'){
$('#first').hide();
$('#second').hide();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
} else if ($(this).val() == '1'){
$('#first').show();
$('#second').show();
$('#base_policy_id').hide();
$('#base_policy').prop('required', false);
}
})
function fetchClientPolicyList(){
function fetchClientPolicyList() {
var client_id = $('#client_id_policy').val()
@ -980,7 +1024,8 @@ function fetchClientPolicyList(){
type: "GET",
dataType: 'json',
success: function(res) {
console.log(res)
console.log('one',res)
setTimeout(function() {
$('.loader').fadeOut();
@ -1012,4 +1057,75 @@ function fetchClientPolicyList(){
}
$(document).ready(function(){
$('#base_policy').change(function() {
var client_policy_id = $(this).val()
var policy_type = $('#policy_type').val()
console.log(client_policy_id);
var queryParams = {
client_policy_id: client_policy_id,
policy_type: policy_type,
};
const queryString = objectToQueryString(queryParams);
// var uri = '<?= base_url('util/fetch-policy-for-policy-type')?>?' + queryString
var uri = '<?= base_url('client/policy/list/')?>' + client_policy_id
console.log('uri', uri)
console.log('queryString', queryString)
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: uri,
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res)
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 500);
$('#insurer').val(res.data.insurer_branch_id + '-' + res.data.insurer_id).change();
$('#tpa').val(res.data.tpa_branch_id + '-' + res.data.tpa_id).change();
$('#start_date').val(rearrangeDateFormat(res.data.policy_start_date)).change();
$('#end_date').val(rearrangeDateFormat(res.data.policy_end_date)).change();
var policeOptionHTML = '';
$.each(res.policy, function(index, item) {
console.log(item)
policeOptionHTML += '<option data-id="' + item.policy_type_id +
'" value="' + item.id + '" ' + (res.data.policy_id === item.id ?
'selected="selected"' : '') + '>' + item.name + '</option>';
});
$('#policy').html(policeOptionHTML);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something Wrong!', 'warning');
}, 500);
}
});
});
})
function objectToQueryString(obj) {
return Object.keys(obj).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join('&');
}
</script>

View File

@ -0,0 +1,151 @@
<style>
.badge2 {
box-shadow: none;
}
.badge2-secondary2 {
color: #fff;
background-color: #187607;
}
.badge2 {
display: inline-block;
padding: .25em .4em;
font-size: 75%;
font-weight: 700;
line-height: 1;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25rem;
transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}
</style>
<div class="row" id="client_list">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Employees</h4>
</div>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0"
id="tickets-table">
<thead class="bg-light">
<tr>
<th class="font-weight-medium">SNO</th>
<!-- <th class="font-weight-medium">Employee code</th> -->
<th class="font-weight-medium">Name/code</th>
<th class="font-weight-medium">Policy name</th>
<th class="font-weight-medium">Insurer name</th>
<th class="font-weight-medium">TPA ID</th>
<th class="font-weight-medium">UHID ID</th>
<th class="font-weight-medium">Policy status</th>
<th class="font-weight-medium">Sum Insured</th>
<th class="font-weight-medium">Premium</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead>
<tbody class="font-12">
<?php
if(isset($employees))
{
foreach ($employees as $key => $employee) { ?>
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<!-- <td><?php echo $employee['emp_code']?></td> -->
<td><?php echo $employee['name']?>( <?php echo $employee['emp_code']?> )</td>
<td><?php echo $employee['policy_name']?></td>
<td><?php echo $employee['insurer_short_name']?></td>
<td><?php echo $employee['tpa_id']?></td>
<td><?php echo $employee['uhid']?></td>
<td>
<?php
if ($employee['status'] == 'draft') {
echo '<span class="badge badge-secondary">' . $employee['status'] . '</span>';
} elseif ($employee['status'] == 'active') {
echo '<span class="badge badge-success">' . $employee['status'] . '</span>';
} elseif ($employee['status'] == 'inactive') {
echo '<span class="badge badge-warning">' . $employee['status'] . '</span>';
}elseif ($employee['status'] == 'expired') {
echo '<span class="badge badge-danger">' . $employee['status'] . '</span>';
}elseif ($employee['status'] == 'enrolled') {
echo '<span class="badge2 badge2-secondary2">' . $employee['status'] . '</span>';
}else{
echo $employee['status'];
}
?>
</td>
<td> <?php echo $employee['basic_cover_si']?> </td>
<td><?php echo $employee['premium']?></td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);"
class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"
aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#"><i
class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit
Ticket</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-check-all mr-2 text-muted font-18 vertical-middle"></i>Close</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Remove</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-star mr-2 font-18 text-muted vertical-middle"></i>Mark as
Unread</a>
</div>
</div>
</td>
</tr>
<?php }}?>
</tbody>
</table>
</div>
</div>
</div><!-- end col -->
</div>
<script>
$(document).ready(function(){
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
"buttons": [{
"extend": 'csv',
"text": 'CSV',
"title": 'Employee-List',
"className": 'my_class',
"exportOptions": {
"columns": ':not(:last-child)'
},
}],
"initComplete": function(settings, json) {
$('.my_class').css({
"position": "relative",
"left": "82px"
});
},
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true ,
// pagingType: 'full_numbers'
});
});
</script>

View File

@ -10,7 +10,7 @@ table.dataTable tbody td {
</style>
<div class="row">
<div class="col-xl-6">
<div class="col-xl-12">
<div id="accordion" class="mb-3">
<div class="card mb-1">
<h5 class="m-1">
@ -68,93 +68,24 @@ table.dataTable tbody td {
<div class="row" id="client_list">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Employees</h4>
</div>
<?php include('employee_data_list.php');?>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0"
id="tickets-table">
<thead class="bg-light">
<tr>
<th class="font-weight-medium">SNO</th>
<!-- <th class="font-weight-medium">Employee code</th> -->
<th class="font-weight-medium">Name/code</th>
<th class="font-weight-medium">Policy name</th>
<th class="font-weight-medium">Insurer name</th>
<th class="font-weight-medium">TPA ID</th>
<th class="font-weight-medium">UHID ID</th>
<th class="font-weight-medium">Policy status</th>
<th class="font-weight-medium">Premium</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead>
<tbody class="font-12">
<?php
if(isset($employees))
{
foreach ($employees as $key => $employee) { ?>
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<!-- <td><?php echo $employee['emp_code']?></td> -->
<td><?php echo $employee['name']?>( <?php echo $employee['emp_code']?> )</td>
<td><?php echo $employee['policy_name']?></td>
<td><?php echo $employee['insurer_short_name']?></td>
<td><?php echo $employee['tpa_id']?></td>
<td><?php echo $employee['uhid']?></td>
<td>
<?php
if ($employee['status'] == 'draft') {
echo '<span class="badge badge-secondary">' . $employee['status'] . '</span>';
} elseif ($employee['status'] == 'active') {
echo '<span class="badge badge-success">' . $employee['status'] . '</span>';
} elseif ($employee['status'] == 'inactive') {
echo '<span class="badge badge-warning">' . $employee['status'] . '</span>';
}elseif ($employee['status'] == 'expired') {
echo '<span class="badge badge-danger">' . $employee['status'] . '</span>';
}
?>
</td>
<td><?php echo $employee['premium']?></td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);"
class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"
aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#"><i
class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit
Ticket</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-check-all mr-2 text-muted font-18 vertical-middle"></i>Close</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Remove</a>
<a class="dropdown-item" href="#"><i
class="mdi mdi-star mr-2 font-18 text-muted vertical-middle"></i>Mark as
Unread</a>
</div>
</div>
</td>
</tr>
<?php }}?>
</tbody>
</table>
</div>
</div>
</div><!-- end col -->
</div>
<!-- end row -->
<div id="loader" class="loader" style="display:none;">SPINNER</div>
<script>
$(document).ready(function() {
// Initialize select2
$("#clients").select2();
$("#policies").select2();
// if ($('.select2-selection__arrow').length > 0) {
// $('.select2-selection__arrow').removeClass('select2-selection__arrow').addClass('fa fa-chevron-down');
// }
});
// Declare a global variable to store API response data
var clientPolicies = [];
var client_id = '<?= isset($getData) ? $getData['client_id'] : '0' ?>';
@ -261,18 +192,19 @@ function appendPolicies(data) {
});
}
$(document).ready(function() {
$('#clients').on('change', function() {
var selectedClient = $(this).val();
console.log('selectedClient', selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
$('#clients').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
@ -332,4 +264,6 @@ document.getElementById('toggleIcon').addEventListener('click', function() {
icon.classList.toggle('mdi-chevron-up');
});
</script>

View File

@ -1,14 +1,7 @@
<?php //echo fancy_date_time_format('2024-01-01 15:40:32');echo '<br>';?>
<?php //echo fancy_date_time_format('2024-02-01 15:40:32');echo '<br>';?>
<!-- <?php echo fancy_date_time_format('2024-02-10 15:40:32');echo '<br>';?> -->
<!-- <?php echo fancy_date_time_format('2024-02-13 14:40:32');echo '<br>';?> -->
<!-- <?php echo fancy_date_time_format('2024-02-13 14:58:00');echo '<br>';?> -->
<div class="tab-pane fade active show" id="general-q-tab">
<div class="row">
<div class="col-xl-6">
<div class="col-xl-12">
<div id="accordion1" class="mb-3">
<div class="card mb-1">
<h5 class="m-1">
@ -20,7 +13,8 @@
<div id="collapseTwo" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion1">
<div class="card-body">
<!-- <div class="text-center"> -->
<form id="emp-upload-form" action="<?php echo base_url().'employee/upload'?>" method="post">
<form class="parsley-examples" id="emp-upload-form"
action="<?php echo base_url().'employee/upload'?>" method="post">
<input type="hidden" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>"
id="csrf_token">
@ -31,14 +25,14 @@
<div class="form-group col-md-4">
<label>Client</label> <br />
<select name="client_id" class="form-control" id="client_id" required>
<option value="">Select</option>
<option value="0">Select</option>
</select>
</div>
<div class="form-group col-md-4">
<label>Policy</label> <br />
<select name="policy_id" class="form-control" id="policy_id">
<option value="">Select</option>
<option value="0">Select</option>
</select>
</div>
@ -85,6 +79,17 @@
</div>
<div class="form-group col-md-2"
style="margin-top: 26px;position: relative;left: 65px;"> OR </div>
<div class="form-group col-md-4" style="margin-top: 18px;">
<a class="btn btn-primary waves-effect waves-light justify-content-end"
id="fetch_enrolled_data" data-toggle="modal"
data-target="#full-width-modal" title="Download Sample Excel">Featch
Enrolled Data</a>
</div>
</div>
</div>
@ -107,6 +112,25 @@
</div>
<div id="full-width-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="fullWidthModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="fullWidthModalLabel">Enrolled Employee List</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body" id="emp_data">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Center modal content -->
<div class="modal fade" id="file-err-modal" tabindex="-1" role="dialog" aria-hidden="true">
@ -127,6 +151,12 @@
<script>
$('#file_upload').hide();
$(document).ready(function() {
// Initialize select2
$("#client_id").select2();
$("#policy_id").select2();
});
// Declare a global variable to store API response data
var clientPolicies = [];
@ -153,6 +183,13 @@ $(document).ready(function() {
event.preventDefault(); // Prevent default form submission
console.log('submit called');
var isValid = $('#emp-upload-form').parsley().validate();
if (!isValid) {
console.log('Form is Empty', 'Warning');
return;
}
var action_item = $('#upload-action-type').val();
var policy_id = $('#policy_id').val();
console.log('action_item - ' + action_item);
@ -161,8 +198,10 @@ $(document).ready(function() {
// $('#policy_id').prop('title', 'plz choose policy');
// $('#policy_id').mouseover();
console.log('required');
alert('please choose policy for this uploaing event ');
// alert('please choose policy for this uploaing event ');
toastr.warning('please choose policy for this uploaing event', 'warning')
return false;
} else {
$('#policy_id').attr('required', false);
@ -230,9 +269,6 @@ $(document).ready(function() {
$(window).on("load", function() {
console.log("window loaded");
fetchClientPolicies();
});
@ -281,75 +317,91 @@ function fetchFileError(file_id) {
console.log('fetchFileError');
console.log(apiURL);
$.ajax({
url: apiURL,
method: 'GET',
headers: {
"X-Requested-With": "XMLHttpRequest"
},
success: function(response) {
$(this).find(".modal-body").html("");
if (response.code === 200 && response.dataStatus === true && response.data !== "")
{
try {
console.log((JSON.parse(response.data)));
var file_error_data = (JSON.parse(response.data));
var file_error_html = "";
for (var key in file_error_data['error_summary']) {
// console.log(key);
var err_id = parseInt(key);
var err_count = file_error_data['error_summary'][key];
switch (err_id) {
case 1:
file_error_html += "<strong>Mandatory values missing</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 2:
file_error_html += "<strong>Values not in expected format</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 3:
file_error_html += "<strong>Field contains not allowed values</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 4:
file_error_html += "<strong>Rule Conflict</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 5:
file_error_html += "<strong>" + file_error_data['error_data'] + "</strong>";
break;
case 6:
file_error_html += "<strong>" + file_error_data['error_data'] + "</strong>";
break;
case 7:
file_error_html += "<strong>Duplicate entry in file</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 8:
file_error_html += "to be config";
break;
case 9:
file_error_html += "<strong>Duplicate entry</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 10:
file_error_html += "<strong>Record Not Found</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 11:
file_error_html += "<strong>Rule conflict: Dependents not allowed</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 12:
file_error_html += "<strong>Rule conflict: Dependent count greater than allowed dependent count</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 13:
file_error_html += "<strong>Rule conflict: Twofold relationship found within family</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
case 14:
file_error_html += "<strong>Self Not found</strong> <span class='badge badge-danger float-right'>" + err_count + "</span>";
break;
url: apiURL,
method: 'GET',
headers: {
"X-Requested-With": "XMLHttpRequest"
},
success: function(response) {
default:
file_error_html += "";
break;
}
$(this).find(".modal-body").html("");
if (response.code === 200 && response.dataStatus === true && response.data !== "") {
try {
console.log((JSON.parse(response.data)));
var file_error_data = (JSON.parse(response.data));
var file_error_html = "";
// console.log('file_error_html_1', file_error_html)
for (var key in file_error_data['error_summary']) {
// console.log(key);
var err_id = parseInt(key);
var err_count = file_error_data['error_summary'][key];
switch (err_id) {
case 1:
file_error_html +=
"<strong>Mandatory values missing</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 2:
file_error_html +=
"<strong>Values not in expected format</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 3:
file_error_html +=
"<strong>Field contains not allowed values</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 4:
file_error_html +=
"<strong>Rule Conflict</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 5:
file_error_html += "<strong>" + file_error_data['error_data'] + "</strong>";
break;
case 6:
file_error_html += "<strong>" + file_error_data['error_data'] + "</strong>";
break;
case 7:
file_error_html +=
"<strong>Duplicate entry in file</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 8:
file_error_html += "to be config";
break;
case 9:
file_error_html +=
"<strong>Duplicate entry</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 10:
file_error_html +=
"<strong>Duplicate entry in file</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 11:
file_error_html +=
"<strong>Rule conflict: Dependents not allowed</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 12:
file_error_html +=
"<strong>Rule conflict: Dependent count greater than allowed dependent count</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
case 13:
file_error_html +=
"<strong>Rule conflict: Twofold relationship found within family</strong> <span class='badge badge-danger float-right'>" +
err_count + "</span>";
break;
default:
file_error_html += "";
break;
}
// console.log('file_error_html_1', file_error_html)
// file_error_html += (err_id == 1 ?
// "<strong>Mandatory values missing</strong> <span class='badge badge-danger float-right'>" +
@ -422,17 +474,21 @@ function appendPolicies(data) {
});
}
$('#client_id').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
$(document).ready(function() {
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
$('#client_id').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
// Function to convert object to query parameters
@ -447,7 +503,7 @@ function fetchEmpolyeeList(event) {
var policy_id = $('#policy_id').val();
console.log(client_id + '-' + policy_id);
if (client_id == '0' || policy_id == '0') {
alert('Please select values in both dropdowns.');
toastr.warning('Please select values in both dropdowns.');
return;
}
@ -516,5 +572,70 @@ document.getElementById('toggleIcon1').addEventListener('click', function() {
icon.classList.toggle('mdi-chevron-down');
icon.classList.toggle('mdi-chevron-up');
});
$('#fetch_enrolled_data').click(function() {
$('#emp_data').empty();
var client_id = $('#client_id').val();
var policy_id = $('#policy_id').val();
var action = $('#upload-action-type').val();
console.log(client_id + '-' + policy_id);
if (client_id == '0' || policy_id == '0') {
toastr.warning('please select the client and policy for this uploaing event', 'warning')
$('#full-width-modal').modal('hide');
return;
}
var queryParams = {
client_id: client_id,
policy_id: policy_id,
action: action
};
console.log('queryParams', queryParams)
const queryString = objectToQueryString(queryParams);
console.log('queryString', queryString)
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var uri = '<?= base_url('util/featch-emp-list')?>?' + queryString
console.log(uri)
$.ajax({
url: uri,
data: {
client_id: client_id,
policy_id: policy_id
},
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
if (res) {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
}
$('#emp_data').html(res.data);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something went wrong', 'Warning');
}, 1000);
}
});
})
//--------------------------------------------------------------------------------------
</script>

View File

@ -7,10 +7,16 @@
table.dataTable tbody td {
padding: 4px 4px !important;
}
.btn .btn-secondary .buttons-csv .buttons-html5 .my_class{
position: relative;
left: 79px;
}
</style>
<div class="row">
<div class="col-xl-6">
<div class="col-xl-12">
<div id="accordion" class="mb-3">
<div class="card mb-1">
<h5 class="m-1">
@ -173,6 +179,13 @@ table.dataTable tbody td {
<script>
$(document).ready(function() {
// Initialize select2
$("#clients").select2();
$("#policies").select2();
});
// Declare a global variable to store API response data
var clientPolicies = [];
var client_id = '<?= isset($getData) ? $getData['client_id'] : '0' ?>';
@ -274,17 +287,21 @@ function appendPolicies(data) {
});
}
$('#clients').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
$(document).ready(function() {
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
$('#clients').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
// $('#selectedOptionInfo').text('Selected option: ' + selectedOption);
// Check if the selected option exists in apiData
var foundPolicies = clientPolicies.find(function(item) {
return item.id === selectedClient;
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
console.log(foundPolicies.policies);
appendPolicies(foundPolicies.policies);
});
// Function to convert object to query parameters
@ -478,4 +495,35 @@ $('.close').click(function(){
$('#table_data').empty();
})
$(document).ready(function(){
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
"buttons": [{
"extend": 'csv',
"text": 'CSV',
"title": 'Endorsement-List',
"className": 'my_class',
"exportOptions": {
"columns": ':not(:last-child)'
},
}],
"initComplete": function(settings, json) {
$('.my_class').css({
"position": "relative",
"left": "79px"
});
},
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true ,
// pagingType: 'full_numbers'
});
});
</script>

View File

@ -1,3 +1,5 @@
<link rel="shortcut icon" href="<?= base_url()."public"; ?>/assets/images/Nhance_Favi.svg">
<title>Excel Error Report</title>
<!-- Include DataTables CSS -->
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css">
<!-- Include DataTables Buttons CSS -->

View File

@ -1,27 +1,40 @@
<style>
.modal-full-width {
width: 95% !important;
max-width: none;
}
.reload:hover {
cursor: pointer;
}
</style>
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Files</h4>
</div>
<div class="card">
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 class="header-title" style="position: relative;">Files</h4>
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
<thead class="bg-light">
</div>
<table class="table table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0"
id="tickets-table">
<thead class="bg-light">
<tr>
<th class="font-weight-medium">SNO</th>
<th class="font-weight-medium">File name</th>
<th class="font-weight-medium">Client</th>
<th class="font-weight-medium">policy</th>
<th class="font-weight-medium">Policy</th>
<th class="font-weight-medium">Event</th>
<th class="font-weight-medium">User/Time</th>
<th class="font-weight-medium">Status</th>
<th class="font-weight-medium">Action</th>
</tr>
</thead>
</thead>
<tbody class="font-12">
<?php
<tbody class="font-12">
<?php
if(isset($fileList))
{
foreach ($fileList as $key => $file) { //print_r((json_decode($file['reason'])));
@ -29,23 +42,288 @@
// $reason = "{'date':'value data kbckl kcn/aksl'}";
// echo $reason;
?>
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<td><?php echo $file['file_name']?></td>
<td><?php echo $file['short_name']?></td>
<td><?php echo $file['policy_name']?></td>
<td><?php echo $file['action']?></td>
<td><?php echo fancy_date_time_format($file['created_at']).' by <strong>'.$file['first_name'].'</strong>'?></td>
<td><?php echo $file['status']; if($file['status'] == 'failed')
{
echo "<span class='col-xl-3 col-lg-4 col-sm-6'> <i class='fe-alert-circle' data-toggle='modal' data-target='#file-err-modal' data-err=".$file['id']."></i></span>";
}?></td>
</tr>
<?php }}?>
</tbody>
</table>
</div>
<tr>
<td><b><?php echo ($key + 1)?></b></td>
<td><?php echo $file['file_name']?></td>
<td><?php echo $file['short_name']?></td>
<td><?php echo $file['policy_name']?></td>
<td><?php echo $file['action']?></td>
<td><?php echo fancy_date_time_format($file['created_at']).' by <strong>'.$file['first_name'].'</strong>'?>
</td>
<td>
<?php
if($file['status'] == 'failed')
{
echo $file['status'] . " <span class='col-xl-3 col-lg-4 col-sm-6'> <i class='fe-alert-circle' data-toggle='modal' data-target='#file-err-modal' data-err=".$file['id']."></i></span>";
}else if( $file['status'] == 'inprogress'){
echo '<a data-toggle="tooltip" data-placement="top" data-id="' . $file['status'] . '" class="reload" title="Click to reload" href="#">' . $file['status'] . '</a>';
}else{
echo $file['status'];
}
?>
</td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm"
data-toggle="dropdown" aria-expanded="false"><i
class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<?php if($file['status'] == 'failed') { ?>
<a data-id="<?= htmlspecialchars(json_encode($file)) ?>" data-toggle="modal"
data-target="#file-upload-modal" class="dropdown-item upload_button" href="#"><i
class="mdi mdi-upload mr-2 text-muted font-18 vertical-middle"></i>Re-Upload</a>
<?php } ?>
<a class="dropdown-item"
href="<?= base_url("util/download-file-list/").$file['id']; ?>"><i
class="mdi mdi-download mr-2 text-muted font-18 vertical-middle"></i>Download</a>
<a data-id="<?php echo $file['id']?>" data-toggle="modal"
data-target="#full-width-modal-emp-list" class="dropdown-item view_emp_list"
href="#"><i
class="mdi mdi-eye mr-2 text-muted font-18 vertical-middle"></i>View</a>
</div>
</div>
</td>
</tr>
<?php }}?>
</tbody>
</table>
</div>
</div><!-- end col -->
</div>
</div><!-- end col -->
<div id="full-width-modal-emp-list" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="fullWidthModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="fullWidthModalLabel">Upload Employee List <span id="title_header_name"></span></h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body" id="emp_data_success">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- Center modal content for reupload file-->
<div class="modal fade" id="file-upload-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myCenterModalLabel">Reupload the file</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<form class="parsley-examples" id="uploadForm" action="<?php echo base_url().'employee/upload'?>"
enctype="multipart/form-data">
<input type="hidden" id="file_client_id" name="client_id">
<input type="hidden" id="file_policy_id" name="policy_id">
<input type="hidden" id="file_upload_actions" name="upload-action-type">
<input type="file" id="fileInput" name="emplist" required
accept=" application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel,application/vnd.oasis.opendocument.spreadsheet">
<button type="submit" class="btn btn-primary">Upload</button>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
$('body').on('click', '.view_emp_list', function() {
console.log('file_id');
$('#emp_data_success').empty();
$('#title').html(' ');
var file_id = $(this).attr('data-id');
console.log(file_id);
var queryParams = {
file_id: file_id,
};
console.log('queryParams', queryParams)
const queryString = objectToQueryString(queryParams);
console.log('queryString', queryString)
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var uri = '<?= base_url('util/view-success-emp-list')?>?' + queryString
console.log(uri)
$.ajax({
url: uri,
data: {
file_id: file_id,
},
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
console.log(res);
if (res) {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
}
var title = " - ";
if (res.file_data) {
title += (res.file_data.file_name || "") + " - ";
title += (res.file_data.short_name || "") + " - ";
title += (res.file_data.policy_name || "") + " - ";
title += (res.file_data.action || "") + " - ";
title += (res.file_data.status || "");
}
$('#title_header_name').html(title);
$('#emp_data_success').html(res.data);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
toastr.warning('Something went wrong', 'Warning');
}, 1000);
}
});
})
$('body').on('click', '.upload_button', function() {
$('#uploadForm')[0].reset();
console.log('file_id');
var fileId = JSON.parse(this.getAttribute('data-id'));
console.log(fileId); // Use fileId as needed
$('#file_client_id').val(fileId.client_id)
$('#file_policy_id').val(fileId.client_policy_id)
$('#file_upload_actions').val(fileId.action)
})
$('#uploadForm').submit(function() {
var isValid = $('#uploadForm').parsley().validate();
if (!isValid) {
console.log('Form is Empty', 'Warning');
return;
}
// Create FormData object
var formData = new FormData($(this)[0]);
for (var pair of formData.entries()) {
console.log(pair[0] + ', ' + pair[1]);
}
// return false;
$.ajax({
url: $(this).attr("action"),
type: "POST",
data: formData,
processData: false, // Prevent jQuery from automatically processing the data
contentType: false, // Let jQuery handle the content type
headers: {
// "Content-Type":"multipart/form-data",
"X-Requested-With": "XMLHttpRequest"
},
success: function(response) {
console.log(response);
$('#uploadForm')[0].reset();
if (response.code === 200 && response.dataStatus === true && response
.data !== "") {
toastr.success(
'File upload successs, Data validation is in-progress',
'success');
window.location.reload(true);
} else if (response.code === 404 && response.dataStatus === false) {
console.error('no data found', response);
// alert(response.message);
toastr.error(response.message, 'Failed');
window.location.reload(true);
} else {
console.error('Something went wrong!');
// alert('Something went wrong! Try later');
toastr.error('Something went wrong! Try later', 'Error');
window.location.reload(true);
}
},
error: function(xhr, status, error) {
// Request failed, handle error
console.error("Request failed:", status, error);
toastr.error('Something went wrong! Try later', 'Error');
$('#uploadForm')[0].reset();
window.location.reload(true);
}
});
})
$('body').on('click', '.reload', function() {
console.log('status');
status = this.getAttribute('data-id')
console.log(status);
if (status == 'inprogress') {
window.location.reload(true);
}
})
$(document).ready(function(){
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
"buttons": [{
"extend": 'csv',
"text": 'CSV',
"title": 'Employee-Upload-List',
"className": 'my_class',
"exportOptions": {
"columns": ':not(:last-child)'
},
}],
"initComplete": function(settings, json) {
$('.my_class').css({
"position": "relative",
"left": "79px"
});
},
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true ,
});
});
</script>

View File

@ -1,7 +1,7 @@
<div class="tab-pane fade" id="KYC-DOC-tab">
<div class="row">
<div class="col-xl-6">
<div class="col-xl-12">
<div id="accordion" class="mb-3">
<div class="card mb-1">
<h5 class="m-1">
@ -20,21 +20,21 @@
<div class="form-group">
<div class="form-row">
<div class="form-group col-md-4">
<label>Client</label> <br />
<label>Client<span class="text-danger">*</span></label> <br />
<select name="client_id" class="form-control" id="client" required>
<option value="">Select</option>
</select>
</div>
<div class="form-group col-md-4">
<label>Policy</label> <br />
<label>Policy<span class="text-danger">*</span></label> <br />
<select name="client_policy_id" class="form-control" id="policy" required>
<option value="">Select</option>
</select>
</div>
<div class="form-group col-md-4">
<label>Insurer/TPA Data</label> <br />
<label>Insurer/TPA Data<span class="text-danger">*</span></label> <br />
<select name="insurer_or_tpa" class="form-control" id="insurer_or_tpa"
required>
<option value="">Select</option>
@ -54,7 +54,7 @@
<div class="form-row">
<div class="form-group col-md-4">
<label>Action</label> <br />
<label>Action<span class="text-danger">*</span></label> <br />
<select name="action_type" class="form-control" id="action_type" required>
<option value="">Select</option>
<?php
@ -70,7 +70,7 @@
</div>
<div class="form-group col-md-4">
<label>Event</label> <br />
<label>Event<span class="text-danger">*</span></label> <br />
<select name="event_type" class="form-control" id="upload-action-type"
required>
<option value="">Select</option>
@ -134,6 +134,14 @@
<script>
$(document).ready(function() {
// Initialize select2
$("#client").select2();
$("#policy").select2();
});
// Declare a global variable to store API response data
var clientPolicies = [];
@ -288,6 +296,8 @@ function appendPolicies2(data) {
});
}
$(document).ready(function() {
$('#client').on('change', function() {
var selectedClient = $(this).val();
console.log(selectedClient);
@ -301,6 +311,8 @@ $('#client').on('change', function() {
appendPolicies2(foundPolicies.policies);
});
});
// Function to convert object to query parameters
function objectToQueryString2(obj) {
return Object.keys(obj).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join('&');

View File

@ -496,6 +496,8 @@
<!-- Jodit Js -->
<script src="<?= base_url()."public"; ?>/assets/js/jodit.min.js"></script>
<!-- select2 -->
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>

View File

@ -50,6 +50,9 @@
<!-- Sweet Alert CDN -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.10.4/dist/sweetalert2.all.min.js"></script>
<!-- select2 -->
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" type="text/css">
<link rel="manifest" href="../manifest.json">
@ -215,12 +218,26 @@
</style>
<style>
.select2-container--default .select2-selection--single {
height: 37px !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 35px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
top: 7px !important;
}
</style>
<script>
$(window).on('load', function() {
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
$('.loader-mask').fadeOut('slow');
}, 2000);
});
</script>
@ -233,11 +250,11 @@
<!-- Preloader -->
<div class="loader-mask">
<div class="loader">
<div></div>
<div></div>
</div>
<img src="<?= base_url()."public" ?>/assets/images/nhance-loader-fast.gif" height="40" width="40" alt="Loading...">
</div>
</div>
<!-- <img src="<?= base_url()."public" ?>/assets/images/nhance-loader-fast.gif" height="40" width="40" alt="Loading..."> -->
<!-- Begin page -->
<div id="wrapper">
@ -515,7 +532,7 @@
<a href="<?= base_url('/dashboard/view')?>" class="logo logo-light text-center">
<span class="logo-sm">
<img src="<?= base_url()."public"; ?>/assets/images/Nhance_Favi_white.png" alt="" width="30" height="30">
<img src="<?= base_url()."public"; ?>/assets/images/Nhance_Favi_white_2.png" alt="" width="30" height="30">
</span>
<!-- <span class="logo-lg">
<img src="<?= base_url()."public"; ?>./assets/images/logo-light.png" alt="" height="20">

View File

@ -69,6 +69,11 @@
<script>
$(document).ready(function() {
$("#insurer_id").select2();
});
$(document).ready(function () {
var policy_type_PrimaryKey = $('#policy_type_id').val();
@ -288,7 +293,7 @@ $(document).ready(function () {
$('#branch_table').hide();
$('.btnBack').show();
$('#btnBranchAdd').hide();
$('#insurer_id').val(res.policies.insurer_id);
$('#insurer_id').val(res.policies.insurer_id).change();
$('#name').val(res.policies.name);
$('#policy_type_PrimaryKey').val(res.policies.id);

View File

@ -495,19 +495,16 @@
</div>
</div>
<!-- <hr> -->
<!-- <div class="form-row" id="grid_content_input">
</div> -->
<br>
</div>
<div class="form-group text-right m-b-0" style="margin-top: -49px;">
<div class="form-group text-right m-b-0" style="margin-top: -49px;" id="group_btn_1">
<a href="#" class="button-like" id="myButtonSpecialCondition" title="Special Condition">Special Condition</a>
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnGridSubmit" style="margin-top: 100px;">Submit</button>
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnGridSubmit1" style="margin-top: 100px;">Submit</button>
</div>
</form>
</div>
@ -660,7 +657,7 @@ var grid_html = '';
data: {client_policy_id: client_policy_id},
success: function(response) {
console.log('response',response);
console.log('count', response.count);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
@ -668,16 +665,23 @@ var grid_html = '';
$('#nameOfThePolicyInGMC').html(' - ' + response.policy_name.name);
$('gmc_emp_count').val(response.count);
if(response.count){
console.log('count--1', response.count);
$('emp_count').val(response.count)
if(response.count === false){
$("#btnGPATermsSubmit").prop("disabled", true);
}else{
$("#btnGPATermsSubmit").prop("disabled", false);
}
if (response && response.hasOwnProperty('count')) {
if (response.count === false) {
console.log('count -- 2', response.count);
console.log(document.getElementById('btnGridSubmit1'))
$("#btnGridSubmit1").hide();
$("#myButtonSpecialCondition").hide();
} else {
$("#btnGridSubmit1").show();
$("#myButtonSpecialCondition").show();
console.log('count -- ', response.count);
}
} else {
console.error('Response object does not have a "count" property or is invalid.');
}
}
if (response) {
let jsonObject = JSON.parse(response.data);

View File

@ -279,8 +279,7 @@
</div>
</div>
<br>
<div class="form-group text-right m-b-0" style="margin-top: -49px;">
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnGPATermsSubmit" style="margin-top: 100px;">Submit</button>
</div>
@ -464,22 +463,21 @@
success: function(res) {
console.log(res);
console.log('count', res.count);
setTimeout(function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}, 1000);
$('#nameOfThePolicyInGPA').html(' - ' + res.policy_name.name);
if(res.count){
$('#emp_count').val(res.count)
if(res.count === false){
$("#btnGPATermsSubmit").prop("disabled", true);
$("#btnGPATermsSubmit").hide();
}else{
$("#btnGPATermsSubmit").prop("disabled", false);
$("#btnGPATermsSubmit").show();
}
}
if (res) {

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
<style>
.table th,
.table td {
padding: 8px;
}
table.dataTable tbody td {
padding: 4px 4px !important;
}
</style>
<div class="responsive-table-plugin">
<div class="table-rep-plugin">
<div class="table-responsive" data-pattern="priority-columns">
<table id="tech-companies-1" class="table table-striped">
<thead class="bg-light">
<?php foreach ($thead as $header): ?>
<th><?php echo $header; ?></th>
<?php endforeach; ?>
</thead>
<tbody class="font-12">
<?php for ($i = 1; $i < count($tbody); $i++): ?>
<tr>
<?php foreach ($tbody[$i] as $data): ?>
<td>
<?php echo $data;?>
</td>
<?php endforeach; ?>
</tr>
<?php endfor; ?>
</tbody>
</table>
</div> <!-- end .table-responsive -->
</div> <!-- end .table-rep-plugin-->
</div> <!-- end .responsive-table-plugin-->

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB