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 @@
+
+
+
+