Passar para o conteúdo principal

Como fazer uma fórmula de campo de data condicional

Nesse artigo mostramos como preencher um campo de data com base em um campo de opções pré-cadastradas.

João Pedro Ledo avatar
Escrito por João Pedro Ledo
Atualizado há mais de 2 anos

Para essa configuração, vou usar um modelo de proposta.

Para acessar os modelos, clique em:
Administração > Modelos de documento > Selecione o modelo desejado

Vou criar dois campos:

Data de entrega, que é um campo do tipo Data e vai receber a fórmula.

Dias para entrega, que é um campo de Opções pré-cadastradas e recebe as opções para entrega.

Para criar um campo, clique em:

Campos> Proposta > Criar campo

Preencha o Tipo (Opções pré-cadastradas), o Título do campo, e adicione as Opções:

Feito isso, seguimos para a criação do campo de data:

Aqui vamos configurar uma fórmula em "Configurações avançadas".

Selecione a fórmula padrão em "Códigos JS"

Substitua o gatilho pelo "Dias para entrega"

e o "3" por "0".

Agora, vamos configurar a condicional:

  if(gatilho==="Entrega no mesmo dia"){
x=0
}
else if(gatilho==="Entrega no dia seginte"){
x=1
}else if(gatilho==="4 dias"){
x=4
}else if(gatilho==="7 dias"){
x=7
}else if(gatilho==="30 dias"){
x=30
}

Na linha:

let date = new Date("[Proposta.Data]");

vamos remover o "[Proposta.Data]" caso queiramos que a data seja calculada a partir do dia de hoje.

Se precisar que seja calculado com base em outro campo de data ou caom a data da proposta, é necessário inserir o campo pelo modal "Campos":

Por fim, somamos 1 na variável x - isso se dá pois o Javascript começa a contar do 0.

Minha fórmula final ficou assim:

(function (gatilho, x) {
if(gatilho==="Entrega no mesmo dia"){
x=0
}
else if(gatilho==="Entrega no dia seginte"){
x=1
}else if(gatilho==="4 dias"){
x=4
}else if(gatilho==="7 dias"){
x=7
}else if(gatilho==="30 dias"){
x=30
}
let date = new Date();
date.setDate(date.getDate() + x+1);
return date.toLocaleDateString("pt-Br");
})("[Proposta.Dias para entrega]", 0);

Clique aqui para ver o teste e um vídeo mostrando dicas extra

Respondeu à sua pergunta?