diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 1252386c..1de6f7f5 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -114,6 +114,7 @@ $routes->group("/employee", ["filter" => "authMVC"], function($routes){
$routes->post("upload", "EmployeeController::employeesUplodWithEvents");
$routes->get("excel_error/(:any)", "EmployeeController::getExcelFileErrors/$1");
$routes->get("endorsement-list", "EmployeeController::endorsementList");
+ $routes->get("truncate/(:any)", "EmployeeController::truncateFileData/$1");
});
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index a3953889..a9c2d81a 100644
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -129,9 +129,9 @@ class EmployeeController extends AdminController
// print_r($this->request->getPost('policies'));
// print_r($this->request->getPost('upload-action-type'));
// die();
- $empServiceController = new EmployeeServiceController();
- $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']);
- dd($res);
+ // $empServiceController = new EmployeeServiceController();
+ // $res = $empServiceController->excelFileFormatValidation(['file_id' => '42']);
+ // dd($res);
// $empServiceController = new EmployeeServiceController();
// $res = $empServiceController->excelFileDataValidation(['file_id' => '38']);
@@ -827,6 +827,68 @@ class EmployeeController extends AdminController
}
+
+ public function truncateFileData() //truncateFileDataIn DB (de activate rows)
+ {
+ $file_id = $this->request->uri->getSegment(3);
+ // $file_id = 112;
+ $file = $this->fileModel->find($file_id);
+ // $file['action'] = 'si_enhancement';
+ // $result = [];
+ // !dd($file);
+ if($file['action'] == 'inception' || $file['action'] == 'dependent_addition' || $file['action'] == 'addition')
+ {
+ $result = $this->employeeModel->getEmpListByFileId(file_id: $file_id,emp_status: ['active'],policy_status:['active']);
+ // ~dd($result);
+ if(count($result))
+ {
+ return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200);
+ }
+ else
+ {
+
+ //update emp and emp plocies
+ $db = db_connect();
+ $query = "UPDATE employees JOIN employee_polices ON employees.id = employee_polices.employee_id and employees.file_id = $file_id SET employees.emp_status = 'truncated', employee_polices.status = 'truncated', employees.is_active = 0,employee_polices.is_active = 0 WHERE employees.file_id = $file_id";
+ $db->query($query);
+ $affectedRows = $db->affectedRows();
+ // $affectedRows = 10;
+
+ //update file status
+ $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
+
+ return $this->respond(['dataStatus' => true,'code' => 200,'data' => round($affectedRows/2)], 200);
+ }
+ }
+ else if($file['action'] == 'si_enhancement' || $file['action'] == 'correction' || $file['action'] == 'deletion')
+ {
+ $res = $this->empEndorsementModel->select(['count(id) as count'])
+ ->where('emp_endorsement.file_id',$file_id)
+ ->groupStart()
+ ->where('emp_endorsement.endorsement_id is not null')
+ ->orwhereIn('emp_endorsement.status',['complete'])
+ ->groupEnd()
+ ->get()
+ ->getResult();
+ // print_r($this->empEndorsementModel->getLastQuery());
+ // echo $res[0]->count;die();
+ if($res[0]->count == 0)
+ {
+ //update truncated status to db
+ $this->empEndorsementModel->where('file_id',$file_id)
+ ->set(['status' => 'truncated'])
+ ->update();
+ //update file status
+ $this->fileModel->where('id', $file_id)->set(['status' => 'truncated'])->update();
+ return $this->respond(['dataStatus' => true,'code' => 200,'data' => 'success'], 200);
+ }
+ else
+ {
+ return $this->respond(['dataStatus' => false,'code' => 404,'message' => 'File data already processed'], 200);
+ }
+ }
+
+ }
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index ac2b2c86..ab05a638 100644
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -145,7 +145,7 @@ class EmployeeServiceController extends AdminController
$policy_terms = json_decode($policy_terms[0]->policy_terms);
$policy_terms = (array) $policy_terms;// convert obj to array
//
- dd($policy_terms);
+ // dd($policy_terms);
//get policy slab rates
$slab_details = $this->policiesModel->getPolicySlabRatesForEmpOnboard($file['policy_id'],$file['client_id']);
@@ -621,14 +621,14 @@ class EmployeeServiceController extends AdminController
$group_key = rand(100000, 999999);
//for emp table
- $this->empEndorsementModel->save(['pk' => (int)$data['emp_id'],'emp_code' => $data['emp_code'],'table_name' => 'employees','actions' => 'd','name' => $data['name'],'field_name' => 'emp_status','old_value' => $data['emp_status'],'new_value' => 'deactivate','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key]);
+ $this->empEndorsementModel->save(['pk' => (int)$data['emp_id'],'emp_code' => $data['emp_code'],'table_name' => 'employees','actions' => 'd','name' => $data['name'],'field_name' => 'emp_status','old_value' => $data['emp_status'],'new_value' => 'deactivate','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id']]);
// dd( $this->empEndorsementModel->getLastQuery());
// $this->empEndorsementModel->save(['pk' => (int)$data['emp_id'],'emp_code' => $data['emp_code'],'table_name' => 'employees','actions' => 'd','name' => $data['name'],'field_name' => 'change_event','old_value' => $data['change_event'],'new_value' => 'deletion','created_by' => $file['created_by'],'remarks' => 'general deletion']);
// for employee policy table
- $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'date_of_exit','old_value' => $data['date_of_exit'],'new_value' => change_date_format($row[4],'d-M-Y','Y-m-d'),'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key]);
- $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'reason_for_exit','old_value' => $data['reason_for_exit'],'new_value' => $row[5],'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key]);
- $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'status','old_value' => $data['status'],'new_value' => 'deactivate','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key]);
+ $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'date_of_exit','old_value' => $data['date_of_exit'],'new_value' => change_date_format($row[4],'d-M-Y','Y-m-d'),'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id']]);
+ $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'reason_for_exit','old_value' => $data['reason_for_exit'],'new_value' => $row[5],'created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id']]);
+ $this->empEndorsementModel->save(['pk' => (int)$data['emp_policy_id'],'emp_code' => $data['emp_code'],'table_name' => 'employee_polices','actions' => 'd','name' => $data['name'],'field_name' => 'status','old_value' => $data['status'],'new_value' => 'deactivate','created_by' => $file['created_by'],'remarks' => 'general deletion','group_key' => $group_key,'file_id' => $file['id']]);
};
//iterate each row
foreach ($excel_data as $col_key => $row)
@@ -738,7 +738,7 @@ class EmployeeServiceController extends AdminController
if(!count($existing_endorsements))
{
$group_key = rand(100000, 999999);
- $this->empEndorsementModel->save(['pk' => (int)$employee['id'],'emp_code' => $employee['emp_code'],'table_name' => 'employees','actions' => 'c','name' => $employee['name'],'field_name' => $field_name,'old_value' => $employee[ $field_name ],'new_value' => $field_value,'created_by' => $file['created_by'],'remarks' => $row[7],'date_of_correction' => change_date_format($row[5],'d-M-Y','Y-m-d'),'group_key' => $group_key]);
+ $this->empEndorsementModel->save(['pk' => (int)$employee['id'],'emp_code' => $employee['emp_code'],'table_name' => 'employees','actions' => 'c','name' => $employee['name'],'field_name' => $field_name,'old_value' => $employee[ $field_name ],'new_value' => $field_value,'created_by' => $file['created_by'],'remarks' => $row[7],'date_of_correction' => change_date_format($row[5],'d-M-Y','Y-m-d'),'group_key' => $group_key,'file_id' => $file['id']]);
}
@@ -803,9 +803,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]);
- $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]);
- $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]);
+ $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']]);
break;
}
}
diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index 6ed64b27..44ddf180 100644
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -844,7 +844,7 @@ if (!function_exists('premium_calculation_manager'))
$emp_data['policy_details']['policy_end_date'] = $policy_terms['policy_end_date'];
$emp_data['policy_details']['days'] = calculate_days_bw_dates($policy_terms['policy_start_date'],$policy_terms['policy_end_date'])->days;
$emp_data['policy_details']['premium'] = $slab_value['premium'];
- $emp_data['policy_details']['rata_premimum'] = calculate_pro_rata_premimum($slab_value['premium'],$emp_data['policy_details']['days'];
+ $emp_data['policy_details']['rata_premimum'] = calculate_pro_rata_premimum($slab_value['premium'],$emp_data['policy_details']['days']);
$emp_data['policy_details']['gst'] = ((float) number_format(($emp_data['policy_details']['rata_premimum'] * (18/100)),2,'.',''));
break;
diff --git a/app/Models/EmpEndorsementModel.php b/app/Models/EmpEndorsementModel.php
index 8be6c38c..ab20b712 100644
--- a/app/Models/EmpEndorsementModel.php
+++ b/app/Models/EmpEndorsementModel.php
@@ -25,7 +25,8 @@ class EmpEndorsementModel extends Model
"created_by",
"updated_by",
"is_active",
- "remarks"
+ "remarks",
+ "file_id"
];
// Callbacks
diff --git a/app/Models/EmployeeModel.php b/app/Models/EmployeeModel.php
index 50b0eadf..fe534ebf 100644
--- a/app/Models/EmployeeModel.php
+++ b/app/Models/EmployeeModel.php
@@ -139,4 +139,30 @@ class EmployeeModel extends Model
return $this->where('emp_code',$arr['emp_code'])->where('name',$arr['name'])->where('client_id', $arr['client_id'])->first();
}
+
+ public function getEmpListByFileId(int $file_id,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'])
+ ->join('employee_polices', 'employee_polices.employee_id = employees.id')
+ ->where('employees.is_active',1)
+ ->where('employees.file_id',$file_id)
+ ->where('employee_polices.is_active',1)
+ // ->where('employee_polices.uhid is not null')
+ // ->where('employee_polices.tpa_id is not null')
+ ->groupStart()
+ ->orWhere('employee_polices.uhid is not null')
+ ->orWhere('employee_polices.tpa_id is not null')
+ ->groupEnd()
+ ->when(count($emp_status), function($query) use ($emp_status){
+ return $query->whereIn('employees.emp_status', $emp_status);
+ })
+ ->when(count($policy_status), function($query) use ($policy_status){
+ return $query->whereIn('employee_polices.status', $policy_status);
+ })
+ ->findAll();
+ // ~dd($this->db->getLastQuery());
+
+ return ($result);
+ }
+
}
diff --git a/app/Views/file_list.php b/app/Views/file_list.php
index 0eb25a30..a3bf934f 100644
--- a/app/Views/file_list.php
+++ b/app/Views/file_list.php
@@ -86,6 +86,11 @@
data-target="#full-width-modal-emp-list" class="dropdown-item view_emp_list"
href="#">View
+
+ Truncate
+
@@ -225,6 +230,80 @@ $('body').on('click', '.upload_button', function() {
$('#file_upload_actions').val(fileId.action)
})
+$('body').on('click', '.truncate', function() {
+ event.preventDefault();
+ // console.log(event);
+ var fileId = JSON.parse(this.getAttribute('data-id'));
+ // alert('Hi' + fileId);
+
+ Swal.fire({
+ title: "Do you want to truncate data from uploaded file?",
+ showCancelButton: true,
+ confirmButtonText: "Delete",
+ confirmButtonColor: "#ff3333",
+ }).then((result) => {
+
+ console.log(result);
+ if (result.isConfirmed) {
+ $('.loader').fadeIn();
+ $('.loader-mask').fadeIn();
+ var apiURL = '' + 'employee/truncate/' + fileId;
+ $.ajax({
+ url: apiURL,
+ method: 'GET',
+ headers: {
+ // "Content-Type": "application/json",
+ "X-Requested-With": "XMLHttpRequest"
+ },
+ success: function(response) {
+ // console.log(response.code);
+ // console.log(response.dataStatus);
+ // console.log(response.data);
+ setTimeout(function() {
+ $('.loader').fadeOut();
+ $('.loader-mask').delay(350).fadeOut('slow');
+ }, 1000);
+
+
+ if (response.code === 200 && response.dataStatus === true && response.data !== "") {
+ Swal.fire({
+ title: "Deleted!",
+ // text: "Data from truncated",
+ icon: "success"
+ });
+ } else if (response.code === 404 && response.dataStatus === false) {
+ console.error('no data found', response);
+ Swal.fire({
+ title: "Failed!",
+ text: response.message,
+ icon: "error"
+ });
+ } else {
+
+ Swal.fire({
+ title: "Failed!",
+ text: 'Something went wrong! Try later',
+ icon: "error"
+ });
+ }
+ },
+ error: function(xhr, status, error) {
+ setTimeout(function() {
+ $('.loader').fadeOut();
+ $('.loader-mask').delay(350).fadeOut('slow');
+ }, 1000);
+
+ console.error('Error fetching data from API:', error);
+ toastr.error('Something went wrong! Try later', 'Error');
+ }
+ });
+
+ }
+ });
+
+
+})
+
$('#uploadForm').submit(function() {