]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/local_lib/GrupoSecciones.php
- Se termina de implementar GrupoSecciones (aparentemente).
[mecon/ai.git] / sistema / local_lib / GrupoSecciones.php
index be0548868539bba86a0c3e069e86c126fbdf0783..a9985214832046392be58e14868657774d63aaaa 100644 (file)
@@ -27,7 +27,9 @@
 // $Id$
 //
 
-// +X2C Class 414 :GrupoSecciones
+require_once 'AIError.php';
+
+// +X2C Class 486 :GrupoSecciones
 /**
  * Grupo de secciones.
  *
@@ -109,7 +111,7 @@ class GrupoSecciones {
 
     // ~X2C
 
-    // +X2C Operation 464
+    // +X2C Operation 495
     /**
      * @param  int $grupo ID del grupo.
      *
@@ -122,24 +124,22 @@ class GrupoSecciones {
     }
     // -X2C
 
-
-    // +X2C Operation 453
+    // +X2C Operation 496
     /**
-     * @param  mixed &$db Base de datos o Resultado 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
     {
         $grupo = intval($this->grupo);
         if (is_a($db, 'db_result')) {
-            $dbh    =& $db->dbh;
-            $result =& $db;
+            $result = $db;
+            $db     = $result->dbh;
         // Si no es un resultado, hago el query.
         } else {
-            $dbh    =& $db;
-            $result =& $dbh->query(
+            $result = $db->query(
                 "SELECT *
                     FROM grupo_secciones
                     WHERE grupo = $grupo"
@@ -151,7 +151,8 @@ class GrupoSecciones {
         // Obtengo la fila.
         $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
         if (!$row) {
-            return PEAR::raiseError("No hay más resultados en la DB [grupo=$grupo]", CODIGO DE ERROR);
+            return new AIError(AIERROR_NO_RESULTADOS,
+                "No hay más resultados en la DB [grupo=$grupo]");
         }
         // Asigno valores al objeto.
         extract($row);
@@ -161,7 +162,7 @@ class GrupoSecciones {
         $this->antiguedad   = $antiguedad;
         $this->mostrarHijos = $mostrar_hijos;
         // Obtengo secciones.
-        $secciones =& $dbh->getCol(
+        $secciones = $db->getCol(
             "SELECT seccion
                 FROM grupo_secciones_seccion
                 WHERE grupo = $grupo"
@@ -178,14 +179,14 @@ class GrupoSecciones {
     }
     // -X2C
 
-    // +X2C Operation 454
+    // +X2C Operation 497
     /**
-     * @param  DB &$db DB donde guardar.
+     * @param  DB $db DB donde guardar.
      *
-     * @return bool
+     * @return PEAR_Error
      * @access public
      */
-    function guardar(&$db)// ~X2C
+    function guardar($db)// ~X2C
     {
         $grupo = intval($this->grupo);
         $where = '';
@@ -209,20 +210,20 @@ class GrupoSecciones {
             $this->grupo = $grupo;
             $datos['grupo'] = $grupo;
         }
-        $res =& $db->autoExecute('grupo_secciones', $datos, $accion, $where);
+        $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where);
         if (DB::isError($res)) {
             return $res;
         }
-        $res =& $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
+        $res = $db->query("DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
         if (DB::isError($res)) {
             return $res;
         }
-        $prepare =& $db->prepare("INSERT INTO grupo_secciones_seccion
+        $prepare = $db->prepare("INSERT INTO grupo_secciones_seccion
             (grupo, seccion) VALUES ($grupo, ?)");
         if (DB::isError($prepare)) {
             return $prepare;
         }
-        $res =& $db->executeMultiple($prepare, $this->secciones);
+        $res = $db->executeMultiple($prepare, $this->secciones);
         if (DB::isError($res)) {
             return $res;
         }
@@ -230,23 +231,23 @@ class GrupoSecciones {
     }
     // -X2C
 
-    // +X2C Operation 455
+    // +X2C Operation 498
     /**
-     * @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
     {
         $grupo = intval($this->grupo);
         if ($grupo) {
-            $res =& $db->query(
+            $res = $db->query(
                 "DELETE FROM grupo_secciones WHERE grupo = $grupo");
             if (DB::isError($res)) {
                 return $res;
             }
-            $res =& $db->query(
+            $res = $db->query(
                 "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
             if (DB::isError($res)) {
                 return $res;
@@ -257,31 +258,45 @@ class GrupoSecciones {
     }
     // -X2C
 
-    // +X2C Operation 462
+    // +X2C Operation 499
     /**
-     * @param  DB &$db DB de donde cargar los hijos.
+     * @param  DB $db DB de donde cargar los hijos.
      *
-     * @return bool
+     * @return PEAR_Error
      * @access public
      */
-    function cargarHijos(&$db)// ~X2C
+    function cargarHijos($db)// ~X2C
     {
-        $grupo = intval($this->grupo);
-        $hijos = array();
-        $result =& $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo");
+        $grupo  = intval($this->grupo);
+        $result = $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo");
         if (DB::isError($result)) {
             return $result;
         }
-        $hijo =& new GrupoSecciones;
-        $err  =& $hijo->cargar($result);
+        $this->_hijos = array();
+        $hijo = new GrupoSecciones;
+        $err  = $hijo->cargar($result);
         while (!PEAR::isError($err)) {
-            $hijos[] =& $hijo;
+            $this->_hijos[] = $hijo->__clone();
             $err = $hijo->cargar($result);
         }
-        if (!$err->getCode() == CODIGO DE ERROR DE NO HAY MAS ELEMENTOS) {
-            return $err;
+        // Si no hay mas resultados, entonces terminó bien.
+        if (is_a($err, 'aierror')
+                and $err->getCode() == AIERROR_NO_RESULTADOS) {
+            return true;
         }
-        return true;
+        // Si no, se devuelve el error.
+        return $err;
+    }
+    // -X2C
+
+    // +X2C Operation 500
+    /**
+     * @return GrupoSecciones
+     * @access public
+     */
+    function __clone()// ~X2C
+    {
+        return $this;
     }
     // -X2C