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 @@ + +
-
-
-
-
-

Batch List

-
- +
+
+
+
+

Batch List

- + + +
+
- - - - - - - - - - - + + + + + + + + + + + @@ -28,7 +35,7 @@ { foreach ($batch_list as $key => $file) { ?> - + @@ -41,9 +48,40 @@ - +
SNOBatch CodeFile NameClientClient PolicyEvent TypeInsurer/TPAActionCount
SNOBatch CodeFile NameClientClient PolicyEvent TypeInsurer/TPAActionCount
+
+
-
-
\ 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(''); - $('#is_addon').prop('checked', false); + $('#insurer').val('').change(); + $('#tpa').val('').change(); + $('#start_date').val('').change(); + $('#end_date').val('').change(); + $('#policy').html('').change(); $('#policy_form_action').val(''); $('#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(''); $('#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(''); - $('#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 = "" + 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 = "" + secondPart; - $.get(url, function(res) { - // res = JSON.parse(res)// - // console.log(res) - var OptionsHTML = ''; - OptionsHTML += ''; - $.each(res.data, function(index, item) { - OptionsHTML += ''; + $.get(url, function(res) { + // res = JSON.parse(res)// + // console.log(res) + var OptionsHTML = ''; + OptionsHTML += ''; + $.each(res.data, function(index, item) { + OptionsHTML += ''; + }); + + $('#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(''); 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 += ''; @@ -522,13 +540,16 @@ $('body').on('click', '.btnPolicyEdit', function() { var OptionsHTML = ''; OptionsHTML += ''; $.each(res.client_policy_list, function(index, item) { - if (res.data.policy_id !== item.id) { - OptionsHTML += ''; - } + OptionsHTML += ''; }); $('#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 = '?' + queryString + var uri = '' + 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 += ''; + }); + $('#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']; } ?> +
-
\ 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 { \ 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 @@
-
+ @@ -85,12 +79,14 @@
-
OR
+
OR
Featch Enrolled Data + id="fetch_enrolled_data" data-toggle="modal" + data-target="#full-width-modal" title="Download Sample Excel">Featch + Enrolled Data
@@ -125,7 +121,7 @@