diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index b3bdb75b..77dfe5ba 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -214,6 +214,7 @@ $routes->group("/util", ["filter" => "authMVC"], function($routes){
$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");
});
@@ -236,6 +237,13 @@ $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");
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 7a2b274e..0e141e75 100644
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -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 "
";
// 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 "";
- // 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 '';
- // 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);
+
+
+ }
}
\ No newline at end of file
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index a45837f3..b723e8be 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -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 . " ";
- }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 . " ";
}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;
+ }
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 28566852..d07567c0 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -158,7 +158,7 @@ class EmployeeController extends AdminController
// $this->fileModel->where('id', '12')->set(['status' => 'failed','reason' => $failure_reason])->update();
// dd($failure_reason);
// }
-
+
if($this->request->getMethod() == 'post')
{
//validate uploaded file
@@ -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,19 @@ 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
+ public function initiateManualEmployeesOnboardProcess($client_policy_id)
+ {
+ $empServiceController = new EmployeeServiceController();
+ $res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
+ dd($res);
+ }
+
+
public function downloadFileList($fileName = null)
{
// $actionType = $this->request->getGet();
@@ -633,5 +656,6 @@ class EmployeeController extends AdminController
return $this->respond(['dataStatus' => false, 'code' => 500, 'data' => $html, 'file_data' => $file_name], 500);
}
}
+
}
\ No newline at end of file
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index 09c8d9f7..5245fcae 100644
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -1290,4 +1290,42 @@ public function iAgreeForAddOn()
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
}
+//Post method - which receives client_policy id and empcode of the family.
+//Pull records againest emp code and calculate premium
+// retun array
+public function calculatePremium()//family level
+{
+ helper('excel_util_helper');
+ $client_policy_id = $this->request->getVar('client_policy_id');
+ $emp_code = $this->request->getVar('emp_code');
+ // dd($client_policy_id);
+
+ $client_id = ($this->clientPolicyModel->select('client_id')->find($client_policy_id))['client_id'];
+ // get policy and rack details
+ $policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id,$client_policy_id);
+ $policy_terms = (array) $policy_terms[0];// convert obj to array
+
+ //get policy slab rates
+ $slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
+
+ $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['active'],policy_status:['active']);
+
+ $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception'];
+ // dd($this->employeeModel->getLastQuery());
+ // dd($existing_famility_details);die();
+ $employee_data_group_by_family = data_group_by_family($existing_famility_details,$data_source = 'db');
+ // dd($employee_data_group_by_family);
+ foreach ($employee_data_group_by_family as $emp_id => $family)
+ {
+ $transformed_famility_details = transform_db_data_to_excel($family);
+ $data = calculate_premimum($transformed_famility_details,$policy_terms,$slab_details,$file);
+ // dd($data);
+ $employee_data_group_by_family[$emp_id] = $data;
+
+ }
+
+ // dd ($employee_data_group_by_family);
+ return $this->respond(['status' => 'success','code' => (count($employee_data_group_by_family) ? 200 : 404),'data' => [$employee_data_group_by_family] ], 200);
+}
+
}
\ No newline at end of file
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index ac99a890..6007b717 100644
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -349,7 +349,7 @@ class EmployeeServiceController extends AdminController
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
if($file['action'] == 'dependent_addition')
{
- $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
+ $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status:['active']);
// dd($existing_famility_details);
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
@@ -531,7 +531,7 @@ class EmployeeServiceController extends AdminController
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
if($file['action'] == 'dependent_addition')
{
- $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
+ $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status:['active']);
// dd($existing_famility_details);
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
@@ -566,7 +566,7 @@ class EmployeeServiceController extends AdminController
//get policy slab rates
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
- $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: 'enrolled');
+ $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: ['enrolled','draft'],policy_status:['enrolled','draft']);
$file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception'];
// dd($this->employeeModel->getLastQuery());
@@ -663,7 +663,7 @@ class EmployeeServiceController extends AdminController
else
{
- $family = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $row[1],client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
+ $family = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $row[1],client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status: ['active']);
// Kint::dump($family);
foreach ($family as $key => $emp) {
diff --git a/app/Controllers/LoginController.php b/app/Controllers/LoginController.php
index 37d78ae3..42c885d2 100644
--- a/app/Controllers/LoginController.php
+++ b/app/Controllers/LoginController.php
@@ -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();
diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php
index ffb72f4c..95f164c8 100644
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -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;
}
-}
\ No newline at end of file
+}
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 8ca450a4..2c27280b 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -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;
+
+
+}
+
+
}
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index 5f2bd65f..50b0eadf 100644
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -88,7 +88,7 @@ class EmployeeModel extends Model
}
- public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,string $emp_status = null)
+ public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [])
{
$result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit'])
->join('employee_polices', 'employee_polices.employee_id = employees.id')
@@ -98,17 +98,18 @@ class EmployeeModel extends Model
})
->where('employee_polices.is_active',1)
- ->where('employees.emp_status', ($emp_status !== null ? $emp_status : 'active'))
+ // ->where('employees.emp_status', ($emp_status !== null ? $emp_status : 'active'))
// ->where('employees.emp_code',$emp_code)
->when($emp_code, function($query) use ($emp_code){
return $query->where('employees.emp_code',$emp_code);
})
- // ->when($emp_status, function($query) use ($emp_status){
- // $emp_status = ($emp_status !== null ? $emp_status : 'active');
- // dd($emp_status);
- // return $query->where('employees.emp_status', $emp_status);
- // })
+ ->when(count($emp_status), function($query) use ($emp_status){
+ return $query->whereIn('employees.emp_status', $emp_status);
+ })
+ ->when(count($policy_status), function($query) use ($policy_status){
+ return $query->whereIn('employee_polices.status', $policy_status);
+ })
->when($client_id, function($query) use ($client_id){
return $query->where('employees.client_id',$client_id);
})
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index a86eaeb8..084247bf 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -679,4 +679,5 @@ class EmployeePolicyModel extends Model
->whereIn('employee_polices.status', ['draft', 'enrolled'])
->get()->getResultArray();
}
+
}
\ No newline at end of file
diff --git a/app/Models/PolicyPremium1Model.php b/app/Models/PolicyPremium1Model.php
index ec5d5b65..79e27179 100644
--- a/app/Models/PolicyPremium1Model.php
+++ b/app/Models/PolicyPremium1Model.php
@@ -24,6 +24,7 @@ class PolicyPremium1Model extends Model
"created_by",
"updated_by",
'is_active',
+ 'premium_type',
];
}
diff --git a/app/Models/PolicyPremium2Model.php b/app/Models/PolicyPremium2Model.php
index 0ed2777b..e390dcc7 100644
--- a/app/Models/PolicyPremium2Model.php
+++ b/app/Models/PolicyPremium2Model.php
@@ -23,6 +23,7 @@ class PolicyPremium2Model extends Model
"created_by",
"updated_by",
'is_active',
+ 'premium_type',
];
diff --git a/app/Views/batch_list.php b/app/Views/batch_list.php
index 31b16548..3f252701 100644
--- a/app/Views/batch_list.php
+++ b/app/Views/batch_list.php
@@ -1,25 +1,32 @@
+
+
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
+
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index 27da989b..d211a9cf 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -46,6 +46,26 @@
+
+
-
@@ -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('
Select Policy ');
- $('#is_addon').prop('checked', false);
+ $('#insurer').val('').change();
+ $('#tpa').val('').change();
+ $('#start_date').val('').change();
+ $('#end_date').val('').change();
+ $('#policy').html('
Select Policy ').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('
Select Policy ');
$('#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('
Select Policy ');
- $('#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 += '
Select Policy ';
- $.each(res.data, function(index, item) {
- OptionsHTML += '
' + item.name + ' ';
+ $.get(url, function(res) {
+ // res = JSON.parse(res)//
+ // console.log(res)
+ var OptionsHTML = '';
+ OptionsHTML += '
Select Policy ';
+ $.each(res.data, function(index, item) {
+ OptionsHTML += '
' + item.name + ' ';
+ });
+
+ $('#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 += '
' + item.name + ' ';
@@ -522,13 +540,16 @@ $('body').on('click', '.btnPolicyEdit', function() {
var OptionsHTML = '';
OptionsHTML += '
Select Base Policy ';
$.each(res.client_policy_list, function(index, item) {
- if (res.data.policy_id !== item.id) {
- OptionsHTML += '
' + item.name + ' ';
- }
+ OptionsHTML += '
' + item.name + ' ';
});
$('#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 += '
' + item.name + ' ';
+ });
+ $('#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('&');
+}
+
\ No newline at end of file
diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php
index a1efb23c..0c7ffeda 100644
--- a/app/Views/employee_data_list.php
+++ b/app/Views/employee_data_list.php
@@ -1,3 +1,29 @@
+
+
@@ -20,6 +46,7 @@
TPA ID
UHID ID
Policy status
+
Sum Insured
Premium
Action
@@ -49,11 +76,14 @@
echo '
' . $employee['status'] . ' ';
}elseif ($employee['status'] == 'expired') {
echo '
' . $employee['status'] . ' ';
+ }elseif ($employee['status'] == 'enrolled') {
+ echo '
' . $employee['status'] . ' ';
}else{
echo $employee['status'];
}
?>
+
@@ -82,4 +112,40 @@
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/employee_list.php b/app/Views/employee_list.php
index 4b1e6633..594037fb 100644
--- a/app/Views/employee_list.php
+++ b/app/Views/employee_list.php
@@ -10,7 +10,7 @@ table.dataTable tbody td {
-
+
@@ -75,6 +75,17 @@ table.dataTable tbody td {
SPINNER
\ No newline at end of file
diff --git a/app/Views/employee_upload.php b/app/Views/employee_upload.php
index 4a06336f..c985b877 100644
--- a/app/Views/employee_upload.php
+++ b/app/Views/employee_upload.php
@@ -1,14 +1,7 @@
-';?>
-';?>
-
-
-
-
-
-
+
@@ -20,7 +13,8 @@
-
-
OR
+
OR
@@ -125,7 +121,7 @@
×
-
+