+ //TODO Arreglar el asco este
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
+ $res = '';
+ //Obtengo los id de los perfiles del permiso en el sistema
+ $tmp = $sql['ea_obt_idperfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ $i = 0;
+ $tmp = '';
+ while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
+ $tmp[] = $re['0'];
+ $i++;
+ }
+ $PERFILES = $tmp;
+ //Borro el permiso de los perfiles del sistema
+ $tmp = $sql['ea_del_perm_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Verifico si era el unico permiso de cada uno de los perfiles en los que estaba asignado
+ if (@$PERFILES) {
+ foreach ($PERFILES as $perfil) {
+ //Cuento
+ $tmp = $sql['ea_obt_cuenta_perfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0) {
+ //Borro perfil_sist
+ $tmp = $sql['ea_del_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Borro perfil_sist_usuario
+ $tmp = $sql['ea_del_perfil_sist_usuario'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil, $this->getId()));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ //Verifico si hay otro sistema usando este perfil
+ $tmp = $sql['ea_obt_cuenta_perfil_sist'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil));
+ if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0){
+ $tmp = $sql['ea_del_perfil'];
+ $dbh = $this->_db->prepare($tmp);
+ $res = $this->_db->execute($dbh, array ($perfil));
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ }
+ }
+ }
+ }
+ //Borro la asociacion perm_sist
+ $res = $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
+ if (PEAR::isError($res)) {
+ return $res;
+ }