CHANGE_PREMIUM_CALC_API,FEAT_MANUAL_INCEPTION
This commit is contained in:
parent
7778ac48a4
commit
4c09a3286e
@ -234,6 +234,7 @@ $routes->group("/api", ["filter" => "authJWT"], function($routes){
|
|||||||
|
|
||||||
$routes->get("/getEmployeeProfile", "EmployeeRestController::getEmployeeProfile/$1");
|
$routes->get("/getEmployeeProfile", "EmployeeRestController::getEmployeeProfile/$1");
|
||||||
$routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfile");
|
$routes->post("/editEmployeeProfile", "EmployeeRestController::editEmployeeProfile");
|
||||||
|
$routes->post("/calculatePremium", "EmployeeRestController::calculatePremium");
|
||||||
|
|
||||||
$routes->group("employeeRest", ["filter" => "authJWT"], function($routes){
|
$routes->group("employeeRest", ["filter" => "authJWT"], function($routes){
|
||||||
$routes->post("employeeUpload", "EmployeeRestController::employeeUpload");
|
$routes->post("employeeUpload", "EmployeeRestController::employeeUpload");
|
||||||
|
|||||||
@ -549,4 +549,14 @@ class EmployeeController extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @param int $client_policy_id
|
||||||
|
// this funciton initiate Inception/adition/DA of employees data only form enrollment app when passing
|
||||||
|
// client_policy_id pull draft and enrolled status employees and proceed to calculatin and make entry in DB
|
||||||
|
public function initiateManualEmployeesOnboardProcess($client_policy_id)
|
||||||
|
{
|
||||||
|
$empServiceController = new EmployeeServiceController();
|
||||||
|
$res = $empServiceController->employeesOnboardPreprocess(['client_policy_id' => $client_policy_id]);
|
||||||
|
dd($res);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1250,4 +1250,42 @@ public function iAgreeForAddOn()
|
|||||||
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
|
return $this->respond(['status' => 'success','code' => 200,'data' => [] ], 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//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()//family level
|
||||||
|
{
|
||||||
|
helper('excel_util_helper');
|
||||||
|
$client_policy_id = $this->request->getVar('client_policy_id');
|
||||||
|
$emp_code = $this->request->getVar('emp_code');
|
||||||
|
// dd($client_policy_id);
|
||||||
|
|
||||||
|
$client_id = ($this->clientPolicyModel->select('client_id')->find($client_policy_id))['client_id'];
|
||||||
|
// get policy and rack details
|
||||||
|
$policy_terms = $this->clientPolicyModel->getPolicyDetails($client_id,$client_policy_id);
|
||||||
|
$policy_terms = (array) $policy_terms[0];// convert obj to array
|
||||||
|
|
||||||
|
//get policy slab rates
|
||||||
|
$slab_details = $this->policesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
|
||||||
|
|
||||||
|
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_code: $emp_code,emp_status:['active'],policy_status:['active']);
|
||||||
|
|
||||||
|
$file = ['id' => null,'client_id' => $client_id,'policy_id' => $client_policy_id,'action' => 'inception'];
|
||||||
|
// dd($this->employeeModel->getLastQuery());
|
||||||
|
// dd($existing_famility_details);die();
|
||||||
|
$employee_data_group_by_family = data_group_by_family($existing_famility_details,$data_source = 'db');
|
||||||
|
// dd($employee_data_group_by_family);
|
||||||
|
foreach ($employee_data_group_by_family as $emp_id => $family)
|
||||||
|
{
|
||||||
|
$transformed_famility_details = transform_db_data_to_excel($family);
|
||||||
|
$data = calculate_premimum($transformed_famility_details,$policy_terms,$slab_details,$file);
|
||||||
|
// dd($data);
|
||||||
|
$employee_data_group_by_family[$emp_id] = $data;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -349,7 +349,7 @@ class EmployeeServiceController extends AdminController
|
|||||||
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
|
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
|
||||||
if($file['action'] == 'dependent_addition')
|
if($file['action'] == 'dependent_addition')
|
||||||
{
|
{
|
||||||
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
|
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status:['active']);
|
||||||
// dd($existing_famility_details);
|
// dd($existing_famility_details);
|
||||||
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
|
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
|
||||||
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
|
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
|
||||||
@ -531,7 +531,7 @@ class EmployeeServiceController extends AdminController
|
|||||||
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
|
//if action is DA then get all familiy members,transfrom them into excel array, addd data source as db or excel
|
||||||
if($file['action'] == 'dependent_addition')
|
if($file['action'] == 'dependent_addition')
|
||||||
{
|
{
|
||||||
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
|
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status:['active']);
|
||||||
// dd($existing_famility_details);
|
// dd($existing_famility_details);
|
||||||
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
|
//transsform familiy details from db columns to exxcel row with column indexs for checking remaining functionalitites
|
||||||
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
|
$existing_famility_details = transform_db_data_to_excel($existing_famility_details,$file);
|
||||||
@ -566,7 +566,7 @@ class EmployeeServiceController extends AdminController
|
|||||||
//get policy slab rates
|
//get policy slab rates
|
||||||
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
|
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($client_policy_id,$client_id);
|
||||||
|
|
||||||
$existing_famility_details = $this->employeeModel->getEmpFamilybyEmpCode(client_id: $client_id,client_policy_id: $client_policy_id,emp_status: 'enrolled');
|
$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'];
|
||||||
// dd($this->employeeModel->getLastQuery());
|
// dd($this->employeeModel->getLastQuery());
|
||||||
@ -663,7 +663,7 @@ class EmployeeServiceController extends AdminController
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
$family = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $row[1],client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: 'active');
|
$family = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $row[1],client_id: $file['client_id'],client_policy_id: $file ['policy_id'],emp_status: ['active'],policy_status: ['active']);
|
||||||
// Kint::dump($family);
|
// Kint::dump($family);
|
||||||
foreach ($family as $key => $emp) {
|
foreach ($family as $key => $emp) {
|
||||||
|
|
||||||
|
|||||||
@ -88,7 +88,7 @@ class EmployeeModel extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,string $emp_status = null)
|
public function getEmpFamilybyEmpCode(string $client_policy_id = null,string $emp_code = null,string $client_id = null,array $emp_status = [],array $policy_status = [])
|
||||||
{
|
{
|
||||||
$result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit'])
|
$result = $this->select(['employees.id as emp_id', 'employees.client_id', 'employees.relationship', 'employees.relationship_code', 'employees.change_event', 'employees.emp_code', 'employees.name', 'employees.email_personal', 'employees.email_corporate', 'employees.mobile', 'employees.gender', 'employees.dob', 'employees.doj', 'employees.basic_pay', 'employees.band', 'employees.designation', 'employees.emp_status','employee_polices.id as emp_policy_id', 'employee_polices.employee_id', 'employee_polices.client_policy_id', 'employee_polices.tpa_id', 'employee_polices.uhid', 'employee_polices.batch_code', 'employee_polices.status', 'employee_polices.pre_existing_alignments', 'employee_polices.basic_cover_si', 'employee_polices.date_coverage', 'employee_polices.policy_end_date', 'employee_polices.days', 'employee_polices.premium', 'employee_polices.rata_premimum', 'employee_polices.gst', 'employee_polices.date_of_exit', 'employee_polices.reason_for_exit'])
|
||||||
->join('employee_polices', 'employee_polices.employee_id = employees.id')
|
->join('employee_polices', 'employee_polices.employee_id = employees.id')
|
||||||
@ -98,17 +98,18 @@ class EmployeeModel extends Model
|
|||||||
})
|
})
|
||||||
|
|
||||||
->where('employee_polices.is_active',1)
|
->where('employee_polices.is_active',1)
|
||||||
->where('employees.emp_status', ($emp_status !== null ? $emp_status : 'active'))
|
// ->where('employees.emp_status', ($emp_status !== null ? $emp_status : 'active'))
|
||||||
// ->where('employees.emp_code',$emp_code)
|
// ->where('employees.emp_code',$emp_code)
|
||||||
->when($emp_code, function($query) use ($emp_code){
|
->when($emp_code, function($query) use ($emp_code){
|
||||||
return $query->where('employees.emp_code',$emp_code);
|
return $query->where('employees.emp_code',$emp_code);
|
||||||
|
|
||||||
})
|
})
|
||||||
// ->when($emp_status, function($query) use ($emp_status){
|
->when(count($emp_status), function($query) use ($emp_status){
|
||||||
// $emp_status = ($emp_status !== null ? $emp_status : 'active');
|
return $query->whereIn('employees.emp_status', $emp_status);
|
||||||
// dd($emp_status);
|
})
|
||||||
// return $query->where('employees.emp_status', $emp_status);
|
->when(count($policy_status), function($query) use ($policy_status){
|
||||||
// })
|
return $query->whereIn('employee_polices.status', $policy_status);
|
||||||
|
})
|
||||||
->when($client_id, function($query) use ($client_id){
|
->when($client_id, function($query) use ($client_id){
|
||||||
return $query->where('employees.client_id',$client_id);
|
return $query->where('employees.client_id',$client_id);
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user