Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Campos CREATEDAT e UPDATEDAT não retornados ao salvar um TRecord Criando um formulário de cadastro e usando as constantes CREATEDAT e UPDATEDAT na respectiva classe de modelo, me deparei com a seguinte situação: Ao persistir os dados no médodo "onSave" do formulário, seja durante uma instrução de INSERT ou mesmo UPDATE, a data de criação e data de atualização do registro são gravados no banco, porém não são atribuidas a classe de modelo, porta...
RK
Campos CREATEDAT e UPDATEDAT não retornados ao salvar um TRecord  
Criando um formulário de cadastro e usando as constantes CREATEDAT e UPDATEDAT na respectiva classe de modelo, me deparei com a seguinte situação:

Ao persistir os dados no médodo "onSave" do formulário, seja durante uma instrução de INSERT ou mesmo UPDATE, a data de criação e data de atualização do registro são gravados no banco, porém não são atribuidas a classe de modelo, portando não são "retornadas" impossibilitando que sejam enviadas ao formulário com o método "setData".

Após uma breve análise eu consegui resolver o problema de uma forma fácil, porém isso exigiu atualizar a classe "TRecord" do framework, mais precisamente na linha 589. Veja o trecho do código original:

  1. <?php
  2. if (!empty($createdat))
  3. {
  4.     $info TTransaction::getDatabaseInfo();
  5.     $date_mask = (in_array($info['type'], ['sqlsrv''dblib''mssql'])) ? 'Ymd H:i:s' 'Y-m-d H:i:s';
  6.     //$sql->setRowData($createdat, date($date_mask));
  7. }
  8. ?>


Com as alterações o código ficou assim:

  1. <?php
  2. if (!empty($createdat))
  3. {
  4.     $info TTransaction::getDatabaseInfo();
  5.     $date_mask = (in_array($info['type'], ['sqlsrv''dblib''mssql'])) ? 'Ymd H:i:s' 'Y-m-d H:i:s';
  6.     $createdat_value date($date_mask);
  7.     $sql->setRowData($createdat$createdat_value);
  8.     $this->{$createdat} = $createdat_value;
  9. }
  10. ?>


O mesmo padrão de edição foi empregado também na linha 636 da mesma classe, para retornar o valor de UPDATEDAT.

Sei que não é aconselhável alterar as classes do framework e que poderia obter o mesmo resultado explorando os métodos de gancho das classes de modelo, mas isso teria que ser feito em cada classe gerando trabalho repetitivo, o que não é a proposta do fw.

Espero que alguém tenha alguma ideia de como fazer essa alteração a nível de "aplicação", caso não haja sugiro que essa adequação seja incluída no roadmap da próxima versão.

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 (0)