Ferramentas do usuário

Ferramentas do site


plus_days_tube

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
plus_days_tube [2019/09/04 20:00]
127.0.0.1 edição externa
plus_days_tube [2020/07/09 14:19] (atual)
179.111.199.71
Linha 1: Linha 1:
 ===== PlusDays ===== ===== PlusDays =====
-Dada uma data qualquer, o tube **plusDays** devolve uma nova data com acréscimo de um número inteiro de dias especificado ​por argumento.+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: === === Formato: ===
 >  plusDays(//​data//,//​num//​) \\ >  plusDays(//​data//,//​num//​) \\
 === Parâmetros: ​ === === Parâmetros: ​ ===
-  * //data//: data a ser processada\\ +  * //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\\+  * //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: ​ === === Retorno: ​ ===
   * Retorna uma data que corresponde a //data// mais //num// dias.   * 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_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_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_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_tube|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")
 + }
 +
  
-     ​Exemplo:​ plusDays("​05/​08/​1983",​ 5) # retorna "​10/​08/​1983"​ 
plus_days_tube.txt · Última modificação: 2020/07/09 14:19 por 179.111.199.71