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:
Store do Model
E meu addGrupoPess
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.
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.
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:
e ele criava campos em branco no GrupoPess
Resolvi colocando o FALSE: