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();
            unset($userData['team']);
            $insert = $this->userModel->insert($userData);
            if($insert){
               $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){
                $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)
        {
           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,));
    }
}