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") }