if (PEAR::isError($res)) {
return $res;
}
+ $this->_id = $idSistema;
}
// -X2C
$re = $this->_db->autoPrepare('perm_sist', $datos, DB_AUTOQUERY_INSERT);
if (isset($this->_permisos)) {
foreach ($this->_permisos as $permiso) {
- $datos = array ($permiso['0'], $idSistema, $this->getResponsable());
+ $datos = array ($permiso, $idSistema, $this->getResponsable());
$res = $this->_db->execute($re, $datos);
if (PEAR::isError($res)) {
return $res;
*/
function guardarAsociacion($idPermiso, $observacion = '') // ~X2C
{
- $error = true;
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
//Guardo la asociacion
//Grabo el sistema
$res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT);
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- $error = false;
+ return null;
+ }
+ else {
+ return new PEAR_Error('La Asociacion ya existe.');
}
- return $error;
}
// -X2C
*/
function eliminarAsociacion($idPermiso, $observacion = '') // ~X2C
{
- $error = false;
- //Elimino la asociacion
- $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso);
+ //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;
+ }
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- return $error;
}
// -X2C
* Actualiza los datos de la asociacion en la base de datos.
*
* @param int $idPermiso Identificador del permiso
- * @param int $idPermiso_ant Identificador del permiso anterior
* @param string $observacion Observacion a insertar
* @param string $obs_ant Observacion anterior
*
* @return bool
* @access public
*/
- function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '') // ~X2C
+ function modificarAsociacion($idPermiso, $observacion = '', $obs_ant = '') // ~X2C
{
- $error = true;
//Busco la nueva asociacion
if (!$this->_existeAsociacion($idPermiso, $observacion)) {
//Actualizo la asociacion
$this->_db->autoExecute('perm_sist',
$datos,
DB_AUTOQUERY_UPDATE,
- 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\'');
+ 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso.' AND observaciones =\''.$obs_ant.'\'');
//Recargo los datos del sistema
$this->_obtenerDatosDb();
- $error = false;
+ return null;
+ }
+ else {
+ return new PEAR_Error('La Asociacion ya existe.');
}
- return $error;
}
// -X2C
//OBTENGO LOS ID DE LA BASE
$rta = array();
$sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
- $dbh = $db->prepare($sql['obtener_datos_sistema'].$sql['obtener_datos_sistema3']);
+ $dbh = $db->prepare($sql['obtener_datos_sistema'].$sql['obtener_datos_sistema3'].$sql['obtener_datos_sistema4']);
$res = $db->execute($dbh);
while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) {
array_push($rta,$re['id_sistema']);
} // -X2C Class :SAMURAI_Sistema
-?>
\ No newline at end of file
+?>