Query Disparos: mudanças entre as edições

De Wiki NBS
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
<small>SELECT   disparo.template,         fila.ddd,         fila.celular,         fila.cod_empresa,         fila.cod_evento,</small>


'''<big>Lembrete - Query que seleciona os eventos para disparo</big>'''
<small>         disparo.id_disparo,         disparo.template,         fila.id_disparo_fila,         Nvl(fila.cod_os_agenda, ag.cod_os_agenda) cod_os_agenda</small>
SELeCT agenda.cod_empresa, agenda.cod_os_agenda , 


 cli.prefixo_cel , cli.telefone_cel, agenda.data_agendada
<small>FROM     crm_disparo disparo,         crm_disparo_fila fila,         os_agenda ag</small>


 from  os_agenda agenda , clientes cli, crm_parm_fluxo parm, cliente_diverso div
<small>WHERE    disparo.id_disparo = fila.id_disparo</small>


 where agenda.cod_cliente = cli.cod_cliente
<small>         AND fila.cod_empresa = ag.crm_cod_empresa(+)</small>


 and   agenda.cod_empresa = parm.cod_empresa
<small>         AND fila.cod_evento = ag.crm_cod_evento(+)</small>


 and   cli.cod_cliente    = div.cod_cliente
<small>-- tem que existir dados no template</small>


 and agenda.status_agenda = 'A' -- se ja confirmada nao precisa 'C'
<small>         AND EXISTS (SELECT a.cod_evento        FROM   vw_crm_template_agendamento a            WHERE  a.cod_empresa = fila.cod_empresa                       AND a.cod_evento = fila.cod_evento)</small>


  AND Nvl(agenda.apagar_ao_sair, 'N') <> 'X'
<small>-- disparos com data menor que agora</small>


 -- cliente tem flag de envio liberado
<small>         AND fila.data_disparo <= SYSDATE</small>


 and nvl(div.crm_sms,'N') = 'N' 
<small>-- Celular valido</small>


 -- pega a turma do futuro: amanha, conforme parametro. se vazio poe 1 dia na frente
<small>         AND Length(fila.ddd) = 2         AND Length(celular) >= 8</small>


 and (agenda.data_agendada - nvl(parm.tempo_aviso_recepcao,1)) >=  trunc(sysdate)
<small>--Eventos ativos</small>


 and (agenda.data_agendada - nvl(parm.tempo_aviso_recepcao,1)) <   trunc(sysdate+1)
<small>         AND fila.status = 'P'</small>


 --telefone celular tem que ser valido
<small>-- parâmetro de Ativar LEADZAP OK</small>


 and length(cli.prefixo_cel)   = 2
<small>         AND EXISTS (SELECT 1                FROM   crm_parm_fluxo p              WHERE  p.cod_empresa = fila.cod_empresa                 AND Nvl(p.ativar_leadzap, 'N') = 'S')</small>


 and length(cli.telefone_cel) >= 8
<small>-- Empresa tem que estar cruzada com algum número de LEADZAP</small>


No Show - Query que lê as Agendas que não compareceram e alimenta a fila
<small>         AND EXISTS (SELECT 1         FROM   crm_whatsapp_empresa a         WHERE  a.cod_empresa = fila.cod_empresa)</small>
'''<big>Query que lê a fila de disparos e envia mensagem</big>'''
SELECT   disparo.template,


         fila.ddd,
<small>ORDER BY fila.cod_empresa</small>
 
         fila.celular,
 
         fila.cod_empresa,
 
         fila.cod_evento,
 
         disparo.id_disparo,
 
         disparo.template,
 
         fila.id_disparo_fila,
 
         Nvl(fila.cod_os_agenda, ag.cod_os_agenda) cod_os_agenda
 
FROM     crm_disparo disparo,
 
         crm_disparo_fila fila,
 
         os_agenda ag
 
WHERE    disparo.id_disparo = fila.id_disparo
 
         AND fila.cod_empresa = ag.crm_cod_empresa(+)
 
         AND fila.cod_evento = ag.crm_cod_evento(+)
 
         AND EXISTS (SELECT a.cod_evento
 
                     FROM   vw_crm_template_agendamento a
 
                     WHERE  a.cod_empresa = fila.cod_empresa
 
                            AND a.cod_evento = fila.cod_evento)
 
         AND fila.data_disparo <= SYSDATE
 
         AND Length(fila.ddd) = 2
 
         AND Length(celular) >= 8
 
         AND fila.status = 'P'
 
         AND EXISTS (SELECT 1
 
                     FROM   crm_parm_fluxo p
 
                     WHERE  p.cod_empresa = fila.cod_empresa
 
                            AND Nvl(p.ativar_leadzap, 'N') = 'S')
 
         AND EXISTS (SELECT 1
 
                     FROM   crm_whatsapp_empresa a
 
                     WHERE  a.cod_empresa = fila.cod_empresa)
 
ORDER BY fila.cod_empresa

Edição atual tal como às 20h48min de 20 de agosto de 2020

SELECT   disparo.template,         fila.ddd,         fila.celular,         fila.cod_empresa,         fila.cod_evento,

         disparo.id_disparo,         disparo.template,         fila.id_disparo_fila,         Nvl(fila.cod_os_agenda, ag.cod_os_agenda) cod_os_agenda

FROM     crm_disparo disparo,         crm_disparo_fila fila,         os_agenda ag

WHERE    disparo.id_disparo = fila.id_disparo

         AND fila.cod_empresa = ag.crm_cod_empresa(+)

         AND fila.cod_evento = ag.crm_cod_evento(+)

-- tem que existir dados no template

         AND EXISTS (SELECT a.cod_evento        FROM   vw_crm_template_agendamento a            WHERE  a.cod_empresa = fila.cod_empresa                       AND a.cod_evento = fila.cod_evento)

-- disparos com data menor que agora

         AND fila.data_disparo <= SYSDATE

-- Celular valido

         AND Length(fila.ddd) = 2         AND Length(celular) >= 8

--Eventos ativos

         AND fila.status = 'P'

-- parâmetro de Ativar LEADZAP OK

         AND EXISTS (SELECT 1                FROM   crm_parm_fluxo p              WHERE  p.cod_empresa = fila.cod_empresa                 AND Nvl(p.ativar_leadzap, 'N') = 'S')

-- Empresa tem que estar cruzada com algum número de LEADZAP

         AND EXISTS (SELECT 1         FROM   crm_whatsapp_empresa a         WHERE  a.cod_empresa = fila.cod_empresa)

ORDER BY fila.cod_empresa