From bd4e51f14428476576b23d1ea8f195d2f3dcc1f9 Mon Sep 17 00:00:00 2001 From: aadhavan valli Date: Mon, 29 Jul 2024 17:14:03 +0530 Subject: [PATCH] CHANGE_ENROLLMENT_STATUS_AND_REMINDER_MAIL_CHANGE_THE_CODE : AADHAVAN --- app/Config/Routes.php | 4 +- app/Controllers/ClientController.php | 25 +- app/Controllers/DashboardController.php | 158 +++++++-- app/Controllers/JobWorker.php | 70 +--- app/Models/ClientPolicyModel.php | 3 + app/Views/client_policy.php | 111 ++++-- app/Views/enrollment_dash.php | 373 ++++++++++++++++----- public/assets/images/left_arrow.png | Bin 0 -> 383 bytes public/assets/images/mask_group.png | Bin 0 -> 8099 bytes public/assets/images/mask_group_blue.png | Bin 0 -> 6038 bytes public/assets/images/mask_group_orange.png | Bin 0 -> 7686 bytes public/assets/images/mask_group_pink.png | Bin 0 -> 7860 bytes public/assets/images/right_arrow.png | Bin 0 -> 362 bytes 13 files changed, 516 insertions(+), 228 deletions(-) create mode 100644 public/assets/images/left_arrow.png create mode 100644 public/assets/images/mask_group.png create mode 100644 public/assets/images/mask_group_blue.png create mode 100644 public/assets/images/mask_group_orange.png create mode 100644 public/assets/images/mask_group_pink.png create mode 100644 public/assets/images/right_arrow.png diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 423e318e..a0dd7be7 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -47,7 +47,7 @@ $routes->group("/user", ["filter" => "authMVC"], function ($routes) { $routes->group("/dashboard", ["filter" => "authMVC"], function ($routes) { - $routes->get("view", "DashboardController::dashboard"); + $routes->match(['get','post'],'view','DashboardController::dashboard'); $routes->get('get-notification', 'DashboardController::getDashboardNotifications'); $routes->get('acknowledge-notification/(:segment)', 'DashboardController::acknowledgeMessage/$1'); $routes->get('get-pending-action', 'PendingActionsController::getPendingActions'); @@ -272,7 +272,7 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->cli('cli/processjob', 'JobWorker::processJob'); $routes->cli('cli/processjobs', 'JobWorker::processJobs'); -$routes->cli('cli/enrollment_status', 'JobWorker::enrollment_status'); +$routes->cli('cli/enrollment_status', 'DashboardController::enrollment_status'); $routes->get("processjob", "JobWorker::processJob"); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 5ffe24f3..7b694d78 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -405,7 +405,9 @@ class ClientController extends AdminController foreach ($clientPoliceData as $key => $value) { $clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date)); + $clientPoliceData[$key]->open_date = date('d-M-Y', strtotime($value->open_date)); $clientPoliceData[$key]->policy_end_date = date('d-M-Y', strtotime($value->policy_end_date)); + $clientPoliceData[$key]->close_date = date('d-M-Y', strtotime($value->close_date)); } $editData['client_policy'] = $clientPoliceData; @@ -812,16 +814,17 @@ class ClientController extends AdminController // } // } - + $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['policy_no'] = $this->request->getPost('policy_no'); if($data['inception_type'] == 2){ - $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['open_date'] = change_date_format($this->request->getPost('open_date'), 'd-m-Y', 'Y-m-d'); + $data['close_date'] = change_date_format($this->request->getPost('close_date'), 'd-m-Y', 'Y-m-d'); $data['reminder_date'] = change_date_format($this->request->getPost('reminder_date'), 'd-m-Y', 'Y-m-d'); }else{ - $data['policy_start_date'] = null; - $data['policy_end_date'] = null; + $data['open_date'] = null; + $data['closedate'] = null; $data['reminder_date'] = null; } @@ -882,14 +885,16 @@ class ClientController extends AdminController $data['client_branch_id'] = $this->request->getPost('client_branch_id'); $data['cd_ac_no'] = $this->request->getPost('cd_ac_no'); $data['gst'] = $this->request->getPost('gst'); - + $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'); + if($data['inception_type'] == 2){ - $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['open_date'] = change_date_format($this->request->getPost('open_date'), 'd-m-Y', 'Y-m-d'); + $data['close_date'] = change_date_format($this->request->getPost('close_date'), 'd-m-Y', 'Y-m-d'); $data['reminder_date'] = change_date_format($this->request->getPost('reminder_date'), 'd-m-Y', 'Y-m-d'); }else{ - $data['policy_start_date'] = null; - $data['policy_end_date'] = null; + $data['open_date'] = null; + $data['close_date'] = null; $data['reminder_date'] = null; } diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 7a29a9a3..da5e1ac6 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -6,6 +6,7 @@ use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use App\Helpers\sendMailNotification; use CodeIgniter\API\ResponseTrait; @@ -13,6 +14,11 @@ use App\Models\MessageModel; use App\Models\UserMessageModel; use App\Models\ClientModel; +use App\Models\JobModel; +use App\Models\ClientPolicyModel; +use App\Models\NotificationModel; +use App\Models\EmployeePolicyModel; + class DashboardController extends AdminController { @@ -33,20 +39,22 @@ class DashboardController extends AdminController public function dashboard() { - $data = []; + $data = []; + $results = $this->clientModel->select('clients.id as client_id, clients.client_name, clients.short_name, - client_branch.id as client_branch_id, client_branch.branch_name, - client_branch.branch_code, employees.id as employee_id, - employees.name as employee_name, employees.relationship, - employees.emp_code, employees.emp_status, auth_history.user_type') - ->join('client_branch','clients.id = client_branch.client_id', 'left') - ->join('employees','client_branch.id = employees.client_branch_id', 'left') - ->join('auth_history', 'employees.id = auth_history.user_id AND "employee" = auth_history.user_type', 'left') - ->findAll(); - + client_branch.id as client_branch_id, client_branch.branch_name, + client_branch.branch_code, employees.id as employee_id, + employees.name as employee_name, employees.relationship, + employees.emp_code, employees.emp_status, auth_history.user_type, client_policy.policy_type_id, client_policy.id as client_policy_id') + ->join('client_branch', 'clients.id = client_branch.client_id', 'left') + ->join('client_policy', 'client_branch.id = client_policy.client_branch_id', 'left') + ->join('employees', 'client_branch.id = employees.client_branch_id', 'left') + ->join('auth_history', 'employees.id = auth_history.user_id AND "employee" = auth_history.user_type', 'left') + ->findAll(); + $groupedData = []; - $employeeId = ''; + foreach ($results as $row) { $clientId = $row['client_id']; $clientName = $row['client_name']; @@ -54,16 +62,14 @@ class DashboardController extends AdminController $branchId = $row['client_branch_id']; $branchName = $row['branch_name']; $branchCode = $row['branch_code']; - if($employeeId != $row['employee_id']){ - $employeeId = $row['employee_id']; - }else{ - $employeeId = null; - } - $employeeName = $row['employee_name'] ; - $employeeRelationship = $row['relationship'] ; - $employeeEmpCode = $row['emp_code'] ; + $employeeId = $row['employee_id']; + $employeeName = $row['employee_name']; + $employeeRelationship = $row['relationship']; + $employeeEmpCode = $row['emp_code']; $employeeEmpStatus = $row['emp_status']; $employeeUserType = $row['user_type']; + $clientPolicyId = $row['client_policy_id']; + $policyTypeId = $row['policy_type_id']; // Initialize the client entry if it doesn't exist if (!isset($groupedData[$clientId])) { @@ -83,12 +89,23 @@ class DashboardController extends AdminController 'branch_code' => $branchCode, 'emp_login' => 0, 'emp_enroll' => 0, + 'client_policies' => [], 'employees' => [] ]; } - if ($employeeId !== null && $employeeRelationship == 'Self') { - // Append employee info to the branch's employees list - $groupedData[$clientId]['branches'][$branchId]['employees'][] = [ + + // Add the client policy to the branch's policies list if it exists, not already added, and policyTypeId is not equal to 1 + if ($clientPolicyId !== null && $policyTypeId != 1 && !in_array(['client_policy_id' => $clientPolicyId, 'policy_type_id' => $policyTypeId], $groupedData[$clientId]['branches'][$branchId]['client_policies'])) { + $groupedData[$clientId]['branches'][$branchId]['client_policies'][] = [ + 'client_policy_id' => $clientPolicyId, + 'policy_type_id' => $policyTypeId + ]; + } + + // Append employee info to the branch's employees list if relationship is 'Self' and not already added + $employeeKey = $employeeId . '-' . $employeeName; // unique key to identify an employee + if ($employeeId !== null && $employeeRelationship == 'Self' && !isset($groupedData[$clientId]['branches'][$branchId]['employees'][$employeeKey])) { + $groupedData[$clientId]['branches'][$branchId]['employees'][$employeeKey] = [ 'employee_id' => $employeeId, 'employee_name' => $employeeName, 'relationship' => $employeeRelationship, @@ -105,21 +122,31 @@ class DashboardController extends AdminController $groupedData[$clientId]['branches'][$branchId]['emp_enroll']++; } } - $employeeId = $row['employee_id']; } // Re-index the arrays to match the expected structure foreach ($groupedData as &$client) { + foreach ($client['branches'] as &$branch) { + $branch['employees'] = array_values($branch['employees']); + } $client['branches'] = array_values($client['branches']); } - // echo "
";
+    
         $data['client_branch_emp_list'] = $groupedData;
+        $session = \Config\Services::session();
+        $session->set('enrollment_data', json_encode($data));
+        // echo "
";
         // print_r($data);die;
 
+        
         echo view('layout/header');
         echo view('DashBoard', $data);
         echo view('layout/footer');
     }
+    
+    
+    
+    
 
     public function getDashboardNotifications()
     {
@@ -148,4 +175,87 @@ class DashboardController extends AdminController
     }
 
 
+    public static function enrollment_status() {
+        $clientModel = new ClientModel();
+        $clientPolicyModel = new ClientPolicyModel();
+        $notificationModel = new NotificationModel();
+        $employeePolicyModel = new EmployeePolicyModel();
+        $myLogger = \Config\Services::mylogger();
+    
+        $client_policy_data = $clientPolicyModel
+                                                ->where('id', 21)
+                                                ->findAll();
+        $currentDate = date('Y-m-d');
+    
+        // Update policy status based on start and end dates
+        foreach ($client_policy_data as $client_policy) {
+            $id = $client_policy['id'];
+            
+            if ($currentDate == $client_policy['open_date']) {
+                $clientPolicyModel->update($id, ['open_for_enrollment' => 1]);
+            } 
+            
+            if ($client_policy['close_date'] < $currentDate) {
+                $clientPolicyModel->update($id, ['open_for_enrollment' => 0]);
+            }
+        }
+    
+        $reminder_whole_mail = [];
+
+        foreach ($client_policy_data as $client_policy) {
+            // Fetch client data
+            $client_data = $clientModel->find($client_policy['client_id']);
+            
+            // Fetch notification settings
+            $notification_data = $notificationModel->where('client_id', $client_policy['client_id'])
+                                                   ->where('template_name', 'member_reminder_mail')
+                                                   ->first();
+            
+            // Check if notification should be sent
+            if ($notification_data && $notification_data['enabled'] == 1 && $currentDate == $client_policy['reminder_date']) {
+                // Fetch all employees related to the client policy
+                $employees = $employeePolicyModel->select('employees.*')
+                                                 ->join('employees', 'employee_polices.employee_id = employees.id', 'left')
+                                                 ->where('employee_polices.client_policy_id', $client_policy['id'])
+                                                 ->findAll();
+        
+                // Process each employee
+                foreach ($employees as $employee) {
+                    if($employee['emp_status'] == 'draft' && $employee['relationship'] == 'Self'){
+                        $params['emp_data'] = $employee;
+                        $params['client_data'] = $client_data;
+                        $params['notification_data'] = $notification_data;
+                        
+                        // Send the mail notification
+                        $reminder_whole_mail[] = sendMailNotification::sendMailNotification('member_reminder_mail', $params);
+                    }
+                }
+            }
+        }
+        
+        // Process and queue bulk emails
+        $temp_whole_data = [];
+        $count = 0;
+
+        foreach ($reminder_whole_mail as $whole_index => $values) {
+            foreach ($values as $index => $value) {
+                $temp_whole_data[] = $value;
+                $count++;
+                
+                if ($count == 20 || ($whole_index == count($reminder_whole_mail) - 1 && $index == count($values) - 1)) {
+                    if (!empty($temp_whole_data)) {
+                        Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]);
+                        $temp_whole_data = [];
+                        $count = 0;
+                    }
+                }
+            }
+        }
+        if(count($temp_whole_data) > 0){
+            Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]);
+        }
+    
+        return json_encode(true);
+    }
+
 }
diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php
index eb9f96e2..f5b40c04 100644
--- a/app/Controllers/JobWorker.php
+++ b/app/Controllers/JobWorker.php
@@ -3,13 +3,8 @@
 namespace App\Controllers;
 
 
-use App\Models\JobModel;
-use App\Models\ClientModel;
-use App\Models\ClientPolicyModel;
-use App\Models\NotificationModel;
-use App\Models\EmployeePolicyModel;
 
-use App\Helpers\sendMailNotification;
+
 
 class JobWorker extends AdminController
 {
@@ -330,70 +325,7 @@ class JobWorker extends AdminController
     }
 
 
-    public static function enrollment_status() {
-        $clientModel = new ClientModel();
-        $clientPolicyModel = new ClientPolicyModel();
-        $notificationModel = new NotificationModel();
-        $employeePolicyModel = new EmployeePolicyModel();
-        $myLogger = \Config\Services::mylogger();
-    
-        $client_policy_data = $clientPolicyModel->where('is_active', 1)
-                                                ->where('policy_status', 1)
-                                                ->where('inception_type', 2)
-                                                ->findAll();
-        $currentDate = date('Y-m-d');
-    
-        // Update policy status based on start and end dates
-        foreach ($client_policy_data as $client_policy) {
-            $id = $client_policy['id'];
-            
-            if ($currentDate == $client_policy['policy_start_date']) {
-                $clientPolicyModel->update($id, ['open_for_enrollment' => 1]);
-            } 
-            if ($client_policy['policy_end_date'] < $currentDate) {
-                $clientPolicyModel->update($id, ['open_for_enrollment' => 0]);
-            }
-        }
-    
-        $reminder_whole_mail = [];
-        foreach ($client_policy_data as $client_policy) {
-            $employee = $employeePolicyModel->select('employees.*')
-                                            ->join('employees', 'employee_polices.employee_id = employees.id', 'left')
-                                            ->where('employee_polices.client_policy_id', $client_policy['id'])
-                                            ->first();
-            $client_data = $clientModel->find($client_policy['client_id']);
-            $notification_data = $notificationModel->where('client_id', $client_policy['client_id'])
-                                                   ->where('template_name', 'member_reminder_mail')
-                                                   ->first();
-            
-            if ($notification_data && $notification_data['enabled'] == 1 && $currentDate == $client_policy['reminder_date']) {
-                $params['emp_data'] = $employee;
-                $params['client_data'] = $client_data;
-                $params['notification_data'] = $notification_data;
-                $reminder_whole_mail[] = sendMailNotification::sendMailNotification('member_reminder_mail', $params);
 
-            }
-        }
-        // Process and queue bulk emails
-        $temp_whole_data = [];
-        $count = 0;
-        foreach ($reminder_whole_mail as $whole_index => $values) {
-            foreach ($values as $index => $value) {
-                $temp_whole_data[] = $value;
-                $count++;
-                
-                if ($count == 20 || ($whole_index == count($reminder_whole_mail) - 1 && $index == count($values) - 1)) {
-                    if (!empty($temp_whole_data)) {
-                        Jobs::addJob(['job_name' => 'bulk_mail', 'payload' => $temp_whole_data]);
-                        $temp_whole_data = [];
-                        $count = 0;
-                    }
-                }
-            }
-        }
-    
-        return json_encode(true);
-    }
     
     
 
diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php
index 9a4f3c0c..f3bed1e8 100644
--- a/app/Models/ClientPolicyModel.php
+++ b/app/Models/ClientPolicyModel.php
@@ -20,6 +20,9 @@ class ClientPolicyModel extends Model
         "policy_start_date",
         "policy_end_date",
         "reminder_date",
+        "open_date",
+        "close_date",
+        "close_date",
         "insured",
         "no_of_employees",
         "no_of_lives",
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index 527d4450..2c52734c 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -112,10 +112,7 @@
                                 
                                 
                             
-                            
- - -
+
@@ -146,7 +143,18 @@
- +
+ + +
+
+ + +
+
+ + +