Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
b113c596ca
@ -27,6 +27,7 @@ use App\Models\NotificationModel;
|
||||
use App\Models\UserModel;
|
||||
use App\Models\FEContentModel;
|
||||
use App\Models\AddImgModel;
|
||||
use App\Models\FileModel;
|
||||
|
||||
|
||||
use App\Controllers\Jobs ;
|
||||
@ -40,6 +41,8 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
|
||||
use CodeIgniter\API\ResponseTrait;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use App\Controllers\EmployeeServiceController;
|
||||
|
||||
|
||||
class EmployeeRestController extends AdminController
|
||||
{
|
||||
@ -83,6 +86,7 @@ class EmployeeRestController extends AdminController
|
||||
$this->userModel = new UserModel();
|
||||
$this->feContentModel = new FEContentModel();
|
||||
$this->addImgModel = new AddImgModel();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -659,9 +663,24 @@ class EmployeeRestController extends AdminController
|
||||
$sum_insured_amount_for_check_employee_1 = isset($policy_permium_1['si']) ? $policy_permium_1['si'] : null;
|
||||
$sum_insured_amount_for_check_employee_2 = isset($policy_permium_2['si']) ? $policy_permium_2['si'] : null;
|
||||
|
||||
$is_moved = $file->move(WRITEPATH . 'uploads/import_excel');
|
||||
$is_moved = $file->move(WRITEPATH . 'uploads/excel');
|
||||
$filename = $file->getName();
|
||||
$file_name_with_path = WRITEPATH."/uploads/import_excel/".$filename;
|
||||
$file_name_with_path = WRITEPATH."/uploads/excel/".$filename;
|
||||
|
||||
//make an entry in DB
|
||||
$file_id = $this->fileModel->insert(['file_name' => $filename, 'client_id' => $client_id, 'policy_id' => $policy_id, 'created_by' => $loggedInUserID, 'status' => $status, 'action' => 'enrollment', 'client_branch_id' => $client_branch_id]); //here field policy_id have client_policy_id and not policy id from policy master
|
||||
$this->myLogger->logme("error", '{file_id} - client uploaded success', ['file_id' => $file_id]);
|
||||
|
||||
$empServiceController = new EmployeeServiceController();
|
||||
$result = $empServiceController->excelFileFormatValidation(['file_id' => $file_id]);
|
||||
// dd($result);
|
||||
if(isset($result['error_summary']) && count($result['error_summary']))
|
||||
{
|
||||
$result = $empServiceController->getExcelErrorData($file_id);
|
||||
return $this->respond(['status' => 'failed', 'code' => 404, 'message' => "file upload failed with errors",'data' => $result], 200);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//check the file exist or not
|
||||
if(!file_exists($file_name_with_path))
|
||||
|
||||
@ -35,14 +35,576 @@ class EmployeeServiceController extends AdminController
|
||||
protected $policiesModel;
|
||||
protected $empEndorsementModel;
|
||||
protected $messageModel;
|
||||
protected $general_relationships = ['self' => ['name' => 'Self', 'gender' => 'M','age_min' => 18,'age_max' => null], 'spouse' => ['name' => 'Spouse', 'gender' => 'F','age_min' => 18,'age_max' => null], 'son' => ['name' => 'Son', 'gender' => 'M','age_min' => null,'age_max' => 25], 'daughter' => ['name' => 'Daughter', 'gender' => 'F','age_min' => null,'age_max' => 25], 'father' => ['name' => 'Father', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother' => ['name' => 'Mother', 'gender' => 'F','age_min' => 18,'age_max' => null], 'father-in-law' => ['name' => 'Father in Law', 'gender' => 'M','age_min' => 18,'age_max' => null], 'mother-in-law' => ['name' => 'Mother in Law', 'gender' => 'F','age_min' => 18,'age_max' => null]];
|
||||
protected $inception_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'dob'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'DOB','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_dob_diff','params'=>['row','relationship','default_age_ratio']],'gender'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Gender','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['M','F']],'relationship'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'RELATIONSHIP','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_relationship','params'=>['row','relationship','policy_terms']],'basic_cover_si'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'BASIC COVER SI','is_mandatory'=>null,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'doc'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Date of Coverage','is_mandatory'=>['A','DA'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom' => 'check_doc','params' => ['row','policy_details']],'doj'=>['col_idx'=>8,'col_cell_name'=>'I','col_name'=>'DOJ','is_mandatory'=>false,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null,'custom'=>'check_doj','params'=>['row']],'basic_pay'=>['col_idx'=>9,'col_cell_name'=>'J','col_name'=>'Basic Pay','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_basic_pay','params'=>['row','policy_terms','slab_details']],'band_grade'=>['col_idx'=>10,'col_cell_name'=>'K','col_name'=>'Band/Grade','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom'=>'check_employee_band','params'=>['row','policy_terms','slab_details']],'designation'=>['col_idx'=>11,'col_cell_name'=>'L','col_name'=>'Designation','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'phone'=>['col_idx'=>12,'col_cell_name'=>'M','col_name'=>'Phone','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_dup_mobileno','params' => ['row','existing_mobilenos']],'email'=>['col_idx'=>13,'col_cell_name'=>'N','col_name'=>'Email','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null],'pre_existing_ailments'=>['col_idx'=>14,'col_cell_name'=>'O','col_name'=>'PRE EXISTING AILMENTS','is_mandatory'=>['I','A','DA'],'data_type'=>'str','format'=>null,'allowed_values'=>['0','1']],'change_event'=>['col_idx'=>15,'col_cell_name'=>'P','col_name'=>'Change event','is_mandatory'=>['A','DA','D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>16,'col_cell_name'=>'Q','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>17,'col_cell_name'=>'R','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
|
||||
|
||||
protected $general_relationships = [
|
||||
'self' => [
|
||||
'name' => 'Self',
|
||||
'gender' => 'M',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
],
|
||||
'spouse' => [
|
||||
'name' => 'Spouse',
|
||||
'gender' => 'F',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
],
|
||||
'son' => [
|
||||
'name' => 'Son',
|
||||
'gender' => 'M',
|
||||
'age_min' => null,
|
||||
'age_max' => 25
|
||||
],
|
||||
'daughter' => [
|
||||
'name' => 'Daughter',
|
||||
'gender' => 'F',
|
||||
'age_min' => null,
|
||||
'age_max' => 25
|
||||
],
|
||||
'father' => [
|
||||
'name' => 'Father',
|
||||
'gender' => 'M',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
],
|
||||
'mother' => [
|
||||
'name' => 'Mother',
|
||||
'gender' => 'F',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
],
|
||||
'father-in-law' => [
|
||||
'name' => 'Father in Law',
|
||||
'gender' => 'M',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
],
|
||||
'mother-in-law' => [
|
||||
'name' => 'Mother in Law',
|
||||
'gender' => 'F',
|
||||
'age_min' => 18,
|
||||
'age_max' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $inception_excel_columns = [
|
||||
'sno' => [
|
||||
'col_idx' => 0,
|
||||
'col_cell_name' => 'A',
|
||||
'col_name' => 'S.No',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'emp_id' => [
|
||||
'col_idx' => 1,
|
||||
'col_cell_name' => 'B',
|
||||
'col_name' => 'EMP ID',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'name_of_emp_dep' => [
|
||||
'col_idx' => 2,
|
||||
'col_cell_name' => 'C',
|
||||
'col_name' => 'NAME OF EMP/DEP',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'dob' => [
|
||||
'col_idx' => 3,
|
||||
'col_cell_name' => 'D',
|
||||
'col_name' => 'DOB',
|
||||
'is_mandatory' => ['I', 'A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_dob_diff',
|
||||
'params' => ['row', 'relationship', 'default_age_ratio']
|
||||
],
|
||||
'gender' => [
|
||||
'col_idx' => 4,
|
||||
'col_cell_name' => 'E',
|
||||
'col_name' => 'Gender',
|
||||
'is_mandatory' => ['I', 'A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => ['M', 'F']
|
||||
],
|
||||
'relationship' => [
|
||||
'col_idx' => 5,
|
||||
'col_cell_name' => 'F',
|
||||
'col_name' => 'RELATIONSHIP',
|
||||
'is_mandatory' => ['I', 'A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_relationship',
|
||||
'params' => ['row', 'relationship', 'policy_terms']
|
||||
],
|
||||
'basic_cover_si' => [
|
||||
'col_idx' => 6,
|
||||
'col_cell_name' => 'G',
|
||||
'col_name' => 'BASIC COVER SI',
|
||||
'is_mandatory' => null,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_si',
|
||||
'params' => ['row', 'policy_terms', 'slab_details']
|
||||
],
|
||||
'doc' => [
|
||||
'col_idx' => 7,
|
||||
'col_cell_name' => 'H',
|
||||
'col_name' => 'Date of Coverage',
|
||||
'is_mandatory' => ['A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_doc',
|
||||
'params' => ['row', 'policy_details']
|
||||
],
|
||||
'doj' => [
|
||||
'col_idx' => 8,
|
||||
'col_cell_name' => 'I',
|
||||
'col_name' => 'DOJ',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_doj',
|
||||
'params' => ['row']
|
||||
],
|
||||
'basic_pay' => [
|
||||
'col_idx' => 9,
|
||||
'col_cell_name' => 'J',
|
||||
'col_name' => 'Basic Pay',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_basic_pay',
|
||||
'params' => ['row', 'policy_terms', 'slab_details']
|
||||
],
|
||||
'band_grade' => [
|
||||
'col_idx' => 10,
|
||||
'col_cell_name' => 'K',
|
||||
'col_name' => 'Band/Grade',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_employee_band',
|
||||
'params' => ['row', 'policy_terms', 'slab_details']
|
||||
],
|
||||
'designation' => [
|
||||
'col_idx' => 11,
|
||||
'col_cell_name' => 'L',
|
||||
'col_name' => 'Designation',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'phone' => [
|
||||
'col_idx' => 12,
|
||||
'col_cell_name' => 'M',
|
||||
'col_name' => 'Phone',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_dup_mobileno',
|
||||
'params' => ['row', 'existing_mobilenos']
|
||||
],
|
||||
'email' => [
|
||||
'col_idx' => 13,
|
||||
'col_cell_name' => 'N',
|
||||
'col_name' => 'Email',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'pre_existing_ailments' => [
|
||||
'col_idx' => 14,
|
||||
'col_cell_name' => 'O',
|
||||
'col_name' => 'PRE EXISTING AILMENTS',
|
||||
'is_mandatory' => ['I', 'A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => ['0', '1']
|
||||
],
|
||||
'change_event' => [
|
||||
'col_idx' => 15,
|
||||
'col_cell_name' => 'P',
|
||||
'col_name' => 'Change event',
|
||||
'is_mandatory' => ['A', 'DA', 'D'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'date_of_exit' => [
|
||||
'col_idx' => 16,
|
||||
'col_cell_name' => 'Q',
|
||||
'col_name' => 'Date of exit',
|
||||
'is_mandatory' => ['D'],
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null
|
||||
],
|
||||
'reason_for_exit' => [
|
||||
'col_idx' => 17,
|
||||
'col_cell_name' => 'R',
|
||||
'col_name' => 'Reason for exit',
|
||||
'is_mandatory' => ['D'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $deletion_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'change_event'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'Change event','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_exit'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Date of exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'reason_for_exit'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'Reason for exit','is_mandatory'=>['D'],'data_type'=>'str','format'=>null,'allowed_values'=>null]];
|
||||
protected $deletion_excel_columns = [
|
||||
'sno' => [
|
||||
'col_idx' => 0,
|
||||
'col_cell_name' => 'A',
|
||||
'col_name' => 'S.No',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'emp_id' => [
|
||||
'col_idx' => 1,
|
||||
'col_cell_name' => 'B',
|
||||
'col_name' => 'EMP ID',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'name_of_emp_dep' => [
|
||||
'col_idx' => 2,
|
||||
'col_cell_name' => 'C',
|
||||
'col_name' => 'NAME OF EMP/DEP',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'change_event' => [
|
||||
'col_idx' => 3,
|
||||
'col_cell_name' => 'D',
|
||||
'col_name' => 'Change event',
|
||||
'is_mandatory' => ['D'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'date_of_exit' => [
|
||||
'col_idx' => 4,
|
||||
'col_cell_name' => 'E',
|
||||
'col_name' => 'Date of exit',
|
||||
'is_mandatory' => ['D'],
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null
|
||||
],
|
||||
'reason_for_exit' => [
|
||||
'col_idx' => 5,
|
||||
'col_cell_name' => 'F',
|
||||
'col_name' => 'Reason for exit',
|
||||
'is_mandatory' => ['D'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $correction_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'field'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'Field','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>['name','dob','relationship']],'value'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Value','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'date_of_correction'=>['col_idx'=>5,'col_cell_name'=>'F','col_name'=>'Date of Correction','is_mandatory'=>true,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null],'change_event'=>['col_idx'=>6,'col_cell_name'=>'G','col_name'=>'Change event','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'remarks'=>['col_idx'=>7,'col_cell_name'=>'H','col_name'=>'Remarks','is_mandatory'=>false,'data_type'=>'str','format'=>null,'allowed_values'=>null]];
|
||||
protected $correction_excel_columns = [
|
||||
'sno' => [
|
||||
'col_idx' => 0,
|
||||
'col_cell_name' => 'A',
|
||||
'col_name' => 'S.No',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'emp_id' => [
|
||||
'col_idx' => 1,
|
||||
'col_cell_name' => 'B',
|
||||
'col_name' => 'EMP ID',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'name_of_emp_dep' => [
|
||||
'col_idx' => 2,
|
||||
'col_cell_name' => 'C',
|
||||
'col_name' => 'NAME OF EMP/DEP',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'field' => [
|
||||
'col_idx' => 3,
|
||||
'col_cell_name' => 'D',
|
||||
'col_name' => 'Field',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => ['name', 'dob', 'relationship']
|
||||
],
|
||||
'value' => [
|
||||
'col_idx' => 4,
|
||||
'col_cell_name' => 'E',
|
||||
'col_name' => 'Value',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'date_of_correction' => [
|
||||
'col_idx' => 5,
|
||||
'col_cell_name' => 'F',
|
||||
'col_name' => 'Date of Correction',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null
|
||||
],
|
||||
'change_event' => [
|
||||
'col_idx' => 6,
|
||||
'col_cell_name' => 'G',
|
||||
'col_name' => 'Change event',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'remarks' => [
|
||||
'col_idx' => 7,
|
||||
'col_cell_name' => 'H',
|
||||
'col_name' => 'Remarks',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $si_enhance_excel_columns = ['sno'=>['col_idx'=>0,'col_cell_name'=>'A','col_name'=>'S.No','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'emp_id'=>['col_idx'=>1,'col_cell_name'=>'B','col_name'=>'EMP ID','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'name_of_emp_dep'=>['col_idx'=>2,'col_cell_name'=>'C','col_name'=>'NAME OF EMP/DEP','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null],'augmented_si'=>['col_idx'=>3,'col_cell_name'=>'D','col_name'=>'Augmented SI','is_mandatory'=>true,'data_type'=>'str','format'=>null,'allowed_values'=>null,'custom' => 'check_si','params' => ['row','policy_terms','slab_details']],'date_of_enhancement'=>['col_idx'=>4,'col_cell_name'=>'E','col_name'=>'Date of SI Enhancement','is_mandatory'=>true,'data_type'=>'str','format'=>'d-M-Y','allowed_values'=>null]];
|
||||
protected $si_enhance_excel_columns = [
|
||||
'sno' => [
|
||||
'col_idx' => 0,
|
||||
'col_cell_name' => 'A',
|
||||
'col_name' => 'S.No',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'emp_id' => [
|
||||
'col_idx' => 1,
|
||||
'col_cell_name' => 'B',
|
||||
'col_name' => 'EMP ID',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'name_of_emp_dep' => [
|
||||
'col_idx' => 2,
|
||||
'col_cell_name' => 'C',
|
||||
'col_name' => 'NAME OF EMP/DEP',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'augmented_si' => [
|
||||
'col_idx' => 3,
|
||||
'col_cell_name' => 'D',
|
||||
'col_name' => 'Augmented SI',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => 'check_si',
|
||||
'params' => ['row', 'policy_terms', 'slab_details']
|
||||
],
|
||||
'date_of_enhancement' => [
|
||||
'col_idx' => 4,
|
||||
'col_cell_name' => 'E',
|
||||
'col_name' => 'Date of SI Enhancement',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $enrollment_excel_columns = [
|
||||
'sno' => [
|
||||
'col_idx' => 0,
|
||||
'col_cell_name' => 'A',
|
||||
'col_name' => 'Sno',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'emp_id' => [
|
||||
'col_idx' => 1,
|
||||
'col_cell_name' => 'B',
|
||||
'col_name' => 'Emp code',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'name_of_emp_dep' => [
|
||||
'col_idx' => 2,
|
||||
'col_cell_name' => 'C',
|
||||
'col_name' => 'Name',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'doj' => [
|
||||
'col_idx' => 3,
|
||||
'col_cell_name' => 'D',
|
||||
'col_name' => 'DOJ',
|
||||
'is_mandatory' => true,
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
],
|
||||
'gender' => [
|
||||
'col_idx' => 4,
|
||||
'col_cell_name' => 'E',
|
||||
'col_name' => 'Gender',
|
||||
'is_mandatory' => ['I', 'A', 'DA','E'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => ['M', 'F']
|
||||
],
|
||||
'relationship' => [
|
||||
'col_idx' => 5,
|
||||
'col_cell_name' => 'F',
|
||||
'col_name' => 'Relation',
|
||||
'is_mandatory' => ['I', 'A', 'DA','E'],
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
],
|
||||
'dob' => [
|
||||
'col_idx' => 6,
|
||||
'col_cell_name' => 'G',
|
||||
'col_name' => 'DOB',
|
||||
'is_mandatory' => ['I', 'A', 'DA'],
|
||||
'data_type' => 'str',
|
||||
'format' => 'd-M-Y',
|
||||
'allowed_values' => null,
|
||||
'custom' => null,
|
||||
],
|
||||
'email' => [
|
||||
'col_idx' => 7,
|
||||
'col_cell_name' => 'H',
|
||||
'col_name' => 'Mail',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null
|
||||
],
|
||||
'phone' => [
|
||||
'col_idx' => 8,
|
||||
'col_cell_name' => 'I',
|
||||
'col_name' => 'Mobile',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
],
|
||||
'basic_cover_si' => [
|
||||
'col_idx' => 9,
|
||||
'col_cell_name' => 'J',
|
||||
'col_name' => 'SI',
|
||||
'is_mandatory' => null,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
],
|
||||
'band_grade' => [
|
||||
'col_idx' => 10,
|
||||
'col_cell_name' => 'K',
|
||||
'col_name' => 'Grade',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
],
|
||||
'basic_pay' => [
|
||||
'col_idx' => 11,
|
||||
'col_cell_name' => 'L',
|
||||
'col_name' => 'Basic Pay',
|
||||
'is_mandatory' => false,
|
||||
'data_type' => 'str',
|
||||
'format' => null,
|
||||
'allowed_values' => null,
|
||||
'custom' => null
|
||||
]
|
||||
];
|
||||
|
||||
protected $incetion_to_enrollment_mapping = [
|
||||
0 => 0, // inception: sno (S.No) -> enrollment: sno (Sno)
|
||||
1 => 1, // inception: emp_id (EMP ID) -> enrollment: emp_code (Emp_Code)
|
||||
2 => 2, // inception: name_of_emp_dep (NAME OF EMP/DEP) -> enrollment: name (NAME OF EMP/DEP)
|
||||
3 => 6, // inception: dob (DOB) -> enrollment: dob (DOB)
|
||||
4 => 4, // inception: gender (Gender) -> enrollment: gender (Gender)
|
||||
5 => 5, // inception: relationship (RELATIONSHIP) -> enrollment: relationship (Relation)
|
||||
6 => 9, // inception: basic_cover_si (BASIC COVER SI) -> enrollment: basic_cover_si (SI)
|
||||
7 => null, // inception: doc (Date of Coverage) -> No match in enrollment
|
||||
8 => 3, // inception: doj (DOJ) -> enrollment: doj (DOJ)
|
||||
9 => 11, // inception: basic_pay (Basic Pay) -> enrollment: basic_pay (Basic Pay)
|
||||
10 => 10, // inception: band_grade (Band/Grade) -> enrollment: band_grade (Grade)
|
||||
11 => null, // inception: designation (Designation) -> No match in enrollment
|
||||
12 => 8, // inception: phone (Phone) -> enrollment: phone (Mobile)
|
||||
13 => 7, // inception: email (Email) -> enrollment: email (Email)
|
||||
14 => null, // inception: pre_existing_ailments (PRE EXISTING AILMENTS) -> No match in enrollment
|
||||
15 => null, // inception: change_event (Change event) -> No match in enrollment
|
||||
16 => null, // inception: date_of_exit (Date of exit) -> No match in enrollment
|
||||
17 => null // inception: reason_for_exit (Reason for exit) -> No match in enrollment
|
||||
];
|
||||
|
||||
protected $enrollment_to_inception_mapping = [
|
||||
0 => 0, // enrollment: sno (Sno) -> inception: sno (S.No)
|
||||
1 => 1, // enrollment: emp_code (Emp_Code) -> inception: emp_id (EMP ID)
|
||||
2 => 2, // enrollment: name (NAME OF EMP/DEP) -> inception: name_of_emp_dep (NAME OF EMP/DEP)
|
||||
3 => 8, // enrollment: doj (DOJ) -> inception: doj (DOJ)
|
||||
4 => 4, // enrollment: gender (Gender) -> inception: gender (Gender)
|
||||
5 => 5, // enrollment: relationship (Relation) -> inception: relationship (RELATIONSHIP)
|
||||
6 => 3, // enrollment: dob (DOB) -> inception: dob (DOB)
|
||||
7 => 13, // enrollment: email (Email) -> inception: email (Email)
|
||||
8 => 12, // enrollment: phone (Mobile) -> inception: phone (Phone)
|
||||
9 => 6, // enrollment: basic_cover_si (SI) -> inception: basic_cover_si (BASIC COVER SI)
|
||||
10 => 10, // enrollment: band_grade (Grade) -> inception: band_grade (Band/Grade)
|
||||
11 => 9 // enrollment: basic_pay (Basic Pay) -> inception: basic_pay (Basic Pay)
|
||||
];
|
||||
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@ -100,6 +662,7 @@ class EmployeeServiceController extends AdminController
|
||||
if($file['action'] == 'deletion'){ $columns_to_check = $this->deletion_excel_columns; }
|
||||
if($file['action'] == 'correction'){ $columns_to_check = $this->correction_excel_columns; }
|
||||
if($file['action'] == 'si_enhancement'){ $columns_to_check = $this->si_enhance_excel_columns; }
|
||||
if($file['action'] == 'enrollment'){ $columns_to_check = $this->enrollment_excel_columns; }
|
||||
|
||||
|
||||
$result = ['error_type' => 1,'error_summary' => [], 'error_data' => [] ];
|
||||
@ -162,7 +725,6 @@ class EmployeeServiceController extends AdminController
|
||||
// dd($existing_mobilenos);
|
||||
foreach ($excel_data as $row_key => $row)
|
||||
{
|
||||
|
||||
//define row wise action/event in temporary variable
|
||||
$current_column_action = null;
|
||||
if($file['action'] == 'inception'){ $current_column_action = 'I'; }
|
||||
@ -171,25 +733,44 @@ class EmployeeServiceController extends AdminController
|
||||
else if($file['action'] == 'deletion'){ $current_column_action = 'D'; }
|
||||
else if($file['action'] == 'correction'){ $current_column_action = 'C'; }
|
||||
else if($file['action'] == 'si_enhancement'){ $current_column_action = 'SI'; }
|
||||
else if($file['action'] == 'enrollment'){ $current_column_action = 'I'; }
|
||||
//1. avoid empty rows
|
||||
if(check_row_is_empty_or_null($row))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Kint::dump($keys);
|
||||
if ($file['action'] == 'enrollment')
|
||||
{
|
||||
$row = transform_enrollment_row_to_inception_row($row);
|
||||
$columns_to_check = $this->inception_excel_columns;
|
||||
$keys = array_keys($columns_to_check);
|
||||
$enrollment_columns_to_check = $this->enrollment_excel_columns;
|
||||
$enrollment_keys = array_keys($enrollment_columns_to_check);
|
||||
}
|
||||
|
||||
//iterate each row for columns validations
|
||||
foreach ($row as $col_key => $col)
|
||||
{
|
||||
|
||||
|
||||
$is_mandatory = $columns_to_check[$keys[$col_key]]['is_mandatory'];
|
||||
$format = $columns_to_check[$keys[$col_key]]['format'];
|
||||
$allowed_values = $columns_to_check[$keys[$col_key]]['allowed_values'];
|
||||
$custom_function = isset($columns_to_check[$keys[$col_key]]['custom']) ? $columns_to_check[$keys[$col_key]]['custom'] : null;
|
||||
$binding_params = isset($columns_to_check[$keys[$col_key]]['params']) ? $columns_to_check[$keys[$col_key]]['params'] : null;
|
||||
|
||||
$column_dispaly_name = $columns_to_check[$keys[$col_key]]['col_name'];
|
||||
$column_index = $columns_to_check[$keys[$col_key]]['col_idx'];
|
||||
$column_cell = $columns_to_check[$keys[$col_key]]['col_cell_name'];
|
||||
if($file['action'] == 'enrollment')
|
||||
{
|
||||
if(isset($enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]]) && $enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]] != null && $enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]] != "")
|
||||
{
|
||||
$column_dispaly_name = $enrollment_columns_to_check[$enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]]]['col_name'];
|
||||
$column_index = $enrollment_columns_to_check[$enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]]]['col_idx'];
|
||||
$column_cell = $enrollment_columns_to_check[$enrollment_keys[$this->incetion_to_enrollment_mapping[$col_key]]]['col_cell_name'];
|
||||
}
|
||||
}
|
||||
|
||||
$row['current_action'] = $current_column_action;
|
||||
|
||||
//mandatory check
|
||||
@ -278,20 +859,27 @@ class EmployeeServiceController extends AdminController
|
||||
|
||||
//set failure msg to pull notifications
|
||||
$this->setPullNotification($this->getFileMetaDataByFileId($file_id,'failure'));
|
||||
|
||||
}
|
||||
else //trigger next data validation via job queue server
|
||||
{
|
||||
//proceed next data level validation in JOB queue
|
||||
if($file['action'] == 'enrollment') // if current action is enrollment call next validation and return result
|
||||
{
|
||||
$res = $this->excelFileDataValidation(['file_id' => $file['id']]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
//proceed next data level validation in JOB queue
|
||||
$job_details = new Jobs();
|
||||
$r = Jobs::addJob(['job_name' => 'excelFileDataValidation','payload' => ['file_id' => $file_id]]);
|
||||
// $jobWorker = new JobWorker();
|
||||
// JobWorker::processJob($r);
|
||||
// JobWorker::processJob($r);s
|
||||
|
||||
}
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function excelFileDataValidation($params)
|
||||
{
|
||||
helper('excel_util_helper');
|
||||
@ -325,6 +913,7 @@ class EmployeeServiceController extends AdminController
|
||||
if($file['action'] == 'deletion'){ $columns_to_check = $this->deletion_excel_columns; }
|
||||
if($file['action'] == 'correction'){ $columns_to_check = $this->correction_excel_columns; }
|
||||
if($file['action'] == 'si_enhancement'){ $columns_to_check = $this->si_enhance_excel_columns; }
|
||||
if($file['action'] == 'enrollment'){ $columns_to_check = $this->enrollment_excel_columns; }
|
||||
|
||||
// get policy and rack details
|
||||
$policy_terms = $this->clientPolicyModel->getPolicyDetails($file['client_id'],$file['policy_id']);
|
||||
@ -347,13 +936,14 @@ class EmployeeServiceController extends AdminController
|
||||
|
||||
//remove header
|
||||
unset($excel_data[0]);
|
||||
// dd($columns_to_check);
|
||||
$relationship = $this->general_relationships;
|
||||
|
||||
|
||||
if(in_array($file['action'],['inception','addition','dependent_addition','deletion','correction','si_enhancement']))// the below funcitons are only for I,DA,A
|
||||
if(in_array($file['action'],['inception','addition','dependent_addition','deletion','correction','si_enhancement','enrollment']))// the below funcitons are only for I,DA,A
|
||||
{
|
||||
$employee_data_group_by_family = data_group_by_family($excel_data);
|
||||
|
||||
$employee_data_group_by_family = data_group_by_family($excel_data,'excel','enrollment');
|
||||
// dd($employee_data_group_by_family);
|
||||
$is_self_available_in_policy_terms = false;
|
||||
if($policy_details['policy_type_id'] == 3) // GMC parents
|
||||
{
|
||||
@ -381,9 +971,9 @@ class EmployeeServiceController extends AdminController
|
||||
$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')
|
||||
if($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition' || $file['action'] == 'enrollment')
|
||||
{
|
||||
$res = name_dup_check_within_family($family,$file['action']);//in both file data & DB data
|
||||
// dd($res);
|
||||
@ -398,11 +988,9 @@ class EmployeeServiceController extends AdminController
|
||||
}
|
||||
|
||||
//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)
|
||||
if(($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'enrollment') || ($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
|
||||
@ -423,7 +1011,7 @@ class EmployeeServiceController extends AdminController
|
||||
}
|
||||
|
||||
|
||||
if($file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'inception')
|
||||
if($file['action'] == 'dependent_addition' || $file['action'] == 'addition' || $file['action'] == 'inception' || $file['action'] == 'enrollment')
|
||||
{
|
||||
$res = check_dependent_conflict($family,$policy_terms,$file['action']);
|
||||
// dd($res);
|
||||
@ -494,7 +1082,7 @@ class EmployeeServiceController extends AdminController
|
||||
|
||||
$r = Jobs::addJob(['job_name' => 'employeesCorrectionProcess','payload' => ['file_id' => $file_id]]);
|
||||
}
|
||||
else //inception OR addition OR dependent addition
|
||||
else if ($file['action'] == 'inception' || $file['action'] == 'addition' || $file['action'] == 'dependent_addition')//inception OR addition OR dependent addition
|
||||
{
|
||||
//proceed next data level validation in JOB queue
|
||||
$job_details = new Jobs();
|
||||
@ -502,6 +1090,8 @@ class EmployeeServiceController extends AdminController
|
||||
// $jobWorker = new JobWorker();
|
||||
// JobWorker::processJob($r);
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
@ -65,10 +65,19 @@ if (!function_exists('check_excel_date_format')) {
|
||||
if($dateString == ""){ return array('status' => true); }
|
||||
$date = DateTime::createFromFormat('d-M-Y', $dateString);
|
||||
|
||||
if ($date !== false && !is_array($date::getLastErrors())) {
|
||||
if ($date && $date->format('d-M-Y') == $dateString) {
|
||||
return array('status' => true);
|
||||
} else {
|
||||
return array('status' => false,'error' => "wrong date format: Expected 'd-M-Y' and received $dateString");
|
||||
|
||||
$res = convert_string_to_date($dateString);
|
||||
if(!$res)
|
||||
{
|
||||
return array('status' => false,'error' => "wrong date format: Expected 'd-M-Y' and received $dateString");
|
||||
}
|
||||
else
|
||||
{
|
||||
return array('status' => true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -151,14 +160,22 @@ if(!function_exists('check_doc'))
|
||||
if($row['current_action'] != null && $row[7] != null && $row[7] != '' && in_array(strtoupper($row['current_action']), ['A','DA']))// check rule only of action column data available
|
||||
{
|
||||
// dd($policy_details);
|
||||
$date = new DateTime($row[7]);
|
||||
$startDate = new DateTime($policy_details[0]->policy_start_date);
|
||||
$endDate = new DateTime($policy_details[0]->policy_end_date);
|
||||
$dateString = convert_string_to_date($row[7]);
|
||||
if($dateString)
|
||||
{
|
||||
$date = new DateTime($dateString);
|
||||
$startDate = new DateTime($policy_details[0]->policy_start_date);
|
||||
$endDate = new DateTime($policy_details[0]->policy_end_date);
|
||||
|
||||
if ($date >= $startDate && $date <= $endDate) {
|
||||
return array('status' => true);
|
||||
} else {
|
||||
return array('status' => false,'error' => 'the given date of coverage is not between policy start/end date');
|
||||
if ($date >= $startDate && $date <= $endDate) {
|
||||
return array('status' => true);
|
||||
} else {
|
||||
return array('status' => false,'error' => 'the given date of coverage is not between policy start/end date');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return array('status' => false,'error' => 'date format error');
|
||||
}
|
||||
}
|
||||
else { return array('status' => true); } // in else condition no need to check rule, just return true
|
||||
@ -173,6 +190,7 @@ if(!function_exists('check_employee_band'))
|
||||
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA']))// check rule only of action column data available
|
||||
{
|
||||
$is_emp_band_needed = $slab_details['grid_master']['emp_band'];
|
||||
// $is_emp_band_needed = true;
|
||||
if($slab_details['grid_master']['ui_type'] == 1) //gpa rack rate 1
|
||||
{
|
||||
if($slab_details['slab_rates'][0]['si_or_bp'] == 3)
|
||||
@ -230,28 +248,31 @@ if(!function_exists('check_si'))
|
||||
// check age slab
|
||||
if(in_array(strtoupper($row['current_action']), ['I','A','DA']) && strtolower($row['5']) == 'self')
|
||||
{
|
||||
if($row[3] != null && DateTime::createFromFormat('d-M-Y', $row[3]) !== false)// dob
|
||||
if($row[3] != '' && $row[3] != null)// dob
|
||||
{
|
||||
$dob = change_date_format($row[3],'d-M-Y','Y-m-d');
|
||||
// echo $row[3].' - '.$dob;echo '<br>';
|
||||
$currentDateTime = new DateTime();//die();
|
||||
$passedDateTime = new DateTime($dob);
|
||||
$interval = $currentDateTime->diff($passedDateTime);
|
||||
if(!$is_age_slab_found)
|
||||
{
|
||||
if(isset($slab_value['age_from']) && isset($slab_value['age_to']))
|
||||
$dob = convert_string_to_date($row[3]);
|
||||
if($dob !== false)
|
||||
{
|
||||
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)
|
||||
// echo $row[3].' - '.$dob;echo '<br>';
|
||||
$currentDateTime = new DateTime();//die();
|
||||
$passedDateTime = new DateTime($dob);
|
||||
$interval = $currentDateTime->diff($passedDateTime);
|
||||
if(!$is_age_slab_found)
|
||||
{
|
||||
$is_age_slab_found = true;// send true if age slab found
|
||||
if(isset($slab_value['age_from']) && isset($slab_value['age_to']))
|
||||
{
|
||||
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
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -292,6 +313,7 @@ if(!function_exists('check_basic_pay'))
|
||||
if($row['current_action'] != null && in_array(strtoupper($row['current_action']), ['I','A','DA']))// check rule only of action column data available
|
||||
{
|
||||
$is_basic_pay_needed = $slab_details['grid_master']['basicpay'];
|
||||
// $is_basic_pay_needed = true;
|
||||
$slug = \Config\Services::slug();
|
||||
$relationship = $slug->slugify($row[5]);
|
||||
// echo $relationship;echo $row[7];
|
||||
@ -310,12 +332,13 @@ if (!function_exists('check_dob_diff'))
|
||||
{
|
||||
if($row[3] != null && $row[5] != null)
|
||||
{
|
||||
if (DateTime::createFromFormat('d-M-Y', $row[3]) === false)
|
||||
$dateString = convert_string_to_date($row[3]);
|
||||
if ($dateString === false)
|
||||
{
|
||||
return array('status' => false,'error' => 'Not a valid Date');
|
||||
}
|
||||
// return array('status' => true);
|
||||
$dob = change_date_format($row[3],'d-M-Y','Y-m-d');
|
||||
$dob = $dateString;
|
||||
// echo $row[3].' - '.$dob;echo '<br>';
|
||||
$currentDateTime = new DateTime();//die();
|
||||
// print_r($currentDateTime);
|
||||
@ -354,7 +377,7 @@ if (!function_exists('check_dob_diff'))
|
||||
|
||||
if (!function_exists('data_group_by_family'))
|
||||
{
|
||||
function data_group_by_family($emp_data,$data_source = 'excel')
|
||||
function data_group_by_family($emp_data,$data_source = 'excel',$action = '')
|
||||
{
|
||||
$result = [];
|
||||
// Kint::dump($emp_data);
|
||||
@ -364,6 +387,11 @@ if (!function_exists('data_group_by_family'))
|
||||
{
|
||||
if(!check_row_is_empty_or_null($row))
|
||||
{
|
||||
if($action == 'enrollment') //if action is enrollment transform current row into inception row, becoz we treat enrollment as inception
|
||||
{
|
||||
$row = transform_enrollment_row_to_inception_row($row);
|
||||
}
|
||||
|
||||
if(strtolower($row[5]) == 'self' && isset($result[$row[1]]))
|
||||
{
|
||||
array_unshift($result[$row[1]],$row);
|
||||
@ -474,7 +502,7 @@ if (!function_exists('name_and_empid_check_in_db'))
|
||||
{
|
||||
array_push($result['del'],$row[0]);
|
||||
}
|
||||
if(($current_action == 'inception' || $current_action == 'dependent_addition' || $current_action == 'addition') && count($res))
|
||||
if(($current_action == 'inception' || $current_action == 'dependent_addition' || $current_action == 'addition' || $current_action == 'enrollment') && count($res))
|
||||
{
|
||||
array_push($result['i'],$row[0]);
|
||||
}
|
||||
@ -842,7 +870,7 @@ if (!function_exists('transform_excel_data_to_db'))
|
||||
// $policy['date_of_exit'] = isset($memArr[16]) ? change_date_format($memArr[16],'d-M-Y','Y-m-d') : NULL;
|
||||
// $policy['reason_for_exit'] = $memArr[17];
|
||||
$policy['client_policy_id'] = $actionArr['policy_id'];
|
||||
$policy['date_coverage'] = isset($memArr[7]) ? change_date_format($memArr[7],'d-M-Y','Y-m-d') : NULL;;
|
||||
$policy['date_coverage'] = isset($memArr[7]) ? convert_string_to_date($memArr[7],'Y-m-d') : NULL;
|
||||
$policy['policy_end_date'] = null;
|
||||
$policy['days'] = null;
|
||||
$policy['premium'] = null;
|
||||
@ -852,11 +880,11 @@ if (!function_exists('transform_excel_data_to_db'))
|
||||
|
||||
$result['emp_code'] = $memArr[1];
|
||||
$result['name'] = $memArr[2];
|
||||
$result['dob'] = isset($memArr[3]) ? change_date_format($memArr[3],'d-M-Y','Y-m-d') : NULL;
|
||||
$result['dob'] = isset($memArr[3]) ? convert_string_to_date($memArr[3],'Y-m-d') : NULL;
|
||||
$result['gender'] = $memArr[4];
|
||||
$result['relationship'] = $memArr[5];
|
||||
$result['relationship_code'] = $memArr[5];
|
||||
$result['doj'] = isset($memArr[8]) ? change_date_format($memArr[8],'d-M-Y','Y-m-d') : NULL;
|
||||
$result['doj'] = isset($memArr[8]) ? convert_string_to_date($memArr[8],'Y-m-d') : NULL;
|
||||
$result['basic_pay'] = $memArr[9];
|
||||
$result['band'] = $memArr[10];
|
||||
$result['designation'] = $memArr[11];
|
||||
@ -926,7 +954,7 @@ if (!function_exists('premium_calculation_manager'))
|
||||
$slug = \Config\Services::slug();
|
||||
$grid_type = $emp_data['temp']['grid_id'];
|
||||
$temp_slab_rates = $emp_data['temp']['grid_type'] == 'primary' ? $slab_details['slab_rates'] : $slab_details['additional_slab_info']['slab_rates'];
|
||||
|
||||
|
||||
//if curent action is dependent addition OR addition then pull insurer master to set whether add one day from employee date of coverage
|
||||
if($emp_data['temp']['action'] == 'DA' || $emp_data['temp']['action'] == 'A')
|
||||
{
|
||||
@ -1534,4 +1562,57 @@ if(!function_exists('generate_family_relationship_array'))
|
||||
|
||||
return $family_relationships;
|
||||
}
|
||||
}
|
||||
|
||||
if(!function_exists('convert_string_to_date'))
|
||||
{
|
||||
function convert_string_to_date($dateString,$defaultFormat = 'd-M-Y')
|
||||
{
|
||||
$formats = [
|
||||
'd-M-Y', // 03-APr-2024
|
||||
'd M Y', // 03 Apr 2024
|
||||
'd/M/Y', // 03/Apr/2024
|
||||
'j M Y', // 3 Apr 2024
|
||||
'j/M/Y', // 3/Apr/2024
|
||||
'j-M-Y', // 3-Apr-2024
|
||||
'Y-m-d' // 2024-04-04
|
||||
];
|
||||
|
||||
foreach ($formats as $format) {
|
||||
$date = DateTime::createFromFormat($format, $dateString);
|
||||
if ($date && $date->format($format) == $dateString) {
|
||||
return $date->format($defaultFormat);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!function_exists('transform_enrollment_row_to_inception_row'))
|
||||
{
|
||||
function transform_enrollment_row_to_inception_row($row)
|
||||
{
|
||||
$res = [];
|
||||
$res[0] = $row[0]; // inception: sno (S.No) -> enrollment: sno (Sno)
|
||||
$res[1] = $row[1]; // inception: emp_id (EMP ID) -> enrollment: emp_code (Emp_Code)
|
||||
$res[2] = $row[2]; // inception: name_of_emp_dep (NAME OF EMP/DEP) -> enrollment: name (NAME OF EMP/DEP)
|
||||
$res[3] = $row[6]; // inception: dob (DOB) -> enrollment: dob (DOB)
|
||||
$res[4] = $row[4]; // inception: gender (Gender) -> enrollment: gender (Gender)
|
||||
$res[5] = $row[5]; // inception: relationship (RELATIONSHIP) -> enrollment: relationship (Relation)
|
||||
$res[6] = $row[9]; // inception: basic_cover_si (BASIC COVER SI) -> enrollment: basic_cover_si (SI)
|
||||
$res[7] = null; // inception: doc (Date of Coverage) -> No match in enrollment
|
||||
$res[8] = $row[3]; // inception: doj (DOJ) -> enrollment: doj (DOJ)
|
||||
$res[9] = $row[11]; // inception: basic_pay (Basic Pay) -> enrollment: basic_pay (Basic Pay)
|
||||
$res[10] = $row[10]; // inception: band_grade (Band/Grade) -> enrollment: band_grade (Grade)
|
||||
$res[11] = null; // inception: designation (Designation) -> No match in enrollment
|
||||
$res[12] = $row[8]; // inception: phone (Phone) -> enrollment: phone (Mobile)
|
||||
$res[13] = $row[7]; // inception: email (Email) -> enrollment: email (Email)
|
||||
$res[14] = 1; // inception: pre_existing_ailments (PRE EXISTING AILMENTS) -> No match in enrollment
|
||||
$res[15] = null; // inception: change_event (Change event) -> No match in enrollment
|
||||
$res[16] = null; // inception: date_of_exit (Date of exit) -> No match in enrollment
|
||||
$res[17] = null; // inception: reason_for_exit (Reason for exit) -> No match in enrollment
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user