DEVOLVER DADOS PARA UMA TELA INPUT DIALOG Olá pessoal. Conforme meu código abaixo, criei um método para clonar registros a partir de uma datagrid. Antes de clonar, criei um input dialog para que o usuário entre com dois novos valores para o novo registro. Até aqui está tudo funcionando. A minha dúvida é mais de utilização do framework (tenho pouco tempo de uso), pois, mesmo vendo os vídeos e lendo partes do livro e também o...
HB
DEVOLVER DADOS PARA UMA TELA INPUT DIALOG  
Olá pessoal.
Conforme meu código abaixo, criei um método para clonar registros a partir de uma datagrid.
Antes de clonar, criei um input dialog para que o usuário entre com dois novos valores para o novo registro. Até aqui está tudo funcionando.
A minha dúvida é mais de utilização do framework (tenho pouco tempo de uso), pois, mesmo vendo os vídeos e lendo partes do livro e também o tutor, não consegui achar uma parte que me explique o seguinte:

Como estou partindo de um registro já existente, eu gostaria que ao ao abrir o input dialog, fosse carregado a DATA ATUAL do registro selecionado (campo datamov) e o DOCUMENTO ATUAL (campo obs).
Pergunto:
1) como "pego" estes dois campos do registro que será clonado?
2) uma vez que eu já "peguei" como envio para o formulário (input dialog) antes de CONFIRMAR a clonagem?

INPUT DIALOG
 
  1. <?php
  2. public static function onCopiarOnYes($param = null)
  3. {
  4. // Código gerado pelo snippet: "Questionamento"
  5. try
  6. {
  7. //INPUT DIALOG
  8. $form2 = new TQuickForm('input_form');
  9. $form2->style = 'padding:20px';
  10. $datamov2 = new TDate('datamov');
  11. $datamov2->setMask('dd/mm/yyyy');
  12. $datamov2->datamov = TDate::date2br($datamov2->datamov);
  13. $obs2 = new TEntry('obs');
  14. $obs2->forceUpperCase();
  15. $datamov2->addValidation('Data do Movimento', new TRequiredValidator());
  16. $form2->addQuickField('<h5>Data de Movimento<h5>', $datamov2);
  17. $form2->addQuickField('<h5>Documento<h5>', $obs2);
  18. $key = $param['key'];
  19. $action = new TAction(array('MovimentoList', 'onConfirma'));
  20. $action->setParameter('key', $key);
  21. $form2->addQuickAction('Confirmar', $action, 'fa:check-square-o #009688');
  22. // show the input dialog
  23. new TInputDialog('<h4>Novos Valores</4>', $form2);
  24. }
  25. catch(Exception $e)
  26. {
  27. new TMessage('error', $e->getMessage());
  28. }
  29. }
  30. ?>


MÉTODO DE CLONAGEM
 
  1. <?php
  2. public function onConfirma( $param )
  3. {
  4. try
  5. {
  6. if (isset($param['key']))
  7. {
  8. $key = $param['key'];
  9. $movimento = new Movimento();
  10. $cloneMovimento = clone $movimento;
  11. $cloneMovimento->datamov = $param['datamov'];
  12. $cloneMovimento->obs = $param['obs'];
  13. $cloneMovimento->status = 1;
  14. $cloneMovimento->dataefetiva = null;
  15. unset($cloneMovimento->id);
  16. $cloneMovimento->datamov = TDate::date2us($cloneMovimento->datamov);
  17. $cloneMovimento->store();
  18. $cloneMovimento->datamov = TDate::date2br($cloneMovimento->datamov);
  19. new TMessage('info', "<h4>Lançamento Copiado com Sucesso!</h4>", new TAction(['MovimentoList', 'onReload']));
  20. }
  21. }
  22. catch (Exception $e)
  23. {
  24. new TMessage('error', $e->getMessage());
  25. }
  26. }
  27. ?>


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)


HB

Galera, da uma forcinha pra mim :)
Tô aprendendo ainda o framework e sei que minha dúvida é básica, mais é importante para o meu aprendizado.
Obrigado :)
NR

Na variável $key você tem o id do registro que será clonado. Assim, basta instanciar o modelo Movimento passando esse valor para obter as informações e depois preencher o formulário com a função setData:
 
  1. <?php
  2. $mov = new Movimento($key);
  3. $form2->setData($mov);
  4. ?>
HB

Bom dia
Nataniel deu certinho.
Muito obrigado pela atenção.