Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev

This commit is contained in:
sriramv 2024-04-18 09:41:55 +05:30
commit 670b12dc70
4 changed files with 132 additions and 53 deletions

View File

@ -170,18 +170,20 @@ class EmployeeRestController extends AdminController
public function addEmployeeAndDependence() public function addEmployeeAndDependence()
{ {
try { // try {
$data = $this->request->getJSON(); $data = $this->request->getJSON();
if ($data) { if ($data) {
$Count = 0; $Count = 0;
foreach ($data as $item) { foreach ($data as $item) {
if (isset($item->id)) { if (isset($item->id)) {
//update old data //update old data
$id = $item->id; $id = $item->id;
$item->family_floater_key = $this->RelationshipMap($item->relationship); $item->family_floater_key = $this->RelationshipMap($item->relationship);
$item->gender = $this->GenderMap($item->relationship , $item->emp_code);
$item->dob = $this->convertDateFormatYMD($item->dob); $item->dob = $this->convertDateFormatYMD($item->dob);
$item->emp_status = 'Draft'; $item->emp_status = 'draft';
$employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item); $employee = $this->employeeModel->where('is_active', 1 )->update($id, (array)$item);
if ($employee) { if ($employee) {
$Count++; $Count++;
@ -189,9 +191,10 @@ class EmployeeRestController extends AdminController
}else{ }else{
//create new data //create new data
$item->family_floater_key = $this->RelationshipMap($item->relationship); $item->family_floater_key = $this->RelationshipMap($item->relationship);
$item->gender = $this->GenderMap($item->relationship , $item->emp_code);
$item->dob = $this->convertDateFormatYMD($item->dob); $item->dob = $this->convertDateFormatYMD($item->dob);
$item->emp_status = 'Draft'; $item->emp_status = 'draft';
$employee = $this->employeeModel->where('is_active', 1 )->insert($item); $employee = $this->employeeModel->insert($item);
if ($employee) { if ($employee) {
if(!isset($item->is_addon_value)) if(!isset($item->is_addon_value))
@ -206,6 +209,12 @@ class EmployeeRestController extends AdminController
} }
if ($Count > 0) { if ($Count > 0) {
if(!isset($data[0]->is_addon_value))
{
$this->updatePremiumAmount($data[0]->client_policy_id , $data[0]->emp_code);
}
$result = []; $result = [];
return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200);
} else { } else {
@ -213,40 +222,73 @@ class EmployeeRestController extends AdminController
return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404); return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404);
} }
} }
} catch (\Exception $e) { // } catch (\Exception $e) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); // return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
} // }
} }
public function createEmployeePolicyData($employee_id,$emp_code,$client_id,$client_policy_id) public function createEmployeePolicyData($employee_id,$emp_code,$client_id,$client_policy_id)
{ {
$client_policy = $this->clientPolicyModel->where('id', $client_policy_id)->where('client_id', $client_id)->first(); $client_policy = $this->clientPolicyModel->where('id', $client_policy_id)->where('client_id', $client_id)->first();
$policy_terms = json_decode($client_policy['policy_terms']); $policy_terms = json_decode($client_policy['policy_terms']);
$basic_cover_si = $policy_terms->sum_insured; $basic_cover_si = $policy_terms->sum_insured;
$getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id); $checkDataExist = $this->employeePolicyModel->where('employee_id',$employee_id)->where('client_policy_id',$client_policy_id)->first();
$SlabRatesArray = $getSlabAndGridData['slab_rates'];
$premium = $this->findPremiumAmount($SlabRatesArray, $basic_cover_si);
if($checkDataExist){
$this->employeePolicyModel
->where('client_policy_id',$client_policy_id )
->where('employee_id' , $employee_id )
->where('is_active', 1 )
->set(array('basic_cover_si'=> $basic_cover_si ))
->update();
$data['employee_id']= $employee_id; }else{
$data['client_policy_id']= $client_policy_id;
$data['basic_cover_si']= $basic_cover_si;
$data['premium']= $premium;
$this->employeePolicyModel->insert($data); $data['employee_id']= $employee_id;
$data['client_policy_id']= $client_policy_id;
$data['basic_cover_si']= $basic_cover_si;
$data['status']= 'draft';
$this->employeePolicyModel->insert($data);
}
return true; return true;
} }
public function updatePremiumAmount($client_policy_id , $emp_code)
{
$response = $this->calculatePremium($client_policy_id , $emp_code);
if(count($response[$emp_code]))
{
foreach ($response[$emp_code] as $key => $value)
{
$checkIfExist = $this->employeePolicyModel->where('employee_id', $value['temp']['emp_id'])
->where('client_policy_id', $value['policy_details']['client_policy_id'])
->where('is_active', 1 )
->findAll();
if($checkIfExist)
{
$this->employeePolicyModel
->where('client_policy_id',$value['policy_details']['client_policy_id'] )
->where('employee_id' , $value['temp']['emp_id'] )
->where('is_active', 1 )
->set(array('premium'=> $value['policy_details']['premium'] ))
->update();
}
}
}
}
public function RelationshipMap($value){ public function RelationshipMap($value){
if ($value === 'Mother' || $value === 'Father') { if ($value === 'Mother' || $value === 'Father') {
@ -260,6 +302,19 @@ class EmployeeRestController extends AdminController
} }
} }
public function GenderMap($value,$empCode){
if ($value === 'Mother' || $value === 'Daughter' || $value === 'Mother in Law') {
return 'F';
} else if($value === 'Son' || $value === 'Father' || $value === 'Father in Law'){
return 'M';
}else if($value === 'Spouse'){
$Gender = $this->employeeModel->where('emp_code',$empCode)->where('relationship','Self')->get()->getRow()->gender;
if($Gender == 'M'){ return 'F'; }else{ return 'M'; }
}
}
private function convertDateFormatYMD($dateString) private function convertDateFormatYMD($dateString)
{ {
// Attempt to create a DateTime object from the provided date string // Attempt to create a DateTime object from the provided date string
@ -509,27 +564,27 @@ class EmployeeRestController extends AdminController
->where('client_policy_id', $value->client_policy_id) ->where('client_policy_id', $value->client_policy_id)
->where('is_active', 1 ) ->where('is_active', 1 )
->findAll(); ->findAll();
$getSlabAndGridData = $this->policesModel->getPolicySlabRatesForEmpOnboard($value->client_policy_id,$value->client_id);
$SlabRatesArray = $getSlabAndGridData['slab_rates'];
$premium = $this->findPremiumAmount($SlabRatesArray, $value->basic_cover_si);
// dd($checkIfExist); // dd($checkIfExist);
if ($checkIfExist) { if ($checkIfExist) {
$empPolicy = $this->employeePolicyModel->updateSiAndPremium($value->client_policy_id, $value->employee_id, $value->basic_cover_si,$premium); $empPolicy = $this->employeePolicyModel->updateSiAndPremium($value->client_policy_id, $value->employee_id, $value->basic_cover_si);
}else{ }else{
$data['employee_id']= $value->employee_id; $data['employee_id']= $value->employee_id;
$data['client_policy_id']= $value->client_policy_id; $data['client_policy_id']= $value->client_policy_id;
$data['basic_cover_si']= $value->basic_cover_si; $data['basic_cover_si']= $value->basic_cover_si;
$data['premium']= $premium; $data['status'] = 'draft';
$data['status'] = 'Draft';
$this->employeePolicyModel->insert($data); $this->employeePolicyModel->insert($data);
} }
} }
return $this->respond(['status' => 'success','code' => 200,'data' => []], 200);
$this->updatePremiumAmount($requestData[0]->client_policy_id , $requestData[0]->emp_code);
return $this->respond(['status' => 'success','code' => 200,'data' => []], 200);
} catch (\Exception $e) { } catch (\Exception $e) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500); return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
@ -1293,13 +1348,21 @@ public function iAgreeForAddOn()
//Post method - which receives client_policy id and empcode of the family. //Post method - which receives client_policy id and empcode of the family.
//Pull records againest emp code and calculate premium //Pull records againest emp code and calculate premium
// retun array // retun array
public function calculatePremium()//family level public function calculatePremium($clientPolicyId = null , $empCode = null, $default_si = null)//family level
{ {
helper('excel_util_helper'); helper('excel_util_helper');
$client_policy_id = $this->request->getVar('client_policy_id');
$emp_code = $this->request->getVar('emp_code'); // $client_policy_id = $this->request->getVar('client_policy_id');
// $emp_code = $this->request->getVar('emp_code');
// dd($default_si);
$client_policy_id = $this->request->getVar('client_policy_id') ?? $clientPolicyId;
$emp_code = $this->request->getVar('emp_code') ?? $empCode;
$default_si = $this->request->getVar('si') ?? $default_si;// si amt which choosed in add on policy
// dd($client_policy_id); // dd($client_policy_id);
$client_id = ($this->clientPolicyModel->select('client_id')->find($client_policy_id))['client_id']; $client_id = ($this->clientPolicyModel->select('client_id')->find($client_policy_id))['client_id'];
// get policy and rack details // get policy and rack details
$policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id,$client_policy_id); $policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id,$client_policy_id);
@ -1307,6 +1370,7 @@ public function calculatePremium()//family level
//get policy slab rates //get policy slab rates
$slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id); $slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
// dd($slab_details);
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']); $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']);
@ -1318,14 +1382,21 @@ public function calculatePremium()//family level
foreach ($employee_data_group_by_family as $emp_id => $family) foreach ($employee_data_group_by_family as $emp_id => $family)
{ {
$transformed_famility_details = transform_db_data_to_excel($family); $transformed_famility_details = transform_db_data_to_excel($family);
$data = calculate_premimum($transformed_famility_details,$policy_terms,$slab_details,$file); $data = calculate_premimum($transformed_famility_details,$policy_terms,$slab_details,$file,$default_si);
// dd($data); // dd($data);
$employee_data_group_by_family[$emp_id] = $data; $employee_data_group_by_family[$emp_id] = $data;
} }
// dd ($employee_data_group_by_family); if($clientPolicyId != null && $empCode != null)
{
return $employee_data_group_by_family;
}else{
// dd ($employee_data_group_by_family);
return $this->respond(['status' => 'success','code' => (count($employee_data_group_by_family) ? 200 : 404),'data' => [$employee_data_group_by_family] ], 200); return $this->respond(['status' => 'success','code' => (count($employee_data_group_by_family) ? 200 : 404),'data' => [$employee_data_group_by_family] ], 200);
}
} }
} }

View File

@ -568,6 +568,7 @@ class EmployeeServiceController extends AdminController
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: ['enrolled','draft'],policy_status:['enrolled','draft']); $existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: ['enrolled','draft'],policy_status:['enrolled','draft']);
// $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception']; // $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception'];
$file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception','created_by' => get_session_userid()]; $file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception','created_by' => get_session_userid()];
// dd($this->employeeModel->getLastQuery()); // dd($this->employeeModel->getLastQuery());

View File

@ -509,7 +509,7 @@ if (!function_exists('generate_relationship_code'))
if (!function_exists('calculate_premimum')) if (!function_exists('calculate_premimum'))
{ {
function calculate_premimum($family_data,$policy_terms,$slab_details,$fileArr) function calculate_premimum($family_data,$policy_terms,$slab_details,$fileArr,$default_si = null)
{ {
// //
// dd($fileArr); // dd($fileArr);
@ -558,7 +558,7 @@ if (!function_exists('calculate_premimum'))
if( $fileArr['id'] == null || (in_array($grid_type,[10,11]) || $transformed_familiy_member_data['temp']['source'] == 'excel'))//if file id is null then data coming from enrollment (from DB) otherwise data coming from xcel, so calculate only data from excel (new entry) note: even data coming from excel for event dependet additon we fetch other dependts from db and calculate premium for whole family if( $fileArr['id'] == null || (in_array($grid_type,[10,11]) || $transformed_familiy_member_data['temp']['source'] == 'excel'))//if file id is null then data coming from enrollment (from DB) otherwise data coming from xcel, so calculate only data from excel (new entry) note: even data coming from excel for event dependet additon we fetch other dependts from db and calculate premium for whole family
{ {
$transformed_familiy_member_data = premium_calculation_manager($transformed_familiy_member_data,$policy_terms,$slab_details); $transformed_familiy_member_data = premium_calculation_manager($transformed_familiy_member_data,$policy_terms,$slab_details,$default_si);
$result[] = $transformed_familiy_member_data; $result[] = $transformed_familiy_member_data;
} }
@ -630,7 +630,7 @@ if (!function_exists('transform_excel_data_to_db'))
if (!function_exists('premium_calculation_manager')) if (!function_exists('premium_calculation_manager'))
{ {
function premium_calculation_manager($emp_data,$policy_terms,$slab_details) function premium_calculation_manager($emp_data,$policy_terms,$slab_details,$default_si = null)
{ {
// grid type // grid type
// 1 = premium => si // 1 = premium => si
@ -639,11 +639,12 @@ if (!function_exists('premium_calculation_manager'))
switch ($grid_type) { switch ($grid_type) {
case "1": case "1":
//GPA - Sum Insured (SI) * Multiplier //GPA - Sum Insured (SI) * Multiplier
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
if($slab_value['si'] == $employee_received_si) if($slab_value['si'] == $employee_received_si)
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -658,11 +659,12 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "2": case "2":
//GPA - Flat Rate for all SI //GPA - Flat Rate for all SI
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
if($slab_value['si'] == $employee_received_si) if($slab_value['si'] == $employee_received_si)
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -676,11 +678,12 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "3": case "3":
//GMC - SI //GMC - SI
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
if($slab_value['si'] == $employee_received_si) if($slab_value['si'] == $employee_received_si)
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -694,13 +697,17 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "4": case "4":
//GMC - Employees Age band //GMC - Employees Age band
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
// dd($employee_received_si);
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
$age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age)) if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age))
{ {
// dd($slab_value);
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -714,13 +721,13 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "5": case "5":
//GMC - Employees Age + SI //GMC - Employees Age + SI
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
$age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age)) if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age))
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -734,13 +741,13 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "6": case "6":
//GMC - Employees + Dependent Age band //GMC - Employees + Dependent Age band
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
$age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age)) if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age))
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($emp_data['policy_details']['date_coverage'],$policy_terms['policy_end_date'])->days;
@ -754,13 +761,13 @@ if (!function_exists('premium_calculation_manager'))
break; break;
case "7": case "7":
//GMC - Employees + Dependent Age + SI //GMC - Employees + Dependent Age + SI
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
$age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y; $age = calculate_days_bw_dates(from_date: $emp_data['dob'])->y;
if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age)) if($slab_value['si'] == $employee_received_si && ($slab_value['age_from'] <= $age && $slab_value['age_to'] >= $age))
{ {
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days;
@ -776,14 +783,14 @@ if (!function_exists('premium_calculation_manager'))
case "8": case "8":
//GMC - SI as per Grade or Band //GMC - SI as per Grade or Band
$employee_received_band = $emp_data['temp']['band']; $employee_received_band = $emp_data['temp']['band'];
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
if($slab_value['grade'] == $employee_received_band && $slab_value['si'] == $employee_received_si) if($slab_value['grade'] == $employee_received_band && $slab_value['si'] == $employee_received_si)
{ {
// $emp_data['policy_details']['basic_cover_si'] = $slab_value['si']; // $emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days;
@ -798,13 +805,13 @@ if (!function_exists('premium_calculation_manager'))
case "9": case "9":
//GMC - Flat Rate for all //GMC - Flat Rate for all
$employee_received_band = $emp_data['temp']['band']; $employee_received_band = $emp_data['temp']['band'];
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
if($slab_value['grade'] == $employee_received_band && $slab_value['si'] == $employee_received_si) if($slab_value['grade'] == $employee_received_band && $slab_value['si'] == $employee_received_si)
{ {
// $emp_data['policy_details']['basic_cover_si'] = $slab_value['si']; $emp_data['policy_details']['basic_cover_si'] = $slab_value['si'];
$emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']); $emp_data['policy_details']['date_coverage'] = (isset($emp_data['policy_details']['date_coverage']) ? $emp_data['policy_details']['date_coverage'] : $policy_terms['policy_start_date']);
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date']; $emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days; $emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days;
@ -819,7 +826,7 @@ if (!function_exists('premium_calculation_manager'))
case "10": case "10":
//GMC - Maximum age of Dependents //GMC - Maximum age of Dependents
$max_age = $emp_data['temp']['maxage']; $max_age = $emp_data['temp']['maxage'];
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
$emp_data['policy_details']['basic_cover_si'] = null; $emp_data['policy_details']['basic_cover_si'] = null;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {
@ -842,7 +849,7 @@ if (!function_exists('premium_calculation_manager'))
//GMC - Maximum count per Family //GMC - Maximum count per Family
$max_count = $emp_data['temp']['maxcount']; $max_count = $emp_data['temp']['maxcount'];
$employee_received_band = $emp_data['temp']['band']; $employee_received_band = $emp_data['temp']['band'];
$employee_received_si = $emp_data['policy_details']['basic_cover_si']; $employee_received_si = $default_si == null ? $emp_data['policy_details']['basic_cover_si'] : $default_si;
$emp_data['policy_details']['basic_cover_si'] = null; $emp_data['policy_details']['basic_cover_si'] = null;
foreach ($slab_details['slab_rates'] as $skey => $slab_value) foreach ($slab_details['slab_rates'] as $skey => $slab_value)
{ {

View File

@ -563,7 +563,7 @@ class EmployeePolicyModel extends Model
// } // }
public function updateSiAndPremium( $client_policy_id, $employee_id,$basic_cover_si,$premium) public function updateSiAndPremium( $client_policy_id, $employee_id,$basic_cover_si,$premium = 0)
{ {