diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 1461a8d5..2f5af3e2 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -17,7 +17,7 @@ $routes->get('/logout', 'LoginController::logout'); $routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse'); $routes->get('/auth/google', 'LoginController::initiateGoogleOAuth'); $routes->get('/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus'); -$routes->get('download-e-card/(:segment)/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1/$2'); +$routes->get('download-e-card/(:segment)', 'EmployeeController::generateIDCardForEmployee/$1'); diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php index 80095b64..e2e50f9f 100644 --- a/app/Controllers/EmpDataServiceController.php +++ b/app/Controllers/EmpDataServiceController.php @@ -8,6 +8,7 @@ use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; use App\Helpers\DepositHelper; +use App\Helpers\MailHelper; use App\Models\EmployeeModel; @@ -644,7 +645,10 @@ class EmpDataServiceController extends BaseController ]; $this->cashDepositCalculationForInception($depositeData); - + + + $this->sendMailForDownloadingECard($empty_emp_tpa_uh_ids); + } @@ -1586,4 +1590,69 @@ class EmpDataServiceController extends BaseController return true; } + + + public function sendMailForDownloadingECard(array $ids) + { + try { + foreach ($ids as $key => $id) { + + $get_emp_email_and_other_details = $this->employeePolicyModel + ->select('employee_polices.client_policy_id, employees.emp_code, employees.email_corporate, employees.name, employee_polices.rand_string, employee_polices.tpa_id') + ->join('employees', 'employees.id = employee_polices.employee_id') + ->where('employees.emp_status', 'active') + ->where('employees.is_active', '1') + ->where('employee_polices.status', 'active') + ->where('employee_polices.is_active', '1') + ->where('employee_polices.id', $id)->first(); + + if ($get_emp_email_and_other_details != null && $get_emp_email_and_other_details != "") { + + $name = $get_emp_email_and_other_details['name']; + $email = $get_emp_email_and_other_details['email_corporate']; + $rand_string = $get_emp_email_and_other_details['rand_string']; + $tpa_id = $get_emp_email_and_other_details['tpa_id']; + $link = generate_download_link($rand_string); + $subject = 'Download E-Card'; + + $html = '
+Dear ' .$name .',
+Your Policy( ' .$tpa_id .' ) has been successfully created. Please click the link below to download the insurance card:
+ +Thank you,
+ '; + + + + if ($email != null && $email != "") { + + $mail_data = [ + 'mail' => $email, + 'subject' => $subject, + 'message' => $html + ]; + + // dd($mail_data); + + $result = Mailhelper::send_email($mail_data); + $decoded_result = (array) json_decode($result); + + $data = [ + 'status' => $decoded_result['status'], + 'message'=>$decoded_result['message'] ?? 'Internal Server Error', + 'email' => $decoded_result['data'] + ]; + + // dd($data); + $this->myLogger->logme('error', 'status : {status}, message : {message}, email : {email}', $data); + } + } + } + return true; // Email(s) sent successfully + } catch (\Exception $e) { + // Log the error + $this->myLogger->log('error', 'Error occurred while sending email: ' . $e->getMessage()); + return false; // Email(s) sending failed + } + } } diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index bfcc61d9..f5d79461 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -249,13 +249,13 @@ class EmployeeController extends AdminController { $file_id = $this->request->uri->getSegment(3); $empServiceController = new EmployeeServiceController(); - $result['file_id'] = $file_id; // Render views and capture output $result = $empServiceController->getExcelErrorData($file_id); if ($result != 0) { + $result['file_id'] = $file_id; echo view('excel_errors', $result); } else if ($result == 0) { @@ -723,206 +723,170 @@ class EmployeeController extends AdminController } - public function downloadFullExcelErrorFile($file_id = 137, $rowIndex = 1, $colIndex = 1) + public function downloadFullExcelErrorFile($file_id, $rowIndex = 1, $colIndex = 1) { // Get file data from the database $file_data = $this->fileModel->find($file_id); - $error = json_decode($file_data['reason']); - // echo '';
- // print_r($error); die;
- // dd($error);
-
- // Check if the file exists
- if (!$file_data) {
- $error_message = "File not found";
- $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
- return $error_message;
- }
-
- $fileName = $file_data['file_name'];
- $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
-
- // Check if the file exists
- if (!file_exists($filePath)) {
- $error_message = "File not found";
- $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
- return $error_message;
- }
-
- // Load the Excel file
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
- $sheet = $spreadsheet->getActiveSheet();
-
- // echo '';
-
- foreach ($error->error_data as $index => $error_data) {
-
- $rowIndex = $index+1;
-
- if( $error->error_type == 1 ){
-
- foreach ($error_data as $key => $value) {
-
- $colIndex = $value->col_idx+1;
-
- $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+ $error = json_decode($file_data['reason']);
+ // echo '';
+ // print_r($error); die;
+ // dd($error);
- $newValue = implode(', ',$value->error);
- $val = $originalValue . ' ( ' . $newValue . ' )';
- $sheet->setCellValue([$colIndex, $rowIndex], $val);
-
- $style = [
- 'fill' => [
- 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
- 'startColor' => ['rgb' => 'ffad99'] // Red color
- ]
- ];
-
- $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-
- }
- }else if( $error->error_type == 2){
-
-
- foreach ($error_data as $key => $value) {
-
-
- $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
-
- $newValue = implode(', ',$value->error);
- $val = $originalValue . ' ( ' . $newValue . ' )';
- $sheet->setCellValue([$colIndex, $rowIndex], $val);
-
- $style = [
- 'fill' => [
- 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
- 'startColor' => ['rgb' => 'ffad99'] // Red color
- ]
- ];
- $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
-
- }
-
+ // Check if the file exists
+ if (!$file_data) {
+ $error_message = "File not found";
+ $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+ return $error_message;
}
+
+ $fileName = $file_data['file_name'];
+ $filePath = WRITEPATH . '/uploads/excel/' . $fileName;
+
+ // Check if the file exists
+ if (!file_exists($filePath)) {
+ $error_message = "File not found";
+ $this->myLogger->logme('error', $error_message . ' for file id ' . $file_id);
+ return $error_message;
+ }
+
+ // Load the Excel file
+ $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
+ $sheet = $spreadsheet->getActiveSheet();
- }
-
+ // echo '';
-
- // Create a new filename for the modified Excel file
- $newFileName = 'modified_' . $fileName;
-
- // Save the modified Excel file to a new location
- $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
- $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
- $writer->save($newFilePath);
-
- // Set headers to force download
- $response = service('response');
- $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
- $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
- $response->setHeader('Cache-Control', 'max-age=0');
- $response->setHeader('Content-Length', filesize($newFilePath));
- $response->setBody(file_get_contents($newFilePath));
-
- // Delete the temporary file
- unlink($newFilePath);
-
- // Return the response
- return $response;
+ foreach ($error->error_data as $index => $error_data) {
+
+ $rowIndex = $index+1;
+
+ if( $error->error_type == 1 ){
+
+ foreach ($error_data as $key => $value) {
+
+ $colIndex = $value->col_idx+1;
+
+ $originalValue = $sheet->getCell([$colIndex, $rowIndex])->getValue();
+
+ $newValue = implode(', ',$value->error);
+ $val = $originalValue . ' ( ' . $newValue . ' )';
+ $sheet->setCellValue([$colIndex, $rowIndex], $val);
+
+ $style = [
+ 'fill' => [
+ 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+ 'startColor' => ['rgb' => 'ffad99'] // Red color
+ ]
+ ];
+
+ $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+
+ }
+ }else if( $error->error_type == 2){
+
+
+ foreach ($error_data as $key => $value) {
+
+
+ $originalValue = $sheet->getCell([1, $rowIndex])->getValue();
+
+ $newValue = implode(', ',$value->error);
+ $val = $originalValue . ' ( ' . $newValue . ' )';
+ $sheet->setCellValue([$colIndex, $rowIndex], $val);
+
+ $style = [
+ 'fill' => [
+ 'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
+ 'startColor' => ['rgb' => 'ffad99'] // Red color
+ ]
+ ];
+ $sheet->getStyle([$colIndex, $rowIndex])->applyFromArray($style);
+
+ }
+
+ }
+
+ }
+
+
+
+ // Create a new filename for the modified Excel file
+ $newFileName = 'error_with_highlight_' . $fileName;
+
+ // Save the modified Excel file to a new location
+ $newFilePath = WRITEPATH . '/uploads/excel/' . $newFileName;
+ $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+ $writer->save($newFilePath);
+
+ // Set headers to force download
+ $response = service('response');
+ $response->setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+ $response->setHeader('Content-Disposition', 'attachment;filename="' . $newFileName . '"');
+ $response->setHeader('Cache-Control', 'max-age=0');
+ $response->setHeader('Content-Length', filesize($newFilePath));
+ $response->setBody(file_get_contents($newFilePath));
+
+ // Delete the temporary file
+ unlink($newFilePath);
+
+ // Return the response
+ return $response;
}
-
- public function generateIDCardForEmployee($emp_code, $client_policy_id)
- {
- $dompdf = new Dompdf();
+
+ public function generateIDCardForEmployee($rand_string)
+ {
+ $get_emp_code_and_client_policy_id = $this->employeePolicyModel
+ ->select('employee_polices.client_policy_id, employees.emp_code')
+ ->join('employees', 'employees.id = employee_polices.employee_id')
+ ->where('employees.emp_status', 'active')
+ ->where('employees.is_active', '1')
+ ->where('employee_polices.status', 'active')
+ ->where('employee_polices.is_active', '1')
+ ->where('employee_polices.rand_string', $rand_string)->first();
+
+ if($get_emp_code_and_client_policy_id == null || $get_emp_code_and_client_policy_id == ""){
+
+ $data['message'] = 'Record Not Found';
+ return view('errors/404', $data);
+
+ }
+
+ $client_policy_id = $get_emp_code_and_client_policy_id['client_policy_id'];
+ $emp_code = $get_emp_code_and_client_policy_id['emp_code'];
$data['data'] = $this->employeePolicyModel->getECardDataUsingMd5($client_policy_id, $emp_code);
- // $this->loadLayout('id_card_view', $data); exit;
-
+ // $this->loadLayout('id_card_view', $data);exit;
$html = view('id_card_view', $data);
- // $html = str_replace('', '', $html);
+ $dompdf = new Dompdf();
$dompdf->loadHtml($html);
-
- // (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
-
- // Render the HTML as PDF
$dompdf->render();
- // Output the generated PDF to Browser
- $dompdf->stream();
-
+ $filename = 'ECard.pdf'; // Default filename
+
+ foreach ($data['data'] as $key => $value) {
+
+ if ($value['relationship'] == "Self") {
+
+ $filename = $value['tpa_id']; // Update filename if relationship is "Self"
+
+ } elseif (!empty($value['tpa_id']) && $filename == 'ECard.pdf') {
+
+ $filename = $value['tpa_id'];
+ }
+ }
+
+ $dompdf->stream($filename);
}
public function viewECard()
{
- $this->loadLayout('id_card_view');
+
+ $this->loadLayout('id_card_view');
+
}
-
- 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/Helpers/utility_helper.php b/app/Helpers/utility_helper.php
index 2ac23d6f..7e74234c 100644
--- a/app/Helpers/utility_helper.php
+++ b/app/Helpers/utility_helper.php
@@ -132,5 +132,41 @@ if(!function_exists('check_string_date'))
+if (!function_exists('generate_download_link')) {
+
+ function generate_download_link($rand_string) {
+
+ // Generate the link using provided emp_code and client_policy_id
+ $link = htmlspecialchars(base_url('download-e-card/' . $rand_string));
+
+ // Return the link wrapped in anchor tag
+ // return 'Click To ';
+ return $link;
+ }
+}
+
+
+
+if (!function_exists('generate_random_alphanumeric')) {
+ function generate_random_alphanumeric($length = 6) {
+ $random_string = '';
+ for ($i = 0; $i < $length; $i++) {
+ $random_ascii = rand(0, 61);
+ if ($random_ascii < 10) {
+ $random_character = chr($random_ascii + 48);
+ } elseif ($random_ascii < 36) {
+ $random_character = chr($random_ascii + 55);
+ } else {
+ $random_character = chr($random_ascii + 61);
+ }
+ $random_string .= $random_character;
+ }
+ return $random_string;
+ }
+}
+
+
+
+
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index 3198d873..1e67186f 100644
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -30,12 +30,13 @@ class EmployeePolicyModel extends Model
"created_by",
"updated_by",
"updated_at",
+ "rand_string",
"is_active",
];
// Callbacks
protected $allowCallbacks = true;
- protected $beforeInsert = ["checkAndADDCreatedByValue"];
+ protected $beforeInsert = ["checkAndADDCreatedByValue", "addRandomNumberBeforeInsert"];
protected $afterInsert = [];
protected $beforeUpdate = ["checkAndUpdateUpdatedByValue"];
protected $afterUpdate = [];
@@ -66,6 +67,14 @@ class EmployeePolicyModel extends Model
return $data;
}
+ protected function addRandomNumberBeforeInsert(array $data)
+ {
+ $random_number = generate_random_alphanumeric();
+ $data['data']['rand_string'] = $random_number;
+
+ return $data;
+ }
+
// -----------------------------------------------------------------------------------------------------
public function getEmployeePolicy($client_id,$policy_id,$status)
{
@@ -175,66 +184,66 @@ class EmployeePolicyModel extends Model
public function getCorrectionEmployeesDataForExportExcel($ref_data)
{
- $client_id = $ref_data['client_id'];
- $client_policy_id = $ref_data['client_policy_id'];
- $insurer_or_tpa = $ref_data['insurer_or_tpa'];
+ $client_id = $ref_data['client_id'];
+ $client_policy_id = $ref_data['client_policy_id'];
+ $insurer_or_tpa = $ref_data['insurer_or_tpa'];
- $sql = "
- SELECT DISTINCT
- emp_endorsement.id,
- emp_endorsement.pk,
- emp_endorsement.emp_code,
- emp_endorsement.endorsement_id,
- emp_endorsement.old_value,
- emp_endorsement.new_value,
- emp_endorsement.field_name,
- emp_endorsement.remarks,
- emp_endorsement.actions,
- employees.id AS primaryKey,
- employees.name AS emp_name,
- employees.dob AS emp_dob,
- employees.gender AS emp_gender,
- employees.client_id AS emp_client_id,
- 'Has Define' AS emp_type,
- employee_polices.uhid,
- employees.relationship_code,
- batch_data.emp_policy_id,
- batch_data.bl AS batch_list_batch_code,
- batch_data.bf AS batch_files_batch_code
+ $sql = "
+ SELECT DISTINCT
+ emp_endorsement.id,
+ emp_endorsement.pk,
+ emp_endorsement.emp_code,
+ emp_endorsement.endorsement_id,
+ emp_endorsement.old_value,
+ emp_endorsement.new_value,
+ emp_endorsement.field_name,
+ emp_endorsement.remarks,
+ emp_endorsement.actions,
+ employees.id AS primaryKey,
+ employees.name AS emp_name,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employees.client_id AS emp_client_id,
+ 'Has Define' AS emp_type,
+ employee_polices.uhid,
+ employees.relationship_code,
+ batch_data.emp_policy_id,
+ batch_data.bl AS batch_list_batch_code,
+ batch_data.bf AS batch_files_batch_code
- FROM
- emp_endorsement
- LEFT JOIN
- employees ON employees.id = emp_endorsement.pk
- LEFT JOIN
- employee_polices ON employees.id = employee_polices.employee_id
- LEFT JOIN (
- SELECT batch_list.emp_policy_id,
- batch_list.batch_code AS bl,
- batch_files.batch_code AS bf
FROM
- batch_files
+ emp_endorsement
+ LEFT JOIN
+ employees ON employees.id = emp_endorsement.pk
LEFT JOIN
- batch_list ON batch_files.batch_code = batch_list.batch_code
- WHERE batch_files.event_type = 'correction'
- AND batch_files.actions = 'export'
- AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
- ) AS batch_data ON emp_endorsement.pk = batch_data.emp_policy_id
+ employee_polices ON employees.id = employee_polices.employee_id
+ LEFT JOIN (
+ SELECT batch_list.emp_policy_id,
+ batch_list.batch_code AS bl,
+ batch_files.batch_code AS bf
+ FROM
+ batch_files
+ LEFT JOIN
+ batch_list ON batch_files.batch_code = batch_list.batch_code
+ WHERE batch_files.event_type = 'correction'
+ AND batch_files.actions = 'export'
+ AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
+ ) AS batch_data ON emp_endorsement.pk = batch_data.emp_policy_id
- WHERE batch_data.bf IS NULL
- AND batch_data.bl IS NULL
- AND employees.client_id = '{$client_id}'
- AND employee_polices.client_policy_id = '{$client_policy_id}'
- AND emp_endorsement.actions = 'c'
- AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')";
+ WHERE batch_data.bf IS NULL
+ AND batch_data.bl IS NULL
+ AND employees.client_id = '{$client_id}'
+ AND employee_polices.client_policy_id = '{$client_policy_id}'
+ AND emp_endorsement.actions = 'c'
+ AND (emp_endorsement.endorsement_id IS NULL OR emp_endorsement.endorsement_id = '')";
- // Execute the raw query
- $query = $this->db->query($sql);
+ // Execute the raw query
+ $query = $this->db->query($sql);
- // Get the result set
- $result = $query->getResult();
+ // Get the result set
+ $result = $query->getResult();
- return $result;
+ return $result;
}
@@ -242,106 +251,106 @@ class EmployeePolicyModel extends Model
public function getSIEnhancementEmployeesDataForExportExcel($ref_data)
{
- $client_id = $ref_data['client_id'];
- $client_policy_id = $ref_data['client_policy_id'];
- $insurer_or_tpa = $ref_data['insurer_or_tpa'];
+ $client_id = $ref_data['client_id'];
+ $client_policy_id = $ref_data['client_policy_id'];
+ $insurer_or_tpa = $ref_data['insurer_or_tpa'];
- $query = $this->db->query("
- SELECT
- a.id as endorsement_primarykey,
- employee_polices.id AS primaryKey,
- employees.name AS emp_name,
- employees.emp_code AS emp_code,
- employees.dob AS emp_dob,
- employees.gender AS emp_gender,
- employees.relationship_code AS emp_relationship_code,
- 'Has Define' AS emp_type,
- employee_polices.uhid AS risk_id,
- employee_polices.pre_existing_alignments,
- employee_polices.policy_end_date,
- employee_polices.basic_cover_si as old_basic_cover_si,
- employee_polices.rata_premimum as old_si_premium,
- batch_data.emp_policy_id,
- batch_data.bl AS batch_list_batch_code,
- batch_data.bf AS batch_files_batch_code,
- sidata.new_basic_cover_si,
- sidata.new_si_premium,
- sidata.date_of_coverage,
- DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days,
- sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium,
- ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum,
- ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst,
- ((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total
-
- FROM
- emp_endorsement a
- LEFT JOIN
- employees ON employees.emp_code = a.emp_code
- LEFT JOIN
- employee_polices ON employees.id = employee_polices.employee_id
- LEFT JOIN (
+ $query = $this->db->query("
SELECT
- aa.emp_code,
- aa.new_value as 'new_basic_cover_si',
- bb.new_value as 'new_si_premium',
- cc.new_value as 'date_of_coverage'
- FROM (
- SELECT
- a1.emp_code,
- a1.field_name,
- a1.new_value
- FROM
- emp_endorsement as a1
- WHERE
- a1.field_name = 'basic_cover_si'
- ) aa
- LEFT JOIN (
- SELECT
- b1.emp_code,
- b1.field_name,
- b1.new_value
- FROM
- emp_endorsement as b1
- WHERE
- b1.field_name = 'premium'
- ) bb ON aa.emp_code = bb.emp_code
- LEFT JOIN (
- SELECT
- c1.emp_code,
- c1.field_name,
- c1.new_value
- FROM
- emp_endorsement as c1
- WHERE
- c1.field_name = 'si_enhancement_date'
- ) cc ON aa.emp_code = cc.emp_code
- ) as sidata ON a.emp_code = sidata.emp_code
- LEFT JOIN (
- SELECT DISTINCT
- batch_list.emp_policy_id,
- batch_list.batch_code AS bl,
- batch_files.batch_code AS bf
- FROM
- batch_files
- LEFT JOIN
- batch_list ON batch_files.batch_code = batch_list.batch_code
- WHERE
- batch_files.event_type = 'si_enhancement'
- AND batch_files.actions = 'export'
- AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
- ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
- WHERE
- batch_data.bf IS NULL
- AND batch_data.bl IS NULL
- AND employee_polices.client_policy_id = '{$client_policy_id}'
- AND employee_polices.is_active = '1'
- AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
- AND a.field_name = 'si_enhancement_date'
- ");
+ a.id as endorsement_primarykey,
+ employee_polices.id AS primaryKey,
+ employees.name AS emp_name,
+ employees.emp_code AS emp_code,
+ employees.dob AS emp_dob,
+ employees.gender AS emp_gender,
+ employees.relationship_code AS emp_relationship_code,
+ 'Has Define' AS emp_type,
+ employee_polices.uhid AS risk_id,
+ employee_polices.pre_existing_alignments,
+ employee_polices.policy_end_date,
+ employee_polices.basic_cover_si as old_basic_cover_si,
+ employee_polices.rata_premimum as old_si_premium,
+ batch_data.emp_policy_id,
+ batch_data.bl AS batch_list_batch_code,
+ batch_data.bf AS batch_files_batch_code,
+ sidata.new_basic_cover_si,
+ sidata.new_si_premium,
+ sidata.date_of_coverage,
+ DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1 AS no_of_days,
+ sidata.new_si_premium - employee_polices.rata_premimum AS difference_premium,
+ ROUND((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365, 2) AS pro_rata_premimum,
+ ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS gst,
+ ((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) + ROUND(((sidata.new_si_premium - employee_polices.rata_premimum) * (DATEDIFF(employee_polices.policy_end_date, sidata.date_of_coverage) + 1) / 365) * 0.18, 2) AS total
- // Get the result set
- $results = $query->getResult();
- return $results;
+ FROM
+ emp_endorsement a
+ LEFT JOIN
+ employees ON employees.emp_code = a.emp_code
+ LEFT JOIN
+ employee_polices ON employees.id = employee_polices.employee_id
+ LEFT JOIN (
+ SELECT
+ aa.emp_code,
+ aa.new_value as 'new_basic_cover_si',
+ bb.new_value as 'new_si_premium',
+ cc.new_value as 'date_of_coverage'
+ FROM (
+ SELECT
+ a1.emp_code,
+ a1.field_name,
+ a1.new_value
+ FROM
+ emp_endorsement as a1
+ WHERE
+ a1.field_name = 'basic_cover_si'
+ ) aa
+ LEFT JOIN (
+ SELECT
+ b1.emp_code,
+ b1.field_name,
+ b1.new_value
+ FROM
+ emp_endorsement as b1
+ WHERE
+ b1.field_name = 'premium'
+ ) bb ON aa.emp_code = bb.emp_code
+ LEFT JOIN (
+ SELECT
+ c1.emp_code,
+ c1.field_name,
+ c1.new_value
+ FROM
+ emp_endorsement as c1
+ WHERE
+ c1.field_name = 'si_enhancement_date'
+ ) cc ON aa.emp_code = cc.emp_code
+ ) as sidata ON a.emp_code = sidata.emp_code
+ LEFT JOIN (
+ SELECT DISTINCT
+ batch_list.emp_policy_id,
+ batch_list.batch_code AS bl,
+ batch_files.batch_code AS bf
+ FROM
+ batch_files
+ LEFT JOIN
+ batch_list ON batch_files.batch_code = batch_list.batch_code
+ WHERE
+ batch_files.event_type = 'si_enhancement'
+ AND batch_files.actions = 'export'
+ AND batch_files.insurer_or_tpa = '{$insurer_or_tpa}'
+ ) AS batch_data ON employee_polices.id = batch_data.emp_policy_id
+ WHERE
+ batch_data.bf IS NULL
+ AND batch_data.bl IS NULL
+ AND employee_polices.client_policy_id = '{$client_policy_id}'
+ AND employee_polices.is_active = '1'
+ AND (a.endorsement_id IS NULL OR a.endorsement_id = '')
+ AND a.field_name = 'si_enhancement_date'
+ ");
+
+ // Get the result set
+ $results = $query->getResult();
+ return $results;
}
@@ -737,12 +746,14 @@ class EmployeePolicyModel extends Model
->where('e.is_active', '1')
->where('ep.status', 'active')
->where('ep.is_active', '1')
- ->where('MD5(e.emp_code)', $emp_code)
- ->where('MD5(ep.client_policy_id)', $client_policy_id)
+ ->where('e.emp_code', $emp_code)
+ ->where('ep.client_policy_id', $client_policy_id)
->get()
->getResultArray();
return $result;
}
+
+
}
\ No newline at end of file
diff --git a/app/Views/id_card_view.php b/app/Views/id_card_view.php
index b646bb87..7c781b31 100644
--- a/app/Views/id_card_view.php
+++ b/app/Views/id_card_view.php
@@ -2,9 +2,15 @@
-
-
- Driving License ID Card
+
+ NHANCE
+
+
+
+
+
+
+ /assets/images/Nhance_Favi.svg">
@@ -66,15 +72,11 @@
+
-
- button
-
-
\ No newline at end of file