Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro ao gravar Senhores, boa noite, estou enfrentando um problema com relação a gravar um objeto no mysql. O cenário é o seguinte. tenho uma classe controller chamada FrmSolucao, que é responsável por manipular os dados da classe model Solucao. Num primeiro momento o que estou fazendo é o seguinte, tenho um TDBSeekButton que busca as reproduções realizadas e ao selecionar a que vou utilizar, tenho dois...
TS
Erro ao gravar  
Senhores, boa noite, estou enfrentando um problema com relação a gravar um objeto no mysql. O cenário é o seguinte. tenho uma classe controller chamada FrmSolucao, que é responsável por manipular os dados da classe model Solucao. Num primeiro momento o que estou fazendo é o seguinte, tenho um TDBSeekButton que busca as reproduções realizadas e ao selecionar a que vou utilizar, tenho dois TEntrys que recebem o cálculo de volume de solução que deverão ser aplicados na primeira e na segunda aplicação. Quando clico no botão Salvar o sistema está me retornado o erro no metodo set_reproducao e não estou conseguindo decifrar o problema, peço a ajuda de vocês, o erro está em anexo

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


IV

Olá Thiago, posta os códigos para facilitar a identificação.
TS

  1. <?php
  2. class FrmSolucao extends TPage
  3. {
  4.     private $form;
  5.     private $datagrid_primeira_aplicacao;
  6.     private $datagrid_segunda_aplicacao;
  7.     function __construct()
  8.     {
  9.     
  10.         parent::__construct();
  11.         
  12.         //$this->form = new TQuickForm('form_Solucao');
  13.         $this->form = new TQuickForm('form_solucao');
  14.         $this->form->class 'tform'// change CSS class
  15.         $this->form->style 'display: table;width:70%; margin-left:50px;'// change style
  16.         //$this->form->setFormTitle('Aplicação de hormônios');
  17.         $notebook  = new BootstrapNotebookWrapper(new TNotebook(300350));
  18.        
  19.         $this->form->add($notebook);
  20.         
  21.           parent::include_css('app/resources/custom-notebook.css');
  22.         
  23.         // creates the containers for each notebook page
  24.         $tbl_solucao = new TTable;
  25.         $tbl_hormonio = new TTable;
  26.         $tbl_soro = new TTable;
  27.         $tbl_pAplicacao = new TTable;
  28.         $tbl_sAplicacao = new TTable;
  29.         $tbl_solucao->style "margin: 2px;width:100%;";
  30.         $tbl_pAplicacao->style "margin: 4px";
  31.         $tbl_sAplicacao->style "margin: 4px";
  32.         $tbl_hormonio->style "margin: 4px";
  33.         $tbl_soro->style "margin: 4px";
  34.                 
  35.         ####Campos primeira página######
  36.         
  37.         $idSolucao     = new THidden('idSolucao');
  38.         $cmbReproducao = new  ">TDBSeekButton('idReproducao','dbwf',$this->form->getName(),'Reproducao','codigo','idReproducao','reproducao');
  39.         $cod_reproducao = new TEntry('reproducao');
  40.         $pVolTotalAplicado = new TEntry('pVolTotalAplicado');
  41.         $pVolTotalAplicado->setTip('Volume total de solução a ser aplicado na primeira aplicação em mg');
  42.         $sVolTotalAplicado = new TEntry('sVolTotalAplicado');
  43.         $sVolTotalAplicado->setTip('Volume total de solução a ser aplicado na segunda aplicação em mg');
  44.         
  45.         //validações
  46.         $cod_reproducao->setExitAction(new TAction(array($this,'onSelect')));
  47.         
  48.         
  49.          ####Adicionando os campos na aba do notebook####                
  50.         $tbl_solucao->addRowSet(new TLabel(''),$idSolucao);
  51.         $tbl_solucao->addRowSet(new TLabel('REPRODUÇÃO..:'),$cmbReproducao);
  52.         $tbl_solucao->addRowSet(new TLabel('Nº..........:'),$cod_reproducao);
  53.         $tbl_solucao->addRowSet(new TLabel('VOL. TOTAL 1ª APLICAÇÃO..:'),$pVolTotalAplicado);
  54.         $tbl_solucao->addRowSet(new TLabel('VOL. TOTAL 2ª APLICAÇÃO..:'),$sVolTotalAplicado);
  55.         
  56.         
  57.         
  58.         #####Campos segunda Pagina#####
  59.         $lista_soro = new TMultiField('lista_soro');
  60.         $nome_soro = new TEntry('nomeSoro');
  61.         $desc_soro = new TEntry('descSoro');
  62.         $valor_soro = new TEntry('valorSoro');
  63.         $qtdeSoroAplicKvP = new TEntry('qtdeSoroAplicKvP');
  64.         $totalSoroAplicacao = new TEntry('totalSoroAplicacao');
  65.         
  66.         ####Adicionando os campos na aba do notebook####  
  67.         
  68.         $row $tbl_soro->addRow();
  69.         $cell $row->addCell(new TLabel('<b><h4>..::SORO::..</h4></b>'));
  70.         $cell->valign  'top';
  71.         $lista_soro->setHeight(100);
  72.         $lista_soro->setClass('Soro');
  73.         $lista_soro->addField('nomeSoro','NOME'.':',$nome_soro,150);
  74.         $lista_soro->addField('descSoro','DESCRIÇÃO'.':',$desc_soro,150);
  75.         $lista_soro->addField('valorSoro','VALOR EM R$'.':',$valor_soro,70);
  76.         $lista_soro->addField('qtdeSoroAplicKvP','TOTAL A SER APLICADO'.':',$qtdeSoroAplicKvP,70);
  77.         $lista_soro->addField('totalSoroAplicacao','TOTAL SORO EM R$'.':',$totalSoroAplicacao,70);
  78.         $row=$tbl_soro->addRow();
  79.         $row->addCell($lista_soro);
  80.         
  81.         #####Campos terceira Página#######
  82.         $lista_hormonio = new TMultiField('lista_hormonio');
  83.         $nome_hormonio = new TEntry('nomeHormonio');
  84.         $desc_hormonio = new TEntry('descHormonio');
  85.         $valor_hormonio = new TEntry('valorHormonio');
  86.         $qtdeHormonioAplicKvP = new TEntry('qtdeHormonioAplicKvP');
  87.         $totalHormonioAplicacao = new TEntry('totalHormonioAplicacao');
  88.         
  89.         ####Adicionando os campos na aba do notebook####  
  90.         
  91.         $row $tbl_hormonio->addRow();
  92.         $cell $row->addCell(new TLabel('<b><h4>..::HORMÔNIO::..</h4></b>'));
  93.         $cell->valign  'top';
  94.         $lista_hormonio->setHeight(100);
  95.         $lista_hormonio->setClass('Hormonio');
  96.         $lista_hormonio->addField('nomeHormonio','NOME'.':',$nome_hormonio,150);
  97.         $lista_hormonio->addField('descHormonio','DESCRIÇÃO'.':',$desc_hormonio,150);
  98.         $lista_hormonio->addField('valorHormonio','VALOR EM R$'.':',$valor_hormonio,70);
  99.         $lista_hormonio->addField('qtdeHormonioAplicKvP','TOTAL A SER APLICADO'.':',$qtdeHormonioAplicKvP,70);
  100.         $lista_hormonio->addField('totalHormonioAplicacao','TOTAL HORMÔNIO EM R$'.':',$totalHormonioAplicacao,70);
  101.         $row=$tbl_hormonio->addRow();
  102.         $row->addCell($lista_hormonio);
  103.         
  104.         #####Campos quarta Página#####
  105.         //$row = $tbl_pAplicacao->addRow();
  106.         $this->datagrid_primeira_aplicacao = new TQuickGrid;
  107.         $this->datagrid_primeira_aplicacao->disableDefaultClick();
  108.         
  109.         $this->datagrid_primeira_aplicacao->addQuickColumn('Número',  'numero',    'center'70);
  110.         $this->datagrid_primeira_aplicacao->addQuickColumn('Identificação',    'identMatriz',    'right'180);
  111.         $this->datagrid_primeira_aplicacao->addQuickColumn('Peso''pesoMatriz''center'180);
  112.         $this->datagrid_primeira_aplicacao->addQuickColumn('Volume a Injetar',   'fone',    'left'120);      
  113.         $this->datagrid_primeira_aplicacao->createModel();
  114.         $row1 $tbl_pAplicacao->addRow();
  115.         $row1->addCell($this->datagrid_primeira_aplicacao);
  116.         //$row->addCell($tbl_pAplicacao);
  117.         
  118.         #####Campos Quinta Página#####
  119.          $this->datagrid_segunda_aplicacao = new TQuickGrid;
  120.         $this->datagrid_segunda_aplicacao->disableDefaultClick();
  121.         
  122.         $this->datagrid_segunda_aplicacao->addQuickColumn('Code',    'code',    'right'70);
  123.         $this->datagrid_segunda_aplicacao->addQuickColumn('Name',    'name',    'left'180);
  124.         $this->datagrid_segunda_aplicacao->addQuickColumn('Address''address''left'180);
  125.         $this->datagrid_segunda_aplicacao->addQuickColumn('Phone',   'fone',    'left'120);      
  126.         $this->datagrid_segunda_aplicacao->createModel();
  127.         $row2 $tbl_sAplicacao->addRow();
  128.         $row2->addCell($this->datagrid_segunda_aplicacao);
  129.         
  130.         
  131.         
  132.         //$this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');
  133.         //$this->form->addQuickAction(_t('New'),  new TAction(array($this, 'onClear')), 'bs:plus-sign green');
  134.         $notebook->appendPage('Totais Solução'$tbl_solucao);
  135.         $notebook->appendPage('Soro'$tbl_soro);
  136.         $notebook->appendPage('Hormônio'$tbl_hormonio);
  137.         $notebook->appendPage('1ª Aplicação'$tbl_pAplicacao);
  138.         $notebook->appendPage('2ª Aplicação'$tbl_sAplicacao);
  139.         
  140.         $save_button=new TButton('save');
  141.         $save_button->setAction(new TAction(array($this'onSave')), _t('Save'));
  142.         $save_button->setImage('fa:floppy-o');
  143.         
  144.         // create an new button (edit with no parameters)
  145.         $new_button=new TButton('new');
  146.         $new_button->setAction(new TAction(array($this'onEdit')), _t('New'));
  147.         $new_button->setImage('fa:plus-square green');
  148.         
  149.         $list_button=new TButton('list');
  150.         $list_button->setAction(new TAction(array('FrmListaReproducao','onReload')), _t('Back to the listing'));
  151.         $list_button->setImage('fa:table blue');
  152.         
  153.         $this->form->setFields(array($cmbReproducao$cod_reproducao$lista_soro$save_button$new_button$list_button));
  154.         
  155.        
  156.         
  157.         $buttons = new THBox;
  158.         $buttons->add($save_button);
  159.         $buttons->add($new_button);
  160.         $buttons->add($list_button);
  161.         
  162.         //$this->form->add($buttons);
  163.         // vertical box container
  164.         $container = new TVBox;
  165.         $container->style 'width: 60%;  margin-left:5%;';
  166.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  167.         $container->add(TPanelGroup::pack('Aplicação de Hormônios',$this->form));
  168.         $container->add($buttons);
  169.         
  170.         parent::add($container);   
  171.         
  172.    }
  173.    
  174.    public function onSave()
  175.    {
  176.    
  177.        try
  178.        {
  179.            TTransaction::open('dbwf');
  180.                $this->form->validate(); // validate form data
  181.                $object =$this->form->getData('Solucao');  // create an empty object
  182.                $idReproducao $object->idSolucao;
  183.                //$data = $this->form->getData(); // get form data as array
  184.                $object->fromArray( (array) $data); // load the object with data
  185.                $object->pVolTotalAplicado str_replace(',','.'$object->pVolTotalAplicado);
  186.                $object->sVolTotalAplicado str_replace(',','.'$object->sVolTotalAplicado);
  187.                var_dump($object);
  188.                $object->store(); // save the object
  189.                 
  190.                 // get the generated idSolucao
  191.                $data->idSolucao $object->idSolucao;
  192.                 
  193.                $this->form->setData($data); // fill form data
  194.            TTransaction::close(); // close the transaction
  195.              new TMessage('info','Registro Gravado com sucesso!');
  196.            
  197.        }
  198.        catch(Exception $e)
  199.        {
  200.             new TMessage('Erro ao gravar o registro!'$e->getMessage()); // shows the exception error message
  201.             $this->form->setData$this->form->getData() ); // keep form data
  202.             TTransaction::rollback(); //
  203.        }
  204.    }
  205.    public function onReload()
  206.    {
  207.        $this->datagrid_primeira_aplicacao->clear();
  208.        
  209.        try
  210.        {
  211.            
  212.        }
  213.        catch(Exception $e)
  214.        {
  215.            // shows the exception error message
  216.             new TMessage('Erro ao carregar os registros'$e->getMessage());
  217.             // undo all pending operations
  218.             TTransaction::rollback();  
  219.        }
  220.    }
  221.    public function onEdit()
  222.    {
  223.    
  224.    }
  225.    public static function onSelect($params)
  226.    {
  227.          $DSPV 0.5;
  228.          $DDPV 5.0;
  229.         if(isset($params['reproducao'])&& $params['reproducao'])
  230.         {
  231.             try
  232.             {
  233.                 TTransaction::open('dbwf');
  234.                     $reproducao = new Reproducao($params['idReproducao']);
  235.                     $obj = new StdClass;
  236.                     $obj->pVolTotalAplicado number_format(($DSPV $reproducao->pesoGeralMatriz),2,'.',',');
  237.                     $obj->sVolTotalAplicado number_format(($DDPV $reproducao->pesoGeralMatriz),2,'.',',');
  238.                     TForm::sendData('form_solucao',$obj);
  239.                 TTransaction::close();
  240.             
  241.             }
  242.             catch(Exception $e)
  243.             {
  244.                 new TMessage('error''<b>Erro</b> ' $e->getMessage());
  245.                 TTransaction::rollback();
  246.             }
  247.         
  248.         }  
  249.    
  250.    }
  251. }
  252. ?>

TS

A classe é essa ai em cima!!!
TS

Meus posts estão dando falha de email not sent! o que é isso??
IV

Thiago observei duas coisas:

nesta linha
  1. <?php
  2. $cmbReproducao = new  ">TDBSeekButton('idReproducao','dbwf',$this->form->getName(),'Reproducao','codigo','idReproducao','reproducao');
  3. ?>

eu creio que o correto seria:
  1. <?php
  2. $cmbReproducao = new  ">TDBSeekButton('idReproducao','dbwf',$this->form->getName(),'Reproducao','reproducao','idReproducao','reproducao');
  3. ?>

e nesta remova 'Solucao' deixe apenas getData();
  1. <?php
  2. $object =$this->form->getData('Solucao');
  3. ?>

IV

Comigo também tá aparecendo "email not sent!" deve ser algum problema interno do forum.
TS

Postei o código da classe FrmSolucao.