Passar para o conteúdo principal
Todas as coleçõesPropostas e documentos
Como fazer uma fórmula de campo de data condicional
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 um ano

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?