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
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
'''<big>Agendamento - Lê as  Agendas programadas que ainda não foram para a fila</big>'''
'''<small>Job_LEADZAP_disparo_AGENDAMENTO</small>'''
<small>Select ev.cod_empresa, ev.cod_evento,    cli.prefixo_cel DDD,cli.telefone_cel Celular</small>
<small>from crm_eventos ev,      clientes cli  ,   cliente_diverso div,     crm_programacao prog     </small>
<small>  </small>
<small>where ev.cod_cliente    = cli.cod_cliente </small>
<small>and  ev.cod_programacao = prog.cod_programacao</small>
<small>and  cli.cod_cliente    = div.cod_cliente</small>
<small>-- eventos pendentes</small>
<small>'''and   ev.status = 'P'''' </small>
<small>-- nao pode estar na tabela de disparo, pois se ja esta, ja chegou onde queriamos</small>
'''<small>and ev.cod_evento not in (select cod_evento from crm_disparo_fila)</small>'''
<small>-- nao pode ter flags marcado</small>
'''<small>and nvl(div.crm_sms,'N') = 'N'</small>'''
<small>-- so pega valido celular</small>
<small>'''and length(trim(cli.prefixo_cel)) = 2  and length(trim(cli.telefone_cel)) in (8,9)''' </small>
<small>-- pega os agendados para hoje (ou seja,ligaria hoje para agendar)</small>
'''<small>and ev.data_novo_contato >= trunc(sysdate)</small>'''    '''<small>and ev.data_novo_contato <  trunc(sysdate+1)</small>'''
'''<big>Lembrete - Query que seleciona os eventos Agendados a confirmar para disparo</big>'''
<small>SELeCT agenda.cod_empresa, agenda.cod_os_agenda , </small>
<small> cli.prefixo_cel , cli.telefone_cel, agenda.data_agendada</small>
<small> from  os_agenda agenda , clientes cli, crm_parm_fluxo parm, cliente_diverso div</small>
<small> where agenda.cod_cliente = cli.cod_cliente</small>
<small> and   agenda.cod_empresa = parm.cod_empresa</small>
<small> and   cli.cod_cliente    = div.cod_cliente</small>
<small> '''and agenda.status_agenda = 'A' -- se ja confirmada nao precisa 'C''''</small>
<small>  AND Nvl(agenda.apagar_ao_sair, 'N') <> 'X'</small>
<small> -- cliente tem flag de envio liberado</small>
<small> '''and nvl(div.crm_sms,'N') = 'N'''' </small>
<small> -- pega a turma do futuro: amanha, conforme parametro. se vazio poe 1 dia na frente</small>
<small> '''and (agenda.data_agendada - nvl(parm.tempo_aviso_recepcao,1)) >=  trunc(sysdate)'''</small>
'''<small> and (agenda.data_agendada - nvl(parm.tempo_aviso_recepcao,1)) <   trunc(sysdate+1)</small>'''
<small> --telefone celular tem que ser valido</small>
<small> '''and length(cli.prefixo_cel)   = 2   and length(cli.telefone_cel) >= 8'''</small>
'''<big>No Show - Query que lê as Agendas que não compareceram e alimenta a fila</big>'''
<small>SELeCT agenda.cod_empresa, agenda.cod_os_agenda , cli.prefixo_cel , cli.telefone_cel, agenda.data_agendada</small>
<small>from  os_agenda agenda , clientes cli, crm_parm_fluxo parm, CRM_EVENTOS EV,   cliente_diverso div</small>
<small>where agenda.cod_cliente = cli.cod_cliente</small>
<small>and   agenda.cod_empresa = parm.cod_empresa</small>
<small>AND AGENdA.CRM_COD_EMPRESA = EV.COD_EMPRESA</small>
<small>and agenda.crm_cod_evento  = ev.cod_evento</small>
<small>and  cli.cod_cliente    = div.cod_cliente</small>
<small>-- Cliente nao pode ter flags marcado</small>
'''<small>and nvl(div.crm_sms,'N') = 'N'</small>'''
<small>-- AGENDA TEM QUE ESTAR ATIVA</small>
<small>AND Nvl(agenda.apagar_ao_sair, 'N') <> 'X'</small>
'''<small>AND agenda.status_agenda IN ('C', 'A')</small>'''
<small>-- TEM QUE SER HOJE</small>
'''<small>and (agenda.data_agendada) >=  trunc(sysdate)  and  (agenda.data_agendada) <   trunc(sysdate+1)</small>'''
<small>-- QUE QUE TER ULTRAPASSADO O LIMITE DE HORAS . SE NAO MARCARAM O PARAMEtro VOU COLCOAR 4 HORAS</small>
'''<small>and (SYSDATE  - agenda.data_agendada)/24 >   nvl(PARM.tempo_horas_para_voltar_agenda,(4/24))</small>'''
<small>--telefone celular tem que ser valido</small>
'''<small>and length(cli.prefixo_cel)   = 2  and length(cli.telefone_cel) >= 8</small>'''
'''<big>Query que lê a fila TODOS os tipos de disparos e envia mensagem</big>'''
<small>SELECT   disparo.template,         fila.ddd,         fila.celular,         fila.cod_empresa,         fila.cod_evento,</small>
<small>SELECT   disparo.template,         fila.ddd,         fila.celular,         fila.cod_empresa,         fila.cod_evento,</small>


Linha 116: Linha 11:
<small>         AND fila.cod_evento = ag.crm_cod_evento(+)</small>
<small>         AND fila.cod_evento = ag.crm_cod_evento(+)</small>


'''<small>-- tem que existir dados no template</small>'''
<small>-- tem que existir dados no template</small>


<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>
<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>


'''<small>-- disparos com data menor que agora</small>'''
<small>-- disparos com data menor que agora</small>


<small>         AND fila.data_disparo <= SYSDATE</small>
<small>         AND fila.data_disparo <= SYSDATE</small>


'''<small>-- Celular valido</small>'''
<small>-- Celular valido</small>


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


'''<small>--Eventos ativos</small>'''
<small>--Eventos ativos</small>


<small>         AND fila.status = 'P'</small>
<small>         AND fila.status = 'P'</small>


'''<small>-- parâmetro de Ativar LEADZAP OK</small>'''
<small>-- parâmetro de Ativar LEADZAP OK</small>


<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>
<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>


'''<small>- Empresa tem que estar cruzada com algum número de LEADZAP</small>'''
<small>-- Empresa tem que estar cruzada com algum número de LEADZAP</small>


<small>         AND EXISTS (SELECT 1         FROM   crm_whatsapp_empresa a         WHERE  a.cod_empresa = fila.cod_empresa)</small>
<small>         AND EXISTS (SELECT 1         FROM   crm_whatsapp_empresa a         WHERE  a.cod_empresa = fila.cod_empresa)</small>


<small>ORDER BY fila.cod_empresa</small>
<small>ORDER BY fila.cod_empresa</small>

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