diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a4cb9c22..80babc57 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -16,6 +16,8 @@ $routes->get("testing", "ClientController::Testing"); $routes->get("update-policy-terms-for-corrections", "ClientController::updatePolicyTermsForCorrections"); $routes->get("update_rack_rate_json", "ClientController::updateRackRateJson"); $routes->get("updatajson", "EmpDataServiceController::updatajson"); +$routes->get("view", "EmployeeController::viewECard/$1"); + $routes->post("add_advertise_image", "AppContentManagementController::add_advertise_image"); @@ -109,6 +111,7 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) { $routes->get("list/(:any)", "ClientController::getClientPolicyById/$1"); $routes->post("policyGMCTerms", "ClientController::policyGMCTerms"); $routes->get("getterms", "ClientController::getterms"); + $routes->get("remove/(:any)", "ClientController::removePolicy/$1"); }); $routes->group("kyc", ["filter" => "authMVC"], function ($routes) { @@ -138,7 +141,7 @@ $routes->group("/employee", ["filter" => "authMVC"], function ($routes) { $routes->post("upload", "EmployeeController::employeesUplodWithEvents"); $routes->get("excel_error/(:any)", "EmployeeController::getExcelFileErrors/$1"); $routes->get("endorsement-list", "EmployeeController::endorsementList"); - $routes->get("enrollment-list", "EmployeeController::enrollmentClientList"); + $routes->match(['get','post'],'enrollment-list','EmployeeController::enrollmentClientList'); $routes->get("empby_client_clientbranch/(:any)/(:any)", "EmployeeController::empby_client_clientbranch/$1/$2"); $routes->get("truncate/(:any)", "EmployeeController::truncateFileData/$1"); $routes->get("test-rack-rate", "EmployeeController::testRackRate"); @@ -252,7 +255,6 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $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"); - $routes->get("id-card", "EmployeeController::viewECard/$1"); $routes->get("preview-card/(:any)", "EmployeeController::previewTemplate/$1"); $routes->get("export-import-error-list/(:any)", "EmployeeController::errorListExportImport/$1"); $routes->get("has_policy_config_completed/(:any)", "EmployeeController::hasPolicyConfigCompleted/$1"); @@ -268,10 +270,12 @@ $routes->group("/util", ["filter" => "authMVC"], function ($routes) { $routes->get("check_addition_premium_JSON/(:any)", "ClientController::checkAdditionPremiumJSON/$1"); $routes->get("get_policy_type_for_base_policy/(:any)", "ClientController::getPolicyTypeForBasePolicy/$1"); $routes->get("get_client_details/(:any)", "ClientController::getClientDetails/$1"); + $routes->get("featch_dashboard_data/(:any)", "DashboardController::featch_dashboard_data/$1"); }); $routes->cli('cli/processjob', 'JobWorker::processJob'); $routes->cli('cli/processjobs', 'JobWorker::processJobs'); +$routes->cli('cli/enrollment_status', 'JobWorker::enrollment_status'); $routes->get("processjob", "JobWorker::processJob"); @@ -292,9 +296,9 @@ $routes->group("/api", ["filter" => "authJWT"], function ($routes) { -$routes->get("getEmployeeActiveOrInactivePolicy", "EmployeeRestController::getEmployeeActiveOrInactivePolicy"); -$routes->get("getChatResponse", "ChatBotController::getChatResponse"); + + $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->post("storeFireBase", "EmployeeRestController::storeFireBase"); $routes->post("saveMpin", "RestAuthenticationController::saveMpin"); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 788a31ca..77bd79e8 100644 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -229,15 +229,24 @@ class ClientController extends AdminController public function removeClient($id = null) { $this->myLogger->logme('error','Client Remove function called'); - // $data = $this->request->getPost(); - $data['updated_by'] = get_session_userid(); - $data['is_active'] = 0; - $update = $this->clientModel->update($id,$data); - if($update){ + + $client_policy_data = $this->clientPolicyModel + ->where('policy_status', 1) + ->where('Is_active', 1) + ->where('client_id', $id) + ->countAllResults(); + if($client_policy_data == 0){ + + $data['updated_by'] = get_session_userid(); + $data['is_active'] = 0; + $update = $this->clientModel->update($id,$data); return $this->respond(['status' => true,'code' => 200], 200); + }else{ - return $this->respond(['status' => false,'code' => 404], 200); + + return $this->respond(['status' => false,'code' => 404, 'message' => 'The Client has active policy'], 200); } + } public function removeClientBranch($id = null) @@ -319,6 +328,7 @@ class ClientController extends AdminController 5 => 'Non EB', 6 => 'Refund By Insurer', 7 => 'Opening Amount', + 8 => 'Truncated', ]; $data['subTypeOptions'] = $subTypeOptions; @@ -409,6 +419,7 @@ class ClientController extends AdminController } $editData['client_policy'] = $clientPoliceData; + $editData['client_policy']['role'] = get_role_id(); $editData['notification'] =$this->notificationModel->select('template_name,enabled')->where('client_id',$id)->findAll(); $editData['placeHolders'] = ['member_name','nhance_logo','tpa_id','ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name']; @@ -729,7 +740,7 @@ class ClientController extends AdminController $base_policy = $this->request->getPost('base_policy'); - $insurerValue = (string) $this->request->getPost('insurer'); + $insurerValue = (string) $this->request->getPost('insurer'); list($insurerBranchId, $insurerId) = explode('-', $insurerValue); @@ -814,13 +825,23 @@ class ClientController extends AdminController $data['policy_no'] = $this->request->getPost('policy_no'); - $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['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['reminder_date'] = null; + } + $data['created_by'] = get_session_userid(); $insert = $this->clientPolicyModel->insert($data); if($insert){ $clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($this->request->getPost('client_id')); + $clientPoliceData['role'] = get_role_id(); return $this->respond(['status' => true,'code' => 200,'data' => $clientPoliceData, 'method' => 'CERATE', 'post_data' => $data], 200); }else{ return $this->respond(['status' => false,'code' => 404, 'message' => 'no data found'], 200); @@ -851,8 +872,8 @@ class ClientController extends AdminController $data['tpa_id'] = $tpaId; $data['policy_type_id'] = $this->request->getPost('policy_type_id'); $data['policy_no'] = $this->request->getPost('policy_no'); - $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_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['insured'] = $this->request->getPost('insured'); $data['no_of_lives'] = $this->request->getPost('no_of_lives'); @@ -874,6 +895,16 @@ class ClientController extends AdminController $data['cd_ac_no'] = $this->request->getPost('cd_ac_no'); $data['gst'] = $this->request->getPost('gst'); + 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['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['reminder_date'] = null; + } + if($policy_type_id == 1 || $policy_type_id == 2 || $policy_type_id == 3 || $policy_type_id == 6 || $policy_type_id == 7){ $data['is_addon'] = 1; @@ -922,7 +953,7 @@ class ClientController extends AdminController if($insert){ $clientPoliceData = $this->clientPolicyModel->getClientPolicyByClientId($client_id); - + $clientPoliceData['role'] = get_role_id(); // foreach ($clientPoliceData as $key => $value) { // $clientPoliceData[$key]->policy_start_date = date('d-M-Y', strtotime($value->policy_start_date)); @@ -934,6 +965,41 @@ class ClientController extends AdminController } } + public function removePolicy($id = null) + { + $this->myLogger->logme('error', 'Client Policy Remove function called'); + + $data = [ + 'updated_by' => get_session_userid(), + 'is_active' => 0 + ]; + + $emp_details = $this->employeePolicyModel + ->join('employees', 'employees.id = employee_polices.employee_id') + ->where('client_policy_id', $id) + ->where('employee_polices.status', 'active') + ->where('employee_polices.is_active', 1) + ->where('employees.emp_status', 'active') + ->where('employees.is_active', 1) + ->countAllResults(); + if($emp_details == 0){ + + $update = $this->clientPolicyModel->where('id', $id)->set($data)->update(); + + if ($update) { + return $this->respond(['status' => true, 'code' => 200], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove policy'], 200); + } + + }else{ + + return $this->respond(['status' => false, 'code' => 404, 'message' => 'The policy has active employees'], 200); + + } + + } + public function createClientPolicyPremium() { @@ -1691,10 +1757,12 @@ class ClientController extends AdminController $data['family_floaters']['parents-in-law'] =2; $data['family_floaters']['either-parents-pil'] =0; }else if($temp_family_floaters[$value] == '2EPORPIL'){ + //Parents or PIL (Any two of Father, Mother, MIl, FIL) $data['family_floaters']['parents'] =0; $data['family_floaters']['parents-in-law'] =0; $data['family_floaters']['either-parents-pil'] =2; }else if($temp_family_floaters[$value] == 'EPORPIL'){ + //Either Parents or PIL (Parents or Parents In Law) $data['family_floaters']['parents'] =0; $data['family_floaters']['parents-in-law'] =0; $data['family_floaters']['either-parents-pil'] =1; @@ -2101,8 +2169,6 @@ class ClientController extends AdminController ->findAll(); return $this->respond(['status' => true,'code' => 200, 'data' => $branchs], 200); - - } public function getClientAllDetailsByUsingClientID($client_id) @@ -2112,7 +2178,7 @@ class ClientController extends AdminController $builder = $db->table('clients'); $builder->select(' - policies.name as policy_name, + policy_type.policy_type, insurers.name as insurer_name, insurers.short_name as insurer_short_name, @@ -2126,9 +2192,9 @@ class ClientController extends AdminController CASE WHEN client_policy.base_policy IS NULL THEN "Not Appear" WHEN client_policy.base_policy = 0 THEN "Not Appear" - ELSE (SELECT policies.name + ELSE (SELECT policy_type.policy_type FROM client_policy AS base_client_policy - JOIN policies ON policies.id = base_client_policy.policy_id + JOIN policy_type ON policy_type.id = base_client_policy.policy_type_id WHERE base_client_policy.id = client_policy.base_policy) END as base_policy_name, @@ -2161,13 +2227,11 @@ class ClientController extends AdminController ', false); $builder->join('client_policy', 'client_policy.client_id = clients.id'); $builder->join('client_branch', 'client_policy.client_branch_id = client_branch.id'); - $builder->join('policies', 'policies.id = client_policy.policy_id'); - $builder->join('policy_type', 'policy_type.id = policies.policy_type_id'); + $builder->join('policy_type', 'policy_type.id = client_policy.policy_type_id'); $builder->join('insurers', 'insurers.id = client_policy.insurer_id'); $builder->join('tpa', 'tpa.id = client_policy.tpa_id'); $builder->where('clients.is_active', 1); $builder->where('client_policy.is_active', 1); - $builder->where('policies.is_active', 1); $builder->where('policy_type.is_active', 1); $builder->where('client_policy.policy_status', 1); $builder->where('clients.id', $client_id); @@ -2257,8 +2321,6 @@ class ClientController extends AdminController } - - $data['client_policy'] = $client_policy; $data['client_branch'] = $this->clientModel @@ -2282,10 +2344,7 @@ class ClientController extends AdminController ->get()->getResultArray(); - $data['client'] = $this->clientModel - ->select('clients.*, states.state as state') - ->join('states', 'states.id = clients.state') - ->where('clients.id', $client_id)->first(); + $data['client'] = $this->clientModel->where('clients.id', $client_id)->first(); $client_rm = $this->clientRMModel @@ -2313,7 +2372,7 @@ class ClientController extends AdminController $data['heads'] = $heads; // dd($data); - //$this->loadLayout('client_info', $data); + // $this->loadLayout('client_info', $data); $html = view('client_info', $data); @@ -2621,7 +2680,7 @@ class ClientController extends AdminController public function updateRackRateJson() { - // $client_policy_id = 13; + // $client_policy_id = 12; $results = $this->policyPremium2Model ->select('*') @@ -2640,6 +2699,7 @@ class ClientController extends AdminController ->get() ->getResultArray(); + // dd($results, $results2); $client_policy_ids = []; $json = []; @@ -2716,7 +2776,9 @@ class ClientController extends AdminController $client_policy_id = $result['client_policy_id']; $client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first(); - if($client_policy_data['policy_terms']){ + // dd($client_policy_data); + + if(isset($client_policy_data) && $client_policy_data['policy_terms']){ $self = 1; $spouse = 'NA'; diff --git a/app/Controllers/DashboardController.php b/app/Controllers/DashboardController.php index 43ebcb94..16a4d50f 100644 --- a/app/Controllers/DashboardController.php +++ b/app/Controllers/DashboardController.php @@ -13,15 +13,17 @@ use App\Models\MessageModel; use App\Models\UserMessageModel; use App\Models\ClientModel; +use App\Controllers\PendingActionsContrller; + class DashboardController extends AdminController { - + use ResponseTrait; protected $messageModel; protected $clientModel; protected $userMessageModel; protected $myLogger; - + public function __construct() { set_session_context('Dashboard'); @@ -35,17 +37,19 @@ class DashboardController extends AdminController { $data = []; + $pendingActionsController = new PendingActionsController; + $pendingActionsData = $pendingActionsController->getPendingActionsForDashBoard(); $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(); - + ->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(); + $groupedData = []; $employeeId = ''; foreach ($results as $row) { @@ -55,17 +59,17 @@ class DashboardController extends AdminController $branchId = $row['client_branch_id']; $branchName = $row['branch_name']; $branchCode = $row['branch_code']; - if($employeeId != $row['employee_id']){ + if ($employeeId != $row['employee_id']) { $employeeId = $row['employee_id']; - }else{ + } else { $employeeId = null; } - $employeeName = $row['employee_name'] ; - $employeeRelationship = $row['relationship'] ; - $employeeEmpCode = $row['emp_code'] ; + $employeeName = $row['employee_name']; + $employeeRelationship = $row['relationship']; + $employeeEmpCode = $row['emp_code']; $employeeEmpStatus = $row['emp_status']; $employeeUserType = $row['user_type']; - + // Initialize the client entry if it doesn't exist if (!isset($groupedData[$clientId])) { $groupedData[$clientId] = [ @@ -75,7 +79,7 @@ class DashboardController extends AdminController 'branches' => [] ]; } - + // Initialize the branch entry if it doesn't exist if (!isset($groupedData[$clientId]['branches'][$branchId])) { $groupedData[$clientId]['branches'][$branchId] = [ @@ -100,7 +104,7 @@ class DashboardController extends AdminController if (!empty($employeeUserType)) { $groupedData[$clientId]['branches'][$branchId]['emp_login']++; } - + // Increment emp_enroll if emp_status is not 'draft' if ($employeeEmpStatus !== 'draft') { $groupedData[$clientId]['branches'][$branchId]['emp_enroll']++; @@ -108,13 +112,14 @@ class DashboardController extends AdminController } $employeeId = $row['employee_id']; } - + // Re-index the arrays to match the expected structure foreach ($groupedData as &$client) { $client['branches'] = array_values($client['branches']); } // echo "
";
         $data['client_branch_emp_list'] = $groupedData;
+        $data['pendingActionsData'] = $pendingActionsData;
         // print_r($data);die;
 
         echo view('layout/header');
@@ -128,7 +133,7 @@ class DashboardController extends AdminController
         $userId = get_session_userid();
         $roleId = 5;
         $teamId = 1;
-    
+
         if ($userId != null && $roleId != null && $teamId != null) {
             $messages = $this->messageModel->getMessagesForUser($userId, $roleId, $teamId);
             return $this->respond(['status' => true, 'code' => 200, 'message' => $messages], 200);
@@ -137,7 +142,7 @@ class DashboardController extends AdminController
             return $this->respond(['status' => false, 'code' => 404, 'message' => 'No data found'], 200);
         }
     }
-    
+
 
     public function acknowledgeMessage($messageId)
     {
@@ -149,4 +154,41 @@ class DashboardController extends AdminController
     }
 
 
+    public function featch_dashboard_data($type)
+    {
+        $pendingActionsController = new PendingActionsController;
+        $pendingActionsData = $pendingActionsController->getPendingActionsForClientData();
+
+        $data = [];
+
+        if($type == 'insurer'){
+
+            $data = $pendingActionsData['uhid'];
+
+        }else if($type == 'TPA'){
+            $data = $pendingActionsData['tpa'];
+
+        }else if($type == 'I'){
+            $data = $pendingActionsData['inception'];
+
+        }else if($type == 'D'){
+            $data = $pendingActionsData['deletion'];
+
+        }else if($type == 'C'){
+            $data = $pendingActionsData['correction'];
+
+        }else if($type == 'SI'){
+            $data = $pendingActionsData['si_enhancement'];
+
+        }else if($type == 'policy'){
+            $data = $pendingActionsData['policy'];
+
+        }else if($type == 'ticket'){
+            $data = $pendingActionsData['uhid'];
+        }
+
+        return $this->respond(['status' => true, 'data' => $data], 200);
+    }
+
+
 }
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 2fbd2d09..2df33a79 100644
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -26,6 +26,7 @@ use App\Models\MessageModel;
 use App\Models\UserMessageModel;
 use App\Models\CDMasterModel;
 use App\Models\InsurerExcelExportTemplateModel;
+use App\Models\ClientBranchModel;
 
 use App\Controllers\Jobs;
 use App\Controllers\JobWorker;
@@ -56,6 +57,7 @@ class EmpDataServiceController extends BaseController
     protected $userMessageModel;
     protected $CDMasterModel;
     protected $excelExportTemplateModel;
+    protected $clientBranchModel;
 
 
     public function __construct()
@@ -77,6 +79,7 @@ class EmpDataServiceController extends BaseController
         $this->userMessageModel          = new UserMessageModel();
         $this->CDMasterModel    = new CDMasterModel();
         $this->excelExportTemplateModel    = new InsurerExcelExportTemplateModel();
+        $this->clientBranchModel  = new ClientBranchModel();
 
     }
 
@@ -1785,7 +1788,7 @@ class EmpDataServiceController extends BaseController
                 'endorsement_no' => null,
                 'client_branch_id' => $client_branch_id,
                 'count' => $emp_count,
-                'event' => $file['event_type'],
+                'event_name' => $file['event_type'],
                 'policy_name' => $policy_name['policy_name'],
                 'user_id' => $user_id,
             ]]);
@@ -2830,7 +2833,7 @@ class EmpDataServiceController extends BaseController
             'cd_ac_no' => $CD_Account_Number['cd_ac_no'] ?? null,
             'endorsement_no' => $endorsement_id ?? null,
             'count' => $emp_count,
-            'event' => $file['event_type'],
+            'event_name' => $file['event_type'],
             'policy_name' => $policy_name['policy_name'],
             'user_id' => $user_id,
         ]]);
@@ -3345,7 +3348,7 @@ class EmpDataServiceController extends BaseController
             'cd_ac_no' => $CD_Account_Number['cd_ac_no'] ?? null,
             'endorsement_no' => $endorsement_id ?? null,
             'count' => $emp_count,
-            'event' => $file['event_type'],
+            'event_name' => $file['event_type'],
             'policy_name' => $policy_name['policy_name'],
             'user_id' => $user_id,
         ]]);
@@ -3770,38 +3773,52 @@ class EmpDataServiceController extends BaseController
     {
         if (!empty($arrayData)) {
 
-            $amount = $this->employeePolicyModel->query("
-                    SELECT SUM(rata_premimum + gst) AS total_sum
-                    FROM employee_polices
-                    WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
-                ")->getRow();
 
-            $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
-            $description = 'The following amount of Rs. ' . round($amount->total_sum, 2) . '/- has been debited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
-            
-            if(get_session_userid() == null){
+            $client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first();
+            $units = json_decode($client_branch_data['units']);
+
+            // dd(json_decode($client_branch_data['units'])); 
+
+
+            foreach($units as $unit)
+            {
+
+                $amount = $this->employeePolicyModel->query("
+                        SELECT SUM(rata_premimum + gst) AS total_sum
+                        FROM employee_polices
+                        JOIN employees ON employees.id = employee_polices.employee_id
+                        WHERE employees.unit = '$unit'
+                        AND employee_polices.id IN (" . implode(',', $arrayData['employeeIds']) . ")
+                    ")->getRow();
+
+                if($amount){      
+
+                    $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
+                    $description = 'The following amount of Rs. ' . round($amount->total_sum, 2) . '/- has been debited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event_name']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
+
+                    $data = [
+                        'amount' => $amount->total_sum ?? 0,
+                        'sub_type_id' => 4,
+                        'client_id' => $arrayData['client_id'],
+                        'client_policy_id' => $arrayData['client_policy_id'],
+                        'endorsement_no' => $arrayData['endorsement_no'] ?? null,
+                        'cd_ac_no' => $arrayData['cd_ac_no'] ?? null,
+                        'insurer_id' => $insurer_id['insurer_id'],
+                        'unit' => $unit,
+                        'description' => $description,
+                        'transaction_type' => 'Debit',
+                        'updated_by' => $arrayData['user_id'],
+                        'event_name' => $arrayData['event_name'],
+                        'is_active' => 1,
+                    ];
+
+                    $response = DepositHelper::saveDeposit($data,  $arrayData['user_id']);
+                }
 
             }
 
-
-            $data = [
-                'amount' => $amount->total_sum ?? 0,
-                'sub_type_id' => 4,
-                'client_id' => $arrayData['client_id'],
-                'client_policy_id' => $arrayData['client_policy_id'],
-                'endorsement_no' => $arrayData['endorsement_no'] ?? null,
-                'cd_ac_no' => $arrayData['cd_ac_no'] ?? null,
-                'insurer_id' => $insurer_id['insurer_id'],
-                'description' => $description,
-                'transaction_type' => 'Debit',
-                'updated_by' => $arrayData['user_id'],
-                'is_active' => 1,
-            ];
-            $response = DepositHelper::saveDeposit($data,  $arrayData['user_id']);
             return true;
-            // print_r($response);
-            // $query = $this->employeePolicyModel->getLastQuery();
-            // echo $query . "
"; + } else { return 0; @@ -3815,32 +3832,49 @@ class EmpDataServiceController extends BaseController if (!empty($arrayData)) { - $amount = $this->employeePolicyModel->query(" - SELECT SUM(rata_premimum + gst) AS total_sum - FROM employee_polices - WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ") - ")->getRow(); + $client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first(); + $units = json_decode($client_branch_data['units']); - $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first(); - $description = 'The following amount of ' . round($amount->total_sum, 2) . ' has been credited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.'; + foreach($units as $unit) + { - $data = [ + $amount = $this->employeePolicyModel->query(" + SELECT SUM(rata_premimum + gst) AS total_sum + FROM employee_polices + JOIN employees ON employees.id = employee_polices.employee_id + WHERE employees.unit = '$unit' + AND id IN (" . implode(',', $arrayData['employeeIds']) . ") + ")->getRow(); + + if($amount){ + + $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first(); + $description = 'The following amount of ' . round($amount->total_sum, 2) . ' has been credited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event_name']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.'; + + $data = [ + + 'amount' => $amount->total_sum, + 'sub_type_id' => 4, + 'client_id' => $arrayData['client_id'], + 'client_policy_id' => $arrayData['client_policy_id'], + 'endorsement_no' => $arrayData['endorsement_no'] ?? null, + 'cd_ac_no' => $arrayData['cd_ac_no'] ?? null, + 'insurer_id' => $insurer_id['insurer_id'], + 'unit' => $unit, + 'description' => $description, + 'transaction_type' => 'Debit', + 'updated_by' => $arrayData['user_id'], + 'event_name' => $arrayData['event_name'], + 'is_active' => 1, + ]; + + $response = DepositHelper::saveDeposit($data, $arrayData['user_id']); + } + } + + $msg = "SI Enhancement Cash Deposite Updated Successfully "; + return [$msg]; - 'amount' => $amount->total_sum, - 'sub_type_id' => 4, - 'client_id' => $arrayData['client_id'], - 'client_policy_id' => $arrayData['client_policy_id'], - 'endorsement_no' => $arrayData['endorsement_no'] ?? null, - 'cd_ac_no' => $arrayData['cd_ac_no'] ?? null, - 'insurer_id' => $insurer_id['insurer_id'], - 'description' => $description, - 'transaction_type' => 'Debit', - 'updated_by' => $arrayData['user_id'], - 'is_active' => 1, - ]; - $response = DepositHelper::saveDeposit($data, $arrayData['user_id']); - $msg = "SI Enhancement Cash Deposite Updated Successfully -- " . $description; - return [$msg, $response]; // print_r($response); // $query = $this->employeePolicyModel->getLastQuery(); // echo $query . "
"; @@ -3858,34 +3892,46 @@ class EmpDataServiceController extends BaseController // echo '
';
             // print_r($arrayData); die;
-            $amount = $this->employeePolicyModel->query("
-                SELECT SUM(rata_premimum + gst) AS total_sum
-                    FROM employee_polices
-                    WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
-                ")->getRow();
 
-            $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
-            $description = 'The following amount of ' . round($amount->total_sum, 2) . ' has been credited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
+            $client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first();
+            $units = json_decode($client_branch_data['units']);
 
-            $data = [
+            foreach($units as $unit) {
 
-                'amount' => $amount->total_sum,
-                'sub_type_id' => 3,
-                'client_id' => $arrayData['client_id'],
-                'client_policy_id' => $arrayData['client_policy_id'],
-                'endorsement_no' => $arrayData['endorsement_no'] ?? null,
-                'cd_ac_no' => $arrayData['cd_ac_no'] ?? null,
-                'insurer_id' => $insurer_id['insurer_id'],
-                'description' => $description,
-                'transaction_type' => 'Credit',
-                'updated_by' => $arrayData['user_id'],
-                'is_active' => 1,
-            ];
-            $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
-            $msg = "Deletion Cash Deposite Updated Successfully -- " . $description;
-            return [$msg, $response];
+                $amount = $this->employeePolicyModel->query("
+                    SELECT SUM(rata_premimum + gst) AS total_sum
+                        FROM employee_polices
+                        JOIN employees ON employees.id = employee_polices.employee_id
+                        WHERE employees.unit = '$unit'
+                        AND id IN (" . implode(',', $arrayData['employeeIds']) . ")
+                    ")->getRow();
+                
+                if($amount){
 
-            return true;
+                    $insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
+                    $description = 'The following amount of ' . round($amount->total_sum, 2) . ' has been credited for the ' . $arrayData['count'] . ' employees at ' . remove_underscore_capitalize_first_letter($arrayData['event_name']) . ' to ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
+
+                    $data = [
+
+                        'amount' => $amount->total_sum,
+                        'sub_type_id' => 3,
+                        'client_id' => $arrayData['client_id'],
+                        'client_policy_id' => $arrayData['client_policy_id'],
+                        'endorsement_no' => $arrayData['endorsement_no'] ?? null,
+                        'cd_ac_no' => $arrayData['cd_ac_no'] ?? null,
+                        'insurer_id' => $insurer_id['insurer_id'],
+                        'description' => $description,
+                        'transaction_type' => 'Credit',
+                        'updated_by' => $arrayData['user_id'],
+                        'event_name' => $arrayData['event_name'],
+                        'is_active' => 1,
+                    ];
+
+                    $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
+                }
+            }
+            $msg = "Deletion Cash Deposite Updated Successfully -- ";
+            return [$msg];
             // print_r($response);
             // $query = $this->employeePolicyModel->getLastQuery();
             // echo $query . "
"; @@ -4062,12 +4108,9 @@ class EmpDataServiceController extends BaseController return $result; } - // ----------------------------------------------------------------------------------- - - public function readExcelToArray($file) { if ($file->isValid() && !$file->hasMoved()) { @@ -4102,8 +4145,6 @@ class EmpDataServiceController extends BaseController } } - - public function insertBatchFileAndBatchListForImportExcel($data, $ids) { @@ -4126,7 +4167,6 @@ class EmpDataServiceController extends BaseController return true; } - public function sendMailForDownloadingECard(array $ids) { @@ -4283,7 +4323,6 @@ class EmpDataServiceController extends BaseController public function getDataByFileId($file_id, $status = 'success') { - $data = $this->batchFileModel ->select('batch_files.*, clients.client_name, clients.short_name, policy_type.policy_type as policy_name, client_branch.branch_name') ->join('clients', 'clients.id = batch_files.client_id') @@ -4293,7 +4332,6 @@ class EmpDataServiceController extends BaseController ->where('batch_files.id', $file_id) ->first(); - if($status == 'success'){ $msg_txt = $data['client_name'] . '( ' . $data['branch_name'] . ' )' . ' - ' . $data['policy_name'] . ' - ' . $data['event_type'] . ' - ' . $data['actions'] . ' - ' . $data['insurer_or_tpa']; @@ -4313,8 +4351,6 @@ class EmpDataServiceController extends BaseController public function setPullNotification($data) { - - $array = ['message_text' => $data['msg_txt'], 'action_url' => $data['url'], 'msg_status' => $data['status'], 'msg_title' => $data['title']]; $jsonEncodeData = json_encode($array); @@ -4327,66 +4363,37 @@ class EmpDataServiceController extends BaseController 'message_type' => '1to1', ]; - $this->messageModel->insert($msg_data); - - } public function updatajson() { // $columns = [ - // ["column_index" => 0, "column_name" => "MEMBERID / EMPID", "db_column_name" => "emp_code"], - // ["column_index" => 1, "column_name" => "UHID", "db_column_name" => "uhid"], - // ["column_index" => 2, "column_name" => "GRADE", "db_column_name" => null], + // ["column_index" => 0, "column_name" => "SR NO", "db_column_name" => 'index'], + // ["column_index" => 1, "column_name" => "EmployeeId", "db_column_name" => "emp_code"], + // ["column_index" => 2, "column_name" => "UHID", "db_column_name" => "uhid"], // ["column_index" => 3, "column_name" => "DOJ", "db_column_name" => "emp_doj"], - // ["column_index" => 4, "column_name" => "INSURED NAME", "db_column_name" => "insured_name"], - // ["column_index" => 5, "column_name" => "ADDRESS 1", "db_column_name" => null], - // ["column_index" => 6, "column_name" => "ADDRESS 2", "db_column_name" => null], - // ["column_index" => 7, "column_name" => "CITY", "db_column_name" => null], - // ["column_index" => 8, "column_name" => "STATE", "db_column_name" => null], - // ["column_index" => 9, "column_name" => "PINCODE", "db_column_name" => null], - // ["column_index" => 10, "column_name" => "Age", "db_column_name" => "emp_age"], - // ["column_index" => 11, "column_name" => "DOB", "db_column_name" => "emp_dob"], - // ["column_index" => 12, "column_name" => "RELATION SHIP", "db_column_name" => "emp_relationship"], - // ["column_index" => 13, "column_name" => "Gender", "db_column_name" => "emp_gender"], - // ["column_index" => 14, "column_name" => "DOC", "db_column_name" => "doc"], - // ["column_index" => 15, "column_name" => "DOE", "db_column_name" => "doe"], - // ["column_index" => 16, "column_name" => "SUM INSURED", "db_column_name" => "basic_cover_si"], - // ["column_index" => 17, "column_name" => "PROPOSER NAME", "db_column_name" => null], - // ["column_index" => 18, "column_name" => "DOS", "db_column_name" => "dos"], - // ["column_index" => 19, "column_name" => "MOBILE NO", "db_column_name" => null], - // ["column_index" => 20, "column_name" => "EMAIL ID", "db_column_name" => null], - // ["column_index" => 21, "column_name" => "FATHER/HUSBAND NAME", "db_column_name" => null], - // ["column_index" => 22, "column_name" => "REMARKS", "db_column_name" => null], - // ["column_index" => 23, "column_name" => "FLAG STATUS", "db_column_name" => "flag_status"], - // ["column_index" => 24, "column_name" => "EXCEPTIONS", "db_column_name" => "exceptions"], - // ["column_index" => 25, "column_name" => "ABHA", "db_column_name" => null] - // ]; - - // $columns = [ - // ["column_index" => 0, "column_name" => "Sr.No", "db_column_name" => "index"], - // ["column_index" => 1, "column_name" => "Tata Aig Ref. No", "db_column_name" => "uhid"], - // ["column_index" => 2, "column_name" => "EMP ID", "db_column_name" => "emp_code"], - // ["column_index" => 3, "column_name" => "Name of Insured", "db_column_name" => "emp_name"], - // ["column_index" => 4, "column_name" => "GC Current Details", "db_column_name" => "old_value"], - // ["column_index" => 5, "column_name" => "Modified Details", "db_column_name" => "new_value"], - // ["column_index" => 6, "column_name" => "Revision W.E.F (DD/MM/YYYY)", "db_column_name" => null], - // ["column_index" => 7, "column_name" => "NEW TTD", "db_column_name" => null], - // ["column_index" => 8, "column_name" => "New Category's", "db_column_name" => null], - // ["column_index" => 9, "column_name" => "Remarks", "db_column_name" => "remarks"], - // ["column_index" => 10, "column_name" => "DOC", "db_column_name" => null], - // ["column_index" => 11, "column_name" => "Errors", "db_column_name" => null] + // ["column_index" => 4, "column_name" => "Name OF Insured", "db_column_name" => "emp_name"], + // ["column_index" => 5, "column_name" => "Age", "db_column_name" => "emp_age"], + // ["column_index" => 6, "column_name" => "Gender", "db_column_name" => "emp_gender"], + // ["column_index" => 7, "column_name" => "DOC", "db_column_name" => null], + // ["column_index" => 8, "column_name" => "TOTALSI", "db_column_name" => "basic_cover_si"], + // ["column_index" => 9, "column_name" => "DOS", "db_column_name" => "dateofexit"], + // ["column_index" => 10, "column_name" => "Mobile", "db_column_name" => 'emp_mobile'], + // ["column_index" => 11, "column_name" => "EmailID", "db_column_name" => 'emp_email_c'], + // ["column_index" => 12, "column_name" => "REMARKS", "db_column_name" => "remarks"], + // ["column_index" => 13, "column_name" => "FLAG STATUS", "db_column_name" => null], + // ["column_index" => 14, "column_name" => "EXCEPTIONS", "db_column_name" => null], + // ["column_index" => 15, "column_name" => "ABHA", "db_column_name" => null] // ]; + // $json = json_encode($columns); - // $this->excelExportTemplateModel->where('id', 31)->set('jsoncolumns', $json)->update(); + // $this->excelExportTemplateModel->where('id', 37)->set('jsoncolumns', $json)->update(); } - - } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 1388b252..42bd37bd 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -7,6 +7,8 @@ use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use App\Helpers\DepositHelper; + use App\Models\EmployeeModel; use App\Models\EmployeePolicyModel; @@ -21,6 +23,7 @@ use App\Models\ClientPolicyModel; use App\Models\TPAModel; use App\Models\InsurerExcelExportTemplateModel; use App\Models\InsurerModel; +use App\Models\ClientDepositModel; use App\Controllers\Jobs; @@ -58,6 +61,7 @@ class EmployeeController extends AdminController protected $policiesModel; protected $excelExportTemplateModel; protected $insurerModel; + protected $cashDepositModel; public function __construct() { @@ -76,13 +80,14 @@ class EmployeeController extends AdminController $this->TPAModel = new TPAModel(); $this->policiesModel = new PolicesModel(); $this->insurerModel = new InsurerModel(); + $this->cashDepositModel = new ClientDepositModel(); } public function list() { // $model = new UserModel(); $data = []; - $data['status'] = ['draft' => 'Draft', 'active' => 'Active', 'inactive' => 'In-Active', 'expired' => 'Expired']; + $data['status'] = ['draft' => 'Draft', 'active' => 'Active', 'inactive' => 'In-Active', 'pending' => 'Pending']; if (count($this->request->getGet())) { $filterData = $this->request->getGet(); $data['employees'] = $this->employeePolicyModel->getEmployeePolicy( @@ -247,7 +252,7 @@ class EmployeeController extends AdminController //for TPA/insurer upload - $data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement']; + $data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement']; //for inception upload $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addtion' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrollment']; @@ -433,7 +438,7 @@ class EmployeeController extends AdminController if ($actions == 'export') { - if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') { + if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition' || $event_type == 'missed_inception') { $return = $empDataServiceController->generateExcelForAdditionandInception($batch_data); @@ -555,7 +560,7 @@ class EmployeeController extends AdminController $batch_data['status'] = 'pending'; $batch_data['file_name'] = $filename; - if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition') { + if ($event_type == 'inception' || $event_type == 'addition' || $event_type == 'dependent_addition' || $event_type == 'missed_inception') { $file_id = $this->batchFileModel->insert($batch_data); @@ -680,8 +685,15 @@ class EmployeeController extends AdminController $branch_list = $this->clientBranchModel->findAll(); $data['client_list'] = $client_list; $data['branch_list'] = $branch_list; - $this->myLogger->logme('error', 'list called'); - $this->loadLayout('enrollment_list', $data); + + // Get session data if available + $data['selected_client_id'] = session()->get('client_id'); + $data['selected_branch_id'] = session()->get('branch_id'); + $data['selected_type'] = session()->get('type'); + + $this->myLogger->logme('error', 'list called'); + return $this->loadLayout('enrollment_list', $data); + } public function empby_client_clientbranch($client_id, $branch_id) @@ -724,7 +736,7 @@ class EmployeeController extends AdminController $employeeId = $row['employee_id']; } - + return json_encode($groupedData); } @@ -811,7 +823,6 @@ class EmployeeController extends AdminController return redirect()->to(base_url('/employee/upload')); } - public function downloadFileList($file_id = null) { // $actionType = $this->request->getGet(); @@ -845,7 +856,6 @@ class EmployeeController extends AdminController } } - public function featchEmpList() { $client_id = $this->request->getGet('client_id'); @@ -857,7 +867,6 @@ class EmployeeController extends AdminController return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html], 200); } - public function viewUploadedEmployeeList() { @@ -906,7 +915,6 @@ class EmployeeController extends AdminController } } - public function getEmpCount($id = null) { @@ -921,7 +929,6 @@ class EmployeeController extends AdminController } - public function downloadFullExcelErrorFile($file_id, $rowIndex = 1, $colIndex = 1) { // Get file data from the database @@ -1155,115 +1162,56 @@ class EmployeeController extends AdminController { // $this->loadLayout('ecard_template/default_ecard'); - - $empDataServiceController = new EmpDataServiceController(); - $file_name = generate_filename("TCS", 'inception', 'export', 'insurer', 'policy', 'branch'); - - $export_data = [ - 'client_id' => 12, - 'client_policy_id' => 12, - 'client_branch_id' => 1, - 'insurer_or_tpa' => 'insurer', - 'event_type' => 'inception', - 'actions' => 'export', - 'file_name' => $file_name, - ]; - - $template_json = $this->clientPolicyModel - ->select('insurer_excel_export_template.jsoncolumns') - ->join('insurer_excel_export_template', 'insurer_excel_export_template.insurer_id = client_policy.insurer_id and insurer_excel_export_template.policy_type_id = client_policy.policy_type_id') - ->where('client_policy.id', $export_data['client_policy_id']) - ->where('insurer_excel_export_template.event_name', $export_data['event_type']) - ->where('insurer_excel_export_template.type_name', $export_data['actions']) - ->first(); - - $template_array = json_decode($template_json['jsoncolumns'], true); - - // dd($template_array); - - $objects = $this->employeePolicyModel->getInceptionEmployeeDataForExportExcel($export_data); - - $totals = 0; - foreach ($objects as $item) { - $totals += $item->total; - } - - dd($objects, $totals); - - $excel_data_info = generate_insurer_based_excel($template_array, $objects); - - // Generate Excel file - $tempFile = tmpfile(); - $success = generate_excel($excel_data_info['header'], $excel_data_info['data'], $tempFile, 1); - - // If Excel generation is successful - if ($success) { - - $random_number_count = 4; - $export_data['batch_code'] = generate_random_string($random_number_count); - $export_data['created_by'] = get_session_userid(); - - $insert = $this->batchFileModel->insert($export_data); - $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first(); - $batch_code = $batch_file_batch_code['batch_code']; - - // $this->insertBatchList(['batch_code' => $batch_code, 'batch_list_data' => $objects ]); - - $job_details = new Jobs(); - $r = Jobs::addJob(['job_name' => 'insertBatchList', 'payload' => ['batch_code' => $batch_code, 'user_id' => get_session_userid(), 'batch_list_data' => $objects]]); - - - // If batch operation is successful - if (true) { - - // Clear the output buffer to avoid any unwanted output - if (ob_get_level()) { - ob_end_clean(); - } - - // Set headers for Excel file download - header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); - header('Content-Disposition: attachment; filename="' . $export_data['file_name'] . '"'); - header('Content-Transfer-Encoding: binary'); - header('Cache-Control: must-revalidate'); - header('Pragma: public'); - header('Expires: 0'); - - // Output file contents - rewind($tempFile); - fpassthru($tempFile); - - // Close and remove temporary file - fclose($tempFile); - - return true; // Excel file successfully generated and exported - - } else { - - return false; // Batch operation failed - } - } - - - + $data = [ + 'employeeIds' => [6,8,10], + 'client_id' => 12, + 'client_policy_id' => 12, + 'client_branch_id' => 1, + 'cd_ac_no' => '34567834567892', + 'endorsement_no' => null, + 'count' => 3, + 'event_name' =>'inception', + 'policy_name' => 'new policy', + 'user_id' => 1, + ]; + $empDataServiceController = new EmpDataServiceController(); + $empData= $empDataServiceController->cashDepositCalculationForInception($data); } - - public function truncateFileData() //truncateFileDataIn DB (de activate rows) + + //truncateFileDataIn DB (de activate rows) + public function truncateFileData($file_id, $role_id = null) { $file_id = $this->request->uri->getSegment(3); // $file_id = 112; $file = $this->fileModel->find($file_id); + $client_id = $file['client_id']; + $client_policy_id = $file['policy_id']; + $loggedInUserID = get_session_userid(); + + $policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first(); + $cd_tranction = $this->cashDepositModel + ->where('client_id', $client_id) + ->where('insurer_id', $policy_data['insurer_id']) + ->where('event_name',$file['action']) + ->where('client_policy_id', $client_policy_id) + ->orderBy('id', 'desc') + ->first(); + // $file['action'] = 'si_enhancement'; // $result = []; // !dd($file); if ($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition') { $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id, emp_status: ['active'], policy_status: ['active']); // ~dd($result); - if (count($result)) { - return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200); + if (count($result) && $role_id == null) { + if(get_role_id() == 1 || get_role_id() == 5){ + return $this->respond(['role' => get_role_id(), 'dataStatus' => false, 'code' => 404, 'message' => 'File data already processed. Do you want to truncate data from uploaded file?'], 200); + }else{ + return $this->respond(['role' => get_role_id(), 'dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200); + } } else { //update emp and emp plocies @@ -1276,9 +1224,30 @@ class EmployeeController extends AdminController //update file status $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); + if($cd_tranction){ + + $cd_data = [ + 'amount' => $cd_tranction['amount'], + 'sub_type_id' => 8, + 'endorsement_no' => null, + 'insurer_id' =>$policy_data['insurer_id'], + 'description' => 'The policy Truncated by Admin or Head', + 'transaction_type' => 'Credit', + 'updated_by' => 1, + 'client_id' => $client_id, + 'client_policy_id' => $client_policy_id, + 'cd_ac_no' => $policy_data['cd_ac_no'] ?? null, + 'event_name' => $file['action'], + ]; + + $response = DepositHelper::saveDeposit($cd_data, $loggedInUserID); + } + return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => round($affectedRows / 2)], 200); } + } else if ($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion') { + $res = $this->empEndorsementModel->select(['count(id) as count']) ->where('emp_endorsement.file_id', $file_id) ->groupStart() @@ -1287,18 +1256,48 @@ class EmployeeController extends AdminController ->groupEnd() ->get() ->getResult(); + // print_r($this->empEndorsementModel->getLastQuery()); // echo $res[0]->count;die(); - if ($res[0]->count == 0) { + if ($res[0]->count == 0 || $role_id == 5 || $role_id == 1) { //update truncated status to db $this->empEndorsementModel->where('file_id', $file_id) ->set(['status' => 'truncated']) ->update(); //update file status $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update(); + + if($cd_tranction && $file['action'] != 'correction'){ + + $transaction_type = 'Credit'; + if($file['action'] == 'deletion'){ + $transaction_type = 'Debit'; + } + + $cd_data = [ + 'amount' => $cd_tranction['amount'], + 'sub_type_id' => 8, + 'endorsement_no' => null, + 'insurer_id' =>$policy_data['insurer_id'], + 'description' => 'The policy Truncated by Admin or Head', + 'transaction_type' => $transaction_type, + 'updated_by' => 1, + 'client_id' => $client_id, + 'client_policy_id' => $client_policy_id, + 'cd_ac_no' => $policy_data['cd_ac_no'] ?? null, + 'event_name' => $file['action'], + ]; + + $response = DepositHelper::saveDeposit($cd_data, $loggedInUserID); + } + return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => 'success'], 200); } else { - return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200); + if(get_role_id() == 1 || get_role_id() == 5){ + return $this->respond(['role' => get_role_id(), 'dataStatus' => false, 'code' => 404, 'message' => 'File data already processed. Do you want to truncate data from uploaded file?'], 200); + }else{ + return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'File data already processed'], 200); + } } } } diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index 1458100e..2b2e017c 100644 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -1363,8 +1363,10 @@ class EmployeeRestController extends AdminController $result = ' '; foreach ($array as $key => $value) { if ($value > 0) { - if($value != 0 && $key ==='either-parents-pil') { + if($value == 1 && $key ==='either-parents-pil') { $result .= ' + Either 2 Parents or 2 Parents in law'; + }if($value == 2 && $key ==='either-parents-pil') { + $result .= ' + Any 2 of Parents and Parents in law'; }else if($value != 0 && $key ==='spouse') { $string = str_replace('-', ' ', $key); $string = ucwords($string); @@ -1373,11 +1375,15 @@ class EmployeeRestController extends AdminController $result = 'Can Add Self '; }else if($value != 0 && $key ==='childrens') { if($value > 1){ $result .= ' + '.$value.' Children'; }else{ $result .= ' + '.$value.' Child'; } + }else if($value != 0 && $key ==='elders_count') { + }else{ $string = str_replace('-', ' ', $key); $string = ucwords($string); $result .= ' + '.$value.' '.$string; } + + } } @@ -1874,7 +1880,7 @@ class EmployeeRestController extends AdminController { $transformed_famility_details = transform_db_data_to_excel($family); // print_r($transformed_famility_details);die(); - $data = calculate_premimum($transformed_famility_details,$policy_terms,$slab_details,$file,$default_si); + $data = calculate_premium($transformed_famility_details,$policy_terms,$slab_details,$file,$default_si); // dd($data); $employee_data_group_by_family[$emp_id] = $data; @@ -2404,7 +2410,8 @@ class EmployeeRestController extends AdminController $firebase->send($message); return $this->response->setJSON(['status' => 'success']); } catch (MessagingException $e) { - return $this->response->setJSON(['status' => 'error', 'message' => $e->getMessage()]); + //return $this->response->setJSON(['status' => 'error', 'message' => $e->getMessage()]); + log_message('error', $e->getMessage()); } } diff --git a/app/Controllers/JobWorker.php b/app/Controllers/JobWorker.php index c6bf8829..eb9f96e2 100644 --- a/app/Controllers/JobWorker.php +++ b/app/Controllers/JobWorker.php @@ -4,6 +4,13 @@ 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 { const STATUS_DONE = 'done'; @@ -323,6 +330,71 @@ 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/Controllers/MasterController.php b/app/Controllers/MasterController.php index 18e73a8e..f364d1de 100644 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -1062,10 +1062,9 @@ class MasterController extends AdminController //start CD Master list public function CDMasterList() { - $data['CD_Master_Data'] = $this->CDMasterModel->getCDMasterList(); - $data['insurers'] = $this->insurerModel->findAll(); - $data['clients'] = $this->clientModel->findAll(); + $data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll(); + $data['clients'] = $this->clientModel->where('is_active', 1)->findAll(); $this->loadLayout('cd_master_list', $data); } @@ -1157,7 +1156,12 @@ class MasterController extends AdminController public function getCDMasterDataByID($id = null) { - $cd_data = $this->CDMasterModel->where('id', $id)->first(); + $cd_data = $this->CDMasterModel + ->where('id', $id) + ->where('is_active', 1) + ->first(); + + // convert the date formate 2000-01-01 to 01-01-2000 $cd_data['opening_date'] = date('d-m-Y', strtotime($cd_data['opening_date'])); if ($cd_data) { @@ -1169,7 +1173,10 @@ class MasterController extends AdminController public function checkUniqueCDAccountNumber($AccountNumber) { - $uniqueAC = $this->CDMasterModel->where('cd_ac_no', $AccountNumber)->findAll(); + $uniqueAC = $this->CDMasterModel + ->where('cd_ac_no', $AccountNumber) + ->where('is_active', 1) + ->findAll(); if($uniqueAC != null){ return $this->respond(['status' => true, 'message' => 'The CD Account Number is Already Exist', 'code' => 200], 200); @@ -1184,7 +1191,18 @@ class MasterController extends AdminController $this->myLogger->logme('error','CDMaster Remove function called'); $data['updated_by'] = get_session_userid(); $data['is_active'] = 0; - $update = $this->CDMasterModel->where('id', $id)->set($data)->update(); + $cash_transaction_data = $this->CDMasterModel->where('id', $id)->first(); + + $update = $this->CDMasterModel->where('id', $id)->set($data)->update(); + + $cd_tranction_update = $this->clientDepositModel + ->where('client_id', $cash_transaction_data['client_id']) + ->where('insurer_id', $cash_transaction_data['insurer_id']) + ->where('cd_ac_no', $cash_transaction_data['cd_ac_no']) + ->where('sub_type', 7) + ->set($data) + ->update(); + if($update){ return $this->respond(['status' => true,'code' => 200], 200); }else{ diff --git a/app/Controllers/PendingActionsController.php b/app/Controllers/PendingActionsController.php index b47a4b2f..bb8f2e92 100644 --- a/app/Controllers/PendingActionsController.php +++ b/app/Controllers/PendingActionsController.php @@ -7,7 +7,6 @@ use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; -use App\Helpers\DepositHelper; use App\Helpers\MailHelper; use App\Helpers\sendMailNotification; @@ -43,10 +42,10 @@ class PendingActionsController extends AdminController public function __construct() { - //section + //session set_session_context('PendingActionsController Called'); - //services + //log services $this->myLogger = \Config\Services::mylogger(); $this->db = \Config\Database::connect(); @@ -60,7 +59,7 @@ class PendingActionsController extends AdminController $this->empEndorsementModel = new EmpEndorsementModel(); } - + //for AJAX public function getPendingActions() { //get pending actions like inception, corrections,deletions,SI enhanccnement to users @@ -71,12 +70,144 @@ class PendingActionsController extends AdminController $deletion = $this->getPendingActionForDeletion(); $tpa = $this->getPendingActionForTPAIDEmpty(); $uhid = $this->getPendingActionForUHIDEmpty(); + $PolicyRenewalData = $this->getPolicyRenewalDataForAllClient(); + // dd($inception, $si_enhancement, $correction, $deletion, $tpa, $uhid); - $data = ['inception' => $inception, 'correction' => $correction, 'si_enhancement' => $si_enhancement, 'deletion' => $deletion, 'tpa' => $tpa, 'uhid' => $uhid]; + $data = ['inception' => $inception, 'correction' => $correction, 'si_enhancement' => $si_enhancement, 'deletion' => $deletion, 'tpa' => $tpa, 'uhid' => $uhid, 'policy' => $PolicyRenewalData]; return $this->respond($data); } + + //for NORMAL + public function getPendingActionsForClientData() + { + + $inception = $this->getPendingActionForInception(); + $correction = $this->getPendingActionForCorrection(); + $si_enhancement = $this->getPendingActionForSIEnhancement(); + $deletion = $this->getPendingActionForDeletion(); + $tpa = $this->getPendingActionForTPAIDEmpty(); + $uhid = $this->getPendingActionForUHIDEmpty(); + $PolicyRenewalData = $this->getPolicyRenewalDataForAllClient(); + + // dd($inception, $si_enhancement, $correction, $deletion, $tpa, $uhid); + + $data = ['inception' => $inception, 'correction' => $correction, 'si_enhancement' => $si_enhancement, 'deletion' => $deletion, 'tpa' => $tpa, 'uhid' => $uhid, 'policy' => $PolicyRenewalData]; + return $data; + } + + //for only COUNT + public function getPendingActionsForDashBoard() + { + $tpa = $this->getPendingActionForTPAIDEmpty(); + $uhid = $this->getPendingActionForUHIDEmpty(); + $deletion = $this->getPendingActionForDeletion(); + $inception = $this->getPendingActionForInception(); + $ticketData = $this->getTicketsDataForDashBoard(); + $correction = $this->getPendingActionForCorrection(); + $si_enhancement = $this->getPendingActionForSIEnhancement(); + $PolicyRenewalData = $this->getPolicyRenewalDataForAllClient(); + + $uhid_export_count = []; + $uhid_not_export_count = []; + foreach ($uhid as $value) { + if($value['batch_export_count'] == 1){ + $uhid_export_count[] = $value['batch_export_count']; + }else{ + $uhid_not_export_count[] = $value['batch_export_count']; + } + } + $tpa_export_count = []; + $tpa_not_export_count = []; + foreach ($tpa as $value) { + if($value['batch_export_count'] == 1){ + $tpa_export_count[] = $value['batch_export_count']; + }else{ + $tpa_not_export_count[] = $value['batch_export_count']; + } + } + $deletion_export_count = []; + $deletion_not_export_count = []; + foreach ($deletion as $value) { + if($value['batch_export_count'] == 1){ + $deletion_export_count[] = $value['batch_export_count']; + }else{ + $deletion_not_export_count[] = $value['batch_export_count']; + } + } + $correction_export_count = []; + $correction_not_export_count = []; + foreach ($correction as $value) { + if($value['batch_export_count'] == 1){ + $correction_export_count[] = $value['batch_export_count']; + }else{ + $correction_not_export_count[] = $value['batch_export_count']; + } + } + $si_export_count = []; + $si_not_export_count = []; + foreach ($si_enhancement as $value) { + if($value['batch_export_count'] == 1){ + $si_export_count[] = $value['batch_export_count']; + }else{ + $si_not_export_count[] = $value['batch_export_count']; + } + } + + // dd($uhid_export_count, $tpa_export_count ,$deletion_export_count, $correction_export_count, $si_export_count, $ticketData, $inception, $si_enhancement, $correction, $deletion, $tpa, $uhid, $PolicyRenewalData); + + $inception = count($inception); + $correction = count($correction); + $si_enhancement = count($si_enhancement); + $deletion = count($deletion); + $tpa = count($tpa); + $uhid = count($uhid); + $PolicyRenewalData = count($PolicyRenewalData); + $ticketData = count($ticketData); + + $uhid_export_count = count($uhid_export_count); + $tpa_export_count = count($tpa_export_count); + $deletion_export_count = count($deletion_export_count); + $correction_export_count = count($correction_export_count); + $si_export_count = count($si_export_count); + + $uhid_not_export_count = count($uhid_not_export_count); + $tpa_not_export_count = count($tpa_not_export_count); + $deletion_not_export_count = count($deletion_not_export_count); + $correction_not_export_count = count($correction_not_export_count); + $si_not_export_count = count($si_not_export_count); + + + // dd($inception, $si_enhancement, $correction, $deletion, $tpa, $uhid, $PolicyRenewalData); + + $data = [ + 'inception' => $inception, + 'correction' => $correction, + 'si_enhancement' => $si_enhancement, + 'deletion' => $deletion, + 'tpa' => $tpa, + 'uhid' => $uhid, + 'PolicyRenewalData' => $PolicyRenewalData, + 'ticketData' => $ticketData, + + 'uhid_export_count' => $uhid_export_count, + 'tpa_export_count' => $tpa_export_count, + 'deletion_export_count' => $deletion_export_count, + 'correction_export_count' => $correction_export_count, + 'si_export_count' => $si_export_count, + + 'uhid_not_export_count' => $uhid_not_export_count, + 'tpa_not_export_count' => $tpa_not_export_count, + 'deletion_not_export_count' => $deletion_not_export_count, + 'correction_not_export_count' => $correction_not_export_count, + 'si_not_export_count' => $si_not_export_count, + ]; + return $data; + } + + + public function getPendingActionForInception() @@ -121,7 +252,6 @@ class PendingActionsController extends AdminController return $results; } - public function getPendingActionForCorrection() { @@ -152,6 +282,7 @@ class PendingActionsController extends AdminController clients.id as client_id, client_branch.id as branch_id, client_branch.branch_name, + policy_type.policy_type as policy_name, emp_endorsement.id, emp_endorsement.pk, emp_endorsement.endorsement_id, @@ -161,10 +292,20 @@ class PendingActionsController extends AdminController emp_endorsement.actions, emp_endorsement.name, emp_endorsement.status, - employees.name as ename + employees.name as ename, + ( + SELECT COUNT(*) + FROM batch_files bl + WHERE bl.client_id = clients.id + AND bl.actions = "export" + AND bl.event_type = "correction" + AND bl.insurer_or_tpa = "tpa" + ) AS export_count ') ->join('employees', 'emp_endorsement.pk = employees.id AND employees.is_active = 1 AND employees.emp_status = \'active\'') ->join('clients', 'employees.client_id = clients.id AND clients.is_active = 1', 'left') + ->join('client_policy', 'client_policy.client_id = clients.id AND clients.is_active = 1', 'left') + ->join('policy_type', 'client_policy.policy_type_id = policy_type.id ') ->join('client_branch', 'client_branch.id = employees.client_branch_id', 'left') ->where([ 'emp_endorsement.actions' => 'c', @@ -195,14 +336,16 @@ class PendingActionsController extends AdminController $results = $query->getResultArray(); - $filteredResults = array_filter($results, function ($value) { - return $value['subquery_count'] != 0; - }); + $filteredResults = []; + foreach ($results as $value) { + if ($value['subquery_count'] != 0) { + $filteredResults[] = $value; + } + } return $filteredResults; } - public function getPendingActionForSIEnhancement() { @@ -282,14 +425,16 @@ class PendingActionsController extends AdminController $results = $query->getResultArray(); - $filteredResults = array_filter($results, function ($value) { - return $value['subquery_count'] != 0; - }); + $filteredResults = []; + foreach ($results as $value) { + if ($value['subquery_count'] != 0) { + $filteredResults[] = $value; + } + } return $filteredResults; } - public function getPendingActionForDeletion() { @@ -369,14 +514,16 @@ class PendingActionsController extends AdminController // Fetch the results $results = $query->getResultArray(); - $filteredResults = array_filter($results, function ($value) { - return $value['subquery_count'] != 0; - }); - + $filteredResults = []; + foreach ($results as $value) { + if ($value['subquery_count'] != 0) { + $filteredResults[] = $value; + } + } + return $filteredResults; } - public function getPendingActionForUHIDEmpty() { // Subquery for batch_export_count @@ -425,7 +572,6 @@ class PendingActionsController extends AdminController return $results; } - public function getPendingActionForTPAIDEmpty() { @@ -483,4 +629,86 @@ class PendingActionsController extends AdminController return $results; } + + public function getPolicyRenewalDataForAllClient() + { + $PolicyRenewalData = $this->clientPolicyModel + ->select(' + clients.client_name, + client_branch.branch_name, + policy_type.policy_type as policy_name, + client_policy.policy_end_date, + client_branch.id as branch_id + ') + ->join('clients', 'clients.id = client_policy.client_id') + ->join('client_branch', 'client_branch.id = client_policy.client_branch_id') + ->join('policy_type', 'policy_type.id = client_policy.policy_type_id') + ->where('client_policy.is_active', 1) + ->where('client_policy.policy_status', 0) + ->where('clients.is_active', 1) + ->where('client_branch.is_active', 1) + ->where('client_policy.policy_end_date < DATE_ADD(CURDATE(), INTERVAL 2 MONTH)', null, false) + ->get() + ->getResultArray(); + + return $PolicyRenewalData; + + } + + public function getTicketsDataForDashBoard() + { + $db = \Config\Database::connect(); + + $ticket_data = $db->table('hdz_tickets') + ->select('hdz_tickets.*, hdz_status.status') + ->join('hdz_status', 'hdz_status.id = hdz_tickets.status') + ->where('hdz_status.active', 1) + ->where('hdz_tickets.status !=', 5) + ->get() + ->getResultArray(); + + return $ticket_data; + } + + //ticket status count + public function getTicketStatusCount() + { + + $db = \Config\Database::connect(); + + // Count status = 1 + $countStatus1 = $db->table('hdz_tickets') + ->selectCount('status') + ->where('status', 1) + ->get() + ->getRowArray()['status']; + + // Count status = 4 + $countStatus4 = $db->table('hdz_tickets') + ->selectCount('status') + ->where('status', 4) + ->get() + ->getRowArray()['status']; + + // Count status = 2 + $countStatus2 = $db->table('hdz_tickets') + ->selectCount('status') + ->where('status', 2) + ->get() + ->getRowArray()['status']; + + // Count status = 3 + $countStatus3 = $db->table('hdz_tickets') + ->selectCount('status') + ->where('status', 3) + ->get() + ->getRowArray()['status']; + + + } + + public function getexportCount() + { + + } } diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index 6efaa163..b313789e 100644 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -69,15 +69,13 @@ class RestAuthenticationController extends AdminController { try { $mobile_number = $this->request->getJSON()->mobile_number; - $randomNumber = rand(100000, 999999); - $randomNumber = 123456; + $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first(); if ($employeeData) { - $id= $employeeData["id"]; - $otp = $this->employeeModel->where('id', $id)->set('otp', $randomNumber)->update(); - $result = ['user_verification' => true ,'message' => "Verified Successfully", 'otp'=>$randomNumber]; + + $result = ['user_verification' => true ,'message' => "Verified Successfully"]; return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); } else { $result = ['user_verification' => false , 'message' => "User not found"]; @@ -92,13 +90,13 @@ class RestAuthenticationController extends AdminController public function getVerifiedUserData() { - // try { + try { $mobile_number = $this->request->getJSON()->mobile_number; - $otp = $this->request->getJSON()->otp; + $otp_verification = $this->request->getJSON()->otp_verification; $employeeData = $this->employeeModel->where('mobile', $mobile_number)->where('relationship', 'self')->first(); - if ($employeeData && $otp == $employeeData["otp"] || $employeeData && isset($this->request->getJSON()->login_by_hr)) { + if ($employeeData && $otp_verification == true || $employeeData && isset($this->request->getJSON()->login_by_hr)) { $auth = HttpRequestHelper::getRequestInfo(); if ($auth) { $data = [ @@ -108,36 +106,31 @@ class RestAuthenticationController extends AdminController 'platform' => $auth['platform'], 'broswer' => $auth['browser'], ]; - - $authdata= $this->authHistoryModel->insert($data); - + $this->authHistoryModel->insert($data); } - $otp_null = $this->employeeModel->where('id', $employeeData["id"])->set('otp', null)->update(); - - + $result = JWTToken::encode($employeeData); - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + } else { return $this->respond(['status' => 'failed','code' => 404,'data' => "Invalid OTP"],200); } - // } 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 verifyHrWithMobileNumber() { try { $mobile_number = $this->request->getJSON()->mobile_number; - $randomNumber = rand(100000, 999999); - $randomNumber = 123456; + $HrData = $this->hrModel->where('mobile', $mobile_number)->where('contact_type', 'client')->first(); if ($HrData) { - $id= $HrData["id"]; - $otp = $this->hrModel->where('id', $id)->set('otp', $randomNumber)->update(); - $result = ['user_verification' => true ,'message' => "Verified Successfully", 'otp'=>$randomNumber]; + + $result = ['user_verification' => true ,'message' => "Verified Successfully"]; return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); } else { $result = ['user_verification' => false , 'message' => "User not found"]; @@ -154,10 +147,10 @@ class RestAuthenticationController extends AdminController { try { $mobile_number = $this->request->getJSON()->mobile_number; - $otp = $this->request->getJSON()->otp; + $otp_verification = $this->request->getJSON()->otp_verification; $hrData = $this->hrModel->where('mobile', $mobile_number)->first(); - if ($hrData && $otp == $hrData["otp"]) { + if ($hrData && $otp_verification == true) { $auth = HttpRequestHelper::getRequestInfo(); if ($auth) { $data = [ @@ -168,10 +161,10 @@ class RestAuthenticationController extends AdminController 'broswer' => $auth['browser'], ]; - $authdata= $this->authHistoryModel->insert($data); + $this->authHistoryModel->insert($data); } - $otp_null = $this->hrModel->where('id', $hrData["id"])->set('otp', null)->update(); + $hrData = $this->hrModel ->select('level_contacts.* , client_branch.client_id as client_id') ->join('client_branch', 'level_contacts.ref_id = client_branch.id', 'left') @@ -179,7 +172,7 @@ class RestAuthenticationController extends AdminController ->find(); $result = JWTToken::encode($hrData['0']); - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); } else { return $this->respond(['status' => 'failed','code' => 404,'data' => "Invalid OTP"],200); } @@ -190,11 +183,6 @@ class RestAuthenticationController extends AdminController - public function employeeLogout() - { - - } - public function getUserIdFromToken() { $id = JWTToken::getUserIdFromToken(); diff --git a/app/Helpers/DepositHelper.php b/app/Helpers/DepositHelper.php index 3565646e..5d45709e 100644 --- a/app/Helpers/DepositHelper.php +++ b/app/Helpers/DepositHelper.php @@ -54,7 +54,9 @@ class DepositHelper 'cd_ac_no' => $data['cd_ac_no'], 'endorsement_no' => $data['endorsement_no'], 'insurer_id' => $data['insurer_id'], + 'unit' => $data['unit'] ?? null, 'description' => $data['description'], + 'event_name' => $data['event_name'], 'transaction_type' => $data['transaction_type'], 'is_active' => 1, 'created_by' => $loggedInUserID, diff --git a/app/Helpers/sendMailNotification.php b/app/Helpers/sendMailNotification.php index 17da7a65..7b8fc5c8 100644 --- a/app/Helpers/sendMailNotification.php +++ b/app/Helpers/sendMailNotification.php @@ -12,7 +12,7 @@ class sendMailNotification { public static function sendMailNotification($action, $params) { - print_r($params);die; + $wholeData =[]; if ($action == 'member_welcome_mail') { $dataToInsert = $params['dataToInsert']; $notification = $params['notification']; @@ -37,7 +37,6 @@ class sendMailNotification } return $wholeData; } else if($action == 'member_reminder_mail'){ - $EmployeeModel = new EmployeeModel(); $emp_data = $params['emp_data']; $notification_data = $params['notification_data']; @@ -51,27 +50,46 @@ class sendMailNotification $mail_content = str_replace("[[client_name]]", $client_data['client_name'], $mail_content); $mail_content = str_replace("[[nhance_logo]]", "Nhance Logo", $mail_content); $mail_content = str_replace("[[app_link]]", "Review Details", $mail_content); - if ($emp_data && (isset($notification_data) && $notification_data['enabled'] == 1)) { + if(isset($emp_data['relationship'])){ + if ($emp_data['relationship'] == 'Self') { + if(count($emp_data) > 0){ + $mail =''; + if ($emp_data['relationship'] == 'Self') { + $employee_name =$emp_data['name']; + $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content); + $mail = $emp_data['email_corporate']; + } + } + }else{ + $mail =''; + } + + }else{ + $employee_name =$emp_data['name']; + $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content); + $mail = $emp_data['email_corporate']; + } + + if (isset($mail) && !empty($mail)) { + $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']]; + } + }else{ foreach ($emp_data as $key => $value) { - if ($value['relationship'] != 'Self') { - + if ($value['relationship'] != 'Self') { $emp_data = $EmployeeModel->where('client_id', $client_data['id'])->where('emp_code', $value['emp_code'])->where('is_active',1)->findAll(); - if(count($emp_data) > 1){ $mail =''; foreach ($emp_data as $key => $values) { if ($value['relationship'] == 'Self') { $employee_name =$values['name']; $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content); - $mail = $values['email_corporate']; } } }else{ $mail =''; } - }else{ $employee_name =$value['name']; $mail_content = str_replace("[[member_name]]", $employee_name, $mail_content); @@ -81,13 +99,15 @@ class sendMailNotification $wholeData[] = ['mail' => $mail, 'subject' => $subject,'message'=> $mail_content, 'bcc'=> $client_data['common_mails']]; } } - if (count($wholeData) < 1) { - $wholeData = []; - } - return $wholeData; - }else{ - return "false"; } + + if (count($wholeData) < 1) { + $wholeData = []; + } + return $wholeData; + // }else{ + // return "false"; + // } } else if($action == 'member_ecard_mail'){ $notification = $params['notification']; diff --git a/app/Models/CDMasterModel.php b/app/Models/CDMasterModel.php index b936650f..8c7581a3 100644 --- a/app/Models/CDMasterModel.php +++ b/app/Models/CDMasterModel.php @@ -42,7 +42,7 @@ class CDMasterModel extends Model protected function checkAndADDCreatedByValue(array $data) { // Check if 'updated_by' value is null or empty - if (empty($data['data']['created_by'])) { + if (empty($data['data']['created_by'])) { // Set 'updated_by' value to the current session user ID $data['data']['created_by'] = get_session_userid(); } @@ -53,7 +53,7 @@ class CDMasterModel extends Model protected function checkAndUpdateUpdatedByValue(array $data) { // Check if 'updated_by' value is null or empty - if (empty($data['data']['updated_by'])) { + if (empty($data['data']['updated_by'])) { // Set 'updated_by' value to the current session user ID $data['data']['updated_by'] = get_session_userid(); } @@ -65,31 +65,37 @@ class CDMasterModel extends Model { $query = $this->db->table('cd_master') - ->select('cd_master.*, clients.client_name, clients.short_name, insurers.name AS insurer_name, user_profiles.first_name AS user_name, IFNULL(cd_ac_counts.cd_ac_no_count, 0) AS cd_ac_no_count, IFNULL(cd_ac_counts_for_cdt.cd_ac_no_count_cd_tranction, 0) AS cd_ac_no_count_cd_tranction') - ->join('clients', 'clients.id = cd_master.client_id') - ->join('insurers', 'insurers.id = cd_master.insurer_id') - ->join('user_profiles', 'user_profiles.id = cd_master.created_by') - ->join( - '(SELECT cd_master.cd_ac_no, COUNT(client_policy.cd_ac_no) AS cd_ac_no_count + ->select('cd_master.*, clients.client_name, clients.short_name, insurers.name AS insurer_name, user_profiles.first_name AS user_name, IFNULL(cd_ac_counts.cd_ac_no_count, 0) AS cd_ac_no_count, IFNULL(cd_ac_counts_for_cdt.cd_ac_no_count_cd_tranction, 0) AS cd_ac_no_count_cd_tranction') + ->join('clients', 'clients.id = cd_master.client_id') + ->join('insurers', 'insurers.id = cd_master.insurer_id') + ->join('user_profiles', 'user_profiles.id = cd_master.created_by') + ->join( + '(SELECT cd_master.cd_ac_no, COUNT(client_policy.cd_ac_no) AS cd_ac_no_count FROM cd_master JOIN client_policy ON client_policy.cd_ac_no = cd_master.cd_ac_no + WHERE client_policy.is_active = 1 + AND cd_master.is_active = 1 GROUP BY cd_master.cd_ac_no) AS cd_ac_counts', - 'cd_ac_counts.cd_ac_no = cd_master.cd_ac_no', - 'left' - ) - ->join( - '(SELECT cd_master.cd_ac_no, COUNT(cash_deposit.cd_ac_no) AS cd_ac_no_count_cd_tranction + 'cd_ac_counts.cd_ac_no = cd_master.cd_ac_no', + 'left' + ) + ->join( + '(SELECT cd_master.cd_ac_no, COUNT(cash_deposit.cd_ac_no) AS cd_ac_no_count_cd_tranction FROM cd_master JOIN cash_deposit ON cash_deposit.cd_ac_no = cd_master.cd_ac_no + WHERE cash_deposit.is_active = 1 + AND cd_master.is_active = 1 GROUP BY cd_master.cd_ac_no) AS cd_ac_counts_for_cdt', - 'cd_ac_counts_for_cdt.cd_ac_no = cd_master.cd_ac_no', - 'left' - ) - ->where('cd_master.is_active', 1) - ->get(); - + 'cd_ac_counts_for_cdt.cd_ac_no = cd_master.cd_ac_no', + 'left' + ) + ->where('cd_master.is_active', 1) + ->where('clients.is_active', 1) + ->where('insurers.is_active', 1) + ->where('user_profiles.is_active', 1) + ->get(); + $result = $query->getResultArray(); return $result; } - } diff --git a/app/Models/ClientDepositModel.php b/app/Models/ClientDepositModel.php index 9f520dd2..00530dec 100644 --- a/app/Models/ClientDepositModel.php +++ b/app/Models/ClientDepositModel.php @@ -25,6 +25,8 @@ class ClientDepositModel extends Model "client_policy_id", "cd_ac_no", "endorsement_no", + "event_name", + "unit", ]; diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php index 05d09c98..f6d8b942 100644 --- a/app/Models/ClientPolicyModel.php +++ b/app/Models/ClientPolicyModel.php @@ -19,6 +19,7 @@ class ClientPolicyModel extends Model "policy_type_id", "policy_start_date", "policy_end_date", + "reminder_date", "insured", "no_of_employees", "no_of_lives", @@ -46,6 +47,7 @@ class ClientPolicyModel extends Model "cd_ac_no", "gst", "enrolment_visibility", + "is_active", ]; public function getClientPolicyById($id){ diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 1438c730..52ffe324 100644 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -130,7 +130,15 @@ class EmployeePolicyModel extends Model $result->where('employee_polices.client_policy_id', $policy_id); } if ($status !=0 && !empty($status)) { - $result->where('employee_polices.status', $status); + if($status == 'active'){ + $result->where('employee_polices.tpa_id IS NOT NULL'); + $result->where('employee_polices.uhid IS NOT NULL'); + }else if($status == 'pending'){ + $status = 'active'; + $result->where('employee_polices.status', $status); + }else{ + $result->where('employee_polices.status', $status); + } } if (!empty($emp_code)) { $result->where('emp.emp_code', $emp_code); diff --git a/app/Views/DashBoard.php b/app/Views/DashBoard.php index 7d8243a5..c174e936 100644 --- a/app/Views/DashBoard.php +++ b/app/Views/DashBoard.php @@ -35,9 +35,9 @@ body { -
+
-
+
@@ -50,10 +50,10 @@ body {
- - - - + +
-
+
diff --git a/app/Views/cd_master_list.php b/app/Views/cd_master_list.php index 30c848f6..04a52784 100644 --- a/app/Views/cd_master_list.php +++ b/app/Views/cd_master_list.php @@ -57,17 +57,25 @@ table.dataTable thead th { by -