diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f7e66844..6c454276 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -207,6 +207,7 @@ $routes->group("/util", ["filter" => "authMVC"], function($routes){ $routes->get("policy-premium", "ClientController::getpolicyGridData/$1"); $routes->get("update-policy-status", "ClientController::updateClientPolicyStatus/$1"); $routes->get("download-excel/(:any)", "EmployeeController::downloadSampleExcelFile/$1"); + $routes->get("get-emp-endorsement/(:any)", "EmployeeController::getEmpEndoresmentEntry/$1"); $routes->post("import-export", "EmployeeController::importExport"); }); diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index aca39351..a45837f3 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -162,9 +162,17 @@ class EmpDataServiceController extends BaseController public function generateExcelForCorrection($export_data) { + $ids = []; $objects = $this->employeePolicyModel->getCorrectionEmployeesDataForExportExcel($export_data); - // dd($objects); + + foreach ($objects as $obj) { + $ids[] = $obj->id; + } + + // echo '
';
+ // print_r($objects); die;
+
$count = count($objects);
$export_data['count'] = $count;
$this->myLogger->logme('error','Correction export data count : {data}', ['data'=> $count ]);
@@ -201,6 +209,14 @@ class EmpDataServiceController extends BaseController
$return = $this->batchFilesAndBatchListEntry($export_data, $objects);
if($return){
+ foreach ($ids as $key => $id) {
+ $group_key = $this->empEndorsementModel->select('group_key')->where('id', $id)->first();
+ if ($group_key) {
+ $this->empEndorsementModel->where('group_key', $group_key)->set('status', 'inprogress')->update();
+ }
+ }
+
+
// Set the appropriate headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $export_data['file_name'] . '"');
@@ -228,9 +244,15 @@ class EmpDataServiceController extends BaseController
public function generateExcelForSIEnhancement($export_data)
{
-
+ $ids = [];
$objects = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($export_data);
+ foreach ($objects as $obj) {
+ $ids[] = $obj->endorsement_primarykey;
+ }
+
+ // echo '';
+ // print_r($ids); die;
// dd($objects);
$count = count($objects);
@@ -279,6 +301,13 @@ class EmpDataServiceController extends BaseController
if($value){
$return = $this->batchFilesAndBatchListEntry($export_data, $objects);
if($return){
+
+ foreach ($ids as $key => $id) {
+ $group_key = $this->empEndorsementModel->select('group_key')->where('id', $id)->first();
+ if ($group_key) {
+ $this->empEndorsementModel->where('group_key', $group_key)->set('status', 'inprogress')->update();
+ }
+ }
// Set the appropriate headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
@@ -306,8 +335,18 @@ class EmpDataServiceController extends BaseController
public function generateExcelForDeletion($export_data)
{
- // dd($export_data['client_id']);
+ $ids = [];
+
$objects = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($export_data);
+
+ foreach ($objects as $obj) {
+ $ids[] = $obj->endorsement_primarykey;
+ }
+
+ // echo '';
+ // print_r($ids);
+ // print_r($objects); die;
+
$count = count($objects);
$export_data['count'] = $count;
@@ -350,6 +389,13 @@ class EmpDataServiceController extends BaseController
if($value){
$return = $this->batchFilesAndBatchListEntry($export_data, $objects);
if( $return){
+
+ foreach ($ids as $key => $id) {
+ $group_key = $this->empEndorsementModel->select('group_key')->where('id', $id)->first();
+ if ($group_key) {
+ $this->empEndorsementModel->where('group_key', $group_key)->set('status', 'inprogress')->update();
+ }
+ }
// Set the appropriate headers for Excel file download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
@@ -560,7 +606,7 @@ class EmpDataServiceController extends BaseController
// $this->employeePolicyModel->updateCorrectionData($emp_code, $uhid, $endorsement_id);
- $queryData = $this->empEndorsementModel->select('emp_endorsement.*')
+ $queryData = $this->empEndorsementModel->select('emp_endorsement.*, employees.id as emp_id')
->join('employees', 'employees.id = emp_endorsement.pk')
->join('employee_polices', 'employee_polices.employee_id = employees.id')
->where('employees.emp_code', $emp_code)
@@ -578,7 +624,11 @@ class EmpDataServiceController extends BaseController
$emp_id = $endorsementData['emp_id'];
$field_name = $endorsementData['field_name'];
$new_value = $endorsementData['new_value'];
- $this->empEndorsementModel->where('id', $emp_endoresment_id)->set('endorsement_id', $endorsement_id)->update();
+ $endoresment_udate_data = [
+ 'endorsement_id' => $endorsement_id,
+ 'status' => 'complete',
+ ];
+ $this->empEndorsementModel->where('id', $emp_endoresment_id)->set($endoresment_udate_data)->update();
$this->employeeModel->where('id', $emp_id)->set($field_name, $new_value)->update();
}
@@ -617,7 +667,7 @@ class EmpDataServiceController extends BaseController
$import_data['created_by'] = get_session_userid();
$import_data['file_name'] = $filename;
$insert = $this->batchFileModel->insert($import_data);
- $batch_file_batch_code = $this->batchFileModel->where('id', 2)->first();
+ $batch_file_batch_code = $this->batchFileModel->where('id', $insert)->first();
$batch_code_for_batch_list['batch_code'] = $batch_file_batch_code['batch_code'];
$batch_code_for_batch_list['created_by'] = get_session_userid();
@@ -725,8 +775,6 @@ class EmpDataServiceController extends BaseController
$this->cashDepositCalculationForSIEnhancement($depositeData);
return 1;
-
-
}
@@ -801,18 +849,18 @@ class EmpDataServiceController extends BaseController
array_push($employeeIds, $id);
}
- $updateData = [
- 'emp_code' =>$emp_code,
- 'client_id' =>$client_id,
- 'client_policy_id' =>$client_policy_id,
- 'emp_name' =>$emp_name,
- 'endorsement_id' =>$endorsement_id,
- ];
+ // $updateData = [
+ // 'emp_code' =>$emp_code,
+ // 'client_id' =>$client_id,
+ // 'client_policy_id' =>$client_policy_id,
+ // 'emp_name' =>$emp_name,
+ // 'endorsement_id' =>$endorsement_id,
+ // ];
- $this->employeePolicyModel->updateEndoresmentIdForDeletion($updateData);
+ // $this->employeePolicyModel->updateEndoresmentIdForDeletion($updateData);
$deletionDataForEmployee = $this->empEndorsementModel
- ->select('emp_endorsement.new_value, employees.id')
+ ->select('emp_endorsement.new_value, emp_endorsement.id as ee_id, employees.id')
->join('employees', 'emp_endorsement.emp_code = employees.emp_code')
->join('employee_polices', 'employee_polices.employee_id = employees.id')
->where('emp_endorsement.emp_code', $emp_code)
@@ -824,6 +872,13 @@ class EmpDataServiceController extends BaseController
$deletionDataForEmployee['updated_by'] = get_session_userid();
$this->employeeModel->save($deletionDataForEmployee);
+
+ $e_Data = [
+ 'endorsement_id'=> $endorsement_id,
+ 'status'=> 'complete',
+ ];
+ $group_key = $this->empEndorsementModel->select('group_key')->where('id', $deletionDataForEmployee['ee_id'])->first();
+ $this->empEndorsementModel->where('group_key', $group_key)->set($e_Data)->update();
$fetchData = [
'emp_code'=> $emp_code,
@@ -834,11 +889,6 @@ class EmpDataServiceController extends BaseController
$deletionDataForEmployeePolicy = $this->employeePolicyModel->fetchEmpEndorsementData($fetchData);
$deletionDataForEmployeePolicy['updated_by'] = get_session_userid();
$this->employeePolicyModel->save($deletionDataForEmployeePolicy);
-
- // echo '';
- // print_r($deletionDataForEmployeePolicy); die;
-
- $this->employeePolicyModel->save($deletionDataForEmployeePolicy);
// $query = $this->employeePolicyModel->getLastQuery();
// echo $query . "
";
@@ -918,6 +968,7 @@ class EmpDataServiceController extends BaseController
}
+
public function cashDepositCalculationForSIEnhancement($arrayData)
{
if (!empty($arrayData)) {
@@ -954,13 +1005,14 @@ class EmpDataServiceController extends BaseController
}
}
+
public function cashDepositCalculationForDeletion($arrayData)
{
// print_r($arrayData);
if (!empty($arrayData)) {
- echo '';
- print_r($arrayData); die;
+ // echo '';
+ // print_r($arrayData); die;
$amount = $this->employeePolicyModel->query("
SELECT
SUM(ROUND((employee_polices.premium * DATEDIFF(employee_polices.policy_end_date, employee_polices.date_of_exit)) / 365, 2) +
@@ -968,7 +1020,7 @@ class EmpDataServiceController extends BaseController
FROM employee_polices
WHERE id IN (" . implode(',', $arrayData['employeeIds']) . ")
")->getRow();
- print_r($amount);die;
+
$insurer_id = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
$description = 'The following amount of ' . $amount->total_sum . ' 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']) . '.';
@@ -996,11 +1048,175 @@ 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();
}
+
+
+
+
+ /**
+ * 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();
+
+ foreach ($data as $obj) {
+
+ $pro_rata_premium = round(($obj->difference_premium * $obj->no_of_days / 365), 2);
+ $gst = round(($pro_rata_premium * 18 / 100), 2);
+ $total = round(($pro_rata_premium + $gst), 2);
+
+ $old_total = round(($obj->old_rata + $obj->old_gst), 2);
+
+
+ $result[] = array(
+ "field_name" => 'Basic Cover SI',
+ "old_value" => $obj->old_basic_cover_si,
+ "new_value" => $obj->new_basic_cover_si
+ );
+
+ $result[] = array(
+ "field_name" => 'Premium',
+ "old_value" => $obj->old_si_premium,
+ "new_value" => $obj->new_si_premium
+ );
+
+ $result[] = array(
+ "field_name" => 'SI Enhancement Date',
+ "old_value" => change_date_format($obj->old_date, 'Y-m-d', 'd-M-Y'),
+ "new_value" => change_date_format($obj->date_of_coverage, 'Y-m-d', 'd-M-Y')
+ );
+
+ $result[] = array(
+ "field_name" => 'Difference Premium',
+ "old_value" => ' --- ',
+ "new_value" => $obj->difference_premium
+ );
+
+ $result[] = array(
+ "field_name" => 'No of Days',
+ "old_value" => $obj->old_days,
+ "new_value" => $obj->no_of_days
+ );
+
+ $result[] = array(
+ "field_name" => 'Pro Rata Premium',
+ "old_value" => $obj->old_rata,
+ "new_value" => $pro_rata_premium
+ );
+
+ $result[] = array(
+ "field_name" => 'GST(18%)',
+ "old_value" => $obj->old_gst,
+ "new_value" => $gst
+ );
+
+ $result[] = array(
+ "field_name" => 'Total',
+ "old_value" => $old_total,
+ "new_value" => $total
+ );
+
+ }
+
+ return $result;
+ }
+
+
+
+ /**
+ * 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();
+
+ foreach ($data as $obj) {
+
+ $old_total = round(($obj->old_rata + $obj->old_gst), 2);
+
+ $result[] = array(
+ "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 on',
+ "data" => change_date_format($obj->date_of_leaving, 'Y-m-d', 'd-M-Y'),
+ );
+
+ $result[] = array(
+ "field_name" => 'Reason',
+ "data" => $obj->exist_reason,
+ );
+
+
+
+ if($obj->exist_reason != 'death'){
+
+ $result[] = array(
+ "field_name" => 'Period of non coverage',
+ "data" => $obj->no_of_days
+ );
+
+ $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" => 'Claim',
+ "data" => '---',
+ );
+
+ }
+
+ }
+
+ return $result;
+ }
+
+
// -----------------------------------------------------------------------------------
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 1c1e0214..fe4bf38b 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -61,10 +61,12 @@ class EmployeeController extends AdminController
{
// $model = new UserModel();
$data = [];
+ $data['status'] = ['draft' => 'Draft', 'active' => 'Active', 'inactive' => 'In-Active', 'expired' => 'Expired'];
if(count($this->request->getGet()))
{
$filterData = $this->request->getGet();
- $data['employees'] = $this->employeePolicyModel->getEmployeePolicy(client_id: $filterData['client_id'],policy_id: $filterData['policy_id']);
+ $data['employees'] = $this->employeePolicyModel->getEmployeePolicy(client_id: $filterData['client_id'],policy_id: $filterData['policy_id'], status: $filterData['status']);
+ $data['getData'] = $filterData;
}
$this->myLogger->logme('error','list called');
@@ -452,16 +454,91 @@ class EmployeeController extends AdminController
// -------------------------------------------------------------------------------------------
- public function endorsementList(){
+
+ /**
+ * 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'];
if(count($this->request->getGet()))
{
$filterData = $this->request->getGet();
- $data['employees'] = $this->employeePolicyModel->getEmployeeEndorsementList(client_id: $filterData['client_id'],policy_id: $filterData['policy_id']);
+ $data['employees'] = $this->employeePolicyModel->getEmployeeEndorsementList(client_id: $filterData['client_id'],policy_id: $filterData['policy_id'], status: $filterData['status']);
$data['getData'] = $filterData;
+ // echo "";
+ // print_r($data); die;
}
-
+
$this->myLogger->logme('error','list called');
$this->loadLayout('endorsement_list',$data);
}
+
+
+ /**
+ * 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);
+
+ } else {
+ // Return response if group key and actions are not found
+ 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 b6bf615a..af0b8e07 100644
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -394,7 +394,27 @@ 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;
}
+}
+
+if (!function_exists('formatDateOrReturn')) {
+ function formatDateOrReturn($value)
+ {
+ // Check if the value is a valid date
+ $timestamp = strtotime($value);
+ if ($timestamp !== false) {
+ // Format the date
+ return date('d-M-Y', $timestamp);
+ } else {
+ // Return the original value
+ return $value;
+ }
+ }
}
\ No newline at end of file
diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php
index 1675bac9..2ac23d6f 100644
--- a/app/Helpers/utility_helper.php
+++ b/app/Helpers/utility_helper.php
@@ -132,3 +132,5 @@ if(!function_exists('check_string_date'))
+
+
diff --git a/app/Models/EmpEndorsementModel.php b/app/Models/EmpEndorsementModel.php
index b6956259..8be6c38c 100644
--- a/app/Models/EmpEndorsementModel.php
+++ b/app/Models/EmpEndorsementModel.php
@@ -11,6 +11,7 @@ class EmpEndorsementModel extends Model
protected $allowedFields = [
'id',
'pk',
+ 'group_key',
'endorsement_id',
'emp_code',
'table_name',
@@ -27,4 +28,173 @@ class EmpEndorsementModel extends Model
"remarks"
];
+ // Callbacks
+ protected $allowCallbacks = true;
+ protected $beforeInsert = [];
+ protected $afterInsert = [];
+ protected $beforeUpdate = [];
+ protected $afterUpdate = [];
+ protected $beforeFind = [];
+ protected $afterFind = [];
+ protected $beforeDelete = [];
+ protected $afterDelete = [];
+
+
+ // protected function afterFind(array $data)
+ // {
+ // foreach ($data as &$row) {
+ // // Format date_of_coverage field to Indian date format
+ // if (isset($row['field_name'])) {
+ // $row['field_name'] = remove_underscore_capitalize_first_letter($row['field_name']);
+ // }
+ // }
+
+ // return $data;
+ // }
+
+
+ public function getDataForEnodrsementListinSIEnhancement($group_key){
+ $query = "
+ SELECT
+ employee_polices.days as old_days,
+ employee_polices.rata_premimum as old_rata,
+ employee_polices.gst as old_gst,
+ client_policy.policy_start_date as old_date,
+
+ MAX(CASE WHEN emp_endorsement.field_name = 'basic_cover_si' THEN emp_endorsement.new_value ELSE NULL END) AS new_basic_cover_si,
+ MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value ELSE NULL END) AS new_si_premium,
+ MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value ELSE NULL END) AS date_of_coverage,
+ MAX(CASE WHEN emp_endorsement.field_name = 'basic_cover_si' THEN emp_endorsement.old_value ELSE NULL END) AS old_basic_cover_si,
+ MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value ELSE NULL END) AS old_si_premium,
+
+ (MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value ELSE NULL END) - MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value ELSE NULL END)) AS difference_premium,
+
+ DATEDIFF(employee_polices.policy_end_date, MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value END)) + 1 AS no_of_days,
+
+ ROUND(
+ (
+ (
+ MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value END) -
+ MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value END)
+ ) *
+ DATEDIFF(
+ employee_polices.policy_end_date,
+ MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value END)
+ ) / 365
+ ),
+ 2
+ ) AS pro_rata_premimum,
+
+ ROUND(((MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value ELSE NULL END) - MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value ELSE NULL END)) * DATEDIFF(employee_polices.policy_end_date, MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value ELSE NULL END)) / 365) * 0.18, 2) AS gst,
+ ROUND(((MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value ELSE NULL END) - MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value ELSE NULL END)) * DATEDIFF(employee_polices.policy_end_date, MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value ELSE NULL END)) / 365), 2) +
+ ROUND(((MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.new_value ELSE NULL END) - MAX(CASE WHEN emp_endorsement.field_name = 'premium' THEN emp_endorsement.old_value ELSE NULL END)) * DATEDIFF(employee_polices.policy_end_date, MAX(CASE WHEN emp_endorsement.field_name = 'si_enhancement_date' THEN emp_endorsement.new_value ELSE NULL END)) / 365) * 0.18, 2) AS total
+
+ FROM emp_endorsement
+ JOIN employee_polices ON employee_polices.id = emp_endorsement.pk
+ JOIN client_policy ON client_policy.id = employee_polices.client_policy_id
+ WHERE group_key = '{$group_key}'
+ ";
+
+ $results = $this->db->query($query)->getResult();
+ return $results;
+
+ }
+
+
+ public function getDataForEnodrsementListinDeletion($group_key){
+ $query = "
+ SELECT
+
+ employee_polices.days as old_days,
+ 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,
+ DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit) AS no_of_days,
+ ROUND((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365, 2) AS pro_rata_premium,
+ ROUND(((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) * 0.18, 2) AS gst,
+ ROUND(((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) + (((employee_polices.rata_premimum * DATEDIFF(employee_polices.policy_end_date, deletiondata.dateofexit)) / 365) * 0.18), 2) AS total
+ FROM
+ emp_endorsement a
+ LEFT JOIN
+ 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,
+ aa.new_value AS 'empstatus',
+ bb.new_value AS 'changeevent',
+ cc.new_value AS 'dateofexit',
+ dd.new_value AS 'reasonforexit',
+ ee.new_value AS 'status'
+ FROM
+ (
+ SELECT
+ a1.emp_code,
+ a1.field_name,
+ a1.new_value
+ FROM
+ emp_endorsement AS a1
+ WHERE
+ a1.field_name = 'emp_status'
+ ) aa
+ LEFT JOIN
+ (
+ SELECT
+ b1.emp_code,
+ b1.field_name,
+ b1.new_value
+ FROM
+ emp_endorsement AS b1
+ WHERE
+ b1.field_name = 'change_event'
+ ) bb ON aa.emp_code = bb.emp_code
+ LEFT JOIN
+ (
+ SELECT
+ c1.emp_code,
+ c1.field_name,
+ c1.new_value
+ FROM
+ emp_endorsement AS c1
+ WHERE
+ c1.field_name = 'date_of_exit'
+ ) cc ON aa.emp_code = cc.emp_code
+ LEFT JOIN
+ (
+ SELECT
+ d1.emp_code,
+ d1.field_name,
+ d1.new_value
+ FROM
+ emp_endorsement AS d1
+ WHERE
+ d1.field_name = 'reason_for_exit'
+ ) dd ON aa.emp_code = dd.emp_code
+ LEFT JOIN
+ (
+ SELECT
+ e1.emp_code,
+ e1.field_name,
+ e1.new_value
+ FROM
+ emp_endorsement AS e1
+ WHERE
+ e1.field_name = 'status'
+ ) ee ON aa.emp_code = ee.emp_code
+ ) AS deletiondata ON a.emp_code = deletiondata.emp_code
+ WHERE group_key = '{$group_key}';
+ ";
+
+ $results = $this->db->query($query)->getResult();
+ return $results;
+
+ }
+
}
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index ca0418b5..8340dbf5 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -67,7 +67,7 @@ class EmployeePolicyModel extends Model
}
// -----------------------------------------------------------------------------------------------------
- public function getEmployeePolicy($client_id,$policy_id)
+ public function getEmployeePolicy($client_id,$policy_id,$status)
{
$result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active'])
->join('employees emp', 'employee_polices.employee_id = emp.id')
@@ -79,8 +79,13 @@ class EmployeePolicyModel extends Model
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->where('emp.client_id',$client_id)
- ->where('employee_polices.client_policy_id',$policy_id)
- ->findAll();
+ ->where('employee_polices.client_policy_id',$policy_id);
+
+ if($status != 0 && !empty($status)){
+ $result->where('employee_polices.status', $status);
+ }
+
+ $result = $result->findAll();
return ($result);
}
@@ -230,6 +235,7 @@ class EmployeePolicyModel extends Model
$query = $this->db->query("
SELECT
+ a.id as endorsement_primarykey,
employee_polices.id AS primaryKey,
employees.name AS emp_name,
employees.emp_code AS emp_code,
@@ -336,6 +342,7 @@ class EmployeePolicyModel extends Model
$query = $this->db->query("
SELECT
+ a.id as endorsement_primarykey,
employee_polices.id as primaryKey,
employees.name AS emp_name,
employees.emp_code AS emp_code,
@@ -451,7 +458,7 @@ class EmployeePolicyModel extends Model
UPDATE emp_endorsement
JOIN employees ON employees.id = emp_endorsement.pk
JOIN employee_polices ON employees.id = employee_polices.employee_id
- SET emp_endorsement.endorsement_id = '$endorsement_id'
+ SET emp_endorsement.endorsement_id = '$endorsement_id', emp_endorsement.status = 'complete'
WHERE employees.emp_code = '$emp_code'
AND employee_polices.uhid = '$uhid'
";
@@ -463,15 +470,15 @@ class EmployeePolicyModel extends Model
$client_id = $update_data['client_id'];
$client_policy_id = $update_data['client_policy_id'];
- $emp_name = $update_data['name'];
+ $emp_name = $update_data['emp_name'];
$emp_code = $update_data['emp_code'];
- $endorsement_id = $update_data['uhid'];
+ $endorsement_id = $update_data['endorsement_id'];
$sql = "
UPDATE emp_endorsement
JOIN employee_polices ON employee_polices.id = emp_endorsement.pk
JOIN employees ON employee_polices.employee_id = employees.id
- SET emp_endorsement.endorsement_id = '$endorsement_id'
+ SET emp_endorsement.endorsement_id = '$endorsement_id', emp_endorsement.status = 'complete'
WHERE emp_endorsement.emp_code = '$emp_code'
AND employees.client_id = '$client_id'
AND employee_polices.client_policy_id = '$client_policy_id'
@@ -483,19 +490,20 @@ class EmployeePolicyModel extends Model
}
- public function updateEndoresmentIdForDeletion($update_data){
+ public function updateEndoresmentIdForDeletion($update_data)
+ {
$client_id = $update_data['client_id'];
$client_policy_id = $update_data['client_policy_id'];
- $emp_name = $update_data['name'];
+ $emp_name = $update_data['emp_name'];
$emp_code = $update_data['emp_code'];
- $endorsement_id = $update_data['uhid'];
+ $endorsement_id = $update_data['endorsement_id'];
$sql = "
UPDATE emp_endorsement
JOIN employee_polices ON employee_polices.id = emp_endorsement.pk
JOIN employees ON employee_polices.employee_id = employees.id
- SET emp_endorsement.endorsement_id = '$endorsement_id'
+ SET emp_endorsement.endorsement_id = '$endorsement_id', emp_endorsement.status = 'complete'
WHERE employees.emp_code = '$emp_code'
AND employees.client_id = '$client_id'
AND employee_polices.client_policy_id = '$client_policy_id'
@@ -508,7 +516,7 @@ class EmployeePolicyModel extends Model
public function fetchEmpEndorsementData($fetch_data)
{
$client_policy_id = $fetch_data['client_policy_id'];
- $emp_name = $fetch_data['name'];
+ $emp_name = $fetch_data['emp_name'];
$emp_code = $fetch_data['emp_code'];
// Your raw SQL query
@@ -561,22 +569,78 @@ class EmployeePolicyModel extends Model
}
- public function getEmployeeEndorsementList($client_id,$policy_id)
- {
- $result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active'])
- ->join('employees emp', 'employee_polices.employee_id = emp.id')
- ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
- ->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master
- ->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master
- ->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch
- ->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master
- ->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach
- ->join('clients cm', 'cp.client_id = cm.id') //cm - client master
- ->where('emp.client_id',$client_id)
- ->where('employee_polices.client_policy_id',$policy_id)
- ->findAll();
- return ($result);
- }
- //------------------------------------------------------------------
+ public function getEmployeeEndorsementList($client_id, $policy_id, $status)
+ {
+ $query1 = $this->db->table('emp_endorsement e');
+ $query1->select('
+ e.id,
+ e.pk,
+ e.emp_code,
+ e.name,
+ e.actions,
+ e.status,
+ e.remarks,
+ e.endorsement_id,
+ ep.client_policy_id,
+ policies.name as policy_name,
+ insurers.short_name as insurer_short_name
+ ');
+ $query1->distinct();
+ $query1->join('employee_polices ep', 'ep.id = e.pk', 'left');
+ $query1->join('employees', 'employees.id = ep.employee_id', 'left');
+ $query1->join('client_policy', 'client_policy.id = ep.client_policy_id', 'left');
+ $query1->join('policies', 'policies.id = client_policy.policy_id', 'left');
+ $query1->join('insurers', 'insurers.id = policies.insurer_id', 'left');
+ $query1->whereIn('e.actions', ['c']);
+ $query1->where('ep.client_policy_id', $client_id);
+ $query1->where('employees.client_id', $policy_id);
+ if($status != 0 && !empty($status)){
-}
+ $query1->where('e.status', $status);
+ }
+ $query1->orderBy('e.id', 'desc');
+
+ $results1 = $query1->get()->getResultArray();
+
+ $query2 = $this->db->table('emp_endorsement e');
+
+ $query2->select('
+ e.id,
+ e.pk,
+ e.emp_code,
+ e.name,
+ e.actions,
+ e.status,
+ e.endorsement_id,
+ e.remarks,
+ ep.client_policy_id,
+ policies.name as policy_name,
+ insurers.short_name as insurer_short_name
+ ');
+ $query2->join('employee_polices ep', 'ep.id = e.pk', 'left');
+ $query2->join('employees', 'employees.id = ep.employee_id', 'left');
+ $query2->join('client_policy', 'client_policy.id = ep.client_policy_id', 'left');
+ $query2->join('policies', 'policies.id = client_policy.policy_id', 'left');
+ $query2->join('insurers', 'insurers.id = policies.insurer_id', 'left');
+ $query2->whereIn('e.actions', ['si', 'd']);
+ $query2->where('ep.client_policy_id', $client_id);
+ $query2->where('employees.client_id', $policy_id);
+ if($status != 0 && !empty($status)){
+
+ $query2->where('e.status', $status);
+ }
+ $query2->groupBy('e.emp_code, e.name, e.actions');
+ $query2->orderBy('e.id', 'desc');
+
+ $results2 = $query2->get()->getResultArray();
+
+ $results = array_merge($results1, $results2);
+
+ return $results;
+
+
+ }
+
+ //----------------------------------------------------------------------------------------------
+
+}
\ No newline at end of file
diff --git a/app/Views/UserList.php b/app/Views/UserList.php
index bb36986f..a4d5afdc 100644
--- a/app/Views/UserList.php
+++ b/app/Views/UserList.php
@@ -1,5 +1,4 @@
diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php
index 04571e0a..45b5cd9d 100644
--- a/app/Views/client_policy.php
+++ b/app/Views/client_policy.php
@@ -328,7 +328,7 @@
policyTable += `
${item.insurer_short} - ${item.insurer_branch_name}
- ${item.policy_name}
+ ${item.policy_name} (${item.policy_type_name})
${item.tpa_short} - ${item.tpa_branch_code}
${rearrangeDateFormat(item.policy_start_date)} - ${rearrangeDateFormat(item.policy_end_date)}
${checkDateStatus(item.policy_end_date, 1)}
diff --git a/app/Views/employee_list.php b/app/Views/employee_list.php
index db203bcd..02b28c13 100644
--- a/app/Views/employee_list.php
+++ b/app/Views/employee_list.php
@@ -22,23 +22,34 @@ table.dataTable tbody td {
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -98,7 +109,19 @@ table.dataTable tbody td {
- active
+
+ ' . $employee['status'] . '';
+ } elseif ($employee['status'] == 'active') {
+ echo '' . $employee['status'] . '';
+ } elseif ($employee['status'] == 'inactive') {
+ echo '' . $employee['status'] . '';
+ }elseif ($employee['status'] == 'expired') {
+ echo '' . $employee['status'] . '';
+ }
+ ?>
+
@@ -134,6 +157,8 @@ table.dataTable tbody td {
\ No newline at end of file
diff --git a/app/Views/endorsement_list.php b/app/Views/endorsement_list.php
index 75e5509c..b3ed0c73 100644
--- a/app/Views/endorsement_list.php
+++ b/app/Views/endorsement_list.php
@@ -1,12 +1,12 @@
@@ -22,23 +22,34 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -74,11 +85,11 @@
SNO
Name/code
Policy name
- Insurar name
- TPA ID
- UHID ID
- Policy status
- Premium
+ Endorsement ID
+ Insurer name
+ Remarks
+ Endorsement Type
+ Status
Action
@@ -91,32 +102,37 @@
-
( )
-
-
-
-
- active
-
+
+
+
+
+
-
+
+
+
+ ' . $employee['status'] . '';
+ } elseif ($employee['status'] == 'inprogress') {
+ echo '' . $employee['status'] . '';
+ } elseif ($employee['status'] == 'complete') {
+ echo '' . $employee['status'] . '';
+ }
+ ?>
+
+
@@ -127,27 +143,48 @@
-
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Views/file_list.php b/app/Views/file_list.php
index d4a4cd28..508cf00e 100644
--- a/app/Views/file_list.php
+++ b/app/Views/file_list.php
@@ -14,6 +14,7 @@
File name
Client
policy
+ Event
User/Time
Status
@@ -34,6 +35,7 @@
+
'.$file['first_name'].''?>
nHANCE
-
-
+
+
/assets/images/favicon.ico">