diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b0a9deb0..fdedeb37 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -27,3 +27,34 @@ $routes->group("/dashboard", ["filter" => "authMVC"], function($routes){ $routes->get("view", "DashboardController::dashboard"); }); +$routes->group("/client", ["filter" => "authMVC"], function($routes){ + + $routes->get("list", "ClientController::index"); + $routes->get("create", "ClientController::clientOnboarding"); + + $routes->group("general", ["filter" => "authMVC"], function($routes){ + $routes->get("create", "ClientController::clientGeneralInfoData"); + $routes->post("create", "ClientController::createClientGeneralInfo"); + }); + $routes->group("relation", ["filter" => "authMVC"], function($routes){ + $routes->get("list", "ClientController::index"); + $routes->get("create", "ClientController::clientCreate"); + $routes->post("create", "ClientController::clientCreate"); + }); + $routes->group("branch", ["filter" => "authMVC"], function($routes){ + $routes->get("list", "ClientController::index"); + $routes->get("create", "ClientController::clientCreate"); + $routes->post("create", "ClientController::clientCreate"); + }); + $routes->group("policy", ["filter" => "authMVC"], function($routes){ + $routes->get("list", "ClientController::index"); + $routes->get("create", "ClientController::clientCreate"); + $routes->post("create", "ClientController::clientCreate"); + }); + $routes->group("kyc", ["filter" => "authMVC"], function($routes){ + $routes->get("list", "ClientController::index"); + $routes->get("create", "ClientController::clientCreate"); + $routes->post("create", "ClientController::clientCreate"); + }); +}); + diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index 487511fe..9a39b881 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -9,12 +9,10 @@ use Psr\Log\LoggerInterface; use App\Controllers\PublicController; - //This is a controller act like base controller for business logics which are required // authendication and authrizations also config the routes as per requirement in routes.php class AdminController extends BaseController { - public function __construct() { diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php new file mode 100644 index 00000000..ad7f6633 --- /dev/null +++ b/app/Controllers/ClientController.php @@ -0,0 +1,89 @@ +clientModel = new ClientModel(); + $this->userModel = new UserModel(); + $this->clientBranchModel = new ClientBranchModel(); + $this->clientKYCDocsModel = new ClientKYCDocsModel(); + $this->clientPolicyModel = new ClientPolicyModel(); + $this->clientRMModel = new ClientRMModel(); + $this->insurerBranchModel = new InsurerBranchModel(); + $this->insurerModel = new InsurerModel(); + $this->kycDocsModel = new KYCDocsModel(); + $this->kycEntityTypeModel = new KYCEntityTypeModel(); + $this->levelContactModel = new LevelContactModel(); + $this->policesModel = new PolicesModel(); + $this->tpaBranchModel = new TPABranchModel(); + $this->tpaModel = new TPAModel(); + } + + public function index() + { + echo view('layout/header'); + echo view('client_list'); + echo view('layout/footer'); + } + + public function clientOnboarding(){ + + $data['contact_level'] = ['1'=>'level 1', '2'=>'level 2', '3'=>'level 3']; + $data['entity'] = $this->kycEntityTypeModel->findAll(); + $data['kyc_docs'] = $this->kycDocsModel->findAll(); + $data['police'] = $this->policesModel->findAll(); + $data['insurer'] = $this->insurerBranchModel ->getInsurerBranchesWithInsurerNames(); + $data['RM'] = $this->userModel->findAll(); + + echo view('layout/header'); + echo view('client_onboarding', $data); + echo view('layout/footer'); + } + + + public function createClientGeneralInfo(){ + + } +} \ No newline at end of file diff --git a/app/Controllers/LoginController.php b/app/Controllers/LoginController.php index bf1ffe46..2154e75e 100644 --- a/app/Controllers/LoginController.php +++ b/app/Controllers/LoginController.php @@ -7,7 +7,8 @@ use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; -use App\Models\UserModal; +use App\Models\UserModel; +use App\Models\AuthHistoryModel; class LoginController extends BaseController { @@ -25,7 +26,7 @@ class LoginController extends BaseController public function receiveGoogleOAuthResponse() { - $UserModel = new UserModal(); + $UserModel = new UserModel(); if ($this->request->getGet('code')) { $code = (string) $this->request->getGet('code'); log_message('error', 'Get OAuth Responce Code Sucessfully'); @@ -40,6 +41,7 @@ class LoginController extends BaseController set_session_data($session_data); log_message('error', 'Set The UserId : `'. $user->id .'` in Session'); log_message('error', 'Is User Login Sucessfully'); + $this->getUserDeviceInfo($user->id); return redirect()->to(base_url('/dashboard/view')); }else{ @@ -66,5 +68,32 @@ class LoginController extends BaseController return redirect()->to(base_url('login')); } + + public function getUserDeviceInfo($userId){ + + // Load the UserAgent library + $userAgent = $this->request->getUserAgent(); + + // Get the user's platform (e.g., Windows, Mac, Linux) + $platform = $userAgent->getPlatform(); + + // Get the user's browser (e.g., Chrome, Firefox, Safari) + $browser = $userAgent->getBrowser(); + + // Get the user's IP address + $ipAddress = $this->request->getIPAddress(); + + $datd = [ + 'user_id' => $userId, + 'ip' => $ipAddress, + 'platform' => $platform, + 'broswer' => $browser, + ]; + + $AuthHistoryModel = new AuthHistoryModel; + $insertAuthHistory = $AuthHistoryModel->insert($datd); + + } + } diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index ccb8e578..03c5f57f 100644 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -8,9 +8,10 @@ use CodeIgniter\HTTP\ResponseInterface; use Psr\Log\LoggerInterface; -use App\Models\UserModal; -use App\Models\RoleModal; -use App\Models\TeamsModal; +use App\Models\UserModel; +use App\Models\RoleModel; +use App\Models\TeamModel; +use App\Models\UserTeamsModel; class UserController extends AdminController @@ -18,7 +19,7 @@ class UserController extends AdminController public function list() { - $model = new UserModal(); + $model = new UserModel(); $data['UserList'] = $model->where('is_active', 1)->orderBy('id', 'DESC')->findAll(); echo view('layout/header'); echo view('AddUser'); @@ -28,16 +29,15 @@ class UserController extends AdminController public function create() - { - print_r($this->request->getPost()); die; - + { + $teams = $this->request->getPost('team'); //if this is get method return to user creation page if(!$this->request->getPost()){ return redirect()->to(base_url('/user/list')); }else{ //else do user insert operation - $userModel = new UserModal(); + $userModel = new UserModel(); $File = fileUpload($this->request->getFile('profile')); $userData = $this->request->getPost(); if(!empty($File)){ @@ -46,17 +46,34 @@ class UserController extends AdminController // Inserting data into the 'users' table $userData['created_by'] = get_session_userid(); + unset($userData['team']); $insert = $userModel->insert($userData); + if($insert){ + $teamData['user_id'] = $insert ; + $UserTeamsModel = new UserTeamsModel(); + foreach ($teams as $value) { + $teamData['team_id'] = $value; + $teamData['created_by'] = get_session_userid(); + $UserTeamsModel->insert($teamData); + } + } } return redirect()->to(base_url('/user/list')); } public function getuser($id = null){ - $model = new UserModal(); - $data = $model->where('id', $id)->first(); + $model = new UserModel(); + $RoleModel = new RoleModel(); + $TeamModal = new TeamModel(); + $UserTeamsModel = new UserTeamsModel(); + + $roleData = $RoleModel->select('id, role')->findAll(); + $teamData = $TeamModal->select('id, name')->findAll(); + $userTeamData = $UserTeamsModel->where('user_id', $id)->findAll(); + $data = $model->getUserById($id); if($data){ - echo json_encode(array("status" => true , 'data' => $data)); + echo json_encode(array("status" => true , 'data' => $data, 'roleData' => $roleData, 'teamData' => $teamData, 'userTeamData' => $userTeamData)); }else{ echo json_encode(array("status" => false)); } @@ -65,10 +82,13 @@ class UserController extends AdminController public function edit() { + $teams = $this->request->getPost('team'); + // echo '
';
+        // print_r($this->request->getPost()); die;
         if(!$this->request->getPost()){
             return redirect()->to(base_url('/user/list'));
         }else{
-            $userModel = new UserModal();
+            $userModel = new UserModel();
             $id = $this->request->getPost('PrimaryKey');
             $imageDetails = $userModel->find($id);
             $File = fileUpload($this->request->getFile('profile'), (isset($imageDetails['profile']) ? $imageDetails['profile'] : null));
@@ -81,6 +101,16 @@ class UserController extends AdminController
             $userData['updated_by'] =  get_session_userid();
             unset($userData['PrimaryKey']);
             $update = $userModel->update($id, $userData);
+            if($update){
+                $UserTeamsModel =  new UserTeamsModel();
+                $UserTeamsModel->where('user_id', $id)->delete();
+                $teamData['user_id'] = $id ;
+                foreach ($teams as $value) {
+                     $teamData['team_id'] = $value;
+                     $teamData['created_by'] =  get_session_userid();
+                     $UserTeamsModel->insert($teamData);
+                 }
+             }
             return redirect()->to(base_url('/user/list'));
         }
         
@@ -88,7 +118,7 @@ class UserController extends AdminController
 
     public function deactive($id = null)
     {   
-        $model = new UserModal();
+        $model = new UserModel();
         $deactive = $model->where('id', $id)->set(['is_active' => 0])->update();
         if($deactive)
         {
@@ -100,10 +130,10 @@ class UserController extends AdminController
 
     public function getRolesAndTeams(){
 
-        $RoleModal =  new RoleModal();
-        $TeamModal =  new TeamsModal();
+        $RoleModel =  new RoleModel();
+        $TeamModal =  new TeamModel();
 
-        $roleData = $RoleModal->select('id, role')->findAll();
+        $roleData = $RoleModel->select('id, role')->findAll();
         $teamData = $TeamModal->select('id, name')->findAll();
         echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,));
 
diff --git a/app/Models/AuthHistoryModel.php b/app/Models/AuthHistoryModel.php
new file mode 100644
index 00000000..17c83357
--- /dev/null
+++ b/app/Models/AuthHistoryModel.php
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/app/Models/ClientBranchModel.php b/app/Models/ClientBranchModel.php
new file mode 100644
index 00000000..4fcec4a2
--- /dev/null
+++ b/app/Models/ClientBranchModel.php
@@ -0,0 +1,21 @@
+select('insurer_branch.*, I.short_name as insurer_name')
+                    ->join('insurers I', 'insurer_branch.insurer_id = I.id', 'left')
+                    ->find();
+       return $query;             
+    }
+
+}
diff --git a/app/Models/InsurerModel.php b/app/Models/InsurerModel.php
new file mode 100644
index 00000000..b2ffe3f5
--- /dev/null
+++ b/app/Models/InsurerModel.php
@@ -0,0 +1,19 @@
+where('id', $id)->get();
+        
+        if ($userData->getNumRows() > 0) {
+            return $userData->getRow();
+        } else {
+            return false;
+        }
 
     }
 }
diff --git a/app/Models/UserTeamsModel.php b/app/Models/UserTeamsModel.php
new file mode 100644
index 00000000..1758d641
--- /dev/null
+++ b/app/Models/UserTeamsModel.php
@@ -0,0 +1,20 @@
+
\ No newline at end of file
diff --git a/app/Views/AddUser.php b/app/Views/AddUser.php
index 2217af5f..efc5feee 100644
--- a/app/Views/AddUser.php
+++ b/app/Views/AddUser.php
@@ -1,5 +1,45 @@
-
+
+
+
+
+
 
@@ -22,7 +62,7 @@

- +
@@ -64,13 +104,13 @@
- +
diff --git a/app/Views/UserList.php b/app/Views/UserList.php index 1e4ec5e2..24159676 100644 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -89,7 +89,7 @@ $(document).ready(function () { nonSelectedText: 'Select Team', enableFiltering: false, enableCaseInsensitiveFiltering: false, - includeSelectAllOption : true, + includeSelectAllOption : false, buttonWidth:'100%' }); }, @@ -112,6 +112,7 @@ $(document).ready(function () { $('#mobile').val(''); $('#emp_code').val(''); $('#profile').val(''); + $('#role').val('') $('#ajaxImgUpload').attr('src', 'https://via.placeholder.com/300').width(100); $('#List-page').show(); $('.btnBack').hide(); @@ -125,6 +126,8 @@ $(document).ready(function () { type: "GET", dataType: 'json', success: function (res) { + console.log(res) + $('#role').val('') $('#Add-Edit-Page').show(); $('.header-title').html('Edit User'); $('#List-page').hide(); @@ -138,6 +141,34 @@ $(document).ready(function () { $('#mobile').val(res.data.mobile); $('#emp_code').val(res.data.emp_code); $('#btnSubmit').html('Update'); + + var roleOptionHTML = ''; + $.each(res.roleData, function(index, item) { + var isSelected = res.userTeamData.some(function(userTeamItem) { + return res.data.role === item.id; + }); + + roleOptionHTML += ''; + + }); + $('#role').html(roleOptionHTML); + + var optionsHTML = ''; + $.each(res.teamData, function(index, item) { + var isSelected = res.userTeamData.some(function(userTeamItem) { + return userTeamItem.team_id === item.id; + }); + + optionsHTML += ''; + }); + $('#team').html(optionsHTML); + $('#team').multiselect({ + nonSelectedText: 'Select Team', + enableFiltering: false, + enableCaseInsensitiveFiltering: false, + includeSelectAllOption : false, + buttonWidth:'100%' + }); if(res.data.profile){ $('#ajaxImgUpload').attr('src', 'public/uploads/'+res.data.profile).width(100); }else{ diff --git a/app/Views/client_basic_info.php b/app/Views/client_basic_info.php new file mode 100644 index 00000000..f9b46e6f --- /dev/null +++ b/app/Views/client_basic_info.php @@ -0,0 +1,106 @@ +
+
+
+
+ + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php new file mode 100644 index 00000000..6423219c --- /dev/null +++ b/app/Views/client_branch.php @@ -0,0 +1,318 @@ +
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
#Branch NameBranch Code
1App design and development01/01/2015
2Coffee detail page - Main Page21/07/2016
+
+ +
+
+
+
+
+ +
+
+ +
+ +
+ + +
+
+
+ + +
+
+ + +
+
+ +
+
Contact 1
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
Contact 2
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
Contact 3
+
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ + +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/app/Views/client_kyc.php b/app/Views/client_kyc.php new file mode 100644 index 00000000..85be4719 --- /dev/null +++ b/app/Views/client_kyc.php @@ -0,0 +1,36 @@ + +
+
+
+
+
+ + +
+ +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+
+
+
+ +
+ \ No newline at end of file diff --git a/app/Views/client_list.php b/app/Views/client_list.php new file mode 100644 index 00000000..3fc9f02c --- /dev/null +++ b/app/Views/client_list.php @@ -0,0 +1,141 @@ + +
+
+
+

+
+
+
+
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDRequested BySubjectAssigneePriorityStatusCreated DateDue DateAction
#1256 + + contact-img + George A. Lianes + + + Support for theme + + + contact-img + + + Low + + Open + + 2017/04/28 + + 2017/04/28 + + +
#2542 + + contact-img + Jose D. Delacruz + + + New submission on your website + + + contact-img + + + Medium + + Closed + + 2008/04/25 + + 2008/04/25 + + +
+
+
+
+
+ diff --git a/app/Views/client_onboarding.php b/app/Views/client_onboarding.php new file mode 100644 index 00000000..9a1ca7f0 --- /dev/null +++ b/app/Views/client_onboarding.php @@ -0,0 +1,59 @@ + + + + diff --git a/app/Views/client_policy.php b/app/Views/client_policy.php new file mode 100644 index 00000000..e41c0bfe --- /dev/null +++ b/app/Views/client_policy.php @@ -0,0 +1,116 @@ + +
+ + +
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
#Branch NameBranch Code
1App design and development01/01/2015
2Coffee detail page - Main Page21/07/2016
+
+ +
+
+
+ +
+
+ +
+
+ +
+ +
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/app/Views/client_rm.php b/app/Views/client_rm.php new file mode 100644 index 00000000..dbf694f9 --- /dev/null +++ b/app/Views/client_rm.php @@ -0,0 +1,91 @@ + + +
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/app/Views/layout/footer.php b/app/Views/layout/footer.php index 10982e78..eb665814 100644 --- a/app/Views/layout/footer.php +++ b/app/Views/layout/footer.php @@ -470,6 +470,8 @@ + + \ No newline at end of file diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 07725eaa..b907c534 100644 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -52,15 +52,6 @@ }); } - - @@ -529,10 +520,10 @@