Bom dia.

Configurei um novosga há um tempo e uma das coisas que me surpreenderam positivamente foi a maneira como eram gerenciadas as prioridades. Utilizava uma fórmula com peso e tempo na espera onde a prioridade não ia automaticamente para o inicio da fila.

Esta semana configurei um servidor Ubuntu e, para minha surpresa, as senhas prioritárias não estão mais obedecendo a fórmula, elas simplesmente pulam para o inicio da fila independente do tempo em que a comum já está aguardando. Pensei que pudesse ser algum problema na configuração e refiz, desta vez em um Debian. A instalação prosseguiu corretamente mas o problema da prioridade pulando na frente persistiu.

Foi alterada a maneira como são tratadas as prioridades ou pode ser um problema na minha configuração ?

Obrigado.

    4 dias depois

    nerdin qual versão?

    Veja se não é problema de datas (isso já foi tratado aqui no fórum).

    Procurei em todos os posts mas encontrei muita coisa antiga, minha dúvida era mesmo se não tinha sido alterado isto no sistema (já que encontrei muita gente que gostaria do sistema da maneira que o meu está, com as prioritárias sempre pulando na frente). Se não foi, vou procurar a solução por aqui. Já bati o olho em todos posts relacionados, dei uma olhada nas datas, mas aparentemente está ok.
    Vou quebrar um pouco a cabeça aqui.
    Obrigado.

    A versão é a 2.0.4

    Ah, ok, essa era minha dúvida.
    Muito obrigado pelo retorno e parabéns pelo trabalho.

    3 meses depois
    um mês depois

    rogeriolino

    Hola.

    Hay alguna forma de volver a configurar el comportamiento de la version 1.5 en la version 2.x.x? Aqui ya estan acostumbrados a ese sistema (para bien o para mal)

      um mês depois

      Amigos, estive quebrando a cabeça, pois não me conformava com essa forma que as configurações padrão da fila de espera estava gerenciando a organização das prioridades na fila. Eu tinha um dilema: Normal (peso 0), Prioritário 2 (peso 1), Prioritário 1 (peso 2) e Expresso (peso 3). A melhor solução que eu encontrei já pronta me trazia o seguinte resultado: O meu atendente atenderia todas as senhas "Expressas" indiferente do horário de chegada das senhas dos outros serviços enquanto houvesse; após e da mesma forma com a "Prioridade 2", após e da mesma forma com a "Prioridade 1"; e só quando não houvesse senhas com prioridade ele chamaria por ordem de chegada as senhas sem prioridade.
      A solução veio da seguinte alteração no arquivo "FilaService.php"?

      class FilaService extends ModelService
      {
          // default queue ordering
          public static $ordering = array(
              // wait time
              /**array(
                  'exp' => '((p.peso + 1) * (CURRENT_TIMESTAMP() - e.dataChegada))',
                  'order' => 'DESC',
              ),
              // priority
              array(
                  'exp' => 'p.peso',
                  'order' => 'DESC',
              ), */
      
              // ticket number
              array(
                  'exp' => 'e.numeroSenha - (p.peso * 3)',
                  'order' => 'ASC',
              ),
          );
      7 dias depois
      4 dias depois

      Essa configuração foi removida do padrão por causa de como bancos diferentes tratam a operação matemática entre datas. Por isso, agora, é de responsabilidade de quem implantar o sistema fazer essa configuração (caso queira).

      2 meses depois

      rogeriolino Depois de alterado o arquivo e necessario executar algum comando para recompilar o codigo como e no painel ?

      Alguem conseguiu fazer essa alteração que @rogeriolino falou

      " Edite el archivo config/app.default.php con esta configuración src/Novosga/Service/FilaService.php#L21-L24"

      Estou tentando fazer no meu mas esta apresentando vários erros

      @rogeriolino

      Problemas resolvido devido ao Framework estava dando erro de indentação do código caso alguém precise que a prioridade no NOVOSGA 2 funcione da mesma forma que na versão 1.5 segue o código.

      return array_merge($ordering, [
                      // Prioridade X Tempo
                      [
                          'exp'   => '((prioridade.peso + 1) * (CURRENT_TIMESTAMP() - atendimento.dataChegada))',
                          'order' => 'DESC',
                      ],
                      // priority
                      [
                          'exp'   => 'prioridade.peso',
                          'order' => 'DESC',
                      ],
                      // peso servico x unidade
                      [
                          'exp'   => 'servicoUnidade.peso',
                          'order' => 'DESC',
                      ],
                      // dataChegada
                      [
                          'exp'   => 'atendimento.dataChegada',
                          'order' => 'ASC',
                      ]
                  ]);

      A alteração é feita no arquivo /config/app.default.php

        5 anos depois

        rarandrade caro amigo, tudo certo?

        Utilizei o código, porém o mesmo inverte a situação, joga as prioridades para o final.

        Obrigado