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
MÉTODO DE CLONAGEM
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
- <?php
- public static function onCopiarOnYes($param = null)
- {
- // Código gerado pelo snippet: "Questionamento"
- try
- {
- //INPUT DIALOG
- $form2 = new TQuickForm('input_form');
- $form2->style = 'padding:20px';
- $datamov2 = new TDate('datamov');
- $datamov2->setMask('dd/mm/yyyy');
- $datamov2->datamov = TDate::date2br($datamov2->datamov);
- $obs2 = new TEntry('obs');
- $obs2->forceUpperCase();
- $datamov2->addValidation('Data do Movimento', new TRequiredValidator());
- $form2->addQuickField('<h5>Data de Movimento<h5>', $datamov2);
- $form2->addQuickField('<h5>Documento<h5>', $obs2);
- $key = $param['key'];
- $action = new TAction(array('MovimentoList', 'onConfirma'));
- $action->setParameter('key', $key);
- $form2->addQuickAction('Confirmar', $action, 'fa:check-square-o #009688');
- // show the input dialog
- new TInputDialog('<h4>Novos Valores</4>', $form2);
- }
- catch(Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- ?>
MÉTODO DE CLONAGEM
- <?php
- public function onConfirma( $param )
- {
- try
- {
- if (isset($param['key']))
- {
- $key = $param['key'];
- $movimento = new Movimento();
- $cloneMovimento = clone $movimento;
- $cloneMovimento->datamov = $param['datamov'];
- $cloneMovimento->obs = $param['obs'];
- $cloneMovimento->status = 1;
- $cloneMovimento->dataefetiva = null;
- unset($cloneMovimento->id);
- $cloneMovimento->datamov = TDate::date2us($cloneMovimento->datamov);
- $cloneMovimento->store();
- $cloneMovimento->datamov = TDate::date2br($cloneMovimento->datamov);
- new TMessage('info', "<h4>Lançamento Copiado com Sucesso!</h4>", new TAction(['MovimentoList', 'onReload']));
- }
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- ?>
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 :)
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:
Bom dia
Nataniel deu certinho.
Muito obrigado pela atenção.