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