//
require_once 'PEAR.php';
-require_once 'Samurai_DB.php';
+require_once 'SAMURAI/DB.php';
require_once 'Date.php';
// +X2C Class 209 :SAMURAI_Sistema
*/
function _obtenerDatosDb() // ~X2C
{
- $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_datos_sistema'].$sql['obtener_datos_sistema2'];
$dbh = $this->_db->prepare($tmp);
$tmp = array ($this->getId());
$tmp = array();
$i = 0;
while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) {
- $tmp[$i]['id'] = $re['0'];
- $tmp[$i]['obs'] = $re['1'];
+ $tmp[$i]['id'] = $re['0'];
+ $tmp[$i]['obs'] = $re['1'];
+ $tmp[$i]['desc'] = $re['2'];
$i++;
}
$this->_asociaciones = $tmp;
*/
function getMaxIdSistema() // ~X2C
{
- $sql = include 'Sistema/consultas.php';
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$dbh = $this->_db->prepare($sql['obtener_max_id_sistemas']);
$res = $this->_db->execute($dbh);
$re = $res->fetchrow(DB_FETCHMODE_ASSOC);
if (PEAR::isError($res)) {
return $res;
}
+ $this->_id = $idSistema;
}
// -X2C
if (PEAR::isError($res)) {
return $res;
}
- //Borro los permisos que tiene asignado el sistema
- //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras
- $res = $this->_borrarPermisosDb($idSistema);
- if (PEAR::isError($res)) {
- return $res;
+
+ if ($idSistema == $_SESSION['samurai']['id_sistema']){
+ $_SESSION['samurai']['id_sistema'] = '';
}
}
// -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 _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null) // ~X2C
{
- $sql = include 'Sistema/consultas.php';
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$datos[] = $idSistema;
$tmp = $sql['borrar_permisos'];
if (isset($observaciones)) {
*/
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
*/
function _existeAsociacion($idPermiso, $observacion) // ~X2C
{
- $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas.
+ $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true);
$tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4'];
$dbh = $this->_db->prepare($tmp);
$tmp = array ($this->getId(),$idPermiso,$observacion);
//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