myLogger = \Config\Services::mylogger(); $this->userModel = new UserModel(); $this->roleModel = new RoleModel(); $this->teamModel = new TeamModel(); $this->userTeamsModel = new UserTeamsModel(); } public function list() { $data['headerData'] = 'User List'; $this->myLogger->logme('error','User list function called'); $data['UserList'] = $this->userModel->getUserList(); // echo '
';
// print_r($data); die;
$data['roleData'] = $this->roleModel->select('id, role')->findAll();
$data['teamData'] = $this->teamModel->select('id, name')->findAll();
$this->loadLayout('UserList', $data);
}
public function create()
{
$this->myLogger->logme('error','User create function called');
$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{
$userData = $this->request->getPost();
$userData['created_by'] = get_session_userid();
$temp_team = $userData['team'];
unset($userData['team']);
$insert = $this->userModel->insert($userData);
if($insert){
$db = \Config\Database::connect();
$tableName = 'hdz_staff';
if($userData['role'] == 1){
$admin = 1;
}else{
$admin = 0;
}
foreach ($temp_team as $key => $value) {
$team = $this->teamModel->where('id' , $value)->first();
if($team['name'] == 'Claims'){
$hdz_staff = [
'emp_code' => $userData['emp_code'],
'fullname' => $userData['first_name'],
'username' => strtolower($userData['first_name']),
'email' => $userData['email'],
'admin' => $admin,
'registration' => time(),
];
$db->table($tableName)->insert($hdz_staff);
}
}
$teamData['user_id'] = $insert ;
foreach ($teams as $value) {
$teamData['team_id'] = $value;
$teamData['created_by'] = get_session_userid();
$this->userTeamsModel->insert($teamData);
}
}
}
$this->myLogger->logme('error','User create Successfully created by id {data}', ['data' => get_session_userid()]);
return redirect()->to(base_url('/user/list'));
}
public function getuser($id = null)
{
$userTeamData = $this->userTeamsModel->where('user_id', $id)->findAll();
$data = $this->userModel->getUserById($id);
if($data){
echo json_encode(array("status" => true , 'data' => $data, 'userTeamData' => $userTeamData));
}else{
echo json_encode(array("status" => false));
}
}
public function edit()
{
$teams = $this->request->getPost('team');
if(!$this->request->getPost()){
return redirect()->to(base_url('/user/list'));
}else{
$id = $this->request->getPost('PrimaryKey');
$userData = $this->request->getPost();
// Update data in the 'users' table based on the $id
$userData['updated_by'] = get_session_userid();
$update = $this->userModel->where('id', $id )->set($userData)->update();
if($update){
$db = \Config\Database::connect();
$tableName = 'hdz_staff';
if($userData['role'] == 1){
$admin = 1;
}else{
$admin = 0;
}
foreach ($userData['team'] as $key => $value) {
if($value == 2){
$hdz_staff = [
'emp_code' => $userData['emp_code'],
'fullname' => $userData['first_name'],
'username' => strtolower($userData['first_name']),
'email' => $userData['email'],
'admin' => $admin,
];
$db->table($tableName)->where('emp_code', $userData['emp_code'])
->where('email', $userData['email'])
->set($userData)
->update();
}
}
$this->userTeamsModel->where('user_id', $id)->delete();
if($teams){
$teamData['user_id'] = $id ;
foreach ($teams as $value) {
$teamData['team_id'] = $value;
$teamData['created_by'] = get_session_userid();
$this->userTeamsModel->insert($teamData);
}
}
}
return redirect()->to(base_url('/user/list'));
}
}
public function deactive($id = null)
{
$model = new UserModel();
$deactive = $model->where('id', $id)->set(['is_active' => 0])->update();
if($deactive)
{
// $db = \Config\Database::connect();
// $tableName = 'hdz_staff';
// $db->table($tableName)->insert($hdz_staff);
echo json_encode(array("status" => true));
}else{
echo json_encode(array("status" => false));
}
}
public function getRolesAndTeams()
{
$roleData = $this->roleModel->select('id, role')->findAll();
$teamData = $this->teamModel->select('id, name')->findAll();
echo json_encode(array("status" => true , 'roleData' => $roleData, 'teamData' => $teamData,));
}
}