SMS

De Tek-System Wiki
Ir para navegação Ir para pesquisar

Liberação da Funcionalidade

Para utilização do envio de SMS pelo sistema Tek-System ERP 4G será necessário a liberação da funcionalidade na Licença do cliente.

Lista de Publicação (LGPD)

Configurações

Cadastrar listas de publicação (LGPD) através do Menu de cadastros, LGPD, Listas de Publicação. Disponível nos módulos BI - Gerador de Relatórios, Gestão da Qualidade.

  • RECEBIMENTO DE COBRANÇA POR SMS
  • RECEBIMENTO DE STATUS DE DOCUMENTOS POR SMS

Exemplo:

Informar datas de validade para a lista.

ListaPublicacao 01.png

Informar Consentimento/Revogação para as pessoas cadastradas no sistema.

ListaPublicacao 02.png

Após cadastros, deverá ser realizado a configuração na Tek Store para uso nos processamentos de INTEGRACAO SMS: Enviar Status dos Documentos e INTEGRACAO SMS: Enviar Cobrança.

Incluir uma unidade de codificação com o nome SMS_CONFIGURACAO_XXXX.

  • XXXX corresponde ao código do cliente na Tek-System.
  • Tipo da Unidade de Codificação deverá ser JSON.

Informar na Codificação os códigos dos dois cadastros gerados, como no exemplo:

{
    "ListaPublicacaoSMS_StatusDocumento": "3",
    "ListaPublicacaoSMS_Cobranca": "4"
}

Informe números separados por virgula quando existir mais de uma Lista de Publicação (LGPD).

{
    "ListaPublicacaoSMS_StatusDocumento": "3,5",
    "ListaPublicacaoSMS_Cobranca": "4"
}

Funcionalidades

Envio de SMS

Os envios de SMS podem ser realizados através de processamentos específicos, agendamentos, gatilhos, entre outros.

Serão enviados apenas para pessoas que possuem telefones do tipo igual a C = Celular.

INTEGRACAO SMS: Enviar Mensagem

Envio de mensagem SMS informada pelo usuário através do processamento específico INTEGRACAO SMS: Enviar Mensagem para filtros de pessoas.

Ao executar o processamento será apresentado a tela com os filtros:

EnvioAvulsoSMS.png

No campo de mensagem, o usuário poderá informar a mensagem que deseja enviar.

Não deve ser utilizado quebra de linha através do ENTER.
Utilize a tag <br> para quebra de linha na mensagem.
Utilize a tag <RAZAO_PESSOA> para substituir pelo nome da pessoa encontrada nos filtros.

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioAvulsoSMS 02.png

Após confirmação dos filtros, será enviado as mensagens SMS.

INTEGRACAO SMS: Enviar Status dos Documentos

Envio de mensagem SMS através do processamento específico INTEGRACAO SMS: Enviar Status dos Documentos para documentos que tiveram alteração de Status na data atual.

Ao executar o processamento será apresentado a tela com os filtros:

EnvioSmsStatus 01.png

No campo de mensagem, o usuário poderá informar a mensagem que deseja enviar. Caso não informe uma mensagem, será utilizado a mensagem padrão:

A mensagem deve ter no máximo 160 caracteres.

Alteracao de status <br> <TIPODOCUMENTO>: <DOCUMENTO> <br> Status: <CODIGO_STATUS> - <DESCRICAO_STATUS> <br> Data: <DATA_ALTERACAO>
Não deve ser utilizado quebra de linha através do ENTER.

Tags disponíveis:

<br> para quebra de linha na mensagem.
<CODIGO_PESSOA> para substituir pelo código da pessoa encontrada nos filtros.
<RAZAO_PESSOA> para substituir pelo nome da pessoa encontrada nos filtros.
<EMPRESA> para substituir pelo nome da empresa.
<DOCUMENTO> para substituir pelo número do documento.
<CODIGO_STATUS> para substituir pelo código do status.
<CODIGO_STATUS> para substituir pelo código do último status atualizado.
<DESCRICAO_STATUS> para substituir pelo descrição do último status atualizado.
<DATA_ALTERACAO> para substituir pela data do último status atualizado.

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioSmsStatus 02.png

Após confirmação dos filtros, será enviado as mensagens SMS.

INTEGRACAO SMS: Enviar Cobrança

Envio de mensagem SMS através do processamento específico INTEGRACAO SMS: Enviar Cobrança para duplicatas e cheques de cobrança.

Ao executar o processamento será apresentado a tela com os filtros:

EnvioSmsCobranca 01.png

No campo de mensagem, o usuário poderá informar a mensagem que deseja enviar. Caso não informe uma mensagem, será utilizado a mensagem padrão:

A mensagem deve ter no máximo 160 caracteres.

Ola! Nao identificamos o pagamento do titulo <DOCUMENTO>. Entre em contato para chegarmos juntos a melhor solucao.<br> <EMPRESA>
Não deve ser utilizado quebra de linha através do ENTER.

Tags disponíveis:

<br> para quebra de linha na mensagem.
<CODIGO_PESSOA> para substituir pelo código da pessoa encontrada nos filtros.
<RAZAO_PESSOA> para substituir pelo nome da pessoa encontrada nos filtros.
<EMPRESA> para substituir pelo nome da empresa.
<DOCUMENTO> para substituir pelo número do documento.
<SEQUENCIA> para substituir pelo código da sequencia da duplicata ou cheque.
<DTEMISSAO> para substituir pela data de emissão da duplicata ou cheque.
<DTVENCIMENTO> para substituir pela data de vencimento da duplicata ou cheque.
<VALOR> para substituir pelo valor da duplicata ou cheque.
<VALOR_ABERTO> para substituir pelo valor aberto da duplicata ou cheque.
<VALOR_PAGO> para substituir pelo valor pago da duplicata ou cheque.

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioSmsCobranca 02.png

Após confirmação dos filtros, será enviado as mensagens SMS.

Agendamento de SMS

Ao acessar o cadastro de Agendamentos no módulo BI - Gerador de Relatórios, o usuário poderá verificar o exemplo de utilização do agendamento de SMS.

Menu -> Relatórios -> Agendamentos

Selecionar a opção de Condição para Execução, Exemplo de Envio de SMS.

Envio de Status de Documentos

Exemplo de configuração para agendamento de envio de status dos documentos.

Configuração padrão, filtros vazios:

  • Será enviado SMS para todas pessoas que possuem telefone do tipo C= Celular, e que tenham a marcação de envia Mala Direta em seu cadastro.
  • Será considerado todos documentos que tiveram atualização de Status no dia.
  • IgnorarEcommerces: Indica que o processamento irá ignorar pedidos referente E-Commerces, pois geralmente as notificações já são tratadas pelas integrações.
  • A mensagem a ser enviada deverá respeitar o limite de 160 caracteres.

Condição para Execução:

unit ProcessarEnvioSMS;

uses TEK_INTEGRACAO_SMS_PROC_STATUS_DOCUMENTOS;

const
  IgnorarEcommerces = True; 
  Filtros = '';
  
function Main: OleVariant;
var
  Mensagem: String; 
begin
  Mensagem := 'Alteracao de status <br> <TIPODOCUMENTO>: <DOCUMENTO> <br> Status: <CODIGO_STATUS> - <DESCRICAO_STATUS> <br> Data: <DATA_ALTERACAO>';

  TEK_INTEGRACAO_SMS_PROC_STATUS_DOCUMENTOS.DefinirMensagemPadrao(Mensagem);
  TEK_INTEGRACAO_SMS_PROC_STATUS_DOCUMENTOS.ProcessarAgendamento(Filtros, IgnorarEcommerces);

  Result := True;
end;

end.

Para utilizar filtros diferentes do padrão será necessário preencher as constantes Filtros.

Exemplo:

Considerar apenas pedidos de venda da empresa, com status alterados na data atual, e pessoas com telefone igual ao tipo C= Celular e marcação de Envia Mala Direta.

const
   Filtros = '  and DOCUMENTO_FATURA.TIPO_DOCFAT = 1 ' + #13 +
             '  and DOCUMENTO_STATUS.DATAHORAALTERACAO_DOCSTA >= ' + DataSQL(HOJE, 1) + #13 +
             '  and DOCUMENTO_FATURA.EMPRESA_DOCFAT = ' + IntToStr(Codigo_Empresa_Atual) + #13 +
             '  and PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ''C''' + #13 +                  
             '  and PESSOA.MALADIRETA_PESSOA = ''S'''; 

Envio de Cobrança

Exemplo de configuração para agendamento de envio de cobrança por SMS.

Configuração padrão, filtros vazios:

  • Será enviado SMS para todas pessoas que possuem telefone do tipo C= Celular, e que tenham a marcação de envia Mala Direta em seu cadastro.
  • Será considerado todas duplicatas abertas com vencimento anterior a dois dias da data atual.
  • Será considerado todos cheques devolvidos abertos com vencimento anterior a dois dias da data atual.
  • A mensagem a ser enviada deverá respeitar o limite de 160 caracteres.

Condição para Execução:

unit ProcessarEnvioSMS;

uses TEK_INTEGRACAO_SMS_PROC_COBRANCA;

const
  FiltrosDup = ''; 
  FiltrosChe = ''; 

function Main: OleVariant;
var
  Mensagem: String; 
begin
  Mensagem := 'Ola! Nao identificamos o pagamento do titulo <DOCUMENTO>. Entre em contato para chegarmos juntos a melhor solucao.<br> <EMPRESA>';

  TEK_INTEGRACAO_SMS_PROC_COBRANCA.DefinirMensagemPadrao(Mensagem);
  TEK_INTEGRACAO_SMS_PROC_COBRANCA.ProcessarAgendamento(FiltrosDup, FiltrosChe);

  Result := True;
end;

end.

Para utilizar filtros diferentes do padrão será necessário preencher as constantes FiltrosDup(Para Duplicatas) e/ou FiltrosChe(Para Cheques).

Exemplo:

Duplicatas com vencimento no ano anterior.

const
    FiltrosDup := '  and DUPLICATA.VENCIMENTO_DUP between ' + DataSQL(INICIO_ANO_ANTERIOR, 1) + ' and ' + DataSQL(FIM_ANO_ANTERIOR, 2) + #13 +
                  '  and DUPLICATA.SUBSTITUIDA_DUP = ''N''' + #13 +
                  '  and DUPLICATA.DESCONSIDERADA_DUP = ''N''' + #13 +
                  '  and PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ''C''' + #13 +
                  '  and PESSOA.MALADIRETA_PESSOA = ''S''' + #13 +
                  '  and DUPLICATA.EMPRESA_DUP = ' + IntToStr(Codigo_Empresa_Atual) + #13;
    FiltrosChe := '';

Desconsiderar cheques para envio:

const
  FiltrosDup = ''; 
  FiltrosChe = 'and CHEQUE.AUTOINC_CHE = -1'; 

Gatilhos

Exemplo de utilização de envio de SMS através de gatilhos.

Enviar SMS notificando ao cliente sempre que houver alteração do Status do Documento.

Incluir cadastro de Gatilho para a tabela DOCUMENTO_FATURA e utilizar opção de Evento como 2 - Ao aplicar(Cliente - BeforeApplyUpdates).

Para testar, entre em um cadastro de pedido de venda e altere o Status. Irá enviar um SMS para o cliente caso ele tenha um número de Celular cadastrado.

unit GatilhoDocumento;

const
  cSistema = 86;

var
  CDSCad, CDSTemp: TClientDataSet;
  Documento, Mensagem, Celular, Status, DescStatus, Sql: String;
     
procedure Main;
begin
  if OldValue('STATUS_DOCFAT') <> Value('STATUS_DOCFAT') then
  begin
    CDSCad := FonteDeDados('CDSCadastro');
    CDSTemp := TClientDataSet.Create;  
    try
      Sql := 'select PESSOA_TELEFONE.TELEFONE_PESSOA_TEL' + #13 +
             'from PESSOA' + #13 +
             'left join PESSOA_TELEFONE on (PESSOA_TELEFONE.PESSOA_PESSOA_TEL = PESSOA.CODIGO_PESSOA)' + #13 +
             'where PESSOA.MALADIRETA_PESSOA = ''S''' + #13 + 
             '  and PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ''C''' + #13 + 
             '  and PESSOA_TELEFONE.TELEFONE_PESSOA_TEL is not null' + #13 +             
             '  and PESSOA.CODIGO_PESSOA = ' + CDSCad.FieldByName('CLIENTE_DOCFAT').AsString;
             
      CDSTemp.Data := ExecuteReader(Sql);
      
      Documento  := CDSCad.FieldByName('CODIGO_DOCFAT').AsString;
      Status     := CDSCad.FieldByName('STATUS_DOCFAT').AsString;
      DescStatus := CDSCad.FieldByName('DESCRICAO_STATUS').AsString; 
        
      Mensagem   := 'Alteracao de status <br> Pedido: ' + Documento + ' <br> Status: ' + Status + ' - ' + DescStatus + ' <br> Data: ' + DateTimeToStr(Hoje);

      if not CDSTemp.IsEmpty then
        CarregarUnitDinamicamente('TEK_INTEGRACAO_SMS'); 
      
      CDSTemp.First;
      while not CDSTemp.Eof do
      begin  
        Celular  := CDSTemp.FieldByName('TELEFONE_PESSOA_TEL').AsString;

        EnviarSimplesSms(cSistema, Documento, Celular, Mensagem, '', '', Hoje);
      
        CDSTemp.Next;    
      end;          
    finally
      CDSTemp.Free;
    end;  
  end;      
end;

end.