MERGE_TEST_MINOR_ISSUES&CRS

This commit is contained in:
Ubuntu 2025-08-08 18:13:22 +05:30
commit 357fb69fa3
21 changed files with 1140 additions and 396 deletions

View File

@ -70,6 +70,7 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) {
$routes->get('deposit/(:num)', 'ClientController::deposit/$1');
$routes->get('remove/(:num)', 'ClientController::removeClient/$1');
$routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
$routes->post('wipe', 'ClientController::wipeDemoClient');
// application/config/routes.php
// Add a route for the view_Deposit method
@ -157,6 +158,8 @@ $routes->group("/employee", ["filter" => "authMVC"], function ($routes) {
$routes->post("test-rack-rate", "EmployeeController::testRackRate");
$routes->get('test_members_list', 'EmployeeController::test_members_list');
$routes->post('get_emp_history','EmployeeController::getEmpHistory');
$routes->post('download_inception','EmployeeController::download_inception');
$routes->get('download_file','EmployeeController::download_file');
});

View File

@ -4880,4 +4880,246 @@ class ClientController extends AdminController
return $this->respond(['status'=> false,'code'=>404,'message'=>'Mapping Deletion Failed'],200);
}
}
// -------------------- DEMO CLIENT FUNCTION --------------------------------------------------------------------------------------------
public function wipeDemoClient()
{
$this->myLogger->logme('error', "========================================");
$this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION STARTED");
$this->myLogger->logme('error', "========================================");
$this->myLogger->logme('error', "Request Payload: " . json_encode($this->request->getPost() ?? []));
$client_id = $this->request->getPost('client_id');
if (empty($client_id)) {
$this->myLogger->logme('error', "ERROR: Client ID is required");
return $this->respond(['status' => false, 'message' => 'Client id required'], 404);
}
$this->myLogger->logme('error', "Client ID to wipe: " . $client_id);
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 1. CLIENT MODEL DELETION
// ========================================
$this->myLogger->logme('error', "1. PROCESSING CLIENT MODEL");
$client_data = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first();
$this->myLogger->logme('error', " Found Client Data: " . json_encode($client_data ?? []));
if (!empty($client_data)) {
$is_deleted = $this->clientModel->where('id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Client data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete client record");
}
} else {
$this->myLogger->logme('error', " ✗ Client not found or inactive");
return $this->respond(['status' => false, 'message' => 'Client not found'], 404);
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 2. CLIENT RM MODEL DELETION
// ========================================
$this->myLogger->logme('error', "2. PROCESSING CLIENT RM MODEL");
$client_rm_data = $this->clientRMModel->where('client_id', $client_id)->first();
$this->myLogger->logme('error', " Found Client RM Data: " . json_encode($client_rm_data ?? []));
if (!empty($client_rm_data)) {
$is_deleted = $this->clientRMModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Client RM data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Client RM record");
}
} else {
$this->myLogger->logme('error', " No Client RM data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 3. CLIENT KYC DOCS MODEL DELETION
// ========================================
$this->myLogger->logme('error', "3. PROCESSING CLIENT KYC DOCS MODEL");
$client_kyc_data = $this->clientKYCDocsModel->where('client_id', $client_id)->findAll();
$this->myLogger->logme('error', " Found Client KYC Records: " . count($client_kyc_data ?? []));
$this->myLogger->logme('error', " Client KYC Data: " . json_encode($client_kyc_data ?? []));
if (!empty($client_kyc_data)) {
$is_deleted = $this->clientKYCDocsModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Client KYC Docs data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Client KYC Docs records");
}
} else {
$this->myLogger->logme('error', " No Client KYC Docs data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 4. CLIENT BRANCH MODEL DELETION
// ========================================
$this->myLogger->logme('error', "4. PROCESSING CLIENT BRANCH MODEL");
$client_branch_data = $this->clientBranchModel->where('client_id', $client_id)->findAll();
$branch_ids = array_column($client_branch_data, 'id') ?? [];
$this->myLogger->logme('error', " Found Client Branch Records: " . count($client_branch_data ?? []));
$this->myLogger->logme('error', " Branch IDs: " . json_encode($branch_ids));
$this->myLogger->logme('error', " Client Branch Data: " . json_encode($client_branch_data ?? []));
if (!empty($client_branch_data)) {
$is_deleted = $this->clientBranchModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Client Branch data removed successfully");
// Delete related Level Contact data
if (!empty($branch_ids)) {
$this->myLogger->logme('error', " 4a. PROCESSING RELATED LEVEL CONTACT DATA");
$level_contact_data = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->findAll();
$this->myLogger->logme('error', " Found Level Contact Records: " . count($level_contact_data ?? []));
$this->myLogger->logme('error', " Level Contact Data: " . json_encode($level_contact_data ?? []));
$is_deleted = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Level Contact data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Level Contact records");
}
} else {
$this->myLogger->logme('error', " No Branch IDs available for Level Contact deletion");
}
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Client Branch records");
}
} else {
$this->myLogger->logme('error', " No Client Branch data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 5. CLIENT POLICY MODEL DELETION
// ========================================
$this->myLogger->logme('error', "5. PROCESSING CLIENT POLICY MODEL");
$client_policy_data = $this->clientPolicyModel->where('client_id', $client_id)->findAll();
$policy_ids = array_column($client_policy_data, 'id') ?? [];
$this->myLogger->logme('error', " Found Client Policy Records: " . count($client_policy_data ?? []));
$this->myLogger->logme('error', " Policy IDs: " . json_encode($policy_ids));
$this->myLogger->logme('error', " Client Policy Data: " . json_encode($client_policy_data ?? []));
if (!empty($client_policy_data)) {
$is_deleted = $this->clientPolicyModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Client Policy data removed successfully");
// Delete related Employee Policy data
if (!empty($policy_ids)) {
$this->myLogger->logme('error', " 5a. PROCESSING RELATED EMPLOYEE POLICY DATA");
$employee_policy_data = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->findAll();
$this->myLogger->logme('error', " Found Employee Policy Records: " . count($employee_policy_data ?? []));
$is_deleted = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Employee Policy data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Employee Policy records");
}
} else {
$this->myLogger->logme('error', " No Policy IDs available for Employee Policy deletion");
}
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Client Policy records");
}
} else {
$this->myLogger->logme('error', " No Client Policy data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 6. EMPLOYEE MODEL DELETION
// ========================================
$this->myLogger->logme('error', "6. PROCESSING EMPLOYEE MODEL");
$employee_data = $this->employeeModel->where('client_id', $client_id)->findAll();
$this->myLogger->logme('error', " Found Employee Records: " . count($employee_data ?? []));
if (!empty($employee_data)) {
$is_deleted = $this->employeeModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Employee data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Employee records");
}
} else {
$this->myLogger->logme('error', " No Employee data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 7. POLICY PREMIUM 1 MODEL DELETION
// ========================================
$this->myLogger->logme('error', "8. PROCESSING POLICY PREMIUM 1 MODEL");
$policy_premium1_data = $this->policyPremium1Model->where('client_id', $client_id)->findAll();
$this->myLogger->logme('error', " Found Policy Premium 1 Records: " . count($policy_premium1_data ?? []));
if (!empty($policy_premium1_data)) {
$is_deleted = $this->policyPremium1Model->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Policy Premium 1 data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 1 records");
}
} else {
$this->myLogger->logme('error', " No Policy Premium 1 data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 8. POLICY PREMIUM 2 MODEL DELETION
// ========================================
$this->myLogger->logme('error', "9. PROCESSING POLICY PREMIUM 2 MODEL");
$policy_premium2_data = $this->policyPremium2Model->where('client_id', $client_id)->findAll();
$this->myLogger->logme('error', " Found Policy Premium 2 Records: " . count($policy_premium2_data ?? []));
if (!empty($policy_premium2_data)) {
$is_deleted = $this->policyPremium2Model->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Policy Premium 2 data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 2 records");
}
} else {
$this->myLogger->logme('error', " No Policy Premium 2 data found");
}
$this->myLogger->logme('error', "----------------------------------------");
// ========================================
// 9. NOTIFICATION MODEL DELETION
// ========================================
$this->myLogger->logme('error', "10. PROCESSING NOTIFICATION MODEL");
$notification_data = $this->notificationModel->where('client_id', $client_id)->findAll();
$this->myLogger->logme('error', " Found Notification Records: " . count($notification_data ?? []));
$this->myLogger->logme('error', " Notification Data: " . json_encode($notification_data ?? []));
if (!empty($notification_data)) {
$is_deleted = $this->notificationModel->where('client_id', $client_id)->delete();
if ($is_deleted) {
$this->myLogger->logme('error', " ✓ Notification data removed successfully");
} else {
$this->myLogger->logme('error', " ✗ Failed to delete Notification records");
}
} else {
$this->myLogger->logme('error', " No Notification data found");
}
$this->myLogger->logme('error', "----------------------------------------");
$this->myLogger->logme('error', "========================================");
$this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION COMPLETED");
$this->myLogger->logme('error', "Client ID: " . $client_id . " - Successfully processed");
$this->myLogger->logme('error', "========================================");
return $this->respond(['status' => true, 'message' => 'Demo client data wiped successfully'], 200);
}
}

View File

@ -41,6 +41,10 @@ use CodeIgniter\API\ResponseTrait;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use Dompdf\Dompdf;
use Dompdf\Options;
@ -2473,7 +2477,8 @@ class EmployeeController extends AdminController
//------------------------------------------------------------------------------------------------------
public function test_members_list(){
public function test_members_list()
{
// $model = new EmployeeModel();
// $list = [
// ['relationship' => 'spouse','emp_code' => 'TEST002', 'name' => 'Lakshmi','email_personal' => 'lakshmi@gmail.com','mobile'=>'6382156701','gender'=>'female','dob'=>'1996-05-19','doj'=>'2022-02-01','basic_pay'=>'100000','emp_status'=>'enrolled'],
@ -2496,7 +2501,8 @@ class EmployeeController extends AdminController
return $this->loadLayout('test_members_list',$data);
}
public function mapEmployees(){
public function mapEmployees()
{
$client_id = $this->request->getPost('client_id');
$branch_id = $this->request->getPost('branch_id');
$policy_id = $this->request->getPost('client_policy_id');
@ -2530,7 +2536,8 @@ class EmployeeController extends AdminController
}
}
public function getDataForMapping(){
public function getDataForMapping()
{
$policy_id = $this->request->getPost('policy_id');log_message('error',$policy_id);
$data['policy_start_date'] = $this->clientPolicyModel->select('policy_start_date')->where('id',$policy_id)->first()['policy_start_date'];
$data['si_amt'] = $this->PolicyPremium2Model->select('si')->where('client_policy_id', $policy_id)->groupBy('si')->findAll();
@ -2538,7 +2545,8 @@ class EmployeeController extends AdminController
return $this->respond(['status' => true, 'code' => 200, 'data' => $data], 200);
}
public function unmapEmployees($actionType){
public function unmapEmployees($actionType)
{
$selected_employees = (array)$this->request->getPost('selected');
if($actionType == 0){
for($i = 0;$i<count($selected_employees);$i++){log_message('error',$selected_employees[$i]);
@ -2632,7 +2640,6 @@ class EmployeeController extends AdminController
//------------------------------------------------------------------------------------------------------
public function generateAcmAndMForEcard($client_id)
{
$db = db_connect();
@ -2671,9 +2678,8 @@ class EmployeeController extends AdminController
return $html;
}
public function getEmpHistory(){
public function getEmpHistory()
{
$emp_id = $this->request->getPost('emp_id');
@ -2708,7 +2714,8 @@ class EmployeeController extends AdminController
}
public function formatFieldName($unformattedString){
public function formatFieldName($unformattedString)
{
if (str_contains($unformattedString, '_')) {
$data = str_replace('_', ' ', $unformattedString);
@ -2722,4 +2729,100 @@ class EmployeeController extends AdminController
}
//------------------------------------------------------------------------------------------------------
public function download_inception()
{
$client = $this->request->getPost('client');
$branch = $this->request->getPost('branch');
$policies = $this->request->getPost('policies');
$status = $this->request->getPost('status');
$empCode = $this->request->getPost('empCode');
$empName = $this->request->getPost('empName');
$result = $this->employeePolicyModel->download_inception(
$client, $branch, $policies, $status, $empCode, $empName
);
if (empty($result)) {
return $this->response->setStatusCode(204)->setBody('No data found');
}
$formatted = [];
foreach ($result as $index => $row) {
$rowWithSerial = ['S.NO' => $index + 1] + $row;
$formatted[] = $rowWithSerial;
}
$result = $formatted;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$headers = array_keys($result[0]);
$columnWidth = 20; // standard column width
$colIndex = 1;
foreach ($headers as $header) {
$columnLetter = Coordinate::stringFromColumnIndex($colIndex);
$cellCoordinate = $columnLetter . '1';
$sheet->setCellValue($cellCoordinate, ucfirst(str_replace('_', ' ', $header)));
$sheet->getColumnDimension($columnLetter)->setWidth($columnWidth);
$style = $sheet->getStyle($cellCoordinate);
$style->getFont()->setBold(true);
$style->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$style->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
$colIndex++;
}
$rowNum = 2;
foreach ($result as $row) {
$colIndex = 1;
foreach ($row as $cell) {
$columnLetter = Coordinate::stringFromColumnIndex($colIndex);
$cellCoordinate = $columnLetter . $rowNum;
$sheet->setCellValue($cellCoordinate, $cell);
$colIndex++;
}
$rowNum++;
}
$exportDir = WRITEPATH . 'exports';
if (!is_dir($exportDir)) {
mkdir($exportDir, 0777, true);
} else {
chmod($exportDir, 0777);
}
$filename = 'inception_export_' . date('Ymd_His') . '.xlsx';
$filepath = $exportDir . '/' . $filename;
$writer = new Xlsx($spreadsheet);
$writer->save($filepath);
return $this->response->setJSON([
'status' => 'success',
'downloadUrl' => base_url('employee/download_file?file=' . urlencode($filename))
]);
}
public function download_file()
{
$filename = $this->request->getGet('file');
$filepath = WRITEPATH . 'exports/' . $filename;
if (!file_exists($filepath)) {
return $this->response->setStatusCode(404)->setBody('File not found.');
}
return $this->response->download($filepath, null)->setFileName($filename);
}
}

View File

@ -425,6 +425,7 @@ class RestAuthenticationController extends AdminController
// print_r($employeeData); die;
unset($employeeData['employee_id']);
$employeeData['token_type'] = "pre";
$result = JWTToken::encode($employeeData);
if(isset($this->request->getJSON()->otp)){
@ -959,6 +960,7 @@ class RestAuthenticationController extends AdminController
}
unset($employeeData['employee_id']);
$employeeData['token_type'] = "pre";
$result = JWTToken::encode($employeeData);
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyMpin: Calling third-party API - verifyMpin to get the POST employee data");

View File

@ -1849,4 +1849,99 @@ class EmployeePolicyModel extends Model
return $result[0];
}
public function download_inception($client_id = 0, $branch_id = 0, $policy_id = 0, $status = [], $emp_code = "", $emp_name = ""){
$result = $this->select([
'emp.emp_code AS `Emp ID`',
'emp.name AS `Name of Emp/Dep`',
"DATE_FORMAT(emp.dob, '%d-%b-%Y') AS `DOB`",
'emp.gender As `Gender`',
'emp.relationship As `Relationship`',
'employee_polices.basic_cover_si As `Basic cover SI`',
"DATE_FORMAT(employee_polices.date_coverage, '%d-%b-%Y') AS `Date of Coverage`",
"DATE_FORMAT(emp.doj, '%d-%b-%Y') AS `DOJ`",
'emp.basic_pay As `Basic Pay`',
'emp.band As `Band/Grade`',
'emp.designation As `Designation`',
'emp.mobile as Phone',
'emp.email_corporate As Email',
'COALESCE(employee_polices.pre_existing_alignments, 0) as `PRE EXISTING AILMENTS`',
'emp.change_event',
'employee_polices.date_of_exit',
'employee_polices.reason_for_exit',
'emp.unit'
])
->join('employees emp', 'employee_polices.employee_id = emp.id')
->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy
->join('policies pm', 'cp.policy_id = pm.id', 'left') //pm - policy master
->join('policy_type', 'policy_type.id = cp.policy_type_id')
->join('insurers im', 'cp.insurer_id = im.id', 'left') //im - insurer master
->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id', 'left') //ib - insurer branch
->join('tpa tpam', 'cp.tpa_id = tpam.id', 'left') //tpam - tpa master
->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id', 'left') //tpab - tpa branch
->join('clients cm', 'cp.client_id = cm.id') //cm - client master
->join('client_branch', 'emp.client_branch_id = client_branch.id') //cm - client master
->orderBy('emp.emp_code', 'ASC')
->orderBy('employee_polices.employee_id', 'ASC');
// Conditionally add where clauses
if ($client_id != 0 && !empty(trim($client_id))) {
$result->where('emp.client_id', $client_id);
}
if ($branch_id != 0 && !empty(trim($branch_id))) {
$result->where('emp.client_branch_id', $branch_id);
}
if ($policy_id != 0 && !empty(trim($policy_id))) {
$result->where('employee_polices.client_policy_id', $policy_id);
}
// if (is_array($status) && count($status) > 0) {
// $result->where('employee_polices.status !=', 'expired');
// if (in_array("active", $status)) {
// $result->where('employee_polices.tpa_id IS NOT NULL');
// $result->where('employee_polices.uhid IS NOT NULL');
// $result->whereIn('employee_polices.status', $status);
// } elseif (in_array("pending", $status)) {
// $result->where('employee_polices.tpa_id IS NULL');
// $result->where('employee_polices.uhid IS NULL');
// $result->whereIn('employee_polices.status', array_merge($status, ['active']));
// } else {
// $result->whereIn('employee_polices.status', $status);
// }
// }
$result->where('employee_polices.status =', 'enrolled');
if (!empty(trim($emp_code))) {
$result->where('emp.emp_code', $emp_code);
}
if (!empty(trim($emp_name))) {
$result->like('emp.name', $emp_name);
}
// Always check these conditions
$result->where('employee_polices.is_active', 1)
->where('emp.is_active', 1);
$res = $result->findAll();
return $res;
}
}

View File

@ -1,48 +1,48 @@
<style>
.table th,
.table td {
padding: 8px;
}
.table th,
.table td {
padding: 8px;
}
table.dataTable tbody td {
padding: 4px 4px !important;
}
table.dataTable tbody td {
padding: 4px 4px !important;
}
table.dataTable thead th {
padding: 4px 4px !important;
}
table.dataTable thead th {
padding: 4px 4px !important;
}
.col-12{
.col-12{
max-width: 98% !important;
}
max-width: 98% !important;
}
.custom-dropdown-menu {
display: none;
position: absolute;
background-color: #ffffff !important;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem;
padding: 0.5rem 0;
min-width: 10rem;
z-index: 9999;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.custom-dropdown-menu {
display: none;
position: absolute;
background-color: #ffffff !important;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.25rem;
padding: 0.5rem 0;
min-width: 10rem;
z-index: 9999;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.custom-dropdown-menu .dropdown-item {
display: block !important;
width: 100% !important;
padding: 0.5rem 1rem !important;
color: #212529 !important;
text-decoration: none !important;
background-color: transparent !important;
}
.custom-dropdown-menu .dropdown-item {
display: block !important;
width: 100% !important;
padding: 0.5rem 1rem !important;
color: #212529 !important;
text-decoration: none !important;
background-color: transparent !important;
}
.custom-dropdown-menu .dropdown-item:hover {
background-color: #f8f9fa !important;
color: #16181b !important;
cursor: pointer !important;
}
.custom-dropdown-menu .dropdown-item:hover {
background-color: #f8f9fa !important;
color: #16181b !important;
cursor: pointer !important;
}
</style>
<div class="row" id="client_list">
@ -71,33 +71,31 @@ table.dataTable thead th {
</thead>
<tbody>
<?php foreach($clientList as $row){ ?>
<tr >
<td class="client_info" data-id="<?php echo $row->id; ?>"><?php echo $row->client_name; ?> ( <?php echo $row->short_name; ?> ) </td>
<td>
<?php $account_managers = ''; ?>
<?php foreach ($client_rm as $client): ?>
<?php if ($client->client_id == $row->id): ?>
<?php $account_managers .= $client->account_manager . ', '; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php echo rtrim($account_managers, ', '); ?>
</td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="<?= base_url("client/list/"); ?><?= $row->id;?>"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<!-- <a class="dropdown-item" href="<?= base_url("client/deposit/{$row->id}"); ?>"><i class="mdi mdi-cash mr-2 text-muted font-18 vertical-middle"></i>CD Transactions</a> -->
<?php if(get_role_id() != 3 && get_role_id() != 4) { ?>
<a class="dropdown-item" data-id="<?= $row->id;?>" onclick="removeClient(this)"><i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Delete</a>
<?php } ?>
<?php foreach($clientList as $row){ ?>
<tr >
<td class="client_info" data-id="<?php echo $row->id; ?>"><?php echo $row->client_name; ?> ( <?php echo $row->short_name; ?> ) </td>
<td>
<?php $account_managers = ''; ?>
<?php foreach ($client_rm as $client): ?>
<?php if ($client->client_id == $row->id): ?>
<?php $account_managers .= $client->account_manager . ', '; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php echo rtrim($account_managers, ', '); ?>
</td>
<td>
<div class="btn-group dropdown">
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown"aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="<?= base_url("client/list/"); ?><?= $row->id;?>"><i class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle"></i>Edit</a>
<!-- <a class="dropdown-item" href="<?= base_url("client/deposit/{$row->id}"); ?>"><i class="mdi mdi-cash mr-2 text-muted font-18 vertical-middle"></i>CD Transactions</a> -->
<?php if(in_array(get_role_id(), [1, 5])) { ?>
<a class="dropdown-item" data-id="<?= $row->id;?>" onclick="removeClient(this)"><i class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle"></i>Delete</a>
<?php } ?>
</div>
</div>
</div>
</td>
</tr>
</td>
</tr>
<?php } ?>
</tbody>
</table>
@ -107,7 +105,6 @@ table.dataTable thead th {
</div>
<!-- end row -->
<div id="append_client_info"></div>
@ -142,111 +139,302 @@ table.dataTable thead th {
</div><!-- /.modal -->
<script>
document.addEventListener("DOMContentLoaded", function () {
const table = document.getElementById("tickets-table");
// Create custom dropdown
function createCustomDropdown(row) {
const originalDropdown = row.querySelector('.dropdown-menu');
if (!originalDropdown) return null;
document.addEventListener("DOMContentLoaded", function () {
const table = document.getElementById("tickets-table");
const customDropdown = document.createElement('div');
customDropdown.className = 'custom-dropdown-menu';
customDropdown.innerHTML = originalDropdown.innerHTML;
// Add 'Open Client Details' option in the dropdown
const clientId = row.querySelector('.client_info').dataset.id;
const openDetailsOption = document.createElement('a');
openDetailsOption.href = "javascript:void(0);";
openDetailsOption.className = 'dropdown-item';
openDetailsOption.innerHTML = `<i class="mdi mdi-eye mr-2 text-muted font-18 vertical-middle"></i>Open Client Details`;
openDetailsOption.addEventListener('click', function() {
openClientDetailsPage(clientId); // Open the client details page when clicked
});
customDropdown.appendChild(openDetailsOption);
// Create custom dropdown
function createCustomDropdown(row) {
const originalDropdown = row.querySelector('.dropdown-menu');
if (!originalDropdown) return null;
const customDropdown = document.createElement('div');
customDropdown.className = 'custom-dropdown-menu';
customDropdown.innerHTML = originalDropdown.innerHTML;
// Add 'Open Client Details' option in the dropdown
const clientId = row.querySelector('.client_info').dataset.id;
const openDetailsOption = document.createElement('a');
openDetailsOption.href = "javascript:void(0);";
openDetailsOption.className = 'dropdown-item';
openDetailsOption.innerHTML = `<i class="mdi mdi-eye mr-2 text-muted font-18 vertical-middle"></i>Open Client Details`;
openDetailsOption.addEventListener('click', function() {
openClientDetailsPage(clientId); // Open the client details page when clicked
});
customDropdown.appendChild(openDetailsOption);
return customDropdown;
}
return customDropdown;
}
let activeDropdown = null;
let activeDropdown = null;
// Add click event listener to rows
table.querySelectorAll("tbody tr").forEach(row => {
const customDropdown = createCustomDropdown(row);
if (!customDropdown) return;
// Add click event listener to rows
table.querySelectorAll("tbody tr").forEach(row => {
const customDropdown = createCustomDropdown(row);
if (!customDropdown) return;
document.body.appendChild(customDropdown);
document.body.appendChild(customDropdown);
row.addEventListener("click", function(event) {
// Ignore clicks on the action column
if (event.target.closest('td:last-child')) {
return;
}
// Show the action dropdown
if (activeDropdown) {
activeDropdown.style.display = 'none';
}
const rect = event.target.getBoundingClientRect();
customDropdown.style.display = 'block';
customDropdown.style.position = 'fixed';
customDropdown.style.left = `${rect.left}px`;
customDropdown.style.top = `${rect.bottom + 5}px`; // 5px gap
activeDropdown = customDropdown;
event.stopPropagation();
});
customDropdown.querySelectorAll('.dropdown-item').forEach(item => {
item.addEventListener('click', function(e) {
e.preventDefault();
const onclickAttr = this.getAttribute('onclick');
if (onclickAttr) {
eval(onclickAttr);
}
const href = this.getAttribute('href');
if (href && href !== '#') {
window.location.href = href;
row.addEventListener("click", function(event) {
// Ignore clicks on the action column
if (event.target.closest('td:last-child')) {
return;
}
// Show the action dropdown
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
e.stopPropagation();
const rect = event.target.getBoundingClientRect();
customDropdown.style.display = 'block';
customDropdown.style.position = 'fixed';
customDropdown.style.left = `${rect.left}px`;
customDropdown.style.top = `${rect.bottom + 5}px`; // 5px gap
activeDropdown = customDropdown;
event.stopPropagation();
});
customDropdown.querySelectorAll('.dropdown-item').forEach(item => {
item.addEventListener('click', function(e) {
e.preventDefault();
const onclickAttr = this.getAttribute('onclick');
if (onclickAttr) {
eval(onclickAttr);
}
const href = this.getAttribute('href');
if (href && href !== '#') {
window.location.href = href;
}
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
e.stopPropagation();
});
});
});
});
// Close dropdown when clicking outside
document.addEventListener("click", function() {
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
// Close dropdown when clicking outside
document.addEventListener("click", function() {
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
});
// Open client details page
function openClientDetailsPage(clientId) {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: "<?= base_url('util/get-client-details/') ?>" + clientId,
type: "GET",
dataType: 'json',
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('#append_client_info').empty().append(res.data);
$('#client_info').show();
$('#client_list').hide();
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
}
});
</script>
<script>
$(document).ready(function(){
$('#lead_id').select2();
})
$(document).ready(function(){
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-7 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
buttons: [{
extend: 'csv',
text: 'CSV',
title: 'ClientList',
className: 'my_class',
exportOptions: {
columns: ':not(:last-child)'
},
}],
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true ,
// pagingType: 'full_numbers'
});
})
//DO NOT REMOVE THIS FUNCTION >>> THI FUNCTION FOR CLIENT SOFT DELETE
// function removeClient(element)
// {
// Swal.fire({
// title: "Are you sure?",
// text: "You need to remove this client.",
// icon: "info",
// showCancelButton: true,
// confirmButtonColor: "#3085d6",
// confirmButtonText: "Yes",
// }).then((result) => {
// if (result.isConfirmed) {
// $('.loader').fadeIn();
// $('.loader-mask').fadeIn();
// var id = element.getAttribute('data-id');
// var form_action = '<?= base_url("client/remove/") ?>' + id;
// $.ajax({
// url: form_action,
// type: "GET",
// dataType: 'json',
// processData: false,
// contentType: false,
// success: function(res) {
// $('.loader').fadeOut();
// $('.loader-mask').delay(350).fadeOut('slow');
// if(res){
// if (res.status == true) {
// toastr.success('Client removed successfully.', 'success');
// location.reload();
// } else {
// Swal.fire({
// title: "warning!",
// text: res.message,
// icon: "warning"
// });
// // toastr.warning(res.message, 'warning');
// }
// }
// },
// error: function (xhr, status, error) {
// console.error(xhr.responseText);
// console.error(status, error);
// $('.loader').fadeOut();
// $('.loader-mask').delay(350).fadeOut('slow');
// console.log('Something Wrong!', 'warning');
// }
// });
// }
// });
// }
function removeClient(element) {
console.log("Remove client function called")
console.log('element', element);
Swal.fire({
title: "Are you sure?",
html: `Is this a Demo Client?, Please reconfirm by clicking Yes to delete. <br> <span style = "color : red; font-size : 14px;">Note : This data will be deleted permanently and cannot be recovered.</span>`,
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#3085d6",
confirmButtonText: "Yes",
}).then((result) => {
console.log('Print the result : ', result)
if (result.isConfirmed) {
console.log('Click Yes : ', result.isConfirmed);
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var id = element.getAttribute('data-id');
console.log('client_id', id);
var form_action = '<?= base_url("/client/wipe") ?>';
console.log('URL : ', form_action);
$.ajax({
url: form_action,
type: "POST",
data: {client_id : id},
dataType: 'json',
success: function(res) {
console.log('Client remove function response : ', res);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if (res.status == true) {
toastr.success(res.message, 'success');
location.reload();
} else {
Swal.fire({
title: "warning!",
text: res.message,
icon: "warning"
});
// toastr.warning(res.message, 'warning');
}
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('Something Wrong!', 'warning');
}
});
}
});
}
$(document).on('click', '.client_info', function() {
// Open client details page
function openClientDetailsPage(clientId) {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var client_id = $(this).data('id')
$('#append_client_info').empty();
console.log(client_id);
console.log('client_info');
$('#client_info').show();
$('#client_list').hide();
$.ajax({
url: "<?= base_url('util/get-client-details/') ?>" + clientId,
url: "<?= base_url('util/get-client-details/') ?>" + client_id,
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('#append_client_info').empty().append(res.data);
$('#client_info').show();
$('#client_list').hide();
console.log(res);
console.log(res.data.length);
$('#append_client_info').append(res.data);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
@ -255,189 +443,59 @@ table.dataTable thead th {
$('.loader-mask').delay(350).fadeOut('slow');
}
});
});
$(document).on('click', '.client_info_close', function() {
console.log('client_info_close');
$('#client_info').hide();
$('#client_list').show();
});
function showModal(){
var myModal = new bootstrap.Modal(document.getElementById('lead_modal'));
myModal.show();
}
});
</script>
function featchClient(){
<script>
let lead_id = $('#lead_id').val();
console.log('lead_id : ', lead_id)
let url = '<?= base_url('leads/featchLeadDataAndInsertClient/') ?>' + lead_id
$(document).ready(function(){
$('#lead_id').select2();
})
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$(document).ready(function()
{
$('#tickets-table').DataTable({
dom: "<'row'<'col-sm-0'f><'col-sm-7 text-right'B>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
buttons: [{
extend: 'csv',
text: 'CSV',
title: 'ClientList',
className: 'my_class',
exportOptions: {
columns: ':not(:last-child)'
},
}],
language: {
search: "_INPUT_",
searchPlaceholder: "Search..."
},
paging: true ,
// pagingType: 'full_numbers'
});
})
$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
function removeClient(element)
{
Swal.fire({
title: "Are you sure?",
text: "You need to remove this client.",
icon: "info",
showCancelButton: true,
confirmButtonColor: "#3085d6",
confirmButtonText: "Yes",
}).then((result) => {
if (result.isConfirmed) {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var id = element.getAttribute('data-id');
var form_action = '<?= base_url("client/remove/") ?>' + id;
$.ajax({
url: form_action,
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if(res){
if (res.status == true) {
toastr.success('Client removed successfully.', 'success');
location.reload();
} else {
Swal.fire({
title: "warning!",
text: res.message,
icon: "warning"
});
// toastr.warning(res.message, 'warning');
}
}
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('Something Wrong!', 'warning');
if(res.status == true){
let client_url = '<?= base_url('client/list/') ?>' + res.client_id + '?client_policy_id=' + res.client_policy_id+'#police-tab';
toastr.success(res.message, 'SUCCESS')
window.location.href = client_url
}else{
toastr.success(res.message, 'WARNING')
}
});
}
});
$('.close').click()
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('.close').click()
}
$(document).on('click', '.client_info', function() {
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
var client_id = $(this).data('id')
$('#append_client_info').empty();
console.log(client_id);
console.log('client_info');
$('#client_info').show();
$('#client_list').hide();
$.ajax({
url: "<?= base_url('util/get-client-details/') ?>" + client_id,
type: "GET",
dataType: 'json',
processData: false,
contentType: false,
success: function(res) {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log(res);
console.log(res.data.length);
$('#append_client_info').append(res.data);
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
}
});
});
$(document).on('click', '.client_info_close', function() {
console.log('client_info_close');
$('#client_info').hide();
$('#client_list').show();
});
function showModal(){
var myModal = new bootstrap.Modal(document.getElementById('lead_modal'));
myModal.show();
}
function featchClient(){
let lead_id = $('#lead_id').val();
console.log('lead_id : ', lead_id)
let url = '<?= base_url('leads/featchLeadDataAndInsertClient/') ?>' + lead_id
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function (res) {
console.log(res);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
if(res.status == true){
let client_url = '<?= base_url('client/list/') ?>' + res.client_id + '?client_policy_id=' + res.client_policy_id+'#police-tab';
toastr.success(res.message, 'SUCCESS')
window.location.href = client_url
}else{
toastr.success(res.message, 'WARNING')
}
$('.close').click()
},
error: function (xhr, status, error) {
console.error(xhr.responseText);
console.error(status, error);
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
$('.close').click()
}
});
}
}
});
}
</script>

View File

@ -75,6 +75,19 @@
border-radius: 5px;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
.btn-inception {
background-color: #02a8b5; /* Bootstrap primary blue */
color: white;
border: none;
padding: 6px 12px;
font-weight: 500;
border-radius: 4px;
}
.btn-inception:hover {
background-color: #05676eff;
}
</style>
<?php $pro_rata_total = 0; $gst_total = 0 ?>
@ -88,6 +101,7 @@
<h4 style="position: relative;">Employees</h4>
</div>
</div>
<table class="table table-striped mb-0 nowrap" cellspacing="0" id="tickets-table">
<thead class="bg-light">
<tr>
@ -105,6 +119,8 @@
<th class="font-weight-medium">EMP Code</th>
<th class="font-weight-medium">Relationship</th>
<th class="font-weight-medium">Gender</th>
<th class="font-weight-medium">Email</th>
<th class="font-weight-medium">Mobile</th>
<th class="font-weight-medium">Date of Birth</th>
<th class="font-weight-medium">Policy name</th>
<th class="font-weight-medium">Insurer name</th>
@ -144,6 +160,8 @@
<td><?php echo $employee['emp_code']; ?></td>
<td><?php echo $employee['relationship']; ?></td>
<td><?php echo $employee['gender']; ?></td>
<td><?php echo $employee['email_corporate']; ?></td>
<td><?php echo $employee['mobile']; ?></td>
<td><?php echo date('d/m/Y', strtotime($employee['dob'])); ?></td>
<td><?php echo isset($employee['policy_type']) ? $employee['policy_type'] : ''; ?> -
<?php echo isset($employee['policy_no']) ? $employee['policy_no'] : ''; ?></td>
@ -394,7 +412,8 @@ $(document).ready(function() {
extend: 'csv',
text: 'CSV',
title: 'Member-List',
},
}
,
{
extend: 'excelHtml5',
text: 'Excel',
@ -428,6 +447,15 @@ $(document).ready(function() {
});
}
}
,
{
text: 'Export As Inception',
className: 'btn-inception',
action: function (e, dt, node, config) {
downloadInception();
}
}
],
language: {
search: "_INPUT_",
@ -779,4 +807,56 @@ function get_emp_history(input, emp_id) {
// modalInstance.hide();
// }
// }
function downloadInception(){
let client = $('#clients').val();
let branch = $('#branch_id').val();
let policies = $('#policies').val();
let status = $('#status2').val();
let empCode = $('#emp_code').val();
let empName = $('#emp_name').val();
$('.loader').fadeIn();
$('.loader-mask').fadeIn();
$.ajax({
type: 'POST',
url: "<?php echo base_url('employee/download_inception') ?>",
data: {
client: client,
branch: branch,
policies: policies,
status: status,
empCode: empCode,
empName: empName
},
success: function(response) {
if (response.status === 'success') {
$('<a>', {
href: response.downloadUrl,
download: '',
style: 'display:none'
}).appendTo('body')[0].click();
} else {
alert(response.message || 'Download failed');
}
},
error: function(xhr, status, error) {
console.error('Error:', error);
},
complete: function() {
$('.loader').fadeOut();
$('.loader-mask').delay(350).fadeOut('slow');
console.log('AJAX request finished.');
}
});
}
</script>

View File

@ -1,4 +1,4 @@
<div class="tab-pane active show" id="pending-actions-dash-tab" style="/*padding-left: 35px;*/padding-right: 35px;">
<div class="tab-pane active show" id="pending-actions-dash-tab" >
<div class="row visa_status_count_view">
<div class="col-12">
<div class="card" style="border: 0px;height: 470px;">
@ -6,20 +6,20 @@
style="padding: 0.5rem !important;background-color: white;">
<!-- Search Input Field -->
<div class="row">
<div class="col-3">
<select class="form-control" name="" id="enrollment_status_open_close">
<div class="col-3" >
<select class="form-control " name="" id="enrollment_status_open_close" style="width:200px">
<option value="open">Open Enrolment</option>
<option value="close">Closed Enrolment</option>
</select>
</div>
<div class="col-5"></div>
<div class="col-4">
<input type="text" id="searchInput" class="search-input"
<input type="text" id="searchInput" class="search-input" style="width:200px;margin-left:150px;"
placeholder="Search by client or branch">
</div>
</div>
<!-- Carousel Structure -->
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel" data-interval="false">
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel" data-interval="false" style="height:30vh; width:90vw;">
<div class="carousel-inner">
<?php
$itemsPerSlide = 3; // Number of items per slide
@ -88,14 +88,14 @@
class="number_css"
onclick="enrollment_list(this, 'emp_logged_in_view_click')"><?php echo isset($clients['logged_in_count']) ? $clients['logged_in_count'] : '0'; ?></span><br>
<span class="text-nowrap "
style="color: currentColor;font-size: 15px;">Logged-In</span>
style="color: black;font-size: 15px;">Logged-In</span>
</div>
<div class="col-6 emp-count-view-click">
<span style="font-size: large;color: black !important;"
class="number_css"
onclick="enrollment_list(this, 'emp_not_logged_in_view_click')"><?php echo isset($clients['not_logged_in_count']) ? $clients['not_logged_in_count'] : '0'; ?></span><br>
<span class="text-nowrap"
style="color: currentColor;font-size: 15px;margin-left: -13px;">Not
style="color: black;font-size: 15px;margin-left: -13px;">Not
Logged-In</span>
</div>
</div>
@ -105,14 +105,14 @@
class="number_css"
onclick="enrollment_list(this, 'emp_not_enrolled_view_click')"><?php echo isset($clients['draft_count']) ? $clients['draft_count'] : '0'; ?></span><br>
<span class="text-nowrap"
style="color: currentColor;font-size: 15px;">Draft</span>
style="color: black;font-size: 15px;">Draft</span>
</div>
<div class="col-6 emp-count-view-click">
<span style="font-size: large;color: black !important;"
class="number_css"
onclick="enrollment_list(this, 'emp_enrolled_view_click')"><?php echo isset($clients['enrolled_count']) ? $clients['enrolled_count'] : '0'; ?></span><br>
<span class="text-nowrap"
style="color: currentColor;font-size: 15px;">Enrolled</span>
style="color: black;font-size: 15px;">Enrolled</span>
</div>
</div>
</div>

View File

@ -8,86 +8,157 @@
<meta content="A fully featured CRM" name="description" />
<meta content="Venba info tech" name="author" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- App favicon -->
<link rel="shortcut icon" href="<?= base_url()."public"; ?>/assets/images/Nhance_Favi.svg">
<link rel="shortcut icon" href="<?= base_url() . "public"; ?>/assets/images/Nhance_Favi.svg">
<!-- App css -->
<link href="<?= base_url()."public"; ?>/assets/css/bootstrap-material.min.css" rel="stylesheet" type="text/css"
<link href="<?= base_url() . "public"; ?>/assets/css/bootstrap-material.min.css" rel="stylesheet" type="text/css"
id="bs-default-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/app-material.min.css" rel="stylesheet" type="text/css"
<link href="<?= base_url() . "public"; ?>/assets/css/app-material.min.css" rel="stylesheet" type="text/css"
id="app-default-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/bootstrap-material-dark.min.css" rel="stylesheet" type="text/css"
<link href="<?= base_url() . "public"; ?>/assets/css/bootstrap-material-dark.min.css" rel="stylesheet" type="text/css"
id="bs-dark-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/app-material-dark.min.css" rel="stylesheet" type="text/css"
<link href="<?= base_url() . "public"; ?>/assets/css/app-material-dark.min.css" rel="stylesheet" type="text/css"
id="app-dark-stylesheet" />
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;800;900&display=swap" rel="stylesheet">
<!-- For background image -->
<link rel="preload" as="image" href="<?= base_url('public/assets/images/background_theme.jpg') ?>" />
<!-- For logo -->
<link rel="preload" as="image" href="<?= base_url('public/assets/images/Nhance-Logo-Final.png') ?>" />
<!-- icons -->
<link href="<?= base_url()."public"; ?>/assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<link href="<?= base_url() . "public"; ?>/assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<style>
a:hover {
cursor: pointer;
}
a:hover {
cursor: pointer;
}
.auth-fluid {
position: relative;
display: flex;
min-height: 100vh;
flex-direction: row;
background: url("<?= base_url('public/assets/images/login_bg.jpg') ?>") center center !important;
background-size: cover !important;
}
.background_theme {
background: url("<?= base_url('public/assets/images/background_theme.jpg') ?>");
background-size: contain;
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 0;
margin: 0;
}
.bg_image{
background : url("<?= base_url('public/assets/images/bg_image.png') ?>");
background-size : contain;
background-repeat : no-repeat;
background-size : 100% 100%;
padding : 0;
margin : 0;
}
.bg_login{
background-color: #024C4F;
}
.outer_card{
margin-top:7%;
margin-bottom:5%;
margin-left:10%;
margin-right:10%;
}
.inner-card {
min-height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
@media screen and (max-height: 780px) {
.outer_card{
margin-top:7%;
margin-bottom:0%;
margin-left:10%;
margin-right:10%;
}
}
</style>
</head>
<body class="loading auth-fluid-pages pb-0">
<body class="background_theme ">
<div class="outer_card" >
<div class="inner_card" style="border-radius: 25px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);">
<div class="row">
<div class="col-lg-8 auth-fluid">
<!-- Auth fluid right content -->
<div class="auth-fluid-right bg-transparent">
<img src="<?= base_url()."public"; ?>/assets/images/Nhance-Logo-Final.png" width="200">
<div class="row " >
<div class="col-lg-6 bg_image">
<img
style="margin-top:40px;margin-left:40px;"
src="<?= base_url() . "public"; ?>/assets/images/Nhance-Logo-Final.png" width="150" >
</div>
<div class="col-lg-6 bg_login inner-card ">
<div class="content-box text-center">
<br><br><br><br>
<!-- nhance favicon -->
<img src="<?= base_url() . "public"; ?>/assets/images/Nhance_Favi.png" height="70" width="auto" >
<br>
<!-- Text section -->
<h1 style="color:white; font-family: 'Poppins', sans-serif; font-weight: 600;">
Welcome To Nhance
</h1>
<h4 style="color:white; font-family: 'Poppins', sans-serif;">Sign in with your Google Account to continue</h4>
<br><br>
<!-- google button -->
<a href="<?= base_url('auth/google'); ?>" >
<img style="border-radius:50px;"
src="<?= base_url() . "public"; ?>/assets/images/googleButton.svg" width="200">
</a>
<?php if (session()->getFlashdata('error')) : ?>
<br>
<span class="widget-simple text-center">
<div class="media-body align-self-center font-24 avatar-title">
<p style="color:red; font-family: 'Poppins', sans-serif;" class="mt-0" style><?= session('error') ?></p>
</div>
</span>
<?php endif; ?>
<!-- space -->
<br><br><br><br><br><br>
<!-- data privacy indication -->
<h6 style="color:white; font-family: 'Poppins', sans-serif;">We respect your privacy and your data is safe with us</h6>
<!-- bottom line -->
</div>
</div>
</div>
<!-- end Auth fluid right content -->
</div>
<div class="col-lg-4 align-items-center d-flex">
<!--Auth fluid left content -->
<div class="auth-fluid-form-box" style="margin-left: 10%;">
<div class="h-100">
<div class="card-body">
<div class="form-group mb-0 text-center">
<a href="<?= base_url('auth/google'); ?>"><img
src="<?= base_url()."public"; ?>/assets/images/googleButton.svg" width="300"></a>
</div>
<?php if (session()->getFlashdata('error')) : ?>
<span class="widget-simple text-center">
<div class="media-body align-self-center font-24 avatar-title">
<p style="color: #f1556c!important;" class="mt-0" style><?= session('error') ?></p>
</div>
</span>
<?php endif; ?>
</div> <!-- end .card-body -->
</div> <!-- end .align-items-center.d-flex.h-100-->
</div>
<!-- end auth-fluid-form-box-->
</div>
</div>
<!-- end auth-fluid-->
<!-- Vendor js -->
<script src="<?= base_url()."public"; ?>/assets/js/vendor.min.js"></script>
<script src="<?= base_url() . "public"; ?>/assets/js/vendor.min.js"></script>
<!-- App js -->
<script src="<?= base_url()."public"; ?>/assets/js/app.min.js"></script>
<script src="<?= base_url() . "public"; ?>/assets/js/app.min.js"></script>
</body>

94
app/Views/login_old.php Normal file
View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>NHANCE</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="A fully featured CRM" name="description" />
<meta content="Venba info tech" name="author" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- App favicon -->
<link rel="shortcut icon" href="<?= base_url()."public"; ?>/assets/images/Nhance_Favi.svg">
<!-- App css -->
<link href="<?= base_url()."public"; ?>/assets/css/bootstrap-material.min.css" rel="stylesheet" type="text/css"
id="bs-default-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/app-material.min.css" rel="stylesheet" type="text/css"
id="app-default-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/bootstrap-material-dark.min.css" rel="stylesheet" type="text/css"
id="bs-dark-stylesheet" />
<link href="<?= base_url()."public"; ?>/assets/css/app-material-dark.min.css" rel="stylesheet" type="text/css"
id="app-dark-stylesheet" />
<!-- icons -->
<link href="<?= base_url()."public"; ?>/assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<style>
a:hover {
cursor: pointer;
}
.auth-fluid {
position: relative;
display: flex;
min-height: 100vh;
flex-direction: row;
background: url("<?= base_url('public/assets/images/login_bg.jpg') ?>") center center !important;
background-size: cover !important;
}
</style>
</head>
<body class="loading auth-fluid-pages pb-0">
<div class="row">
<div class="col-lg-8 auth-fluid">
<!-- Auth fluid right content -->
<div class="auth-fluid-right bg-transparent">
<img src="<?= base_url()."public"; ?>/assets/images/Nhance-Logo-Final.png" width="200">
</div>
<!-- end Auth fluid right content -->
</div>
<div class="col-lg-4 align-items-center d-flex">
<!--Auth fluid left content -->
<div class="auth-fluid-form-box" style="margin-left: 10%;">
<div class="h-100">
<div class="card-body">
<div class="form-group mb-0 text-center">
<a href="<?= base_url('auth/google'); ?>"><img
src="<?= base_url()."public"; ?>/assets/images/googleButton.svg" width="300"></a>
</div>
<?php if (session()->getFlashdata('error')) : ?>
<span class="widget-simple text-center">
<div class="media-body align-self-center font-24 avatar-title">
<p style="color: #f1556c!important;" class="mt-0" style><?= session('error') ?></p>
</div>
</span>
<?php endif; ?>
</div> <!-- end .card-body -->
</div> <!-- end .align-items-center.d-flex.h-100-->
</div>
<!-- end auth-fluid-form-box-->
</div>
</div>
<!-- end auth-fluid-->
<!-- Vendor js -->
<script src="<?= base_url()."public"; ?>/assets/js/vendor.min.js"></script>
<!-- App js -->
<script src="<?= base_url()."public"; ?>/assets/js/app.min.js"></script>
</body>
</html>

View File

@ -1223,13 +1223,9 @@ $('body').on('click', '.btnPolicyMaster', function() {
if (jsonObject[key]['either-parents-pil'] == 1) {
$('#family_floaters').val('EPORPIL');
} else if (jsonObject[key].parents == 1 && jsonObject[key][
'parents-in-law'
] == 1) {
} else if (jsonObject[key].parents == 1 && jsonObject[key]['parents-in-law'] == 1) {
$('#family_floaters').val('2EPORPIL');
} else if (jsonObject[key].parents == 2 && jsonObject[key][
'parents-in-law'
] == 2) {
} else if (jsonObject[key].parents == 2 && jsonObject[key]['parents-in-law'] == 2) {
$('#family_floaters').val('4EPORPIL');
} else if (jsonObject[key].parents == 1) {
$('#family_floaters').val('1P');
@ -1240,7 +1236,7 @@ $('body').on('click', '.btnPolicyMaster', function() {
} else if (jsonObject[key]['parents-in-law'] == 2) {
$('#family_floaters').val('2PIL');
} else if (jsonObject[key]['either-parents-pil'] == 2) {
$('#family_floaters').val('4EPORPIL');
$('#family_floaters').val('2EPORPIL');
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB