diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 2549d0ae..9f367e97 100755
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -5673,7 +5673,7 @@ class ClientController extends AdminController
// $res = $empServiceController->employeesOnboardPreprocess(['file_id' => 726]);
// $res = $empServiceController->employeesOnboardProcess(['file_id' => 835]);
// $res = $empServiceController->employeesEnrollmentInsert(['file_id' => 836]);
- // $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '978']);
+ // $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '1131']);
// $res = $empServiceController->employeeDisembark(['file_id' => '1681']);
// $res = $empServiceController->employeesCorrectionProcess(['file_id' => '2033']);
// $res = $empServiceController->compareMemberDataAndInceptionData(['file_id' => '1126']);
@@ -5737,8 +5737,8 @@ class ClientController extends AdminController
// $res = $EmpDataServiceController->generateExcelForCorrection($batch_data);
// $res = $EmpDataServiceController->importInceptionFileValidation(['file_id' => 1932]); die;
// $res = $EmpDataServiceController->importDeletionValidation(['file_id' => 304]); //for live
- // $res = $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 1199]); //for live
- // $res = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 387]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 387]); //for live
// $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live
// $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 310]); dd($res);//for live
// $res = $EmpDataServiceController->getInceptionBasePremium(["13332","13333","13334","13335","13336"]); dd($res);//for live
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 4b51b5a4..b57ad0f0 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -3202,6 +3202,7 @@ class EmpDataServiceController extends BaseController
$empData['rata_premimum'] = $value[16];
$empData['gst'] = $value[17];
$empData['created_by'] = $user_id;
+ $empData['old_basic_cover_si'] = $value[9];
$emp_details[] = $empData;
}
@@ -3222,11 +3223,41 @@ class EmpDataServiceController extends BaseController
// $insertedIds[] = $startId + $i;
// }
+ // $insertedIds = [];
+ // foreach ($emp_details as $emp) {
+
+ // $old_si_value = $emp['old_basic_cover_si'];
+ // $new_si_value = $emp['basic_cover_si'];
+
+ // if($old_si_value < $new_si_value){
+ // $insertedIds['si_adjustment'] = 2;
+ // }else{
+ // $insertedIds['si_adjustment'] = 1;
+ // }
+
+ // unset($emp['old_basic_cover_si']);
+ // $insertedIds['pk'] = $this->employeePolicyModel->insert($emp);
+ // }
+
$insertedIds = [];
foreach ($emp_details as $emp) {
- $insertedIds[] = $this->employeePolicyModel->insert($emp);
- }
+ $old_si_value = $emp['old_basic_cover_si'];
+ $new_si_value = $emp['basic_cover_si'];
+
+ // Determine SI adjustment type
+ $si_adjustment = ($old_si_value < $new_si_value) ? 1 : 2;
+
+ unset($emp['old_basic_cover_si']);
+
+ // Insert and store PK with adjustment info
+ $pk = $this->employeePolicyModel->insert($emp);
+
+ $insertedIds[] = [
+ 'pk' => $pk,
+ 'si_adjustment' => $si_adjustment
+ ];
+ }
// dd($insertedIds);
$this->employeePolicyModel->bulkUpdateForEndorsement($endorsement_details);
@@ -3241,7 +3272,6 @@ class EmpDataServiceController extends BaseController
'amount' => $rounded_totals,
]);
-
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
@@ -4278,60 +4308,164 @@ class EmpDataServiceController extends BaseController
}
- public function cashDepositCalculationForSIEnhancement($arrayData)
- {
- // return $arrayData;
+ // public function cashDepositCalculationForSIEnhancement($arrayData)
+ // {
+ // // return $arrayData;
+ // if (!empty($arrayData)) {
+
+ // $client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first();
+ // $units = 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 ' . 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,
+ // 'cd_ac_pk' => $insurer_id['cd_ac_pk']
+ // ];
+
+ // $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
+ // }
+ // }
+
+ // $msg = "SI Enhancement Cash Deposite Updated Successfully ";
+ // return [$msg];
+
+ // // print_r($response);
+ // // $query = $this->employeePolicyModel->getLastQuery();
+ // // echo $query . "
";
+
+ // } else {
+ // return 0;
+ // }
+ // }
+
+ public function cashDepositCalculationForSIEnhancement($arrayData)
+ {
if (!empty($arrayData)) {
$client_branch_data = $this->clientBranchModel->where('id', $arrayData['client_branch_id'])->first();
$units = json_decode($client_branch_data['units']);
- foreach($units as $unit)
- {
+ 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();
+ $si_enhance_amt = 0;
+ $si_decrease_amt = 0;
- if($amount){
+ foreach ($arrayData['employeeIds'] as $value) {
- $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']) . '.';
+ // If $value is an array, get its elements; otherwise, assign defaults
+ $pk = is_array($value) ? ($value['pk'] ?? null) : $value;
+ $si_adjustment = is_array($value) ? ($value['si_adjustment'] ?? null) : $value;
+
+ $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 = '{$pk}'
+ ";
+
+ $amount = $this->employeePolicyModel->query($query)->getRow();
+
+ if ($amount && $amount->total_sum > 0) {
+ if ($si_adjustment == 2) {
+ $si_decrease_amt += $amount->total_sum;
+ } else {
+ $si_enhance_amt += $amount->total_sum;
+ }
+ }
+ }
+
+ // Save Enhancement amount
+ if ($si_enhance_amt > 0) {
+ $policy_data = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
+
+ $description = 'An amount of ' . round($si_enhance_amt, 2) .
+ ' has been debited for ' . $arrayData['count'] . ' employees under ' .
+ remove_underscore_capitalize_first_letter($arrayData['event_name']) .
+ ' in ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
$data = [
-
- 'amount' => $amount->total_sum,
+ 'amount' => round($si_enhance_amt, 2),
'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'],
+ 'insurer_id' => $policy_data['insurer_id'],
'unit' => $unit,
'description' => $description,
'transaction_type' => 'Debit',
'updated_by' => $arrayData['user_id'],
'event_name' => $arrayData['event_name'],
'is_active' => 1,
- 'cd_ac_pk' => $insurer_id['cd_ac_pk']
+ 'cd_ac_pk' => $policy_data['cd_ac_pk']
];
- $response = DepositHelper::saveDeposit($data, $arrayData['user_id']);
+ DepositHelper::saveDeposit($data, $arrayData['user_id']);
+ }
+
+ // Save Decrease amount
+ if ($si_decrease_amt > 0) {
+
+ $policy_data = $this->clientPolicyModel->where('id', $arrayData['client_policy_id'])->first();
+
+ $description = 'An amount of ' . round($si_decrease_amt, 2) .
+ ' has been credited for ' . $arrayData['count'] . ' employees due to a decrease in Sum Insured (SI) under ' .
+ remove_underscore_capitalize_first_letter($arrayData['event_name']) .
+ ' in ' . remove_underscore_capitalize_first_letter($arrayData['policy_name']) . '.';
+
+ $data = [
+ 'amount' => round($si_decrease_amt, 2),
+ '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' => $policy_data['insurer_id'],
+ 'unit' => $unit,
+ 'description' => $description,
+ 'transaction_type' => 'Credit',
+ 'updated_by' => $arrayData['user_id'],
+ 'event_name' => $arrayData['event_name'],
+ 'is_active' => 1,
+ 'cd_ac_pk' => $policy_data['cd_ac_pk']
+ ];
+
+ DepositHelper::saveDeposit($data, $arrayData['user_id']);
}
}
- $msg = "SI Enhancement Cash Deposite Updated Successfully ";
+ $msg = "SI Adjustment Cash Deposit Updated Successfully.";
return [$msg];
-
- // print_r($response);
- // $query = $this->employeePolicyModel->getLastQuery();
- // echo $query . "
";
-
} else {
return 0;
}
diff --git a/app/Controllers/EmployeeMultiEventServiceController.php b/app/Controllers/EmployeeMultiEventServiceController.php
index 19c3d65d..78216f37 100644
--- a/app/Controllers/EmployeeMultiEventServiceController.php
+++ b/app/Controllers/EmployeeMultiEventServiceController.php
@@ -2172,6 +2172,7 @@ class EmployeeMultiEventServiceController extends BaseController
->where('emp_status', 'active')
->where('is_active', 1)
->first();
+
$employee_policy = $this->employeePolicyModel
->where('employee_id', $employee['id'])
->where('client_policy_id', $file['policy_id'])
@@ -2186,8 +2187,11 @@ class EmployeeMultiEventServiceController extends BaseController
->where('emp_code', $employee['emp_code'])
->where('name', $employee['name'])
->where('field_name', 'basic_cover_si')
+ ->where('is_active', 1)
+ ->where('status !=', 'truncated')
->findAll();
// dd($existing_endorsements);
+
//make entry in endorsement table
if (!count($existing_endorsements)) {
//transform data to send
@@ -2235,6 +2239,8 @@ class EmployeeMultiEventServiceController extends BaseController
$this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'basic_cover_si', 'old_value' => $employee_policy['basic_cover_si'], 'new_value' => $row[3], 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
$this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'premium', 'old_value' => $employee_policy['premium'], 'new_value' => $calculated_data['policy_details']['premium'], 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
$this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'si_enhancement_date', 'old_value' => null, 'new_value' => change_date_format($row[4], 'd-M-Y', 'Y-m-d'), 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
+ }else {
+ $this->myLogger->logme("error", 'Endorsement already exists for this employee ' . json_encode(['file_id' => $file_id, 'emp_code' => $employee['emp_code'], 'emp_name' => $employee['name']]));
}
}
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index 4a8a3fd2..3f62301d 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -1680,75 +1680,75 @@ class EmployeeServiceController extends AdminController
//enhance of emp
public function employeesSIEnhanceProcess($params)
{
- helper('excel_util_helper');
+ helper('excel_util_helper');
//get file name
$file_id = $params['file_id'];
$file = $this->fileModel->find($file_id);
+ // dd($file);
- $file_name_with_path = WRITEPATH."/uploads/excel/".$file['file_name'];
+ $file_name_with_path = WRITEPATH . "/uploads/excel/" . $file['file_name'];
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
$sheet = $spreadsheet->getActiveSheet();
-
+
$highestRowAndColumn = $sheet->getHighestRowAndColumn();
$allowedHighestColumn = end($this->si_enhance_excel_columns);
$excel_data = $sheet->rangeToArray('A1:' . $allowedHighestColumn['col_cell_name'] . $highestRowAndColumn['row']);
// $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
-
+
unset($excel_data[0]);
// dd($excel_data);
//get policy slab rates
- $slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($file['policy_id'],$file['client_id']);
+ $slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($file['policy_id'], $file['client_id']);
//iterate each row
// dd($slab_details);
- foreach ($excel_data as $col_key => $row)
- {
- if(check_row_is_empty_or_null($row))
- {
- break;
+ foreach ($excel_data as $col_key => $row) {
+ if (check_row_is_empty_or_null($row)) {
+ break;
}
$row[3] = removeNumberFormatting($row[3]);
// echo '
START- ' . $row[2];
$employee = $this->employeeModel
- ->where('emp_code', $row[1])
- ->where('name',$row[2])
- ->where('client_id',$file['client_id'])
- ->where('client_branch_id',$file['client_branch_id'])
- ->where('emp_status', 'active')
- ->where('is_active', 1)
- ->first();
+ ->where('emp_code', $row[1])
+ ->where('name', $row[2])
+ ->where('client_id', $file['client_id'])
+ ->where('client_branch_id', $file['client_branch_id'])
+ ->where('emp_status', 'active')
+ ->where('is_active', 1)
+ ->first();
+
$employee_policy = $this->employeePolicyModel
- ->where('employee_id',$employee['id'])
- ->where('client_policy_id',$file['policy_id'])
+ ->where('employee_id', $employee['id'])
+ ->where('client_policy_id', $file['policy_id'])
->where('status', 'active')
->where('is_active', 1)
->first();
// dd($employee, $employee_policy);
- $existing_endorsements = $this->empEndorsementModel->where('actions','si')
- ->where('table_name','employee_polices')
- ->where('endorsement_id is null')
- ->where('emp_code',$employee['emp_code'])
- ->where('name',$employee['name'])
- ->where('field_name','basic_cover_si')
- ->findAll();
- // dd($existing_endorsements);
- //make entry in endorsement table
- if(!count($existing_endorsements))
- {
+ $existing_endorsements = $this->empEndorsementModel->where('actions', 'si')
+ ->where('table_name', 'employee_polices')
+ ->where('endorsement_id is null')
+ ->where('emp_code', $employee['emp_code'])
+ ->where('name', $employee['name'])
+ ->where('field_name', 'basic_cover_si')
+ ->where('is_active', 1)
+ ->where('status !=', 'truncated')
+ ->findAll();
+ // dd($existing_endorsements);
+
+ //make entry in endorsement table
+ if (!count($existing_endorsements)) {
//transform data to send
//get applicable slab rate for current member relation
$pre_rack_rate_name = '';
$applicable_rack_rate_name = '';
$applicable_rack_rate_master = [];
- foreach ($slab_details['slab_rates'] as $skey => $slab_value)
- {
- if($pre_rack_rate_name != $slab_value['rack_rate_name'])
- {
+ foreach ($slab_details['slab_rates'] as $skey => $slab_value) {
+ if ($pre_rack_rate_name != $slab_value['rack_rate_name']) {
$pre_rack_rate_name = $slab_value['rack_rate_name'];
$rack_rate_json = json_decode($slab_value['additional_relationship'], true);
$relationship_array_key = strtolower(trim($employee['relationship']));
@@ -1761,46 +1761,42 @@ class EmployeeServiceController extends AdminController
$relationship_array_key = 'parents-in-law';
}
- if(array_key_exists($relationship_array_key, $rack_rate_json) && $rack_rate_json[$relationship_array_key] != 0 && $rack_rate_json[$relationship_array_key] != 'NA')
- {
+ if (array_key_exists($relationship_array_key, $rack_rate_json) && $rack_rate_json[$relationship_array_key] != 0 && $rack_rate_json[$relationship_array_key] != 'NA') {
$applicable_rack_rate_name = $slab_value['rack_rate_name'];
$applicable_rack_rate_master = $slab_value['grid_master'];
break;
}
}
}
-
+
//get max age,max count of the familiy
$max_age_and_max_count_of_current_member = $this->employeeModel->getFamiliyCountAndMaxage($employee['emp_code']);
//transform SI excel row data as inception excel OR premium calculateable fomart
- $data = transform_si_excel_row_to_calculatable_format(employee: $employee,employee_policy: $employee_policy,maxage_and_maxcount: $max_age_and_max_count_of_current_member,slab_details: $slab_details,applicable_slab_name: $applicable_rack_rate_name,augmented_si: $row[3],grid_master: $applicable_rack_rate_master);
- $policy_terms = $this->clientPolicyModel->getPolicyDetails($file['client_id'],$file['policy_id']);
+ $data = transform_si_excel_row_to_calculatable_format(employee: $employee, employee_policy: $employee_policy, maxage_and_maxcount: $max_age_and_max_count_of_current_member, slab_details: $slab_details, applicable_slab_name: $applicable_rack_rate_name, augmented_si: $row[3], grid_master: $applicable_rack_rate_master);
+ $policy_terms = $this->clientPolicyModel->getPolicyDetails($file['client_id'], $file['policy_id']);
$policy_terms = (array) $policy_terms[0];
// dd($policy_terms);
//grouping slab details by rack rate name
$temp_slab_rates = group_slab_rates_basedon_name($slab_details);
- $calculated_data = premium_calculation_manager($data,$policy_terms,$temp_slab_rates,$row[3]);
+ $calculated_data = premium_calculation_manager($data, $policy_terms, $temp_slab_rates, $row[3]);
- $group_key = rand(100000, 999999);
- $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'],'emp_code' => $employee['emp_code'],'table_name' => 'employee_polices','actions' => 'si','name' => $employee['name'],'field_name' => 'basic_cover_si','old_value' => $employee_policy['basic_cover_si'],'new_value' => $row[3],'created_by' => $file['created_by'],'remarks' => 'general si enhancement','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']);
- $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'],'emp_code' => $employee['emp_code'],'table_name' => 'employee_polices','actions' => 'si','name' => $employee['name'],'field_name' => 'premium','old_value' => $employee_policy['premium'],'new_value' => $calculated_data['policy_details']['premium'],'created_by' => $file['created_by'],'remarks' => 'general si enhancement','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']);
- $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'],'emp_code' => $employee['emp_code'],'table_name' => 'employee_polices','actions' => 'si','name' => $employee['name'],'field_name' => 'si_enhancement_date','old_value' => null,'new_value' => change_date_format($row[4],'d-M-Y','Y-m-d'),'created_by' => $file['created_by'],'remarks' => 'general si enhancement','group_key' => $group_key,'file_id' => $file['id'],'status' => 'pending']);
-
-
+ $group_key = rand(100000, 999999);
+ $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'basic_cover_si', 'old_value' => $employee_policy['basic_cover_si'], 'new_value' => $row[3], 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
+ $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'premium', 'old_value' => $employee_policy['premium'], 'new_value' => $calculated_data['policy_details']['premium'], 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
+ $this->empEndorsementModel->save(['pk' => (int)$employee_policy['id'], 'emp_code' => $employee['emp_code'], 'table_name' => 'employee_polices', 'actions' => 'si', 'name' => $employee['name'], 'field_name' => 'si_enhancement_date', 'old_value' => null, 'new_value' => change_date_format($row[4], 'd-M-Y', 'Y-m-d'), 'created_by' => $file['created_by'], 'remarks' => 'general si enhancement', 'group_key' => $group_key, 'file_id' => $file['id'], 'status' => 'pending']);
+ } else {
+ $this->myLogger->logme("error", 'Endorsement already exists for this employee ' . json_encode(['file_id' => $file_id, 'emp_code' => $employee['emp_code'], 'emp_name' => $employee['name']]));
}
-
-
-
-
}
- $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update();
- $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]);
+ $this->fileModel->where('id', $file_id)->set(['status' => 'success', 'reason' => ''])->update();
+ $this->myLogger->logme("error", '{file_id} uploaded success', ['file_id' => $file_id]);
+
//set success msg to pull notifications
- $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success'));
- return true;
+ $this->setPullNotification($this->getFileMetaDataByFileId($file_id, 'success'));
+ return true;
}
// insert or update in db for inception addition depent addition
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index 394de340..97aa91d4 100755
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -611,6 +611,36 @@ class EmployeePolicyModel extends Model
$subquery_endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "WHERE (endorsement_id IS NOT NULL OR endorsement_id != '')" : "WHERE (endorsement_id IS NULL OR endorsement_id = '')";
+ /*
+ ROUND(sidata.new_si_premium - sidata.old_si_premium, 2) AS difference_premium,
+ ROUND(
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365,
+ 2
+ ) AS pro_rata_premium,
+ ROUND(
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) * 0.18,
+ 2
+ ) AS gst,
+ ROUND(
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) +
+ ROUND(
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) * 0.18,
+ 2
+ ),
+ 2
+ ) AS total
+ */
+
$query = $this->db->query("
SELECT
a.id AS endorsement_primarykey,
@@ -643,33 +673,40 @@ class EmployeePolicyModel extends Model
sidata.old_si_premium,
sidata.date_of_coverage,
DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days,
- ROUND(sidata.new_si_premium - sidata.old_si_premium, 2) AS difference_premium,
+
+ ROUND(ABS(sidata.new_si_premium - sidata.old_si_premium), 2) AS difference_premium,
ROUND(
- (sidata.new_si_premium - sidata.old_si_premium) *
- (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365,
+ ABS(
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ),
2
) AS pro_rata_premium,
ROUND(
- (
- (sidata.new_si_premium - sidata.old_si_premium) *
- (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
- ) * 0.18,
+ ABS(
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) * 0.18
+ ),
2
) AS gst,
ROUND(
- (
- (sidata.new_si_premium - sidata.old_si_premium) *
- (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
- ) +
- ROUND(
- (
- (sidata.new_si_premium - sidata.old_si_premium) *
- (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
- ) * 0.18,
- 2
+ ABS(
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) +
+ (
+ (
+ (sidata.new_si_premium - sidata.old_si_premium) *
+ (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365
+ ) * 0.18
+ )
),
2
) AS total
+
FROM
emp_endorsement a
LEFT JOIN employees ON employees.emp_code = a.emp_code