diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index 70c1caf2..6e6bb123 100644 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -15,6 +15,7 @@ use App\Models\ClientPolicyModel; use App\Models\PolicesModel; use App\Models\FileModel; use App\Models\EmpEndorsementModel; +use App\Models\MessageModel; use App\Controllers\Jobs ; use App\Controllers\JobWorker ; @@ -33,6 +34,7 @@ class EmployeeServiceController extends AdminController protected $clientPolicyModel; 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'=>['I','A','DA'],'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,'params'=>['row']],'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]]; @@ -54,6 +56,7 @@ class EmployeeServiceController extends AdminController $this->clientPolicyModel = new ClientPolicyModel(); $this->policiesModel = new PolicesModel(); $this->empEndorsementModel = new EmpEndorsementModel(); + $this->messageModel = new MessageModel(); } public function excelFileFormatValidation($params) @@ -271,6 +274,9 @@ class EmployeeServiceController extends AdminController $failure_reason = ((json_encode($result))); $this->fileModel->where('id', $file_id)->set(['status' => $status,'reason' => $failure_reason])->update(); $this->myLogger->logme("error",'{file_id} uploaded failed',['file_id' => $file_id]); + + //set failure msg to pull notifications + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'failure')); } else //trigger next data validation via job queue server { @@ -448,8 +454,8 @@ class EmployeeServiceController extends AdminController $failure_reason = ((json_encode($result))); $this->fileModel->where('id', $file_id)->set(['status' => $status,'reason' => $failure_reason])->update(); $this->myLogger->logme("error",'{file_id} uploaded failed',['file_id' => $file_id]); - //return $this->respond(['dataStatus' => true,'code' => 404,'data' => 'file upload failed with errors'], 200); - // dd($failure_reason); + //set failure msg to pull notifications + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'failure')); } else if($file['action'] == 'deletion') { @@ -573,6 +579,8 @@ class EmployeeServiceController extends AdminController $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update(); $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]); + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success')); + } else if(isset($params['client_policy_id']))//handle data from enrollment to inception @@ -710,6 +718,9 @@ class EmployeeServiceController extends AdminController $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update(); $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]); + + //set success msg to pull notifications + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success')); return $endorsement_data; } @@ -770,6 +781,8 @@ class EmployeeServiceController extends AdminController } $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update(); $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]); + //set success msg to pull notifications + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success')); return true; } @@ -840,6 +853,8 @@ class EmployeeServiceController extends AdminController } $this->fileModel->where('id', $file_id)->set(['status' => 'success','reason' => ''])->update(); $this->myLogger->logme("error",'{file_id} uploaded success',['file_id' => $file_id]); + //set success msg to pull notifications + $this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success')); return true; } @@ -1090,6 +1105,54 @@ class EmployeeServiceController extends AdminController // --------------------------------------------------------------------------------- + public function getFileMetaDataByFileId($file_id, $status = 'success'){ + + $data = $this->fileModel + ->select('files.*, clients.client_name, clients.short_name, policies.name as policy_name') + ->join('clients', 'clients.id = files.client_id') + ->join('client_policy', 'client_policy.id = files.policy_id') + ->join('policies', 'policies.id = client_policy.policy_id') + ->where('files.id', $file_id) + ->first(); + + if($status == 'success') + { + $msg_title = 'File Upload Success'; + } + else if ($status == 'failure') + { + $msg_title = 'File Upload Failure'; + } + + $msg_txt = $data['client_name'] . ' - ' . $data['policy_name'] . ' - ' . ucfirst($data['action']); + $user_id = $data['created_by']; + $url = 'employee/upload'; + + return ['msg_txt' => $msg_txt, 'user_id' => $user_id, 'url' => $url, 'status' => $status, 'title' => $msg_title]; + } + + + public function setPullNotification($data){ + + + $array = ['message_text' => $data['msg_txt'], 'action_url' => $data['url'], 'msg_status' => $data['status'], 'msg_title' => $data['title']]; + $jsonEncodeData = json_encode($array); + + $msg_data = [ + + 'message_text' => $jsonEncodeData, + 'user_id' => $data['user_id'], + 'role_id' => NULL, + 'team_id' => NULL, + 'message_type' => '1to1', + ]; + + + $this->messageModel->insert($msg_data); + + + } + } diff --git a/app/Controllers/Jobs/SubJob.php b/app/Controllers/Jobs/SubJob.php index 35d9f8fd..c88920f2 100644 --- a/app/Controllers/Jobs/SubJob.php +++ b/app/Controllers/Jobs/SubJob.php @@ -6,10 +6,17 @@ use App\Controllers\PublicController; class SubJob extends PublicController { + protected $myLogger; + public function __construct() + { + $this->myLogger = \Config\Services::mylogger(); + } public function handle($payload) { + $log = \Config\Services::mylogger(); - $log->logme('error', 'handle called'); + $log->logme('error', 'insdie handle called'); + $this->myLogger->logme('error', 'common handle called'); return $payload['a'] - $payload['b']; } diff --git a/app/Views/layout/footer.php b/app/Views/layout/footer.php index 942035f4..aad41a29 100644 --- a/app/Views/layout/footer.php +++ b/app/Views/layout/footer.php @@ -145,10 +145,15 @@ function fetchMessages() { $.ajax({ - url: '', + url: '', method: 'GET', success: function(response) { + // $(document).ready(function() { + // $("#playMusic").get(0).play(); + // }); + + console.log('responce', response) let unreadCount = 0; @@ -262,7 +267,7 @@ fetchMessages(); - setInterval(fetchMessages, 5000); // Fetch messages every minute + setInterval(fetchMessages, 10000); // Fetch messages every minute }); diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 38d5ab45..3fedb248 100644 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -352,6 +352,9 @@ 0 +