Vw crm service programacao

De Wiki NBS
Ir para navegação Ir para pesquisar

Esta view seleciona todas as campanhas ativas e o numero de Eventos que as mesmas tem

SELECT RESULTADO.ID_PROG,

       PROG_NOME,

       EQUALIZAR,

       TOT_EVENTOS,

       TOT_AGENTE,

       RESULTADO.NOME,

       TOT_EVENTO_RESP

  FROM EMPRESAS_USUARIOS EU,

       (SELECT NOVA_PROG.ID_PROG,

               NOVA_PROG.PROG_NOME,

               NOVA_PROG.EQUALIZAR,

               NOVA_PROG.TOT_EVENTOS,

               NOVA_PROG.TOT_AGENTE,

               CEIL(NOVA_PROG.TOT_EVENTOS / NOVA_PROG.TOT_AGENTE) TOT_EV_AGENTE,

               RESP.NOME,

               RESP.TOT_EVENTO_RESP

          FROM (

                -- pega todos os AGENTES do TIME, neste momento. Passado nao importa

                SELECT MEMBRO.NOME NOME,

                        CPA.ID_PROG,

                        (SELECT COUNT(*)

                           FROM CRM_EVENTOS EV

                          WHERE EV.STATUS = 'P'

                            AND EV.COD_PROGRAMACAO > 0

                            AND EV.RESPONSAVEL_PELO_EVENTO = MEMBRO.NOME) TOT_EVENTO_RESP

                  FROM CRM_TIME_MEMBRO     MEMBRO,

                        CRM_PROG_AUTOMATICA CPA,

                        EMPRESAS_USUARIOS   EU

                 WHERE MEMBRO.ID_TIME = CPA.ID_TIME

                   AND MEMBRO.NOME = EU.NOME

                   AND NVL(EU.DEMITIDO, 'N') = 'N'

                 GROUP BY membro.nome, cpa.id_prog) RESP,

               -- pega dados da campanha

               (SELECT A.ID_PROG,

                       A.EQUALIZAR,

                       A.DESCRICAO PROG_NOME,

                       COUNT(*) TOT_EVENTOS,

                       TIM.TOT_AGENTE

                  FROM CRM_EVENTOS EV,

                       CRM_PROG_AUTOMATICA A,

                       (SELECT ID_TIME, COUNT(*) TOT_AGENTE

                          FROM CRM_TIME_MEMBRO CTM, EMPRESAS_USUARIOS EU

                         WHERE CTM.NOME = EU.NOME

                           AND NVL(EU.DEMITIDO, 'N') = 'N'

                         GROUP BY ID_TIME) TIM

                -- ----------------------------------------------------------------------------------------------

                 WHERE A.ATIVO = 'S'

                      -- PEGA O TOTAL DE AGENTES DO TIME

                   AND A.ID_TIME = TIM.ID_TIME

       

              -- FILTROS EMPRESA TIPO EVENTO

                   AND EXISTS (SELECT 1

                          FROM CRM_PROG_EMPRESA

                         WHERE ID_PROG = A.ID_PROG --DA QUERY.PROGRAMACAO

                           AND COD_EMPRESA = EV.COD_EMPRESA)

                   AND EXISTS

                 (SELECT 1

                          FROM CRM_PROG_TIPO

                         WHERE ID_PROG = A.ID_PROG

                           AND COD_TIPO_EVENTO = EV.COD_TIPO_EVENTO)

                      -- SOMENTE PENDENTES E NAO PROGRAMADOS

                   AND EV.STATUS = 'P'

                   AND EV.COD_PROGRAMACAO IS NULL

           

          -- PEGA A DATA PROXIMO CONTATO ALEM DA ULTIMA LEITURA

                   AND TRUNC(NVL(EV.DATA_NOVO_CONTATO, EV.DATA_EVENTO)) >= NVL(TRUNC(A.ULTIMO_DIA_LIDO) - 1, TRUNC(SYSDATE) - 1) -- SEMPRE VOLTA 1 DIA PRA PEGAR OS QUE ENTRARAM NO DIA

                   AND TRUNC(NVL(EV.DATA_NOVO_CONTATO, EV.DATA_EVENTO)) <= NVL(TRUNC(A.ULTIMO_DIA_LIDO) - 1, TRUNC(SYSDATE) - 1) + DECODE(PERIODO_LEITURA, 'D', 1, 'S', 7, 'Q', 15, 'M',  30)

     

           GROUP BY ID_PROG, TIM.TOT_AGENTE, A.EQUALIZAR, A.DESCRICAO) nova_prog

         WHERE RESP.ID_PROG = NOVA_PROG.ID_PROG

        ) RESULTADO

--

 WHERE EU.NOME = RESULTADO.NOME

 ORDER BY EU.FILA_WHATSAPP DESC;