/** * method onSave() * Executed whenever the user clicks at the save button */ function onSave() { try { $data = $this->form->getData(); // open a transaction with database 'saciq' TTransaction::open('saciq'); // cria um objeto Grupo $object = new Grupo($data->id); $object->clearParts(); $object->nome = $data->nome; $object->sigla = $data->sigla; if ($data->list2) { foreach ($data->list2 as $value) { $object->addFuncionalidade(new Funcionalidade($value)); } } //if ($object->programs) { // foreach ($object->programs as $program) { // $object->addFuncionalidade($program); // } //} $this->form->validate(); // form validation $object->store(); // stores the object $this->form->setData($object); // fill the form with the active record data $usuario = new Usuario(TSession::getValue('id')); $funcionalidades = $usuario->getFuncionalidades(); $funcionalidades['LoginForm'] = TRUE; TSession::setValue('funcionalidades', $funcionalidades); TTransaction::close(); // close the transaction new TMessage('info', 'Registro salvo'); // shows the success message } catch (Exception $e) { // Em caso de erro if ($e->getCode() == 23000) { /*$posi = strpos($e->getMessage(), 'Duplicate entry ') + strlen('Duplicate entry ') + 1; $posf = strpos($e->getMessage(), '\' for key'); $str = substr($e->getMessage(), $posi, 3); $idGrupo = substr($str, 0, strpos($str, '-')); $grupo = new Grupo($idGrupo); $idFuncionalidade = substr($str, strpos($str, '-') + 1); $funcionalidade = new Funcionalidade($idFuncionalidade); new TMessage('error', '<b>Registro duplicado</b><br>A funcionalidade "' . $funcionalidade->nome . '" já foi registrada no grupo ' . $grupo->nome); */ new TMessage('error', '<b>Registro duplicado</b><br>Verifique se a sigla já não foi registrada em outro grupo'); } else { if ($e->getCode() == 0) { new TMessage('error', '<b>Error</b> <br>' . $e->getMessage()); } else { new TMessage('error', '<b>Error Desconhecido</b> <br>Código: ' . $e->getCode()); } } // desfazer todas as operacoes pendentes TTransaction::rollback(); } }
/** * method onInlineEdit() * Metodo para edicao em linha na Datagrid * @param $param Array containing: * key: id do objeto * field nome: nome do campo que vai ser atualizado * value: Novo valor do atributo */ function onInlineEdit($param) { try { // pega os parametros $field = $param['field']; $key = $param['key']; $value = $param['value']; // abre uma transacao com o banco 'saciq' TTransaction::open('saciq'); // instancia um objeto de Grupo $object = new Grupo($key); // atualiza o campo do objeto $object->{$field} = $value; //salva o objeto modificado $object->store(); // fecha a transacao TTransaction::close(); // recarrega a lista $this->onReload($param); // mostra a menssagem de sucesso new TMessage('info', "Registro atualziado"); } catch (Exception $e) { if ($e->getCode() == 23000) { new TMessage('error', '<b>Registro duplicado</b><br>Verifique os campos inseridos e tente novamente'); } else { if ($e->getCode() == 0) { new TMessage('error', '<b>Error</b> <br>' . $e->getMessage()); } else { new TMessage('error', '<b>Error Desconhecido</b> <br>Código: ' . $e->getCode()); } } // desfazer todas as operacoes pendentes TTransaction::rollback(); } }