Gravar datas formatadas Criei um formulário pelo gerador de formulário do Adianti Framework Pró. E setei a exibição de data no formato Brasileiro dd-mm-yyyy até ai tudo bem funcionando perfeitamente. O Problema é quando o método onSave vai gravar os campos, ele grava tudo menos a data. Como corrigir isso. Já comprei o livro do framework porém precisarei esperar chegar e tenho urgência na entrega deste projeto....
CC
Gravar datas formatadas  
Fechado
Criei um formulário pelo gerador de formulário do Adianti Framework Pró. E setei a exibição de data no formato Brasileiro dd-mm-yyyy até ai tudo bem funcionando perfeitamente. O Problema é quando o método onSave vai gravar os campos, ele grava tudo menos a data. Como corrigir isso. Já comprei o livro do framework porém precisarei esperar chegar e tenho urgência na entrega deste projeto. Alguém pode me ajudar.?

Segue em anexo imagem com o campo formatado e tela do banco com dado em branco após gravação.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


AF

No método onSave é necessário converter a data no formato brasileiro para o formato americano.
Utilize a função TDate::date2br($SUAVARIAVEL) ou TDate::date2us($SUAVARIAVEL) para fazer estas conversões.
Utilize date2us no onSave e date2br no onEdit.
Dê uma resposta aqui se der certo.
Espero ter ajudado.
BJ

Olá Aurélio,

Eu faço conforme abaixo:

 
  1. <?php
  2. //passo 1 - definir a máscara
  3. $dt_cadastro->setMask('dd/mm/yyyy');
  4. //Passo 2 - no onEdit, formatar a data para br a ser exibida logo após instanciar o Active Record
  5. $object = new Produto($key); // instantiates the Active Record
  6. $object->dt_cadastro = TDate::date2br($object->dt_cadastro);
  7. $this->form->setData($object); // fill the form
  8. //Passo 3 - no onSave, data us antes do método store e br logo após, antes de carregar a data para o form
  9. $object->dt_cadastro= TDate::date2us($object->dt_cadastro);
  10. $this->form->validate(); // form validation
  11. .
  12. .
  13. $object->store(); // stores the object
  14. $object->dt_cadastro = TDate::date2br($object->dt_cadastro);
  15. $this->form->setData($object); // keep form data
  16. ?>



Boa sorte.
CC

Funcionou. Muito obrigado !