Exemple #1
0
 /**
  * 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();
     }
 }
Exemple #2
0
 /**
  * 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();
     }
 }