Ir para o conteúdo

 Voltar a SGA LIVRE De...
Tela cheia

Saber quantos atendetes estão logados

11 de Abril de 2011, 17:30 , por Desconhecido - | 1 Pessoa seguindo este artigo.
Visualizado 44 vezes

Fala galera, boa tarde.

É possível saber quantos atendentes estão logados no sgalivre?

Autor: Marcio Trentin


1111 comentários

  • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
    12 de Abril de 2011, 8:12

     

     Essa funcionalidade não existe, mas para implementar basta cliar uma consulta com a seguinte query:

    SELECT count(id_usu)
      FROM usu_session
      WHERE stat_session=1;
     

    • 0fbfd8ba38a8d53abea3c5bb590b05ae?only path=false&size=50&d=404Marcio Trentin(usuário não autenticado)
      12 de Abril de 2011, 10:36

       

      certo, porém notei q não funciona mto bem, pois logo com um usuário teste, ele vai para stat_session 1, quando faço logout ele continua 1. Será bug?

      • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
        12 de Abril de 2011, 16:42

         

         Hum, não sei. Acho que quando o usuário desloga o sistema não marca a sessão como encerrada. Talvez alterando o arquivo logout/index.php e adicionando as linhas abaixo funcione:

        DB::getInstance()->set_session_status(SGA::get_current_user()->get_id(), Session::SESSION_ENCERRADA);

         

         Teste e me diga se funcionou.

        • 0fbfd8ba38a8d53abea3c5bb590b05ae?only path=false&size=50&d=404Marcio Trentin(usuário não autenticado)
          12 de Abril de 2011, 17:27

           

          cara, funcionou de boa. Obrigado!

          • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
            13 de Abril de 2011, 11:14

             

             Marcio,

             Você criou uma pagina que exibe quantos usuários estão logados?

            • 0fbfd8ba38a8d53abea3c5bb590b05ae?only path=false&size=50&d=404Marcio Trentin(usuário não autenticado)
              14 de Abril de 2011, 10:36

               

              hummm, no momento não, mas acredito que será necessário criar no futuro. porém será simples né, com esta query funcionando agora, único problema é educar o atendente a não fechar o browse sem antes clicar em sair, caso contrário esta informação será inconsistente, pois acredito que o php não consiga saber se o atendente deixou o sistema e seu browser não esta mais se comunicando com o servidor.

              • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
                14 de Abril de 2011, 11:31

                 

                 Acho que é possível criar uma query que fique verificando a cada X minutos quis clientes estão logados,resolvendo assim esse problema.

                Só não sei como fazer isso...

                • 0fbfd8ba38a8d53abea3c5bb590b05ae?only path=false&size=50&d=404Marcio Trentin(usuário não autenticado)
                  14 de Abril de 2011, 16:27

                   

                  opa Adilson, consegui uma solução prática que para mim esta sendo suficiente.

                  Informar o banco de dados que o atendente esta online e é um possível atendedor
                  criar novo campo na tabela usu_session
                  nome do campo in_attendance
                  tipo do campo: timestamp with time zone
                  arquivos modificados:
                  sgalivre/modules/sga/atendimento/atend_fila.php
                  DB::getInstance()->informar_atendimento($usuario->get_id());

                  sgalivre/lib/php/core/db/DB.php
                  public function informar_atendimento($id_usu) {
                          $sql = $this->get_queries()->informar_atendimento();
                         
                          $statement = $this->get_connection()->prepare($sql);
                          $statement->bindValue(':dt_time', SGA::get_date("Y-m-d H:i:s"), PDO::PARAM_STR);
                          $statement->bindValue(':id_usu', $id_usu, PDO::PARAM_INT);
                          
                           $statement->execute();
                          
                           return $statement->rowCount() === 1;
                      }

                  sgalivre/lib/php/db/DBQueries.php
                  public function informar_atendimento();

                  sgalivre/lib/php/db/PgSQLQueries.php
                  public function informar_atendimento() {
                          return "UPDATE usu_session
                                  SET in_attendance = :dt_time
                                  WHERE id_usu = :id_usu";
                      }

                   

                  Desta forma quando um atendente estiver na tela de atendimento, o campo no banco de dados será atualizado a todo momento informando que o atendente esta atendendo ou é um potêncial atendedor. Caso ele sair do sistema fechando o browser, efetuando um logof(Sair) ou deixar a tela de atendimento o campo deixará de ser atualizado. Quando quero saber quantos atendentes estão online, verifico no banco seu status e se o mesmo atualizou o timestamp a menos de 10 segundos.

                   Espero que seja útil para quem precisar.

  • A1a11faa39aa7f4c09a870ba941ed424?only path=false&size=50&d=404Michele Klippel(usuário não autenticado)
    19 de Março de 2012, 13:45

     

    Existe a possibilidade de saber que serviço/senha o atendente está atendendo? Preciso monitorar quem está fazendo o quê, é possível?

    • 1e417dfbea691bc51c490af35dfcd00a?only path=false&size=50&d=404Adilson Oliveira Cruz(usuário não autenticado)
      20 de Março de 2012, 13:52

       

       Sim, você pode emitir o relatório de Atendimentos em Todos os Status. Este relatório é bem completo e traz diversas informações sobre como está o andamento dos atendimentos. Número da senha, data, serviço triado, status do atendimento, funcionário que prestou o atendimento, hora de chegada, chamada e saída do cliente , tempo de espera, deslocamento, atendimento e de permanência do cliente além do guichê onde o cliente foi atendido são as informações exibidas por este relatório.

Encontro da comunidade SGA Livre no FISL11

13 de Julho de 2010, 15:41, por Desconhecido

Prezados,



Em uma semana, SGA Livre ultrapassa mil usuários

10 de Novembro de 2009, 19:19, por Desconhecido

Em apenas uma semana de funcionamento, a comunidade do Sistema de Gerenciamento do Atendimento (SGA Livre) do Portal Software Público atingiu a marca de mil usuários. O lançamento e a disponibilização do software livre foi feito no último dia 22, durante a 6ª Conferência Latino-Americana de Software Livre (Latinoware 2009), que ocorreu em Foz do Iguaçu (PR).



Nova versão da aplicação Web 1.0.2

4 de Novembro de 2009, 17:05, por Desconhecido

Disponível nova versão da aplicação web (1.0.2). Corrige uma falha na impressão da senha, no módulo de Triagem.



Nova versão da aplicação Web 1.0.1

29 de Outubro de 2009, 12:56, por Desconhecido

Disponível nova versão da aplicação Web do SGA LIVRE, que corrige: