Ejemplo n.º 1
0
 public function editarAcao(Acao $acao)
 {
     try {
         $this->getDb()->beginTransaction();
         $sql = 'UPDATE acao set modulo=:modulo,controle=:controle,metodo=:metodo,titulo_modulo=:titulo_modulo,titulo_metodo=:titulo_metodo,privado=:privado WHERE pk_acao=:pk_acao';
         $prepare = $this->getDb()->prepare($sql);
         $prepare->bindParam(':pk_acao', $acao->get_pk_acao(), PDO::PARAM_INT);
         $prepare->bindParam(':modulo', $acao->get_modulo(), PDO::PARAM_STR, 50);
         $prepare->bindParam(':controle', $acao->get_controle(), PDO::PARAM_STR, 50);
         $prepare->bindParam(':metodo', $acao->get_metodo(), PDO::PARAM_STR, 50);
         $prepare->bindParam(':titulo_modulo', $acao->get_titulo_modulo(), PDO::PARAM_STR, 255);
         $prepare->bindParam(':titulo_metodo', $acao->get_titulo_metodo(), PDO::PARAM_STR, 255);
         $prepare->bindParam(':privado', $acao->get_privado(), PDO::PARAM_INT);
         $prepare->execute();
         $idAcao = $prepare->fetch();
         $sql = 'DELETE FROM acao_tipo_usuario_vin WHERE fk_acao=:fk_acao';
         $prepare = $this->getDb()->prepare($sql);
         $prepare->bindParam(':fk_acao', $acao->get_pk_acao(), PDO::PARAM_INT);
         $prepare->execute();
         if (is_array($acao->get_tipo_usuario())) {
             foreach ($acao->get_tipo_usuario() as $tipo) {
                 $sql = 'insert into acao_tipo_usuario_vin(fk_acao,fk_tipo_usuario,visualizar,cadastrar,editar,excluir) values (:fk_acao,:fk_tipo_usuario,:visualizar,:cadastrar,:editar,:excluir)';
                 $prepare = $this->getDb()->prepare($sql);
                 $tipoPermissao = $tipo->get_permissao();
                 $prepare->bindParam(':fk_acao', $acao->get_pk_acao(), PDO::PARAM_INT);
                 $prepare->bindParam(':fk_tipo_usuario', $tipo->get_idTipoUsuario(), PDO::PARAM_INT);
                 $prepare->bindParam(':visualizar', $tipoPermissao['visualizar'], PDO::PARAM_INT);
                 $prepare->bindParam(':cadastrar', $tipoPermissao['cadastrar'], PDO::PARAM_INT);
                 $prepare->bindParam(':editar', $tipoPermissao['editar'], PDO::PARAM_INT);
                 $prepare->bindParam(':excluir', $tipoPermissao['excluir'], PDO::PARAM_INT);
                 $prepare->execute();
             }
         }
         $this->getDb()->commit();
     } catch (Exception $e) {
         $this->getDb()->rollBack();
         throw new Exception($e->getMessage());
     }
 }