From af4749bdce518b01ced4426e623d1459f01012eb Mon Sep 17 00:00:00 2001 From: "venkatesh.r" Date: Fri, 5 Apr 2024 09:02:08 +0530 Subject: [PATCH] CHANGE_ENDORSEMENT_LIST_MODEL_DELETION_DATA : RV --- app/Controllers/EmpDataServiceController.php | 105 ++++++++++++++----- app/Controllers/EmployeeController.php | 104 +++++++++++------- app/Helpers/excel_import_export_helper.php | 5 + app/Models/EmpEndorsementModel.php | 3 + app/Views/endorsement_list.php | 71 ++++++++++--- 5 files changed, 205 insertions(+), 83 deletions(-) diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 4a2581f1..48a03584 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -918,6 +918,7 @@ class EmpDataServiceController extends BaseController } + public function cashDepositCalculationForSIEnhancement($arrayData) { if (!empty($arrayData)) { @@ -954,6 +955,7 @@ class EmpDataServiceController extends BaseController } } + public function cashDepositCalculationForDeletion($arrayData) { // print_r($arrayData); @@ -996,14 +998,37 @@ class EmpDataServiceController extends BaseController } - public function getPolicyNameUsingClientPolicyId($client_policy_id){ + + + /** + * Below function retrieves the policy name associated with a given client policy ID. + * + * @param int $client_policy_id The ID of the client policy. + * @return mixed Returns the policy name if found, otherwise null. + */ + + public function getPolicyNameUsingClientPolicyId($client_policy_id) + { return $this->clientPolicyModel->select('policies.name as policy_name') ->join('policies', 'policies.id = client_policy.policy_id') ->where('client_policy.id', $client_policy_id) ->first(); } - public function convertRowTColumnForSIEnhancement($data){ + + + + /** + * Below function converts row data into column data format for SI enhancement. + * + * This function takes an array of data containing information about SI enhancement + * and calculates additional fields such as pro rata premium, GST, and total. + * + * @param array $data The array of data containing SI enhancement information. + * @return array Returns the converted data in column format. + */ + public function convertRowTColumnForSIEnhancement($data) + { $result = array(); @@ -1069,7 +1094,21 @@ class EmpDataServiceController extends BaseController return $result; } - public function convertRowTColumnForDeletion($data){ + + + /** + * Below function converts row data into column data format for deletion records. + * + * This function takes an array of data containing information about deletion records + * and converts it into a column format. It also calculates additional fields such as + * period of non-coverage, premium for non-coverage period, GST, total amount, and + * claim status based on the exist_reason field. + * + * @param array $data The array of data containing deletion records information. + * @return array Returns the converted data in column format. + */ + public function convertRowTColumnForDeletion($data) + { $result = array(); @@ -1078,44 +1117,56 @@ class EmpDataServiceController extends BaseController $old_total = round(($obj->old_rata + $obj->old_gst), 2); $result[] = array( - "field_name" => 'Date of Leaving', - "old_value" => change_date_format($obj->end_date, 'Y-m-d', 'd-M-Y'), - "new_value" => change_date_format($obj->date_of_leaving, 'Y-m-d', 'd-M-Y') + "field_name" => 'Policy Period', + "data" => change_date_format($obj->start_date, 'Y-m-d', 'd-M-Y') . ' -
' . change_date_format($obj->end_date, 'Y-m-d', 'd-M-Y'), ); $result[] = array( - "field_name" => 'Exit Reason', - "old_value" => ' --- ', - "new_value" => $obj->exist_reason + "field_name" => 'Exit on', + "data" => change_date_format($obj->date_of_leaving, 'Y-m-d', 'd-M-Y'), ); $result[] = array( - "field_name" => 'No of Days', - "old_value" => $obj->old_days, - "new_value" => $obj->no_of_days + "field_name" => 'Reason', + "data" => $obj->exist_reason, ); - $result[] = array( - "field_name" => 'Pro Rata Premium', - "old_value" => $obj->old_rata, - "new_value" => $obj->pro_rata_premium - ); + + + if($obj->exist_reason != 'death'){ + + $result[] = array( + "field_name" => 'Period of non coverage', + "data" => $obj->no_of_days + ); - $result[] = array( - "field_name" => 'GST(18%)', - "old_value" => $obj->old_gst, - "new_value" => $obj->gst - ); + $result[] = array( + "field_name" => 'Premium for non coverage period', + "data" => $obj->pro_rata_premium + ); + + $result[] = array( + "field_name" => 'GST(18%)', + "data" => $obj->gst + ); + + $result[] = array( + "field_name" => 'Total Amount', + "data" => $obj->total + ); - $result[] = array( - "field_name" => 'Total', - "old_value" => $old_total, - "new_value" => $obj->total - ); + $result[] = array( + "field_name" => 'Claim', + "data" => '---', + ); + + } } return $result; } + + // ----------------------------------------------------------------------------------- } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 3232e4ac..fe4bf38b 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -454,16 +454,16 @@ class EmployeeController extends AdminController // ------------------------------------------------------------------------------------------- - public function endorsementList(){ - // $empDataServiceController = new EmpDataServiceController(); - // $group_key = $this->empEndorsementModel->select('group_key, actions')->where('id', 4)->first(); - // $data = $this->empEndorsementModel->getDataForEnodrsementListinSIEnhancement($group_key['group_key']); - // $formatedData = $empDataServiceController->convertRowTColumnForSIEnhancement($data); - // $ee_entry = $this->empEndorsementModel->where('group_key', 107)->findAll(); - // $ee_entry[0]['field_name'] = remove_underscore_capitalize_first_letter($ee_entry[0]['field_name']); - // echo "
";
-        // print_r($formatedData); die;
+    /**
+     * Below function displays the endorsement list page.
+     * 
+     * This method retrieves filter data from the request and fetches the endorsement list
+     * based on the provided filters such as client ID, policy ID, and status.
+     */
+
+    public function endorsementList()
+    {
 
         $data = [];
         $data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete'=>'Complete'];
@@ -480,41 +480,65 @@ class EmployeeController extends AdminController
         $this->loadLayout('endorsement_list',$data);
     }
 
-    public function getEmpEndoresmentEntry($id = null){
 
-        $empDataServiceController = new EmpDataServiceController();   
-        if($id)
-        {
-            $group_key = $this->empEndorsementModel->select('group_key, actions')->where('id', $id)->first();
-            $nor_data = $this->empEndorsementModel->where('group_key', $group_key['group_key'])->findAll();
+    /**
+     * Beleo function retrieves employee endorsement (emp_endorsement table) data.
+     *
+     * This method fetches endorsement data based on the provided ID.
+     * It determines the type of endorsement action (SI enhancement, deletion, or other),
+     * formats the data accordingly, and returns it as a response.
+     *
+     * @param int|null $id The ID of the endorsement entry to retrieve.
+     * @return \CodeIgniter\HTTP\Response Returns a JSON response containing the endorsement entry data.
+     */
+    public function getEmpEndoresmentEntry($id = null)
+    {
+        // Create instance of EmpDataServiceController
+        $empDataServiceController = new EmpDataServiceController();
+    
+        // Check if $id is provided
+        if ($id) {
+            // Retrieve group key and actions based on $id
+            $group_key_actions = $this->empEndorsementModel->select('group_key, actions')->where('id', $id)->first();
+            $groupedData = $this->empEndorsementModel->where('group_key', $group_key_actions['group_key'])->findAll();
+    
+            // If group key and actions are found
+            if ($group_key_actions) {
+                // Retrieve endorsement data based on actions
+                switch ($group_key_actions['actions']) {
+                    case 'si':
+                        $data = $this->empEndorsementModel->getDataForEnodrsementListinSIEnhancement($group_key_actions['group_key']);
+                        $formatedData = $empDataServiceController->convertRowTColumnForSIEnhancement($data);
+                        break;
+                    case 'd':
+                        $data = $this->empEndorsementModel->getDataForEnodrsementListinDeletion($group_key_actions['group_key']);
+                        $formatedData = $empDataServiceController->convertRowTColumnForDeletion($data);
+                        break;
+                    default:
+                        $formatedData = $groupedData;
+                        $formatedData[0]['field_name'] = remove_underscore_capitalize_first_letter($formatedData[0]['field_name']);
+                        $formatedData[0]['old_value'] = formatDateOrReturn($formatedData[0]['old_value']);
+                        $formatedData[0]['new_value'] = formatDateOrReturn($formatedData[0]['new_value']);
+                        break;
+                }
+                
+                // Return response with data
+                return $this->respond([
+                    'dataStatus' => true,
+                    'code' => 200,
+                    'data' => $formatedData,
+                    'data2' => $groupedData
+                ], 200);
 
-            $ee_entry = '';
-            if($group_key['actions'] == 'si'){
-
-                $data = $this->empEndorsementModel->getDataForEnodrsementListinSIEnhancement($group_key['group_key']);
-                $formatedData = $empDataServiceController->convertRowTColumnForSIEnhancement($data);
-                $ee_entry = $formatedData;
-
-            }else if($group_key['actions'] == 'd'){
-
-                $data = $this->empEndorsementModel->getDataForEnodrsementListinDeletion($group_key['group_key']);
-                $formatedData = $empDataServiceController->convertRowTColumnForDeletion($data);
-                $ee_entry = $formatedData;
-
-            }else{
-                $ee_entry = $this->empEndorsementModel->where('group_key', $group_key['group_key'])->findAll();
-                $ee_entry[0]['field_name'] = remove_underscore_capitalize_first_letter($ee_entry[0]['field_name']);
-                $ee_entry[0]['old_value'] = formatDateOrReturn($ee_entry[0]['old_value']);
-                $ee_entry[0]['new_value'] = formatDateOrReturn($ee_entry[0]['new_value']);
+            } else {
+                // Return response if group key and actions are not found
+                return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
             }
-
-            return $this->respond(['dataStatus' => true,'code' => 200, 'data' => $ee_entry, 'data2' => $nor_data], 200);
-        }
-        else
-        {
-            return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'no data found'], 200); 
+        } else {
+            // Return response if $id is not provided
+            return $this->respond(['dataStatus' => false, 'code' => 404, 'message' => 'no data found'], 200);
         }
     }
-
+    
     
 }
\ No newline at end of file
diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php
index 465745a9..af0b8e07 100644
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -394,6 +394,11 @@ if (! function_exists('generate_filename')) {
 if (!function_exists('remove_underscore_capitalize_first_letter')) {
     function remove_underscore_capitalize_first_letter($word) {
         // Remove underscore and capitalize first letter of each word
+        $pattern = '/dob/i'; 
+        if (preg_match($pattern, $word)) {
+            $formattedEvent = 'DOB';
+            return $formattedEvent;
+        } 
         $formattedEvent = ucwords(str_replace('_', ' ', $word));
         return $formattedEvent;
     }
diff --git a/app/Models/EmpEndorsementModel.php b/app/Models/EmpEndorsementModel.php
index bd015b71..8be6c38c 100644
--- a/app/Models/EmpEndorsementModel.php
+++ b/app/Models/EmpEndorsementModel.php
@@ -109,6 +109,7 @@ class EmpEndorsementModel extends Model
                 employee_polices.rata_premimum as old_rata,
                 employee_polices.gst as old_gst,
                 employee_polices.policy_end_date as end_date,
+                client_policy.policy_start_date as start_date,
             
                 MAX(CASE WHEN a.field_name = 'date_of_exit' THEN a.new_value ELSE NULL END) AS date_of_leaving,
                 MAX(CASE WHEN a.field_name = 'reason_for_exit' THEN a.new_value ELSE NULL END) AS exist_reason,
@@ -122,6 +123,8 @@ class EmpEndorsementModel extends Model
                 employees ON a.emp_code = employees.emp_code 
             LEFT JOIN 
                 employee_polices ON employees.id = employee_polices.employee_id 
+            LEFT JOIN 
+                client_policy ON client_policy.id = employee_polices.client_policy_id 
             LEFT JOIN (
                 SELECT 
                     aa.emp_code, 
diff --git a/app/Views/endorsement_list.php b/app/Views/endorsement_list.php
index 8a9e6c6c..b3ed0c73 100644
--- a/app/Views/endorsement_list.php
+++ b/app/Views/endorsement_list.php
@@ -157,12 +157,8 @@ table.dataTable tbody td {