diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index d1286daa..929ce04f 100644 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -349,110 +349,114 @@ class EmployeeServiceController extends AdminController unset($excel_data[0]); $relationship = $this->general_relationships; - $employee_data_group_by_family = data_group_by_family($excel_data); - $is_self_available_in_policy_terms = false; - if($policy_details['policy_type_id'] == 3) // GMC parents + if(in_array($file['action'],['inception','addition','dependent_addition']))// the below funcitons are only for I,DA,A { - $temp = $policy_terms['family_floaters']; - $temp = is_array($temp) ? $temp : (is_object($temp) ? (array)$temp : []); - $is_self_available_in_policy_terms = isset($temp['self']) ? true : false; - } - // dd($employee_data_group_by_family); - foreach ($employee_data_group_by_family as $emp_id => $family) - { + $employee_data_group_by_family = data_group_by_family($excel_data); - //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') - { - $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'],client_branch_id:[ $file['client_branch_id'] ]); - // dd(($existing_famility_details)); - //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); - // dd(array_keys($existing_famility_details[0])); - $family = array_merge($family,$existing_famility_details); - // kint::dump($family); - $family = data_group_by_family($family)[ $emp_id ];// reason to call this again is bring self to first index of the array - } - // kint::dump($family);//die(); - //check name dup within a family - - if($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition') - { - $res = name_dup_check_within_family($family,$file['action']);//in both file data & DB data - // dd($res); - if(count($res)) + $is_self_available_in_policy_terms = false; + if($policy_details['policy_type_id'] == 3) // GMC parents { - foreach($res as $k => $rowid) + $temp = $policy_terms['family_floaters']; + $temp = is_array($temp) ? $temp : (is_object($temp) ? (array)$temp : []); + $is_self_available_in_policy_terms = isset($temp['self']) ? true : false; + } + // dd($employee_data_group_by_family); + foreach ($employee_data_group_by_family as $emp_id => $family) { - array_push($result['error_summary'],7); // dup entry in excel file - $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Twofold Name found within family"; - } - } - } - //check self availbale in uploaded file - if(($file['action'] == 'inception' || $file['action'] == 'addition') && ($policy_details['policy_type_id'] == 3 && $is_self_available_in_policy_terms)) // 3 is GMC parents dep addon) - { - // dd('file check'); - $res = check_self_available_in_family($family,$file['action']); - // dd($res); - if(!$res['is_self_found']) - { - array_push($result['error_summary'],14); // Self not found - $result['error_data'][ $res['row_id'] ]['sno']['error'][] = "Self not found in uploaded file"; - } - } + //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') + { + $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'],client_branch_id:[ $file['client_branch_id'] ]); + // dd(($existing_famility_details)); + //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); + // dd(array_keys($existing_famility_details[0])); + $family = array_merge($family,$existing_famility_details); + // kint::dump($family); + $family = data_group_by_family($family)[ $emp_id ];// reason to call this again is bring self to first index of the array + } + // kint::dump($family);//die(); + //check name dup within a family - //check self avaialbe either same policy DB level(i.e.) gMC parents - if($file['action'] == 'dependent_addition' || ($policy_details['policy_type_id'] == 3 && !$is_self_available_in_policy_terms)) // 3 is GMC parents as base policy not as dep addon) - { - $self_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],emp_status: ['active'],policy_status:['active'],client_branch_id:[ $file['client_branch_id'] ]); - // dd($self_details); - if(!count($self_details)) - { - array_push($result['error_summary'],14); // Self not found - $result['error_data'][ $family[0][0] ]['sno']['error'][] = "Self not found in System"; - } - } - + if($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition') + { + $res = name_dup_check_within_family($family,$file['action']);//in both file data & DB data + // dd($res); + if(count($res)) + { + foreach($res as $k => $rowid) + { + array_push($result['error_summary'],7); // dup entry in excel file + $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Twofold Name found within family"; + } + } + } - if($file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'inception') - { - $res = check_dependent_conflict($family,$policy_terms,$file['action']); - // dd($res); - if(!$res['status']) - { - foreach($res['error_data'] as $key => $value) - { - array_push($result['error_summary'],$value['code']); - $result['error_data'][ $value['row_id'] ][($value['col_name'])]['error'][] = $value['msg']; - } - } - } + //check self availbale in uploaded file + if(($file['action'] == 'inception' || $file['action'] == 'addition') && ($policy_details['policy_type_id'] == 3 && $is_self_available_in_policy_terms)) // 3 is GMC parents dep addon) + { + // dd('file check'); + $res = check_self_available_in_family($family,$file['action']); + // dd($res); + if(!$res['is_self_found']) + { + array_push($result['error_summary'],14); // Self not found + $result['error_data'][ $res['row_id'] ]['sno']['error'][] = "Self not found in uploaded file"; + } + } - //check dup with empid and name with db - $res = name_and_empid_check_in_db($family,$file); - // dd($res); - // echo '
'; - // print_r($res); - if(count($res['del'])) - { - foreach($res['del'] as $k => $rowid) - { - array_push($result['error_summary'],10); //record not avail for deletion - $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Record Not found "; - } - } - if(count($res['i'])) - { - foreach($res['i'] as $k => $rowid) - { - array_push($result['error_summary'],9); //dup entry - $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Record already exists"; - } - } - } + //check self avaialbe either same policy DB level(i.e.) gMC parents + if($file['action'] == 'dependent_addition' || ($policy_details['policy_type_id'] == 3 && !$is_self_available_in_policy_terms)) // 3 is GMC parents as base policy not as dep addon) + { + $self_details = $this->employeeModel->getEmpFamilybyEmpCode(emp_code: $emp_id,client_id: $file['client_id'],emp_status: ['active'],policy_status:['active'],client_branch_id:[ $file['client_branch_id'] ]); + // dd($self_details); + if(!count($self_details)) + { + array_push($result['error_summary'],14); // Self not found + $result['error_data'][ $family[0][0] ]['sno']['error'][] = "Self not found in System"; + } + } + + + if($file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'inception') + { + $res = check_dependent_conflict($family,$policy_terms,$file['action']); + // dd($res); + if(!$res['status']) + { + foreach($res['error_data'] as $key => $value) + { + array_push($result['error_summary'],$value['code']); + $result['error_data'][ $value['row_id'] ][($value['col_name'])]['error'][] = $value['msg']; + } + } + } + + //check dup with empid and name with db + $res = name_and_empid_check_in_db($family,$file); + // dd($res); + // echo '
'; + // print_r($res); + if(count($res['del'])) + { + foreach($res['del'] as $k => $rowid) + { + array_push($result['error_summary'],10); //record not avail for deletion + $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Record Not found "; + } + } + if(count($res['i'])) + { + foreach($res['i'] as $k => $rowid) + { + array_push($result['error_summary'],9); //dup entry + $result['error_data'][$rowid]['name_of_emp_dep']['error'][] = "Record already exists"; + } + } + }// end of foreach + }// end of if current action I,DA,A // s($result); // die(); @@ -857,9 +861,9 @@ class EmployeeServiceController extends AdminController if($slab_value['si'] == $row[3]) { $group_key = rand(100000, 999999); - $this->empEndorsementModel->save(['pk' => (int)$employee['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']]); - $this->empEndorsementModel->save(['pk' => (int)$employee['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' => $slab_value['premium'],'created_by' => $file['created_by'],'remarks' => 'general si enhancement','group_key' => $group_key,'file_id' => $file['id']]); - $this->empEndorsementModel->save(['pk' => (int)$employee['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']]); + $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']]); + $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' => $slab_value['premium'],'created_by' => $file['created_by'],'remarks' => 'general si enhancement','group_key' => $group_key,'file_id' => $file['id']]); + $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']]); break; } } diff --git a/app/Filters/AuthJWT.php b/app/Filters/AuthJWT.php index 456b2e6f..193ad6ec 100644 --- a/app/Filters/AuthJWT.php +++ b/app/Filters/AuthJWT.php @@ -12,6 +12,7 @@ use ReflectionClass; require_once('../vendor/autoload.php'); +use App\Models\EmployeeModel; class AuthJWT implements FilterInterface @@ -19,27 +20,27 @@ class AuthJWT implements FilterInterface public function before(RequestInterface $request, $arguments = null) { $jwt = $request->getHeader('Authorization'); + $model = new EmployeeModel(); if ($jwt) { if (JWTToken::validateJWT($jwt)) { $data = JWTToken::validateJWT($jwt); $data = json_decode($data); + + $id = $data->decoded->id; + $user_data = $model->where('id', $id)->first(); - if ($data->status) { - // $auth = $request->getHeader("Authorization"); - // $decodedToken = $data->decoded; - - // $decodedToken->exp += 30; - // $newJwt = JWTToken::encode((array)$decodedToken); - - // Set the new JWT in the response headers - // $response = service('response'); - // $response->setHeader('Authorization', $newJwt); + if($user_data['token_time_out'] > time()){ + $data =["token_time_out" => time() + getenv('TOKENTIMEOUT') ]; + $model->update($id, $data); return true; }else{ + $data =["token_time_out" => '']; + $model->update($id, $data); header('Content-Type: application/json'); http_response_code(401); - $error = json_encode(["status" => 401, "message" => $data->message]); + // $error = json_encode(["status" => 401, "message" => $data->message]); + $error = json_encode(["status" => 401, "message" => "Token is Invalid"]); echo $error; exit; } diff --git a/app/Helpers/JWTToken.php b/app/Helpers/JWTToken.php index dc381fa1..592c38f8 100644 --- a/app/Helpers/JWTToken.php +++ b/app/Helpers/JWTToken.php @@ -12,27 +12,28 @@ use Firebase\JWT\SignatureInvalidException; use CodeIgniter\HTTP\RequestInterface; use ReflectionClass; +use App\Models\EmployeeModel; class JWTToken { public static function encode($data =null) { - $secret_Key="secret"; - $iat = time(); - $exp = $iat + 180; - $request_data = [ - "iat" => $iat, - "exp" => $exp, - ]; - if ($data !== null) { - $request_data = array_merge($request_data, (array)$data); - } - try{ - $token = JWT::encode($request_data ,$secret_Key,'HS512'); + $secret_Key ="secret"; - return $token; - // return ['status' => true,'token' => $token]; + $request_data = (array)$data; + + try{ + $token = JWT::encode($request_data ,$secret_Key,'HS512'); + + $model = new EmployeeModel(); + $id = $request_data['id']; + $data =[ + "token_time_out" => time() + getenv('TOKENTIMEOUT') + ]; + $model->update($id, $data); + + return $token; } catch (Exception $e) { return ['status' => false,'message' => $e->getMessage()]; diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index 07794f45..200ada56 100644 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -199,35 +199,43 @@ if(!function_exists('check_si')) if(!$is_si_found && $slab_value['si'] == $received_si) //match si amount { + // echo 'found'; $is_si_found = true; } // check age slab - if($row[3] != null && DateTime::createFromFormat('d-M-Y', $row[3]) !== false)// dob + if(in_array(strtoupper($row['current_action']), ['I','A','DA'])) { - $dob = change_date_format($row[3],'d-M-Y','Y-m-d'); - // echo $row[3].' - '.$dob;echo '
'; - $currentDateTime = new DateTime();//die(); - $passedDateTime = new DateTime($dob); - $interval = $currentDateTime->diff($passedDateTime); - if(!$is_age_slab_found) + if($row[3] != null && DateTime::createFromFormat('d-M-Y', $row[3]) !== false)// dob { - if(isset($slab_value['age_from']) && isset($slab_value['age_to'])) + $dob = change_date_format($row[3],'d-M-Y','Y-m-d'); + // echo $row[3].' - '.$dob;echo '
'; + $currentDateTime = new DateTime();//die(); + $passedDateTime = new DateTime($dob); + $interval = $currentDateTime->diff($passedDateTime); + if(!$is_age_slab_found) { - if($slab_value['age_from'] !== null && $slab_value['age_to'] !== null && $slab_value['age_from'] <= $interval->y && $slab_value['age_to'] >= $interval->y && $slab_value['si'] == $received_si) + if(isset($slab_value['age_from']) && isset($slab_value['age_to'])) { - $is_age_slab_found = true;// send true if age slab found + if($slab_value['age_from'] !== null && $slab_value['age_to'] !== null && $slab_value['age_from'] <= $interval->y && $slab_value['age_to'] >= $interval->y && $slab_value['si'] == $received_si) + { + $is_age_slab_found = true;// send true if age slab found + } } + else + { + $is_age_slab_found = true;// send true if age conditin is not applicable + } + } - else - { - $is_age_slab_found = true;// send true if age conditin is not applicable - } - } + } + else + { + $is_age_slab_found = true;// send true if age conditin is not applicable }//end of check age slab - } + }// end of for loop } diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php index b9a78696..cbde9e88 100644 --- a/app/Models/EmployeeModel.php +++ b/app/Models/EmployeeModel.php @@ -38,7 +38,8 @@ class EmployeeModel extends Model "file_id", "is_addon_value", "is_createdby_hr", - "client_branch_id" + "client_branch_id", + "token_time_out" ]; // Callbacks