Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Converter uma data para dd/mm/yyyy dentro de um setDisplayMask Existe a possibilidade de converter um campo data de yyyy/mm/dd para dd/mm/yyyy dentro de setDisplayMask? Estou precisando fazer isso para o campo datacontrato na código abaixo: ...
DA
Converter uma data para dd/mm/yyyy dentro de um setDisplayMask  
Existe a possibilidade de converter um campo data de yyyy/mm/dd para dd/mm/yyyy dentro de setDisplayMask?

Estou precisando fazer isso para o campo datacontrato na código abaixo:

  1. <?php
  2.         $contrato_id = new  ">TDBSeekButton('contrato_id''advday''form_Processos''Contratos','pessoas->nome','contrato_id','cliente_id');
  3.         $contrato_id->setDisplayMask(' Cliente: {pessoas->nome} - Data : {datacontrato} -  Aditivo: {aditivo} - {objeto}');
  4.         $contrato_id->setDisplayLabel('Informações do Contrato');
  5. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


AC

Boa tarde.

Você pode tentar fazer a conversão direta dentro da string, alterando o caractere delimitador de aspas simples para aspas duplas, desta forma: {TDate::date2br(datacontrato)}, ou criando uma variável que capture o valor antes já convertendo o dado para o formato BR e concatenando-a na sua string:
$datacontrato = TDate::date2br(valor_de_datacontrato); ... {$datacontrato} ...


Espero ter ajudado.
DA

Olá, Américo

Coloquei assim mas não trouxe nenhum valor

  1. <?php
  2.  $contrato_id->setDisplayMask(' Cliente: {pessoas->nome} - Data : {TDate::date2br("datacontrato")} -  Aditivo: {aditivo} - {objeto}');
  3. ?>


Estou acreditando que a função que monta o display na hora que acessamos o botão do TDBSeekButton, não interprete essa conversão.

Tem mais alguma outra idéia? Senão só resta verificar o comportamento dessa setDisplayMask para ver como é seu tratamento.

Valeu pela ajuda!
AC

Faça o teste, colocando a toda máscara entre aspas duplas. Não passe o termo datacontrato para TDate entre aspas.
Teste aí e me fale.
DA

Usei essas 3 formas:
<?=?php

$contrato_id->setDisplayMask("Cliente: {pessoas->nome} - Data : {TDate::date2br(datacontrato)} - Aditivo: {aditivo} - {objeto}");

$contrato_id->setDisplayMask("Cliente: {pessoas->nome} - Data : {TDate::date2br('datacontrato')} - Aditivo: {aditivo} - {objeto}");

$contrato_id->setDisplayMask("Cliente: {pessoas->nome} - Data : {TDateTime::convertToMask('datacontrato', 'yyyy-mm-dd', 'dd/mm/yyyy')} - Aditivo: {aditivo} - {objeto}");
?>

o resultado foi o mesmo, a data vazia.

Cliente: Damiao Azevedo - Data : - Aditivo: 0 - Cobrança indevida de conta de telefone pela Operadora Vivo

Dei uma olhada no arquivo TDBseekButton.php em libadiantiwidgetwrapper

Quando existe a mascara ele faz um Render com ela, não sei se nesse render ele faz o tratamento que colocamos.

  1. <?php
  2.  
  3.                 if (!empty($mask))
  4.                 {
  5.                     $this->auxiliar->setValue($activeRecord->render($mask));
  6.                 }
  7. ?>

Estou quase criando um form de Seek que possa tratar a data corretamente.

Funcionou nos seus testes? Se sim, onde estou errando?

Valeu pela ajuda!
DA

Boa Tarde, Américo

Vim agradecer pelo apoio no meu problema, mas a solução foi mesmo criar um form para o TSeekButton, assim pude fazer todos os tratamentos mais livremente.

Fico a disposição para contribuir dentro do limitado conhecimento do Adianti que estou adquirindo aos poucos.

Abraços.