Looplex Knowledge Base

PlusDays

Dada uma data qualquer, o tube plusDays devolve uma nova data com acréscimo de um número inteiro de dias especificado pelo segundo parâmetro do tube.

Formato:

plusDays(data,num)

Parâmetros:

  • data: data a ser processada. Pode ser indicada no formato “DD/MM/AAAA” ou por uma variável do tipo Date. Pode, ainda, ser indicada pelo retorno de outro tube que retorne uma data.
  • num: número de dias a serem acrescentados. Pode ser indicado por um número inteiro, sem o uso de aspas, ou por uma variável do tipo Integer.

Retorno:

Retorna uma data que corresponde a data mais num dias.

Exemplos:

1. plusDays com data. Se no momento de elaboração do template já se tem conhecimento da data e do número de dias que será acrescido, sem depender de uma resposta dada pelo usuário, podemos usar o plusDays da seguinte forma:

plusDays("05/08/1983", 5)

Como retorno, receberemos o valor "10/08/1983".

2. plusDays com variáveis. Em uma proposta comercial, em que o usuário preenche a validade da proposta em dias e a data de envio da proposta, podemos utilizar o plusDays para calcular a data que representa o termo final para o aceite da proposta. Considerando uma variável do tipo Date <dataDeEnvio>, que contém a data em que o cliente recebeu a proposta, e uma variável do tipo Integer prazoDeValidade, que contém o prazo de validade em dias, podemos printar a seguinte cláusula da proposta:

print "Cláusula Sétima: A presente proposta será válida até " & plusDays(<dataDeEnvio>, <prazoDeValidade>) & "."

3. plusDays com after. Neste exemplo, vamos juntar o tube plusDays com o tube after para verificar a tempestividade de uma reclamação junto ao PROCON e avisar o usuário quando o prazo de 30 dias após o recebimento do produto já houver esgotado. Neste caso, trabalharemos com duas variáveis do tipo Date informadas pelo usuário: <dataReclamacao> e <dataRecebimentoDoProduto>, que contêm a data em que o consumidor apresentará a Reclamação junto ao PROCON e a data em que o consumidor recebeu o produto, respectivamente.

O retorno do tube **plusDays**(<dataRecebimentoDoProduto>, 30) representa o termo final para apresentação da reclamação.

Este resultado, por sua vez, será utilizado dentro do tube after da seguinte maneira:

if(after(<dataReclamacao>, plusDays(<dataRecebimentoDoProduto>, 30))) {
<dataRecebimentoDoProduto>.error("Atenção: o prazo para apresentar a reclamação foi esgotado, nos termos do art. 26, I, CDC")
}

Receberemos o retorno verdadeiro (true) se a reclamação estiver sendo apresentada após o fim do prazo, o que significa que a reclamação não é tempestiva, condicionando o aparecimento de uma mensagem para o usuário, com o uso do tube error. Caso contrário, a instrução after (<dataReclamacao>, plusDays(<dataRecebimentoDoProduto>, 30)) terá o retorno falso (false), o que não ativará a mensagem de erro, permitindo que o usuário continue a elaborar sua reclamação.

4. plusDays com today. Partindo do exemplo acima, vamos substituir a variável <dataReclamacao> pelo today, que retorna a data do momento em que o documento está sendo preenchido. Dessa forma, será calculada a tempestividade considerando que o dia de apresentação da reclamação corresponde ao dia de preenchimento do documento. Vejamos:

if(after(today(), plusDays(<dataRecebimentoDoProduto>, 30))) {
<dataRecebimentoDoProduto>.error("Atenção: o prazo para apresentar a reclamação foi esgotado, nos termos do art. 26, I, CDC")
}

Boas práticas em Lawtex. Por último, observe-se que, por uma questão de clareza do código, poderíamos substituir o uso do tube plusDays(<dataRecebimentoDoProduto>, 30) por uma variável oculta, isto é, uma variável cujo valor não é atribuído pelo usuário (não aparece como uma pergunta). Assim, utilizaremos a variável oculta do tipo Date <termoFinal> para armazenar o retorno do tube plusDays, que representa o último dia para apresentação da reclamação. Como resultado final, teremos:

operations {
<termoFinal> = plusDays(<dataRecebimentoDoProduto>, 30),
if(after(today(), <termoFinal>)) {
<dataRecebimentoDoProduto>.error("Atenção: o prazo para apresentar a reclamação foi esgotado, nos termos do art. 26, I, CDC")
}
Edit this page on GitHub