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