diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f516c231..fc3ee161 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -216,6 +216,8 @@ $routes->group("/util", ["filter" => "authMVC"], function($routes){ $routes->get("view-success-emp-list", "EmployeeController::viewUploadedEmployeeList/$1"); $routes->get("fetch-policy-for-policy-type", "ClientController::fetchPolicyDataForPolicyType/$1"); $routes->get("fetch-emp-count/(:any)", "EmployeeController::getEmpCount/$1"); + $routes->get("init-Emp-onboard/(:any)", "EmployeeController::initiateManualEmployeesOnboardProcess/$1"); + $routes->get("full-excel-error-file/(:any)", "EmployeeController::downloadFullExcelErrorFile/$1"); }); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 0e141e75..2b5354d5 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -610,7 +610,23 @@ class ClientController extends AdminController $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 ($this->request->getPost('is_addon') == 3) { + $policyTerm = $policy_terms['policy_terms']; + $decoded_policyTerm = json_decode($policyTerm, true); + $decoded_policyTerm['family_floater'] =0; + $decoded_policyTerm['family_floaters']['self'] =0; + $decoded_policyTerm['family_floaters']['spouse'] =0; + $decoded_policyTerm['family_floaters']['childrens'] =0; + $decoded_policyTerm['family_floaters']['parents'] =0; + $decoded_policyTerm['family_floaters']['parents-in-law'] =0; + $decoded_policyTerm['family_floaters']['either-parents-pil'] =0; + + $data['policy_terms'] = json_encode($decoded_policyTerm); + }else{ + $data['policy_terms'] = $policy_terms['policy_terms']; + + } } @@ -679,7 +695,23 @@ class ClientController extends AdminController $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 ($this->request->getPost('is_addon') == 3) { + $policyTerm = $policy_terms['policy_terms']; + $decoded_policyTerm = json_decode($policyTerm, true); + $decoded_policyTerm['family_floater'] =0; + $decoded_policyTerm['family_floaters']['self'] =0; + $decoded_policyTerm['family_floaters']['spouse'] =0; + $decoded_policyTerm['family_floaters']['childrens'] =0; + $decoded_policyTerm['family_floaters']['parents'] =0; + $decoded_policyTerm['family_floaters']['parents-in-law'] =0; + $decoded_policyTerm['family_floaters']['either-parents-pil'] =0; + + $data['policy_terms'] = json_encode($decoded_policyTerm); + } else { + $data['policy_terms'] = $policy_terms['policy_terms']; + } + + } // dd($data); @@ -1259,6 +1291,7 @@ class ClientController extends AdminController ->where("employees.emp_status",'active') ->countAllResults(); + $emp_count_by_policy = $this->employeePolicyModel->where('client_policy_id',$client_policy_id)->where('is_active',1)->countAllResults(); if($emp_count == 0){ $emp_count = true; }else{ @@ -1266,7 +1299,7 @@ class ClientController extends AdminController } if ($record) { - return $this->respond(['Status' => true,'code' => 200,'data' => $record['policy_terms'], 'count' => $emp_count, 'policy_name' => $policy_name], 200); + return $this->respond(['Status' => true,'code' => 200,'data' => $record['policy_terms'], 'count' => $emp_count, 'policy_name' => $policy_name,'policy_addon' => $record['is_addon'], 'emp_count_by_policy'=>$emp_count_by_policy], 200); } else { return $this->respond(['Status' => false,'code' => 200,'message' => 'Record not found.', 'count' => $emp_count, 'policy_name' => $policy_name], 200); } diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 01216aa6..9e0e0517 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -490,7 +490,7 @@ class EmpDataServiceController extends BaseController try { - if ($value[15] === null) { + if ($value[15] === null || $value[16] === null) { $missing_id[] = $key + 1; } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index b3b0160d..6a3ba065 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -26,6 +26,8 @@ use App\Controllers\EmpDataServiceController; use CodeIgniter\API\ResponseTrait; use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; class EmployeeController extends AdminController { @@ -248,6 +250,7 @@ class EmployeeController extends AdminController // Render views and capture output $result = $empServiceController->getExcelErrorData($file_id); + $result['file_id'] = $file_id; // echo '
';
         // print_r($result); die;
@@ -564,10 +567,21 @@ class EmployeeController extends AdminController
     // 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);
+    {   
+       $client_data = $this->clientPolicyModel->select('clients.client_name as client_name, policies.name as policy_name')
+       ->join('clients', 'clients.id = client_policy.client_id')
+       ->join('policies', 'policies.id = client_policy.policy_id')
+       ->where('client_policy.id', $client_policy_id)
+       ->first();
+
+       $empServiceController = new EmployeeServiceController();
+       $res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
+       // dd($res);
+
+       $count = count($res);
+       $message =  $count . ' Employees are Initiate Onboard Process againts Client '. $client_data['client_name'] . ' and the Policy is ' . $client_data['policy_name'] ;
+       session()->setFlashdata('success1',  $message);
+       return redirect()->to(base_url('/employee/upload'));
     }
 
 
@@ -665,9 +679,9 @@ class EmployeeController extends AdminController
 
     public function getEmpCount($id = null){
 
-      $data = $this->employeeModel->select('employees.id')
-       ->join('clients', 'clients.id = employees.client_id')
-       ->where('employees.client_id', $id)
+      $data = $this->employeePolicyModel->select('employee_polices.id')
+       ->where('employee_polices.is_active', 1)
+       ->where('employee_polices.client_policy_id', $id)
        ->findAll();
 
        $emp_count = count($data);
@@ -683,5 +697,120 @@ class EmployeeController extends AdminController
 
 
     }
+
+    public function downloadFullExcelErrorFile($file_id = 137, $rowIndex = 1, $colIndex = 1)
+    {
+        // Get file data from the database
+        $file_data = $this->fileModel->find($file_id);
+
+       $error =  json_decode($file_data['reason']);
+    //    echo '
';
+    //    print_r($error); die;
+    //    dd($error);
+    
+        // Check if the file exists
+        if (!$file_data) {
+            $error_message = "File not found";
+            $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+            return $error_message;
+        }
+    
+        $fileName = $file_data['file_name'];
+        $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
+    
+        // Check if the file exists
+        if (!file_exists($filePath)) {
+            $error_message = "File not found";
+            $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+            return $error_message;
+        }
+    
+        // Load the Excel file
+        $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
+        $sheet = $spreadsheet->getActiveSheet();
+
+        //  echo '
';
+
+        foreach ($error->error_data as $index => $error_data) {
+
+            $rowIndex = $index+1;
+
+            if( $error->error_type == 1 ){
+
+                foreach ($error_data as $key => $value) {
+               
+                    $colIndex = $value->col_idx+1;
+                    
+                    $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+        
+                    $newValue =  implode(', ',$value->error);
+                    $val = $originalValue . ' ( ' . $newValue . ' )';
+                    $sheet->setCellValue([$colIndex, $rowIndex],  $val);
+                
+                    $style = [
+                        'fill' => [
+                            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+                            'startColor' => ['rgb' => 'ffad99'] // Red color
+                        ]
+                    ];
+                    
+                    $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+    
+                }
+            }else if( $error->error_type == 2){
+
+
+                foreach ($error_data as $key => $value) {
+               
+                    
+                    $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
+        
+                    $newValue =  implode(', ',$value->error);
+                    $val = $originalValue . ' ( ' . $newValue . ' )';
+                    $sheet->setCellValue([$colIndex, $rowIndex],  $val);
+                
+                    $style = [
+                        'fill' => [
+                            'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+                            'startColor' => ['rgb' => 'ffad99'] // Red color
+                        ]
+                    ];
+                    $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+    
+                }
+
+            }
+
+       }
+    
+
+    
+        // Create a new filename for the modified Excel file
+        $newFileName = 'modified_' . $fileName;
+    
+        // Save the modified Excel file to a new location
+        $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
+        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+        $writer->save($newFilePath);
+    
+        // Set headers to force download
+        $response = service('response');
+        $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+        $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
+        $response->setHeader('Cache-Control', 'max-age=0');
+        $response->setHeader('Content-Length', filesize($newFilePath));
+        $response->setBody(file_get_contents($newFilePath));
+    
+        // Delete the temporary file
+        unlink($newFilePath);
+    
+        // Return the response
+        return $response;
+    }
+    
+    
+    
+    
+    
     
 }
\ No newline at end of file
diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php
index 668c12f1..71ebec43 100644
--- a/app/Controllers/EmployeeRestController.php
+++ b/app/Controllers/EmployeeRestController.php
@@ -170,16 +170,18 @@ class EmployeeRestController extends AdminController
     
     public function addEmployeeAndDependence()
     {
-        try {
+        // try {
             $data = $this->request->getJSON();
            
             if ($data) {
+
                 $Count = 0;
                 foreach ($data as $item) {
                     if (isset($item->id)) {
                         //update old data
                         $id = $item->id;
                         $item->family_floater_key = $this->RelationshipMap($item->relationship);
+                        $item->gender = $this->GenderMap($item->relationship , $item->emp_code);
                         $item->dob = $this->convertDateFormatYMD($item->dob);
                         $item->emp_status = 'Draft';
                         $employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item);
@@ -189,9 +191,10 @@ class EmployeeRestController extends AdminController
                       }else{
                         //create new data
                         $item->family_floater_key = $this->RelationshipMap($item->relationship);
+                        $item->gender = $this->GenderMap($item->relationship , $item->emp_code);
                         $item->dob = $this->convertDateFormatYMD($item->dob);
                         $item->emp_status = 'Draft';
-                        $employee = $this->employeeModel->where('is_active', 1 )->insert($item);
+                        $employee = $this->employeeModel->insert($item);
                    
                         if ($employee) {
                          if(!isset($item->is_addon_value))
@@ -206,6 +209,7 @@ class EmployeeRestController extends AdminController
                 }
     
                 if ($Count > 0) {
+                    $this->updatePremiumAmount($data[0]->client_policy_id , $data[0]->emp_code);
                     $result = [];
                     return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200);
                 } else {
@@ -213,40 +217,57 @@ class EmployeeRestController extends AdminController
                     return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404);
                 }
             }
-        } catch (\Exception $e) {
-            return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
-        }
+        // } catch (\Exception $e) {
+        //     return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
+        // }
         
     }
 
     public function createEmployeePolicyData($employee_id,$emp_code,$client_id,$client_policy_id)
     {
 
- 
-           
             $client_policy = $this->clientPolicyModel->where('id', $client_policy_id)->where('client_id', $client_id)->first();
             $policy_terms = json_decode($client_policy['policy_terms']);
             $basic_cover_si = $policy_terms->sum_insured;
 
-            $getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
-            $SlabRatesArray = $getSlabAndGridData['slab_rates'];
-            $premium = $this->findPremiumAmount($SlabRatesArray, $basic_cover_si);
-
-
-
             $data['employee_id']= $employee_id;
             $data['client_policy_id']= $client_policy_id;
             $data['basic_cover_si']= $basic_cover_si;
-            $data['premium']= $premium;
+            $data['status']= 'draft';
     
             $this->employeePolicyModel->insert($data);
-                
-            
             return true;             
-           
-       
     }
 
+    public function updatePremiumAmount($client_policy_id , $emp_code)
+    {
+        $response = $this->calculatePremium($client_policy_id , $emp_code);
+
+        if(count($response[$emp_code]))
+        {
+            print_r($response[$emp_code]);
+            foreach ($response[$emp_code] as $key => $value) 
+            {
+               
+                $checkIfExist = $this->employeePolicyModel->where('employee_id', $value['temp']['emp_id'])
+                                                           ->where('client_policy_id', $value['policy_details']['client_policy_id'])
+                                                           ->where('is_active', 1 )
+                                                           ->findAll();
+                if($checkIfExist) 
+                {  
+                    $this->employeePolicyModel
+                    ->where('client_policy_id',$value['policy_details']['client_policy_id'] )
+                    ->where('employee_id' , $value['temp']['emp_id'] )
+                    ->where('is_active', 1 )
+                    ->set(array('premium'=> $value['policy_details']['premium'] ))
+                    ->update();        
+                   
+                }
+            }
+        }
+    }
+
+
     public function RelationshipMap($value){
        
             if ($value === 'Mother' || $value === 'Father') {
@@ -260,6 +281,19 @@ class EmployeeRestController extends AdminController
             }
     }
 
+    public function GenderMap($value,$empCode){
+       
+        if ($value === 'Mother' || $value === 'Daughter' || $value === 'Mother in Law') {
+            return  'F';
+        } else if($value === 'Son' || $value === 'Father' || $value === 'Father in Law'){
+            return 'M';
+        }else if($value === 'Spouse'){
+
+            $Gender = $this->employeeModel->where('emp_code',$empCode)->where('relationship','Self')->get()->getRow()->gender;
+            if($Gender == 'M'){ return  'F'; }else{ return 'M'; }
+        }
+}
+
     private function convertDateFormatYMD($dateString)
     {
         // Attempt to create a DateTime object from the provided date string
@@ -1293,14 +1327,21 @@ public function iAgreeForAddOn()
 //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
+public function calculatePremium($clientPolicyId = null , $empCode = null, $default_si = null)//family level
 { 
     helper('excel_util_helper');
-    $client_policy_id = $this->request->getVar('client_policy_id');
-    $emp_code = $this->request->getVar('emp_code');
-    $default_si = $this->request->getVar('si');// si amt which choosed in add on policy
+
+    // $client_policy_id = $this->request->getVar('client_policy_id');
+    // $emp_code = $this->request->getVar('emp_code');
+    
     // dd($default_si);
 
+    $client_policy_id = $this->request->getVar('client_policy_id') ?? $clientPolicyId;
+    $emp_code = $this->request->getVar('emp_code') ?? $empCode;
+    $default_si = $this->request->getVar('si') ?? $default_si;// si amt which choosed in add on policy
+    // 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);
@@ -1326,8 +1367,15 @@ public function calculatePremium()//family level
          
      }
 
-     // dd ($employee_data_group_by_family);
+     if($clientPolicyId != null && $empCode != null)
+     {
+       return $employee_data_group_by_family;
+     }else{
+        // 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 31f4fe58..808fa7a9 100644
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -568,6 +568,8 @@ class EmployeeServiceController extends AdminController
 
             $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'];
             $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception','created_by' => get_session_userid()];
             // dd($this->employeeModel->getLastQuery());
             // Kint::dump($existing_famility_details);die();
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index 084247bf..17f1c3f2 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -659,6 +659,7 @@ class EmployeePolicyModel extends Model
                          ->where('employee_polices.client_policy_id',$policy_id);
 
          $result->whereIn('employee_polices.status', ['draft', 'enrolled']);
+         $result->whereIn('emp.emp_status', ['draft', 'enrolled']);
          $result = $result->findAll();        
          return ($result);
     }
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index d211a9cf..908612fe 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -424,10 +424,26 @@ $(document).ready(function() {
             // console.log(res)
             var OptionsHTML = '';
             OptionsHTML += '';
+            $policy_type_value = $('#policy_type').val();
             $.each(res.data, function(index, item) {
-                OptionsHTML += '';
+                    
+                if ($policy_type_value == 3) {
+                    if (item.policy_type_id == 5 || item.policy_type_id == 3) {
+                        OptionsHTML += '';
+                    }
+                }else if($policy_type_value == 2){
+                    if (item.policy_type_id == 4 ) {
+                        OptionsHTML += '';
+                    }
+                }else{
+                    OptionsHTML += '';
+                }
             });
 
             $('#policy').html(OptionsHTML);
@@ -989,6 +1005,10 @@ $('#policy_type').change(function() {
     $('#end_date').val('');
     $('#base_policy').val('0');
 
+    if($(this).val() == 3){
+        toastr.warning('Please Change the Policy Terms after Submit the Policy!', 'warning');
+    }
+
     if ($(this).val() != '1' && $(this).val() != '0') {
 
         $('#base_policy_id').show();
@@ -1011,7 +1031,6 @@ $('#policy_type').change(function() {
         $('#base_policy_id').hide();
         $('#base_policy').prop('required', false);
     }
-
 })
 
 
@@ -1074,8 +1093,8 @@ $(document).ready(function(){
         const queryString = objectToQueryString(queryParams);
         // var uri = '?' + queryString
         var uri = '' + client_policy_id
-        console.log('uri', uri)
-        console.log('queryString', queryString)
+        // console.log('uri', uri)
+        // console.log('queryString', queryString)
 
         $('.loader').fadeIn();
         $('.loader-mask').fadeIn();
@@ -1102,11 +1121,19 @@ $(document).ready(function(){
 
 
                 var policeOptionHTML = '';
+                $policy_type_value = $('#policy_type').val();
                 $.each(res.policy, function(index, item) {
-                    console.log(item)
-                    policeOptionHTML += '';
+                        // }
+                    // }
+                    
                 });
                 $('#policy').html(policeOptionHTML);
 
diff --git a/app/Views/employee_upload.php b/app/Views/employee_upload.php
index 959e1509..e6fccef7 100644
--- a/app/Views/employee_upload.php
+++ b/app/Views/employee_upload.php
@@ -1,3 +1,10 @@
+
 
 
@@ -124,7 +131,7 @@
@@ -152,6 +159,10 @@ $('#file_upload').hide(); $(document).ready(function() { + + has('success1')): ?> + toastr.success('getFlashdata('success1') ?>', 'success'); + // Initialize select2 $("#client_id").select2(); $("#policy_id").select2(); @@ -478,10 +489,10 @@ $(document).ready(function() { $('#client_id').on('change', function() { var selectedClient = $(this).val(); + console.log('selectedClient', selectedClient); // $('#selectedOptionInfo').text('Selected option: ' + selectedOption); - // Check if the selected option exists in apiData var foundPolicies = clientPolicies.find(function(item) { return item.id === selectedClient; @@ -489,64 +500,6 @@ $(document).ready(function() { console.log(foundPolicies.policies); appendPolicies(foundPolicies.policies); - var apiURL = '' + 'util/fetch-emp-count/' + selectedClient; - console.log(apiURL); - $.ajax({ - url: apiURL, - method: 'GET', - headers: { - "Content-Type": "application/json", - "X-Requested-With": "XMLHttpRequest" - }, - success: function(response) { - - console.log('responce data emp_count', response); - - if (response.code === 200 && response.dataStatus === true && response.data !== "") { - try { - console.log(response.emp_count.length) - if(response.emp_count > 0){ - - var select = document.getElementById("upload-action-type"); - for (var i = 0; i < select.options.length; i++) { - if (select.options[i].value === "inception") { - select.options[i].disabled = true; - break; - } - } - }else{ - - var select = document.getElementById("upload-action-type"); - for (var i = 0; i < select.options.length; i++) { - if (select.options[i].value === "inception") { - select.options[i].disabled = false; - break; - } - } - } - - } catch (error) { - console.error('Error parsing API response data:', error); - } - } else if (response.code === 404 && response.dataStatus === false) { - - console.error('no data found', response); - - } else { - console.error('Something went wrong!'); - } - }, - error: function(xhr, status, error) { - console.error('Error fetching data from API:', error); - var select = document.getElementById("upload-action-type"); - for (var i = 0; i < select.options.length; i++) { - if (select.options[i].value === "inception") { - select.options[i].disabled = false; - break; - } - } - } - }); }); }); @@ -637,6 +590,12 @@ document.getElementById('toggleIcon1').addEventListener('click', function() { $('#fetch_enrolled_data').click(function() { + var policy_id = $('#policy_id').val(); + var uri = '' + policy_id; + console.log(policy_id); + console.log(uri); + $('#fetch_btn').attr('href', uri); + $('#emp_data').empty(); var client_id = $('#client_id').val(); var policy_id = $('#policy_id').val(); @@ -700,5 +659,75 @@ $('#fetch_enrolled_data').click(function() }) +$(document).ready(function() { + + $('#policy_id').change(function(){ + + var selectedpolicy = $(this).val(); + console.log('selectedpolicy',selectedpolicy) + + var apiURL = '' + 'util/fetch-emp-count/' + selectedpolicy; + console.log(apiURL); + $.ajax({ + url: apiURL, + method: 'GET', + headers: { + "Content-Type": "application/json", + "X-Requested-With": "XMLHttpRequest" + }, + success: function(response) { + + console.log('responce data emp_count', response); + + if (response.code === 200 && response.dataStatus === true && response.data !== "") { + try { + console.log(response.emp_count.length) + if(response.emp_count > 0){ + + var select = document.getElementById("upload-action-type"); + for (var i = 0; i < select.options.length; i++) { + if (select.options[i].value === "inception") { + select.options[i].disabled = true; + break; + } + } + }else{ + + var select = document.getElementById("upload-action-type"); + for (var i = 0; i < select.options.length; i++) { + if (select.options[i].value === "inception") { + select.options[i].disabled = false; + break; + } + } + } + + } catch (error) { + console.error('Error parsing API response data:', error); + } + } else if (response.code === 404 && response.dataStatus === false) { + + console.error('no data found', response); + + } else { + console.error('Something went wrong!'); + } + }, + error: function(xhr, status, error) { + console.error('Error fetching data from API:', error); + var select = document.getElementById("upload-action-type"); + for (var i = 0; i < select.options.length; i++) { + if (select.options[i].value === "inception") { + select.options[i].disabled = false; + break; + } + } + } + }); + }) + +}) + + //-------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/app/Views/excel_errors.php b/app/Views/excel_errors.php index 0e8b070e..7c09353c 100644 --- a/app/Views/excel_errors.php +++ b/app/Views/excel_errors.php @@ -66,6 +66,7 @@ table.dataTable tbody td { +
@@ -118,6 +119,12 @@ $(document).ready(function() { extend: 'excel', text: 'Excel', // Set the title for the Excel button title: 'ExcelErrorData', // Set your custom title here + }, + { + text: 'Excel Error', // Set the text for the custom button + action: function (e, dt, node, config) { + window.location.href = ''; + } } ], paging: false, // Disable pagination diff --git a/app/Views/policy_gmc_terms.php b/app/Views/policy_gmc_terms.php index f5b9b5ac..25b16341 100644 --- a/app/Views/policy_gmc_terms.php +++ b/app/Views/policy_gmc_terms.php @@ -105,8 +105,8 @@
- Yes - No + Yes + No
@@ -159,8 +159,8 @@
- Yes, waived off - No + Yes, waived off + No
@@ -206,8 +206,8 @@
- Yes, waived off - No
+ Yes, waived off + No
@@ -224,8 +224,8 @@
- Yes, waived off - No + Yes, waived off + No
@@ -235,8 +235,8 @@
- Yes, waived off - No + Yes, waived off + No
@@ -254,8 +254,8 @@
- Internal Covered - No
+ Internal Covered + No
@@ -324,8 +324,8 @@
- Yes - No + Yes + No
@@ -361,8 +361,8 @@
- Applicable - Not Applicable
+ Applicable + Not Applicable
@@ -370,8 +370,8 @@
- Yes - No
+ Yes + No
@@ -379,8 +379,8 @@
- Yes - No + Yes + No
@@ -398,8 +398,8 @@
- Yes - No + Yes + No
@@ -640,7 +640,7 @@ var grid_html = ''; var gmc_policy_type_id = $(this).attr('id'); - console.log(gmc_policy_type_id) + // console.log(gmc_policy_type_id) if(gmc_policy_type_id == 'GMC'){ @@ -657,7 +657,9 @@ var grid_html = ''; data: {client_policy_id: client_policy_id}, success: function(response) { console.log('response',response); - console.log('count', response.count); + + + // console.log('count', response.count); setTimeout(function() { $('.loader').fadeOut(); $('.loader-mask').delay(350).fadeOut('slow'); @@ -684,6 +686,11 @@ var grid_html = ''; if (response) { + if ( response.emp_count_by_policy != 0) { + $('#btnGridSubmit1').hide(); + + $('#myButtonSpecialCondition').hide(); + } let jsonObject = JSON.parse(response.data); Object.keys(jsonObject).forEach(function(key) { if (key.includes("special_condition_label") || key.includes("special_condition_input")) { @@ -737,6 +744,53 @@ var grid_html = ''; } } + if(response.policy_addon == '3'){ + + $('.jodit-container').prop('disabled', true); + $('.waiverofpreexistingdiseases').prop('disabled', true); + $('#maternitycoverage').prop('disabled', true); + $('#twindelivery').prop('disabled', true); + $('#preandpostnatal').prop('disabled', true); + $('#babyday1cover').prop('disabled', true); + $('.9monthwaitingperiodwaived').prop('disabled', true); + $('#coverfromthedateofjoining').prop('disabled', true); + $('.waiverof1234thyearexclusions').prop('disabled', true); + $('.waiverof30dayswaitingperiod').prop('disabled', true); + $('#prehospitalizationcover').prop('disabled', true); + $('.congenitaldiseasesinternal').prop('disabled', true); + $('#copayzonewisecopay').prop('disabled', true); + $('#bioabsorbablestenttoriclensmultifocallens').prop('disabled', true); + $('#roomrentlimit').prop('disabled', true); + $('#proportionatedeductionclause').prop('disabled', true); + $('#nursingallowance').prop('disabled', true); + $('.ailmentcapping').prop('disabled', true); + $('#ambulancecharges').prop('disabled', true); + $('#airambulance').prop('disabled', true); + $('#familytransportationbenefit').prop('disabled', true); + $('.reasonableandcustomarycharges').prop('disabled', true); + $('.daycaretreatment').prop('disabled', true); + $('.ayudhtreatmentcover').prop('disabled', true); + $('#armdcovered').prop('disabled', true); + $('.suminsuredenhancement').prop('disabled', true); + $('#automaticsuminsuredreinstatement').prop('disabled', true); + $('#lasiksurgery').prop('disabled', true); + $('#midterminclusion').prop('disabled', true); + $('#capd').prop('disabled', true); + $('#organdonorexpenses').prop('disabled', true); + $('#moderntreatmentsasperirdai').prop('disabled', true); + $('#days_of_discharge').prop('disabled', true); + $('#days_from_dod').prop('disabled', true); + + setTimeout(function() { + var editor1 = new Jodit('#additionalsicknessbenefit'); + var editor2 = new Jodit('#Wellness'); + + editor1.setReadOnly(true); + editor2.setReadOnly(true); + + }, 3000); + } + }