diff --git a/app/Config/Routes.php b/app/Config/Routes.php index ad4ae1aa..6e3e0e30 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -46,6 +46,9 @@ $routes->get("frontend_content", "AppContentManagementController::frontend_conte // $routes->get('/', 'LoginController::index'); $routes->get('/test', 'Home::index'); $routes->get('/login', 'LoginController::index'); ///auth/google +$routes->get('/loginPos', 'LoginController::loginPos'); //login POS team +$routes->post('/getVerifyPosMobileNo', 'LoginController::getVerifyPosMobileNo'); //Verify POS team mobile no +$routes->post('/getVerifiedPosUserData', 'LoginController::getVerifiedPosUserData'); //Verify POS team user data $routes->get('/logout', 'LoginController::logout'); $routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse'); $routes->get('/auth/google', 'LoginController::initiateGoogleOAuth'); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 26d3ac81..10aeea5f 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -1436,21 +1436,54 @@ class ClientController extends AdminController ->where('employees.emp_status', 'active') ->where('employees.is_active', 1) ->countAllResults(); + if ($emp_details == 0) { $update = $this->clientPolicyModel->where('id', $id)->set($data)->update(); if ($update) { + + $policy_transaction_update = $this->deactivatePolicyTransactionsPolicy($id); + return $this->respond(['status' => true, 'code' => 200], 200); } else { return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to remove policy'], 200); } + } else { return $this->respond(['status' => false, 'code' => 404, 'message' => 'The policy has active employees'], 200); } } + public function deactivatePolicyTransactionsPolicy($clientPolicyId) + { + // Deactivate policy_transaction records + $this->policyTransactionModel + ->where('client_policy_id', $clientPolicyId) + ->set(['is_active' => 0]) + ->update(); + + // Get related policy_transaction IDs + $transactionIds = $this->policyTransactionModel + ->select('id') + ->where('client_policy_id', $clientPolicyId) + ->findAll(); + + $ids = array_column($transactionIds, 'id'); + + // Deactivate related pt_co_share records + if (!empty($ids)) { + $this->PTCOShareDetailsModel + ->whereIn('pt_id', $ids) + ->set(['is_active' => 0]) + ->update(); + } + } + + + + public function createClientPolicyPremium() { @@ -4914,7 +4947,7 @@ class ClientController extends AdminController // $res = $empServiceController->excelFileFormatValidation(['file_id' => '865']); // $res = $empServiceController->excelFileDataValidation(['file_id' => '865']); // $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '978']); - // $res = $empServiceController->employeeDisembark(['file_id' => '858']); + // $res = $empServiceController->employeeDisembark(['file_id' => '1681']); dd( $res); $policyTransactionController = new PolicyTransactionController(); // $res = $policyTransactionController->validateInsurerStatement(['file_id' => '17']); @@ -4925,9 +4958,9 @@ class ClientController extends AdminController // ----------EMP DATA SERVICE CONTROLLER-------------------------------------------------------------------------------- $batch_data = [ - 'client_id' => 97, - 'client_policy_id' => 6174, - 'client_branch_id' => 73, + 'client_id' => 20, + 'client_branch_id' => 72, + 'client_policy_id' => 127, 'insurer_or_tpa' => "insurer", 'event_type' => "deletion", 'actions' => "export", @@ -4935,9 +4968,9 @@ class ClientController extends AdminController ]; // $batch_data = [ - // 'client_id' => 29, + // 'client_id' => 20, // 'client_policy_id' => 77, - // 'client_branch_id' => 45, + // 'client_branch_id' => 72, // 'insurer_or_tpa' => "insurer", // // 'insurer_or_tpa' => "tpa", // 'event_type' => "si_enhancement", @@ -4966,7 +4999,7 @@ class ClientController extends AdminController // $result = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live // $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live - // $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data); + // $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result); // $result = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1); // return $this->downloadInsurerExcelExport($batch_data); // dd($result); die; diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php index 5584d67c..e973a33a 100755 --- a/app/Controllers/EmployeeServiceController.php +++ b/app/Controllers/EmployeeServiceController.php @@ -1370,27 +1370,32 @@ class EmployeeServiceController extends AdminController // echo '
START- ' . $row[2]; $employee = $this->employeeModel - ->where('emp_code', $row[1]) - ->where('name',$row[2]) - ->where('client_id',$file['client_id']) - ->where('client_branch_id',$file['client_branch_id']) - ->where('emp_status !=','truncated') - ->where('is_active', 1) + ->select('employees.*, employee_polices.id as emp_policy_pk') + ->join('employee_polices', 'employees.id = employee_polices.employee_id') + ->where('employees.emp_code', $row[1]) + ->where('employees.name',$row[2]) + ->where('employees.client_id',$file['client_id']) + ->where('employees.client_branch_id',$file['client_branch_id']) + ->where('employee_polices.client_policy_id',$file['policy_id']) + ->where('employees.emp_status !=','truncated') + ->where('employees.is_active', 1) ->first(); + // $employee = $this->employeeModel->where('emp_code', $row[1])->where('name',$row[2])->where('client_id',$file['client_id'])->first(); // dd($employee); if(is_array($employee) && count($employee)) { // dd($employee); $existing_endorsements = $this->empEndorsementModel->where('actions','d') - ->where('table_name','employee_polices') - ->where('endorsement_id is null') - ->where('emp_code',$employee['emp_code']) - ->where('name',$employee['name']) - ->where('field_name','status') - ->where('status !=','truncated') - ->where('is_active', 1) - ->findAll(); + ->where('table_name','employee_polices') + ->where('endorsement_id is null') + ->where('emp_code',$employee['emp_code']) + ->where('name',$employee['name']) + ->where('pk',$employee['emp_policy_pk']) + ->where('field_name','status') + ->where('status !=','truncated') + ->where('is_active', 1) + ->findAll(); // dd($existing_endorsements); if(!count($existing_endorsements)) @@ -1424,11 +1429,12 @@ class EmployeeServiceController extends AdminController } } + }else{ + $this->myLogger->logme("error",'Existing endorsement pending for this employee : emp_code : {emp_code} - emp_name : {name}',['emp_code' => $row[1],'name' => $row[2]]); } } else { - $this->myLogger->logme("error",'{emp_code} - {name} not found',['emp_code' => $row[1],'name' => $row[2]]); } diff --git a/app/Controllers/LoginController.php b/app/Controllers/LoginController.php index bf7f116c..451765c2 100755 --- a/app/Controllers/LoginController.php +++ b/app/Controllers/LoginController.php @@ -6,17 +6,20 @@ use CodeIgniter\HTTP\IncomingRequest; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; +use CodeIgniter\API\ResponseTrait; use App\Models\UserModel; use App\Models\AuthHistoryModel; class LoginController extends BaseController -{ +{ + use ResponseTrait; - public function index(){ - - // $session_data = ['isLoggedIn' => True ,'userid' => '25']; - // set_session_data($session_data); + public function index() + { + + // $session_data = ['isLoggedIn' => True ,'userid' => '25']; + // set_session_data($session_data); // $isLoggedIn = check_session(); $isLoggedIn = check_session(); $hasCookie = check_cookie(); @@ -26,7 +29,6 @@ class LoginController extends BaseController return view('login'); } - public function receiveGoogleOAuthResponse() { $UserModel = new UserModel(); @@ -99,8 +101,8 @@ class LoginController extends BaseController return redirect()->to(base_url('login')); } - - public function getUserDeviceInfo($userId, $type_of_user){ + public function getUserDeviceInfo($userId, $type_of_user) + { // Load the UserAgent library $userAgent = $this->request->getUserAgent(); @@ -129,5 +131,85 @@ class LoginController extends BaseController return $datd; } + public function loginPos() + { + return view('pos_login'); + } + + public function getVerifyPosMobileNo() + { + $json = $this->request->getJSON(); + $mobile = $json->mobile ?? null; + + if (empty($mobile)) { + return $this->respond([ + 'status' => false, + 'code' => 400, + 'data' => 'Mobile number is required' + ], 200); + } + + $cleanMobile = preg_replace('/^\+91/', '', $mobile); // Remove +91 if present + + $userModel = new \App\Models\UserModel(); // Update namespace if needed + $user = $userModel->where('mobile', $cleanMobile)->first(); + + if (!$user) { + return $this->respond([ + 'status' => false, + 'code' => 404, + 'data' => 'User not found' + ], 200); + } + + return $this->respond([ + 'status' => true, + 'code' => 200, + 'data' => $user // Optional: Replace with true or limited fields if needed + ], 200); + } + + public function getVerifiedPosUserData() + { + $json = $this->request->getJSON(); + $mobile = $json->mobile ?? null; + + if (!$mobile) { + return $this->respond([ + 'status' => false, + 'code' => 400, + 'message' => 'Mobile number is required' + ], 200); // always return 200 with internal status + } + + $cleanMobile = preg_replace('/^\+91/', '', $mobile); + + $userModel = new \App\Models\UserModel(); + $user = $userModel->where('mobile', $cleanMobile)->first(); + + if (!$user) { + return $this->respond([ + 'status' => false, + 'code' => 404, + 'message' => 'Employee not found' + ], 200); + } + + // Set session + session()->set([ + 'user_id' => $user['id'], + 'user_name' => $user['first_name'], + 'user_email' => $user['email'], + 'is_logged_in' => true, + ]); + + return $this->respond([ + 'status' => true, + 'code' => 200, + 'message' => 'Login successful', + 'redirect_url' => base_url('/dashboard/view') + ], 200); + } + } diff --git a/app/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php index a2695618..3b52ce83 100755 --- a/app/Helpers/excel_util_helper.php +++ b/app/Helpers/excel_util_helper.php @@ -1612,11 +1612,13 @@ if (!function_exists('remap_default_age_ratio_into_relationship')) { if (!function_exists('check_dup_mobileno')) { function check_dup_mobileno(array $row, array $existing_mobilenos) - { - foreach ($existing_mobilenos as $k => $value) { - if (strtolower($row['5']) == 'self' && $row['12'] == $value['mobile']) { - return array('status' => false, 'error' => "Duplicate Mobile No"); - // break; + { + if(!empty($row['12'])){ + foreach ($existing_mobilenos as $k => $value) { + if (strtolower($row['5']) == 'self' && $row['12'] == $value['mobile']) { + return array('status' => false, 'error' => "Duplicate Mobile No"); + // break; + } } } return array('status' => true); @@ -1626,10 +1628,12 @@ if (!function_exists('check_dup_mobileno')) { if (!function_exists('check_dup_email')) { function check_dup_email(array $row, array $existing_mobilenos) { - foreach ($existing_mobilenos as $k => $value) { - if (strtolower($row['5']) == 'self' && $row['13'] == $value['email_corporate']) { - return array('status' => false, 'error' => "Duplicate Email"); - // break; + if(!empty($row['13'])){ + foreach ($existing_mobilenos as $k => $value) { + if (strtolower($row['5']) == 'self' && $row['13'] == $value['email_corporate']) { + return array('status' => false, 'error' => "Duplicate Email"); + // break; + } } } return array('status' => true); diff --git a/app/Views/pos_login.php b/app/Views/pos_login.php new file mode 100644 index 00000000..288aafa9 --- /dev/null +++ b/app/Views/pos_login.php @@ -0,0 +1,175 @@ + + + + + Firebase OTP Login + + + + + +
+
+
+

OTP Login

+ +
+
+ +
+
+ +91 +
+ +
+
+ +
+ +
+ + +
+
+
+ + + + +