From 3e74071d1b2d09a50159930af912b858a1d93174 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 9 May 2025 10:35:11 +0530 Subject: [PATCH 1/4] CHANGE_API_AND_CLIENT_POLICY : RV --- app/Controllers/EmployeeRestController.php | 2 +- app/Views/client_policy.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index f13f66e..0d1e3ec 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -1623,7 +1623,7 @@ class EmployeeRestController extends AdminController if ($value > 0 && $key != 'elders_count') { if ($value != 0 && $key === 'childrens') { - if($value > 2){ $value = 2; } + // if($value > 2){ $value = 2; } for ($i = 1; $i <= $value; $i++) { $result[] = "child" . $i; diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php index a337d23..877077e 100755 --- a/app/Views/client_policy.php +++ b/app/Views/client_policy.php @@ -213,11 +213,11 @@
- +
From fdbc29d31ac4efb371cebcec16218a9709b8e094 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Mon, 12 May 2025 14:59:19 +0530 Subject: [PATCH 2/4] FIX_FAMILY_FLOATER_KEY_ISSUE : RV --- app/Controllers/EmployeeServiceController.php | 6 ++++-- app/Helpers/excel_util_helper.php | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index b76510b..691e625 100755 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -2058,12 +2058,14 @@ public function getFileMetaDataByFileId($file_id, $status = 'success'){ $relation = 'parent'; } else if(strtolower(trim($value['relationship'])) === 'son' || strtolower(trim($value['relationship'])) === 'daughter'){ $relation = 'child'; - }else if(strtolower(trim($value['relationship'])) === 'father in law' || strtolower(trim($value['relationship'])) === 'mother in law'){ + }else if((strtolower(trim($value['relationship'])) === 'father in law' || strtolower(trim($value['relationship'])) === 'mother in law') || (strtolower(trim($value['relationship'])) === 'father-in-law' || strtolower(trim($value['relationship'])) === 'mother-in-law')){ $relation = 'parent_in_law'; }else if(strtolower(trim($value['relationship'])) === 'spouse'){ $relation = 'spouse'; - }else{ + }else if(strtolower(trim($value['relationship'])) === 'self'){ $relation = 'self'; + }else { + $relation = ''; } $value['family_floater_key'] = $relation; diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 7a59f25..710ba74 100755 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -2207,13 +2207,17 @@ if(!function_exists('generate_family_floater_key')) $relation = 'parent'; } else if(strtolower(trim($relationship)) === 'son' || strtolower(trim($relationship)) === 'daughter'){ $relation = 'child'; - }else if(strtolower(trim($relationship)) === 'father in Law' || strtolower(trim($relationship)) === 'mother in Law'){ + }else if((strtolower(trim($relationship)) === 'father in Law' || strtolower(trim($relationship)) === 'mother in Law') || (strtolower(trim($relationship)) === 'father-in-Law' || strtolower(trim($relationship)) === 'mother-in-Law')){ $relation = 'parent_in_law'; }else if(strtolower(trim($relationship)) === 'spouse'){ $relation = 'spouse'; - }else{ + }else if(strtolower(trim($relationship)) === 'self'){ $relation = 'self'; + }else{ + $relation = ''; } + + return $relation; } } From cce1bad6a2d85aff51b53af474d2a73a4e3c1bb9 Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Tue, 13 May 2025 15:00:09 +0530 Subject: [PATCH 3/4] FIX_CALCULATE_PREMIUM : RV --- app/Config/Routes.php | 2 + app/Controllers/EmployeeRestController.php | 156 ++++++++++++--------- public/sample_excel/enrollment.xlsx | Bin 7754 -> 89706 bytes 3 files changed, 88 insertions(+), 70 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 998369a..eca94e6 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -502,4 +502,6 @@ $routes->get('enrollOpendAndClose', 'DashboardController::updatePolicyEnrollment $routes->get("sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); $routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); $routes->get("getAddOnPolicy", "EmployeeRestController::getAddOnPolicy"); +$routes->post("addEmployeeAndDependence", "EmployeeRestController::addEmployeeAndDependence"); + diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 0d1e3ec..7e57728 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -268,7 +268,8 @@ class EmployeeRestController extends AdminController if(isset($data[0]->id)) { - $this->createEmployeePolicyData($data[0]->id , $data[0]->emp_code , $data[0]->client_id , $data[0]->client_policy_id , $data[0]->basic_cover_si); + $payable_employee = $this->getEmployeePayableValue($data[0]->client_policy_id,$data[0]->relationship); + $this->createEmployeePolicyData($data[0]->id , $data[0]->emp_code , $data[0]->client_id , $data[0]->client_policy_id , $data[0]->basic_cover_si, $payable_employee); }else { $payable_employee = $this->getEmployeePayableValue($data[0]->client_policy_id,$data[0]->relationship); @@ -2342,75 +2343,85 @@ class EmployeeRestController extends AdminController $employee_data_group_by_family[$emp_id] = $data; foreach ($data as $value) { - $newData = []; - $newData['employee_id'] = $value['temp']['emp_id']; - $newData['client_policy_id'] = $value['policy_details']['client_policy_id']; - $newData['status'] = "draft"; - $newData['basic_cover_si'] = $value['policy_details']['basic_cover_si']; - $newData['date_coverage'] = $value['policy_details']['date_coverage']; - $newData['policy_end_date'] = $value['policy_details']['policy_end_date']; - $newData['days'] = $value['policy_details']['days']; - - $isExistingEmpAndPolicy = $this->employeePolicyModel->where('employee_id',$value['temp']['emp_id'])->where('client_policy_id',$value['policy_details']['client_policy_id'])->where('is_active', 1)->get()->getRow(); - if($isExistingEmpAndPolicy) - { - $this->employeePolicyModel->where('employee_id',$value['temp']['emp_id'])->where('client_policy_id',$value['policy_details']['client_policy_id'])->where('is_active', 1)->set($newData)->update(); - }else{ - $this->employeePolicyModel->insert($newData); + if(!empty($value)){ + $newData = []; + $newData['employee_id'] = $value['temp']['emp_id']; + $newData['client_policy_id'] = $value['policy_details']['client_policy_id']; + $newData['status'] = "draft"; + $newData['basic_cover_si'] = $value['policy_details']['basic_cover_si']; + $newData['date_coverage'] = $value['policy_details']['date_coverage']; + $newData['policy_end_date'] = $value['policy_details']['policy_end_date']; + $newData['days'] = $value['policy_details']['days']; + + + $isExistingEmpAndPolicy = $this->employeePolicyModel->where('employee_id',$value['temp']['emp_id'])->where('client_policy_id',$value['policy_details']['client_policy_id'])->where('is_active', 1)->get()->getRow(); + if($isExistingEmpAndPolicy) + { + $this->employeePolicyModel->where('employee_id',$value['temp']['emp_id'])->where('client_policy_id',$value['policy_details']['client_policy_id'])->where('is_active', 1)->set($newData)->update(); + }else{ + $this->employeePolicyModel->insert($newData); + } } } - if($this->request){ + if(empty($clientPolicyId)){ if(isset($policy_terms['policy_terms'])){ $policyTermsJson = json_decode($policy_terms['policy_terms'], true); // print_r($employee_data_group_by_family);die(); foreach ($employee_data_group_by_family[$emp_code] as $key => &$value) { - if(strtolower($value['relationship']) == 'self' && $policyTermsJson['is_payable_employee']['self'] == 0){ - $value['policy_details']['rata_premimum'] = 0; - $value['policy_details']['premium'] = 0; - $value['policy_details']['gst'] = 0; - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; + if(!empty($value)){ - }else if(strtolower($value['relationship']) == 'self' && $policyTermsJson['is_payable_employee']['self'] == 1){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; - } - - if(strtolower($value['relationship']) == 'spouse' && $policyTermsJson['is_payable_employee']['spouse'] == 0){ - $value['policy_details']['rata_premimum'] = 0; - $value['policy_details']['premium'] = 0; - $value['policy_details']['gst'] = 0; - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; + if(strtolower($value['relationship']) == 'self' && $policyTermsJson['is_payable_employee']['self'] == 0){ + $value['policy_details']['rata_premimum'] = 0; + $value['policy_details']['premium'] = 0; + $value['policy_details']['gst'] = 0; + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; - }else if(strtolower($value['relationship']) == 'spouse' && $policyTermsJson['is_payable_employee']['spouse'] == 1){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; - } - - if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter') && $policyTermsJson['is_payable_employee']['childern'] == 0){ - $value['policy_details']['rata_premimum'] = 0; - $value['policy_details']['premium'] = 0; - $value['policy_details']['gst'] = 0; - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; - - }else if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter') && $policyTermsJson['is_payable_employee']['childern'] == 1){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; - } - - if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' ) && $policyTermsJson['is_payable_employee']['elders'] == 0){ - $value['policy_details']['rata_premimum'] = 0; - $value['policy_details']['premium'] = 0; - $value['policy_details']['gst'] = 0; - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; - - }else if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' ) && $policyTermsJson['is_payable_employee']['elders'] == 1){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; - } + }else if(strtolower($value['relationship']) == 'self' && $policyTermsJson['is_payable_employee']['self'] == 1){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; + } + + if(strtolower($value['relationship']) == 'spouse' && $policyTermsJson['is_payable_employee']['spouse'] == 0){ + $value['policy_details']['rata_premimum'] = 0; + $value['policy_details']['premium'] = 0; + $value['policy_details']['gst'] = 0; + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; + }else if(strtolower($value['relationship']) == 'spouse' && $policyTermsJson['is_payable_employee']['spouse'] == 1){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; + } + + if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter') && $policyTermsJson['is_payable_employee']['childern'] == 0){ + $value['policy_details']['rata_premimum'] = 0; + $value['policy_details']['premium'] = 0; + $value['policy_details']['gst'] = 0; + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; + + }else if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter') && $policyTermsJson['is_payable_employee']['childern'] == 1){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; + } + + if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' ) && $policyTermsJson['is_payable_employee']['elders'] == 0){ + $value['policy_details']['rata_premimum'] = 0; + $value['policy_details']['premium'] = 0; + $value['policy_details']['gst'] = 0; + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; + + }else if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' ) && $policyTermsJson['is_payable_employee']['elders'] == 1){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; + } + + }else{ + unset($employee_data_group_by_family[$emp_code][$key]); + } } unset($value); + + $employee_data_group_by_family[$emp_code] = array_values($employee_data_group_by_family[$emp_code]); } }else{ if(isset($policy_terms['policy_terms'])){ @@ -2418,25 +2429,30 @@ class EmployeeRestController extends AdminController $policyTermsJson = json_decode($policy_terms['policy_terms'], true); foreach ($employee_data_group_by_family[$emp_code] as $key => &$value) { + if(!empty($value)){ - if(strtolower($value['relationship']) == 'self'){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; - } - - if(strtolower($value['relationship']) == 'spouse'){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; - } - - if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter')){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; - } - - if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' )){ - $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; - } - + if(strtolower($value['relationship']) == 'self'){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['self']; + } + + if(strtolower($value['relationship']) == 'spouse'){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['spouse']; + } + + if((strtolower($value['relationship']) == 'son' || strtolower($value['relationship']) == 'daughter')){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['childern']; + } + + if((strtolower($value['relationship']) == 'father in law' || strtolower($value['relationship']) == 'mother in law' || strtolower($value['relationship']) == 'father' || strtolower($value['relationship']) == 'mother' )){ + $value['policy_details']['payable_employee'] = $policyTermsJson['is_payable_employee']['elders']; + } + }else{ + unset($employee_data_group_by_family[$emp_code][$key]); + } } unset($value); + + $employee_data_group_by_family[$emp_code] = array_values($employee_data_group_by_family[$emp_code]); } } diff --git a/public/sample_excel/enrollment.xlsx b/public/sample_excel/enrollment.xlsx index 0666a6c87688e2c80785c4969af5d8cce4abf933..97cd3191d28915a6893bc17bd6223f18780690e6 100755 GIT binary patch literal 89706 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 adl7e8O&7kQh{$Z=AuG&~@j>A=i2N^gnQi<4 delta 5115 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 d(6NdC=KJrdIa0#Li9rYhOCTWz6ZJ2X{{zzt Date: Wed, 14 May 2025 12:40:35 +0530 Subject: [PATCH 4/4] FIX_OTP_ISSUE : RV --- .../RestAuthenticationController.php | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index a4a98d5..7f2f9f4 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -138,9 +138,24 @@ class RestAuthenticationController extends AdminController $otp = random_int(100000, 999999); - $update = $this->employeeModel->where('email_corporate', $email)->where('relationship', 'self') - ->where('is_active', 1)->set(array('otp' => $otp )) - ->update(); + // $update = $this->employeeModel->where('email_corporate', $email)->where('relationship', 'self') + // ->where('is_active', 1)->set(array('otp' => $otp )) + // ->update(); + + $sql = " + UPDATE employees + INNER JOIN employee_polices ON employee_polices.employee_id = employees.id + SET employees.otp = ? + WHERE employees.email_corporate = ? + AND employees.relationship = 'self' + AND employees.is_active = 1 + AND employee_polices.is_active = 1 + AND employee_polices.status IN ('draft', 'enrolled') + "; + + $db = db_connect(); + $update = $db->query($sql, [$otp, $email]); + if($update) { @@ -198,7 +213,18 @@ class RestAuthenticationController extends AdminController }else{ if (isset($mobile_number)) { - $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->where('emp_status !=', 'truncated')->where('is_active', 1)->first(); + // $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->where('emp_status !=', 'truncated')->where('is_active', 1)->first(); + + $employeeData = $this->employeeModel + ->select('employees.*') + ->join('employee_polices EP', 'EP.employee_id = employees.id', 'inner') + ->where('employees.is_active', 1) + ->where('employees.relationship', 'self') + ->where('employees.emp_status !=', 'truncated') + ->where('employees.mobile', $mobile_number) + ->where('EP.is_active', 1) + ->whereIn('EP.status', ['draft', 'enrolled']) + ->first(); } else { $employeeData = $this->employeeModel->where('email_corporate', $email_id)->where('otp', $otp)->where('relationship', 'self')->where('emp_status !=', 'truncated')->where('is_active', 1)->first(); }