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

This commit is contained in:
Srinivas-Saravanan 2024-12-19 14:47:50 +05:30
commit 2094e680d7
4 changed files with 144 additions and 19 deletions

View File

@ -223,6 +223,10 @@ class EmployeeRestController extends AdminController
{
try {
$data = $this->request->getJSON();
$openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id);
if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); }
if ($data) {
$Count = 0;
@ -505,6 +509,10 @@ class EmployeeRestController extends AdminController
try {
$requestData = $this->request->getJSON();
$openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id);
if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); }
foreach ($requestData as $key => $value)
{
@ -1996,6 +2004,7 @@ class EmployeeRestController extends AdminController
{
$postData = json_decode($this->request->getBody(), true);
$this->myLogger->logme("error", $this->request->getBody());
$client_policy_id = $postData['client_policy_id'];
sort($client_policy_id);
@ -2003,7 +2012,7 @@ class EmployeeRestController extends AdminController
$client_id = $postData['client_id'];
$empData = $this->employeeModel->where('emp_code', $emp_code )->where('client_id', $client_id ) ->where('is_active', 1 )->findAll();
$employeeIds = array_column($empData, 'id');
//for mail common parameter
$filteredEmpData = array_filter($empData, fn($item) => $item['relationship'] === 'Self');
@ -2015,39 +2024,56 @@ class EmployeeRestController extends AdminController
$policy = $this->clientPolicyModel->where('id',$value)->where('open_for_enrollment',1)->find();
if($policy)
{
foreach ($empData as $empDataKey => $empDataValue)
$this->myLogger->logme("error", 'client policy id = '.$value.' is open for enrollment');
$empPolicyData = $this->employeePolicyModel->where('client_policy_id', $value )
->where('is_active', 1 )
->whereIn('employee_id',$employeeIds)
->findAll();
if(count($empPolicyData))
{
$empIdsFromPolicyData = array_column($empPolicyData, 'employee_id');
//update emp polict table
$this->employeePolicyModel->where('client_policy_id', $value )
->where('is_active', 1 )
->where('employee_id', $empDataValue['id'] )
->where('status', 'draft' )
->whereIn('employee_id', $empIdsFromPolicyData )
->groupStart()
->where('status', 'draft')
->orWhere('status', 'enrolled')
->groupEnd()
->set(array('status'=>'enrolled'))
->update();
//update Employee table
$this->employeeModel->where('emp_code', $emp_code)
->whereIn('id', $empIdsFromPolicyData)
->where('client_id', $client_id)
->where('is_active', 1)
->groupStart()
->where('emp_status', 'draft')
->orWhere('emp_status', 'enrolled')
->groupEnd()
->set(['emp_status' => 'enrolled'])
->update();
}
$find = $this->employeeModel->getEmpFamilybyEmpCode(client_policy_id: $value,emp_code: $emp_code,client_id: $client_id,emp_status:['draft','enrolled'],policy_status:['draft','enrolled']);
if(count($find) > 0){
$array_list[] = $find;
}
}
}else { $this->myLogger->logme("error", 'client policy id = '.$value.' is not open for enrollment');}
}
//update Employee table
$this->employeeModel->where('emp_code', $emp_code)->where('client_id', $client_id)->where('is_active', 1)
->groupStart()
->where('emp_status', 'draft')
->orWhere('emp_status', 'enrolled')
->groupEnd()
->set(['emp_status' => 'enrolled'])
->update();
$notification = $this->notificationModel->where('client_id' ,$client_id)->where('template_name', 'member_review_and_summary_mail')->first();
if (isset($notification) && $notification['enabled'] == 1) {
if (isset($notification) && $notification['enabled'] == 1 && count($array_list)) {
$params ['array_list'] = $array_list;
$params ['client_policy_id'] = $client_policy_id;
$params ['emp_code'] = $emp_code;
@ -2328,7 +2354,8 @@ class EmployeeRestController extends AdminController
{
try {
$clientPolicy = $this->clientPolicyModel->where('id',$this->request->getGet('client_policy_id'))->findAll();
$clientPolicy = $this->clientPolicyModel->where('id',$this->request->getGet('client_policy_id'))
->where('open_for_enrollment',1)->findAll();
if(count($clientPolicy))
{
@ -2990,6 +3017,19 @@ class EmployeeRestController extends AdminController
return false;
}
}
public function findThePolicyIsOpenForEnrollment($plicy_id)
{
$policy = $this->clientPolicyModel->where('id',$plicy_id)->where('open_for_enrollment',1)->find();
if($policy)
return true;
else
return false;
}

View File

@ -90,6 +90,11 @@ class LeadsController extends BaseController
public function viewLeadsList()
{
// $d = $this->constructExcelToSaveTemp(24, 1, $propsal_and_insurer = null);
// $d = $this->calculateMembersDemography(['lead_id' => 34]);
//$this->mergeQuoteExcelFileWithMembersListExcelFile(24, 1, $propsal_and_insurer = null);
// dd($d);
$data['page_name'] = 'Leads';
// Set basic data
@ -431,7 +436,7 @@ class LeadsController extends BaseController
//FOR EXCEL
public function exportExcelForQCRandRFQ($lead_id, $type)
{
$filepath = $this->constructExcelToSaveTemp($lead_id, $type);
//$filepath = $this->constructExcelToSaveTemp($lead_id, $type);
$filepath = $filepath['filePath'];
if (file_exists($filepath)) {
@ -662,6 +667,85 @@ class LeadsController extends BaseController
'fileName' => $filename,
];
}
//Merge RFQ/QCR file with lead members file
public function mergeQuoteExcelFileWithMembersListExcelFile($lead_id, $type, $source_file_path)
{
$rfq_data = $this->RFQModel->getRFQTableDataWithLeadIDAndType($lead_id, $type);
if($source_file_path && $rfq_data['file_name'])
{
}
return true;
}
public function calculateMembersDemography($params)
{
$lead_id = $params['lead_id'];
$lead_data = $this->leadsModel->find($lead_id);
// print_rr($lead_data);
if($lead_data['file_name'])
{
$file_name_with_path = WRITEPATH."/uploads/lead_files/".$lead_data['file_name'];
//check physical file
if(!file_exists($file_name_with_path))
{
//file not found update status and reason
$message = "Lead Physcial file not found";
// echo $message;
$this->myLogger->logme('error',($message . ' for file ' . $file_name_with_path));
return ['status' => 'failed','message' => 'no physcial file'];
}
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($file_name_with_path);
//get members data
$members_sheet = $spreadsheet->getSheet(0);
$highestRowAndColumn = $members_sheet->getHighestRowAndColumn();
// dd($highestRowAndColumn);
$members = $members_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
// dd($members);
//get age band data
$age_band_sheet = $spreadsheet->getSheet(1);
$highestRowAndColumn = $age_band_sheet->getHighestRowAndColumn();
$age_band_data = $age_band_sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
print_r($age_band_data);
//check age or dob column
$members_heading = $members[0];
Kint::dump($members_heading);
$available_col = null;
$col_index = null;
if (in_array('age', array_map('strtolower',$members_heading))) {
$available_col = 'age';
$col_index = array_search('age',array_map('strtolower',$members_heading));
} elseif (in_array('dob', array_map('strtolower', $members_heading))) {
$available_col = 'dob';
$col_index = array_search('dob', array_map('strtolower', $members_heading));
}
if ($available_col == null) {
$message = 'No DOB or Age column ';
$this->myLogger->logme('error',($message . $file_name_with_path));
return ['status' => 'failed','message' => $message];
}
//convert age slab data into array
}
else
{
$this->myLogger->logme('error',(' no file found ' . $file_name_with_path));
return ['status' => 'failed','message' => 'no file found'];
}
}
//this funciton for send mail to insurer and client with either RFQ/QCR
public function sendMailWithAttachement()

View File

@ -327,7 +327,7 @@ class sendMailNotification
// dd($payable_employee_array);
// dd(count($payable_employee_array['emp_data']));
if(count($payable_employee_array['emp_data']) > 0){
if(isset($payable_employee_array['emp_data']) && count($payable_employee_array['emp_data']) > 0){
$table_content .= '<div style="text-align: left; font-size: 12px;"><div style="text-align:left;"><h4>Policy Type :';
$temp_data = '';

View File

@ -67,7 +67,8 @@ class RFQModel extends Model
tpa.name as tpa_name,
tpa_branch.branch_name as tpa_branch_name,
policy_type.policy_type,
rfq.json
rfq.json,
file_name
')
->join('leads', 'rfq.lead_id = leads.id')
->join('policy_type', 'leads.policy_type_id = policy_type.id')