CHANGE_ : calculate premium

This commit is contained in:
Smart 2024-09-13 14:13:58 +05:30
parent 95de1ceeb0
commit c17a3a3fd3
3 changed files with 37 additions and 15 deletions

View File

@ -346,7 +346,6 @@ $routes->group("/api", ["filter" => "authJWT"], function ($routes) {
// $routes->post("getChatResponse", "ChatBotController::getChatResponse");
$routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) {
$routes->post("storeFireBase", "EmployeeRestController::storeFireBase");
$routes->post("saveMpin", "RestAuthenticationController::saveMpin");

View File

@ -27,6 +27,7 @@ use App\Models\NotificationModel;
use App\Models\UserModel;
use App\Models\FEContentModel;
use App\Models\AddImgModel;
use App\Models\ClientBranchModel;
use App\Controllers\Jobs ;
@ -69,6 +70,8 @@ class EmployeeRestController extends AdminController
protected $userModel;
protected $feContentModel;
protected $addImgModel;
protected $clientBranchModel;
public function __construct()
{
@ -90,6 +93,7 @@ class EmployeeRestController extends AdminController
$this->userModel = new UserModel();
$this->feContentModel = new FEContentModel();
$this->addImgModel = new AddImgModel();
$this->clientBranchModel = new ClientBranchModel();
}
@ -208,7 +212,7 @@ class EmployeeRestController extends AdminController
public function addEmployeeAndDependence()
{
try {
// try {
$data = $this->request->getJSON();
@ -216,6 +220,7 @@ class EmployeeRestController extends AdminController
$Count = 0;
foreach ($data as $item) {
if (isset($item->id)) {
//update old data
$id = $item->id;
@ -233,6 +238,8 @@ class EmployeeRestController extends AdminController
$item->gender = $this->GenderMap($item->relationship , $item->emp_code);
$item->dob = $this->convertDateFormatYMD($item->dob);
$item->emp_status = 'draft';
$employee = $this->employeeModel->insert($item);
if ($employee) {
@ -266,7 +273,7 @@ class EmployeeRestController extends AdminController
$this->updatePremiumAmount($data[0]->client_policy_id , $data[0]->emp_code);
$this->updatePremiumAmount($data[0]->client_policy_id , $data[0]->emp_code , $data[0]->client_branch_id);
$result = [];
@ -276,9 +283,9 @@ class EmployeeRestController extends AdminController
return $this->respond(['status' => 'failed','code' => 404,'data' => $result], 404);
}
}
} catch (\Exception $e) {
return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
}
// } catch (\Exception $e) {
// return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage()], 500);
// }
}
@ -317,9 +324,9 @@ class EmployeeRestController extends AdminController
return true;
}
public function updatePremiumAmount($client_policy_id , $emp_code)
public function updatePremiumAmount($client_policy_id , $emp_code , $client_branch_id)
{
$response = $this->calculatePremium($client_policy_id , $emp_code);
$response = $this->calculatePremium($client_policy_id , $emp_code , null , $client_branch_id);
if(count($response[$emp_code]))
{
@ -1935,12 +1942,13 @@ class EmployeeRestController extends AdminController
//Post method - which receives client_policy id and empcode of the family.
//Pull records againest emp code and calculate premium
// retun array
public function calculatePremium($clientPolicyId = null , $empCode = null, $default_si = null)//family level
public function calculatePremium($clientPolicyId = null , $empCode = null, $default_si = null , $client_branch_id = null)//family level
{
helper('excel_util_helper');
$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);
@ -1969,13 +1977,17 @@ class EmployeeRestController extends AdminController
// dd($this->employeeModel->getLastQuery());
// print_r($existing_famility_details);die();
$employee_data_group_by_family = data_group_by_family($existing_famility_details,$data_source = 'db');
// print_r(($employee_data_group_by_family));die();
// print_r(($employee_data_group_by_family));//die();
$existing_units = $this->clientBranchModel->getExisitingUnits(client_id: $client_id,client_branch_id: $client_branch_id);
foreach ($employee_data_group_by_family as $emp_id => $family)
{
$transformed_famility_details = transform_db_data_to_excel($family);
// print_r($transformed_famility_details);die();
$data = calculate_premium($transformed_famility_details,$policy_terms,$slab_details,$file,$default_si);
// dd($data);
$data = calculate_premium_new(family_data: $transformed_famility_details,policy_terms:$policy_terms,slab_details:$slab_details,fileArr: $file,existing_units: $existing_units,default_si : $default_si);
$employee_data_group_by_family[$emp_id] = $data;
}

View File

@ -924,7 +924,19 @@ if (!function_exists('calculate_premium_new'))
$is_self_acting_self_set = true;
}
$family_data[$val]['temp'] = ['max_age' => max($applicable_members_from_familiy['max_age']),'max_count' => $applicable_members_from_familiy['max_count'],'grid_name' => $key,'grid_master' => $slab['grid_master'],'acting_self' => $acting_self,'premium_type' => $slab['slab_rates'][0]['premium_type']];
//$family_data[$val]['temp'] = ['max_age' => max($applicable_members_from_familiy['max_age']),'max_count' => $applicable_members_from_familiy['max_count'],'grid_name' => $key,'grid_master' => $slab['grid_master'],'acting_self' => $acting_self,'premium_type' => $slab['slab_rates'][0]['premium_type']];
$family_data[$val]['temp'] = array_merge(
$family_data[$val]['temp'] ?? [], // existing 'temp' data or an empty array if it doesn't exist
[
'max_age' => max($applicable_members_from_familiy['max_age']),
'max_count' => $applicable_members_from_familiy['max_count'],
'grid_name' => $key,
'grid_master' => $slab['grid_master'],
'acting_self' => $acting_self,
'premium_type' => $slab['slab_rates'][0]['premium_type']
]
);
}
}
else
@ -999,7 +1011,6 @@ if (!function_exists('transform_excel_data_to_db'))
{
function transform_excel_data_to_db($memArr,$actionArr)
{
$current_column_action = null;
if($actionArr['action'] == 'inception'){ $current_column_action = 'I'; }
else if($actionArr['action'] == 'addition'){ $current_column_action = 'A'; }