]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/Sistema.php
Se arregla un bug que hacía que sea posible asignar de padre al mismo
[mecon/ai.git] / lib / AI / Sistema.php
index 84a074e0f8768230053eb22617205c705af6c86f..c073a1576b2f8be927e760a63eb4597fd999936e 100644 (file)
 // $Id$
 //
 
 // $Id$
 //
 
+// +X2C includes
+require_once 'AI/DBObject.php';
+// ~X2C
+
 require_once 'AI/Error.php';
 // TODO - preguntar a gmeray si le sirve, yo no lo uso...
 require_once 'SAMURAI/Sistema.php';
 
 require_once 'AI/Error.php';
 // TODO - preguntar a gmeray si le sirve, yo no lo uso...
 require_once 'SAMURAI/Sistema.php';
 
+/**
+ * Archivo de configuración.
+ */
+define('AI_SISTEMA_CONFFILE', dirname(__FILE__).'/Sistema.ini');
+
 // +X2C Class 416 :AI_Sistema
 /**
  * Sistema.
 // +X2C Class 416 :AI_Sistema
 /**
  * Sistema.
@@ -38,9 +47,10 @@ require_once 'SAMURAI/Sistema.php';
  * @package AI
  * @access public
  */
  * @package AI
  * @access public
  */
-class AI_Sistema {
+class AI_Sistema extends AI_DBObject {
     /**
      * ID del sistema (ID en SAMURAI).
     /**
      * ID del sistema (ID en SAMURAI).
+FIXME - preguntar a gonzalo si le sirve.
      *
      * @var    int $sistema
      * @access public
      *
      * @var    int $sistema
      * @access public
@@ -49,6 +59,7 @@ class AI_Sistema {
 
     /**
      * Nombre del sistema (slo de lectura, extra?o de SAMURAI).
 
     /**
      * Nombre del sistema (slo de lectura, extra?o de SAMURAI).
+FIXME - preguntar a gonzalo si le sirve.
      *
      * @var    string $nombre
      * @access public
      *
      * @var    string $nombre
      * @access public
@@ -66,10 +77,10 @@ class AI_Sistema {
     /**
      * ?ono del sistema.
      *
     /**
      * ?ono del sistema.
      *
-     * @var    HTML_Imagen $icono
+     * @var    string $icono
      * @access public
      */
      * @access public
      */
-    var $icono = null;
+    var $icono = '';
 
     /**
      * Enlace a donde se encuentra el sistema.
 
     /**
      * Enlace a donde se encuentra el sistema.
@@ -106,52 +117,7 @@ class AI_Sistema {
      */
     function AI_Sistema($sistema = 0) // ~X2C
     {
      */
     function AI_Sistema($sistema = 0) // ~X2C
     {
-        $this->sistema = $sistema;
-    }
-    // -X2C
-
-    // +X2C Operation 460
-    /**
-     * @param  mixed $db Base de datos o Resultado a utilizar.
-     *
-     * @return PEAR_Error
-     * @access public
-     */
-    function cargar($db) // ~X2C
-    {
-        $sistema = intval($this->sistema);
-        if (is_a($db, 'db_result')) {
-            $result = $db;
-        // Si no es un resultado, hago el query.
-        } else {
-            $result = $db->query(
-                "SELECT *
-                    FROM sistema
-                    WHERE sistema = $sistema"
-            );
-            if (DB::isError($result)) {
-                return $result;
-            }
-        }
-        // Obtengo la fila.
-        $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
-        if (!$row) {
-            return new AI_Error(AI_ERROR_NO_RESULTADOS,
-                "No hay más resultados en la DB [sistema=$sistema]");
-        }
-        // Asigno valores al objeto.
-        extract($row);
-        $this->sistema    = $sistema;
-        $this->icono      = $icono;
-        $this->link       = $link;
-        $this->link_ayuda = $link_ayuda;
-        $this->habilitado = $habilitado;
-        // Obtengo datos de SAMURAI. FIXME - preguntar a marrese por manejo de errores.
-        // TODO - preguntar a gmeray si le sirve, yo no lo uso...
-        #$sist = new SAMURAI_Sistema($db, $sistema);
-        #$this->nombre       = $sist->getNombre();
-        #$this->descripcion  = $sist->getDescripcion();
-        return true;
+        parent::AI_DBObject($sistema, AI_SISTEMA_CONFFILE);
     }
     // -X2C
 
     }
     // -X2C
 
@@ -165,70 +131,19 @@ class AI_Sistema {
      */
     function guardar($db, $nuevo = false) // ~X2C
     {
      */
     function guardar($db, $nuevo = false) // ~X2C
     {
-        $sistema = intval($this->sistema);
-        $where    = '';
-        $datos    = array(
+        $datos = array(
             'icono'      => $this->icono,
             'link'       => $this->link,
             'link_ayuda' => $this->link_ayuda,
             'habilitado' => $this->habilitado ? 1 : 0,
         );
             'icono'      => $this->icono,
             'link'       => $this->link,
             'link_ayuda' => $this->link_ayuda,
             'habilitado' => $this->habilitado ? 1 : 0,
         );
-        if ($sistema and !$nuevo) {
-            $accion = DB_AUTOQUERY_UPDATE;
-            $where  = "sistema = $sistema";
-        } else {
-            $accion = DB_AUTOQUERY_INSERT;
-            // Si no tiene ID, le asigno uno nuevo.
-            if (!$sistema) {
-                $sistema = $db->nextId('sistema');
-                if (DB::isError($sistema)) {
-                    return $sistema;
-                }
-                $this->sistema = $sistema;
-            }
-            $datos['sistema'] = $sistema;
+        $err = parent::guardar($db, $datos, $nuevo);
+        if (PEAR::isError($err)) {
+            return $err;
         }
         }
-        $res = $db->autoExecute('sistema', $datos, $accion, $where);
-        if (DB::isError($res)) {
-            return $res;
-        }
-        return true;
-    }
-    // -X2C
-
-    // +X2C Operation 461
-    /**
-     * @param  DB $db DB de donde borrar.
-     *
-     * @return PEAR_Error
-     * @access public
-     */
-    function borrar($db) // ~X2C
-    {
-        $sistema = intval($this->sistema);
-        if ($sistema) {
-            $res = $db->query(
-                "DELETE FROM sistema WHERE sistema = $sistema");
-            if (DB::isError($res)) {
-                return $res;
-            }
-            return true;
-        }
-        return PEAR::raiseError("No hay un sistema válido para borrar");
-    }
-    // -X2C
-
-    // +X2C Operation 502
-    /**
-     * @return Sistema
-     * @access public
-     */
-    function __clone() // ~X2C
-    {
-        return $this;
     }
     // -X2C
 
 } // -X2C Class :AI_Sistema
 
     }
     // -X2C
 
 } // -X2C Class :AI_Sistema
 
-?>
+?>
\ No newline at end of file