Skip to main content

Bom dia pessoal, eu gostaria de uma ajuda para criar uma condição no blip com data, tipo


eu tenho a data de vencimento do boleto,


se ele ja tiver vencido a mais de 3 dias mandar ele para o atendimento humano, se n


manda ele para outra etapa.



Alguem consegue me ajudar ?

Bom dia, Josias, tudo bem? Boa sexta pra você! 😜



O que você precisa é basicamente:







  1. Pegar a data de vencimento do boleto que você já tem


  2. Pegar a data do dia de hoje, usando a variável {{calendar.date}}



  3. Fazer um Script para subtrair uma da outra e saber quanto tempo se passou






Me fala aí, qual é o formato da data que você recebe? Aí eu consigo te ajudar com um script aqui.


Opa Bruno, Bom dia



Ela retorna dessa maneira.



[data_vencimento] => 2021-12-13T00:00:00-0300



Porém eu coloquei o tratamento dela no script.



function run(va) {

va=va.split(""data_vencimento] =>")

va=vaa1]

va=va.split(""valor_boleto] =>")

va=vaa0]



va = va.split("T"))0];

va = va.split("-");



return vaa2] + "/" + vaa1] + "/" + vaa0];

}



Para que ela fique de maneira normal tipo 13/12/2021.


Consegue me ajudar nesse script @BrunoC,


por gentileza, estou quebrando a cabeça com isso kk


Josias, eu fiz mais ou menos assim, olha só:



function run(data1, data2) {

var newData1 = data1.split("/");

var newData2 = data2.split("-");

var dateObject1 = new Date(+newData112], newData111] - 1, +newData110]);

var dateObject2 = new Date(+newData220], newData221] - 1, +newData222]);

const diffTime = Math.abs(dateObject1 - dateObject2);

const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));



if (dateObject2 > dateObject1 && diffDays > 3) {

return true; //retorna true se ja tiver passado 3 dias

} else {

return false; //retorna falso se for menor ou IGUAL a 3 dias

}



}



O que eu fiz foi, primeiro, transformar as datas para que fosse possível trabalhar com elas.





A data que você já tem está no formato DD/MM/AAAA


A data de hoje, que o blip retorna, vem no formato AAAA-MM-DD





Depois eu fiz uma checagem pra ver se a data de vencimento é menor que a data de hoje (ou seja, está vencido) e se já se passaram 3 dias (a diferença entre elas é MAIOR que 3). Não considerei o caso em que está vencido há exatamente 3 dias, por exemplo:





Vencimento: 13/12/2021


Data de hoje: 16/12/2021


Retorno: false







Vencimento: 13/12/2021


Data de hoje: 17/12/2021


Retorno: true





Lembre-se de, no Blip, adicionar as duas variáveis de entrada no seu script, onde:



data1 = a sua data


data2 = {{calendar.date}}


Agora é só usar a variável de retorno desse script pra definir se vai ou não pra atendimento humano:





Se variável_de_retorno é igual a true, vá para Atendimento humano


Se variável_de_retorno é igual a false, vá para próxima etapa




@BrunoC , eu colocaria esse script dentro do meu ? ou em um bloco separado.


Pode ser no mesmo bloco, mas em uma ação de Executar Script separada, depois do seu já existente.


@BrunoC , Muito obg pela sua ajuda, deu certo aqui


Agradeço mesmo, ótimo dia para você.


@BrunoC obrigado por esse script! Tem nos ajudado bastante por aqui.



Seria possível adaptar esse script para validar uma data seguindo os seguintes critérios?





  • Data digitada pelo usuário é igual a data de hoje


  • Data digitada pelo usuário é maior que data de hoje (user digitou uma data futura)


  • Data digitada pelo usuário é menor que a data de hoje mas supera o período de 13 meses




Estou tentando adaptar aqui pelo menos a primeira parte (data igual a hoje) alterando a linha if (dateObject2 > dateObject1 && diffDays > 3) para algo tipo if (dateObject2 == dateObject1), mas não tive sucesso.



O caso de uso é que se a data digitada pelo usuário atingir qualquer um dos três critérios acima, eu apresento uma mensagem de que a data é invalida e direciono o usuario para outro ponto do fluxo, se a data que ele digitou não se aplica a nenhum dos critérios acima, ele segue o fluxo porque digitou uma data válida.


Comente