]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/local_lib/Sistema.php
Se actualiza el diagrama UML.
[mecon/ai.git] / sistema / local_lib / Sistema.php
index 552d5f3a39169173c528b49532e568950f444655..5a6f62ec6ae050d76ae838b9bb48cda2217652b4 100644 (file)
@@ -27,8 +27,7 @@
 // $Id$
 //
 
-
-
+require_once 'AIError.php';
 
 // +X2C Class 416 :Sistema
 /**
@@ -77,45 +76,130 @@ class Sistema {
 
     // ~X2C
 
-
-    // +X2C Operation 459
+    // +X2C Operation 466
     /**
-     * @param  DB &$db DB donde guardar.
+     * @param  int $sistema ID del sistema.
      *
-     * @return bool
+     * @return void
      * @access public
      */
-    function guardar(&$db)// ~X2C
+    function Sistema($sistema = 0) // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        $this->sistema = $sistema;
     }
     // -X2C
 
     // +X2C Operation 460
     /**
-     * @param  DB &$db Base de datos a utilizar.
+     * @param  mixed $db Base de datos o Resultado a utilizar.
      *
-     * @return bool
+     * @return PEAR_Error
      * @access public
      */
-    function cargar(&$db)// ~X2C
+    function cargar($db) // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        $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 AIError(AIERROR_NO_RESULTADOS,
+                "No hay más resultados en la DB [sistema=$sistema]");
+        }
+        // Asigno valores al objeto.
+        extract($row);
+        $this->sistema    = $sistema;
+        $this->icono      = $icono; # FIXME - new HTML_Icono (o no?)
+        $this->link       = $link;
+        $this->linkAyuda  = $link_ayuda;
+        $this->habilitado = $habilitado;
+        return true;
+    }
+    // -X2C
+
+    // +X2C Operation 459
+    /**
+     * @param  DB $db DB donde guardar.
+     *
+     * @return PEAR_Error
+     * @access public
+     */
+    function guardar($db) // ~X2C
+    {
+        $sistema = intval($this->sistema);
+        $where    = '';
+        $datos    = array(
+            'icono'      => $this->icono,
+            'link'       => $this->link,
+            'link_ayuda' => $this->linkAyuda,
+            'habilitado' => $this->habilitado ? 1 : 0,
+        );
+        if ($sistema) {
+            $accion = DB_AUTOQUERY_UPDATE;
+            $where  = "sistema = $sistema";
+        } else {
+            $accion  = DB_AUTOQUERY_INSERT;
+            $sistema = $db->nextId('sistema');
+            if (DB::isError($sistema)) {
+                return $sistema;
+            }
+            // Asigno el nuevo id de sistema.
+            $this->sistema    = $sistema;
+            $datos['sistema'] = $sistema;
+        }
+        $res = $db->autoExecute('sistema', $datos, $accion, $where);
+        if (DB::isError($res)) {
+            return $res;
+        }
+        return true;
     }
     // -X2C
 
     // +X2C Operation 461
     /**
-     * @param  int $db DB de donde borrar.
+     * @param  DB $db DB de donde borrar.
      *
-     * @return bool
+     * @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 borrar($db)// ~X2C
+    function __clone() // ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        return $this;
     }
     // -X2C
 
 } // -X2C Class :Sistema
+
 ?>
\ No newline at end of file