Problemas Update Boa tarde. Estou tentando fazer um Update numa tabela com FK, que funciona normal contanto que eu não saia da tela Form, porém, se eu volto pra List e tento editar de novo, ele dá um Update adicionando campos em branco na tabela. onSave: public function onSave( $param ) { try { TTransaction::open('permission'); TTransaction::setLogge...
GM
Problemas Update  
Boa tarde. Estou tentando fazer um Update numa tabela com FK, que funciona normal contanto que eu não saia da tela Form, porém, se eu volto pra List e tento editar de novo, ele dá um Update adicionando campos em branco na tabela.

onSave:
public function onSave( $param ) { try { TTransaction::open('permission'); TTransaction::setLogger(new TLoggerTXT('tmp/grupos.txt')); $this->form->validate(); $objGrupo = new Grupos(); TTransaction::log("** insert grupo ".print_r($objGrupo, true)); $data = $this->form->getData(); $data->GrupoNm = TSession::getValue('GrupoNm'); $data->GrupoId = TSession::getValue('GrupoId'); $objGrupo->fromArray( (array) $data); TTransaction::log("** DATA ".print_r($data, true)); $objGrupo->store(); $data->GrupoId = $objGrupo->GrupoId; TSession::setValue('GrupoId', $data->GrupoId); TTransaction::log("** id grupo ".$data->GrupoId." "); $search = array(); $GrupoOrder = 1; foreach($data->lista as $sig){ $objGrupo->addGrupoPess($data->GrupoId, $sig, $GrupoOrder); $GrupoOrder++; $objPess = new GnrPess($sig); $search[$sig] = "".$objPess->GnrPessNm. ' - ' . $objPess->GnrPessCpf.""; TTransaction::log("** signatario ".$sig." "); } TTransaction::close(); TSession::setValue('search', $search); $data->search = $search; $this->form->setData($data); new TMessage('info', TAdiantiCoreTranslator::translate('Record saved')); } catch (Exception $e) { new TMessage('error', $e->getMessage()); $this->form->setData( $this->form->getData() ); TTransaction::rollback(); } }


Store do Model

public function store() { // store the object itself parent::store(); TTransaction::open('permission'); TTransaction::setLogger(new TLoggerTXT('tmp/gruposmodel.txt')); $repository = new TRepository('GrupoPess'); $criteria = new TCriteria; $criteria->add(new TFilter('GrupoId', '=', $this->GrupoId)); $repository->delete($criteria); TTransaction::log("** grupos pess ".print_r($criteria, true)." "); TTransaction::close(); }


E meu addGrupoPess

public function addGrupoPess($GrupoId, $GnrPessId, $GrupoOrder) { if($GrupoId){ TTransaction::setLogger(new TLoggerTXT('tmp/addGP.txt')); $GrupoPess = new GrupoPess; $GrupoPess->GrupoId = $GrupoId; $GrupoPess->GnrPessId = $GnrPessId; $GrupoPess->GrupoOrder = $GrupoOrder; $GrupoPess->store(); $grupo_pess[] = $GrupoPess; TTransaction::log("** grupo pess ".print_r($GrupoPess, true)." "); }else{ TTransaction::log("** ELSE SEM GRUPO "); } }


Como podem ver, tá cheio de logs, mas nem assim consigo saber qual o problema. Em anexo tem a imagem de como fica o banco após o Update.

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


GM

Deixei pra postar aqui só quando não tivesse mais esperanças... mas consegui achar o erro. O problema era no onEdit quando chamava o Grupos

Antes era:
 
  1. <?php
  2. $object = new Grupos($key);
  3. ?>

e ele criava campos em branco no GrupoPess
Resolvi colocando o FALSE:
 
  1. <?php
  2. $object = new Grupos($key, FALSE);
  3. ?>