]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/Sistema.php
Se pasa HTML_Error a MECONlib.
[mecon/ai.git] / lib / AI / Sistema.php
index 7a547765feb1c2d5629e0548bea6cf23ebe6c733..84a074e0f8768230053eb22617205c705af6c86f 100644 (file)
@@ -28,6 +28,8 @@
 //
 
 require_once 'AI/Error.php';
+// TODO - preguntar a gmeray si le sirve, yo no lo uso...
+require_once 'SAMURAI/Sistema.php';
 
 // +X2C Class 416 :AI_Sistema
 /**
@@ -45,6 +47,22 @@ class AI_Sistema {
      */
     var $sistema = 0;
 
+    /**
+     * Nombre del sistema (slo de lectura, extra?o de SAMURAI).
+     *
+     * @var    string $nombre
+     * @access public
+     */
+    var $nombre = '';
+
+    /**
+     * Descripcin del sistema (slo de lectura, extra?o de SAMURAI).
+     *
+     * @var    string $descripcion
+     * @access public
+     */
+    var $descripcion = '';
+
     /**
      * ?ono del sistema.
      *
@@ -124,10 +142,15 @@ class AI_Sistema {
         // Asigno valores al objeto.
         extract($row);
         $this->sistema    = $sistema;
-        $this->icono      = $icono; # FIXME - new HTML_Icono (o no?)
+        $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;
     }
     // -X2C
@@ -135,11 +158,12 @@ class AI_Sistema {
     // +X2C Operation 459
     /**
      * @param  DB $db DB donde guardar.
+     * @param  bool $nuevo Si es true, se fuerza a guardar el servicio como nuevo.
      *
      * @return PEAR_Error
      * @access public
      */
-    function guardar($db) // ~X2C
+    function guardar($db, $nuevo = false) // ~X2C
     {
         $sistema = intval($this->sistema);
         $where    = '';
@@ -149,18 +173,19 @@ class AI_Sistema {
             'link_ayuda' => $this->link_ayuda,
             'habilitado' => $this->habilitado ? 1 : 0,
         );
-        // FIXME - buscar otra forma de distinguir entre INSERT y UPDATE.
-        if ($sistema) {
+        if ($sistema and !$nuevo) {
             $accion = DB_AUTOQUERY_UPDATE;
             $where  = "sistema = $sistema";
         } else {
-            $accion  = DB_AUTOQUERY_INSERT;
-            $sistema = $db->nextId('sistema');
-            if (DB::isError($sistema)) {
-                return $sistema;
+            $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;
             }
-            // Asigno el nuevo id de sistema.
-            $this->sistema    = $sistema;
             $datos['sistema'] = $sistema;
         }
         $res = $db->autoExecute('sistema', $datos, $accion, $where);