Bom dia, Josias, tudo bem? Boa sexta pra você! 😜
O que você precisa é basicamente:
- Pegar a data de vencimento do boleto que você já tem
- Pegar a data do dia de hoje, usando a variável
{{calendar.date}}
- 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.