]> git.llucax.com Git - mecon/ai.git/commitdiff
- Se actualiza doc.
authorLeandro Lucarella <llucax@gmail.com>
Wed, 25 Jun 2003 22:12:01 +0000 (22:12 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Wed, 25 Jun 2003 22:12:01 +0000 (22:12 +0000)
- Se hacen constructores.
- Se implementa GrupoSecciones::borrar() y GrupoSecciones::cargarHijos()
  pero faltan pruebas.
- Se hace que ::cargar() acepte DB o DB_Result.

doc/uml.xmi
sistema/local_lib/GrupoSecciones.php
sistema/local_lib/Servicio.php
sistema/local_lib/Sistema.php

index bcc38d2f9afff72a5753850b99389ec3306dece9..cd01daddb8876bc14e7be4304b885038012450c1 100644 (file)
@@ -9,23 +9,27 @@
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="412" documentation="" uniqueid="463" />
+  <docsettings viewid="412" documentation="" uniqueid="467" />
   <umlobjects>
    <UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
-    <UML:Operation stereotype="" package="" xmi.id="456" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
-     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="465" type="void" abstract="0" documentation="" name="Servicio" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="457" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
-     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="458" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
     </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="456" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
+    </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="463" type="bool" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
     </UML:Operation>
     <UML:Attribute stereotype="" package="" xmi.id="428" value="0" type="int" abstract="0" documentation="ID del servicio." name="servicio" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="452" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="467" value="array()" type="array" abstract="0" documentation="Servicios hijos." name="hijos" static="0" scope="202" />
     <UML:Attribute stereotype="" package="" xmi.id="429" value="''" type="string" abstract="0" documentation="Nombre del servicio." name="nombre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="433" value="''" type="string" abstract="0" documentation="Descripción del servicio." name="descripcion" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="430" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del servicio." name="icono" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="444" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="414" abstract="0" documentation="Grupo de secciones." name="GrupoSecciones" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="464" type="void" abstract="0" documentation="" name="GrupoSecciones" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del grupo." name="grupo" static="0" scope="200" />
+    </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="453" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
-     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="454" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
@@ -47,7 +54,7 @@
     <UML:Operation stereotype="" package="" xmi.id="462" type="bool" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="420" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="groupo" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="420" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="grupo" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="425" value="''" type="string" abstract="0" documentation="Nombre." name="nombre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="450" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="422" value="array()" type="array" abstract="0" documentation="Grupos de secciones que tiene este grupo.
@@ -58,11 +65,14 @@ x2c:get" name="hijos" static="0" scope="202" />
     <UML:Attribute stereotype="" package="" xmi.id="443" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="" xmi.id="416" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
-    <UML:Operation stereotype="" package="" xmi.id="459" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
-     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="466" type="void" abstract="0" documentation="" name="Sistema" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="ID del sistema." name="sistema" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="460" type="bool" abstract="0" documentation="" name="cargar" static="0" scope="200" >
-     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="Base de datos a utilizar." name="db" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="459" type="bool" abstract="0" documentation="" name="guardar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="461" type="bool" abstract="0" documentation="" name="borrar" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
@@ -77,9 +87,9 @@ x2c:get" name="hijos" static="0" scope="202" />
   <diagrams>
    <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="412" documentation="" type="402" showops="1" showpackage="0" name="Clases" localid="30000" showstereotype="0" showscope="1" font="Helvetica,8,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
     <widgets>
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="167" showattsigs="601" usesdiagramusefillcolour="0" x="200" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="196" usefillcolor="1" showattributes="1" xmi.id="413" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="163" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="182" usefillcolor="1" showattributes="1" xmi.id="414" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="159" showattsigs="601" usesdiagramusefillcolour="0" x="390" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="126" usefillcolor="1" showattributes="1" xmi.id="416" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="182" showattsigs="601" usesdiagramusefillcolour="0" x="320" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="224" usefillcolor="1" showattributes="1" xmi.id="413" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="211" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="30" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="196" usefillcolor="1" showattributes="1" xmi.id="414" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="184" showattsigs="601" usesdiagramusefillcolour="0" x="20" linecolour="#ff0000" y="250" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="140" usefillcolor="1" showattributes="1" xmi.id="416" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
     </widgets>
     <messages/>
     <associations/>
@@ -94,7 +104,8 @@ x2c:get" name="hijos" static="0" scope="202" />
       <listitem open="0" type="815" id="455" label="borrar" />
       <listitem open="0" type="815" id="453" label="cargar" />
       <listitem open="0" type="815" id="462" label="cargarHijos" />
-      <listitem open="0" type="814" id="420" label="groupo" />
+      <listitem open="0" type="814" id="420" label="grupo" />
+      <listitem open="0" type="815" id="464" label="GrupoSecciones" />
       <listitem open="0" type="815" id="454" label="guardar" />
       <listitem open="0" type="814" id="443" label="habilitado" />
       <listitem open="0" type="814" id="422" label="hijos" />
@@ -110,6 +121,7 @@ x2c:get" name="hijos" static="0" scope="202" />
       <listitem open="0" type="814" id="433" label="descripcion" />
       <listitem open="0" type="815" id="458" label="guardar" />
       <listitem open="0" type="814" id="444" label="habilitado" />
+      <listitem open="0" type="814" id="467" label="hijos" />
       <listitem open="0" type="814" id="430" label="icono" />
       <listitem open="0" type="814" id="431" label="link" />
       <listitem open="0" type="814" id="432" label="linkAyuda" />
@@ -117,6 +129,7 @@ x2c:get" name="hijos" static="0" scope="202" />
       <listitem open="0" type="814" id="429" label="nombre" />
       <listitem open="0" type="814" id="452" label="padre" />
       <listitem open="0" type="814" id="428" label="servicio" />
+      <listitem open="0" type="815" id="465" label="Servicio" />
      </listitem>
      <listitem open="0" type="813" id="416" label="Sistema" >
       <listitem open="0" type="815" id="461" label="borrar" />
@@ -127,6 +140,7 @@ x2c:get" name="hijos" static="0" scope="202" />
       <listitem open="0" type="814" id="439" label="link" />
       <listitem open="0" type="814" id="440" label="linkAyuda" />
       <listitem open="0" type="814" id="437" label="sistema" />
+      <listitem open="0" type="815" id="466" label="Sistema" />
      </listitem>
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
index 1e8e63cab7fc0bab455d97cbbb62c9300bcd1d6a..be0548868539bba86a0c3e069e86c126fbdf0783 100644 (file)
@@ -37,10 +37,10 @@ class GrupoSecciones {
     /**
      * ID del grupo de secciones.
      *
-     * @var    int $groupo
+     * @var    int $grupo
      * @access public
      */
-    var $groupo = 0;
+    var $grupo = 0;
 
     /**
      * Nombre.
@@ -109,50 +109,72 @@ class GrupoSecciones {
 
     // ~X2C
 
+    // +X2C Operation 464
+    /**
+     * @param  int $grupo ID del grupo.
+     *
+     * @return void
+     * @access public
+     */
+    function GrupoSecciones($grupo = 0)// ~X2C
+    {
+        $this->grupo = $grupo;
+    }
+    // -X2C
+
 
     // +X2C Operation 453
     /**
-     * @param  DB &$db Base de datos a utilizar.
+     * @param  mixed &$db Base de datos o Resultado a utilizar.
      *
      * @return bool
      * @access public
      */
     function cargar(&$db)// ~X2C
     {
-        $data = $db->getRow(
-            "SELECT *
-                FROM grupo_secciones
-                WHERE grupo = {$this->grupo}",
-            array(),
-            DB_FETCHMODE_ASSOC
-        );
-        if (DB::isError($data)) {
-            return $data;
-        } elseif (!$data) {
-            return PEAR::raiseError("No existe el grupo {$this->grupo} en la DB");
+        $grupo = intval($this->grupo);
+        if (is_a($db, 'db_result')) {
+            $dbh    =& $db->dbh;
+            $result =& $db;
+        // Si no es un resultado, hago el query.
         } else {
-            extract($data);
-            $this->grupo        = $grupo;
-            $this->nombre       = $nombre;
-            $this->padre        = $grupo_padre;
-            $this->antiguedad   = $antiguedad;
-            $this->mostrarHijos = $mostrar_hijos;
-            $data = $db->getCol(
-                "SELECT seccion
-                    FROM grupo_secciones_seccion
-                    WHERE grupo = {$this->grupo}"
+            $dbh    =& $db;
+            $result =& $dbh->query(
+                "SELECT *
+                    FROM grupo_secciones
+                    WHERE grupo = $grupo"
             );
-            if (DB::isError($data)) {
-                return $data;
-            } else {
-                if ($data) {
-                    $this->secciones = $data;
-                } else {
-                    $this->secciones = array();
-                }
+            if (DB::isError($result)) {
+                return $result;
             }
-            return true;
         }
+        // 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);
+        }
+        // Asigno valores al objeto.
+        extract($row);
+        $this->grupo        = $grupo;
+        $this->nombre       = $nombre;
+        $this->padre        = $grupo_padre;
+        $this->antiguedad   = $antiguedad;
+        $this->mostrarHijos = $mostrar_hijos;
+        // Obtengo secciones.
+        $secciones =& $dbh->getCol(
+            "SELECT seccion
+                FROM grupo_secciones_seccion
+                WHERE grupo = $grupo"
+        );
+        if (DB::isError($secciones)) {
+            return $secciones;
+        }
+        if ($secciones) {
+            $this->secciones = $secciones;
+        } else {
+            $this->secciones = array();
+        }
+        return true;
     }
     // -X2C
 
@@ -179,25 +201,28 @@ class GrupoSecciones {
             $where  = "grupo = $grupo";
         } else {
             $accion = DB_AUTOQUERY_INSERT;
-            $grupo = $db->nextId('grupo_secciones');
+            $grupo  = $db->nextId('grupo_secciones');
+            if (DB::isError($grupo)) {
+                return $grupo;
+            }
+            // Asigno el nuevo id de grupo.
+            $this->grupo = $grupo;
             $datos['grupo'] = $grupo;
-            echo "$group\n";
         }
-        $res = $db->autoExecute('grupo_secciones', $datos, $accion, $where);
+        $res =& $db->autoExecute('grupo_secciones', $datos, $accion, $where);
         if (DB::isError($res)) {
             return $res;
         }
-        // Falta actualización de secciones.
-        $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;
         }
@@ -214,7 +239,21 @@ class GrupoSecciones {
      */
     function borrar($db)// ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        $grupo = intval($this->grupo);
+        if ($grupo) {
+            $res =& $db->query(
+                "DELETE FROM grupo_secciones WHERE grupo = $grupo");
+            if (DB::isError($res)) {
+                return $res;
+            }
+            $res =& $db->query(
+                "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
+            if (DB::isError($res)) {
+                return $res;
+            }
+            return true;
+        }
+        return PEAR::raiseError("No hay un grupo valido para borrar");
     }
     // -X2C
 
@@ -227,10 +266,25 @@ class GrupoSecciones {
      */
     function cargarHijos(&$db)// ~X2C
     {
-        trigger_error('Not implemented!', E_USER_WARNING);
+        $grupo = intval($this->grupo);
+        $hijos = array();
+        $result =& $db->query("SELECT * FROM grupo_secciones WHERE grupo_padre = $grupo");
+        if (DB::isError($result)) {
+            return $result;
+        }
+        $hijo =& new GrupoSecciones;
+        $err  =& $hijo->cargar($result);
+        while (!PEAR::isError($err)) {
+            $hijos[] =& $hijo;
+            $err = $hijo->cargar($result);
+        }
+        if (!$err->getCode() == CODIGO DE ERROR DE NO HAY MAS ELEMENTOS) {
+            return $err;
+        }
+        return true;
     }
     // -X2C
 
 } // -X2C Class :GrupoSecciones
 
-?>
\ No newline at end of file
+?>
index 8df6c9e2875be2ccb77502ae9f3c459b95a1b40f..217425607c8e0f099561bd633dda24bc990f4a31 100644 (file)
@@ -49,6 +49,14 @@ class Servicio {
      */
     var $padre = 0;
 
+    /**
+     * Servicios hijos.
+     *
+     * @var    array $hijos
+     * @access protected
+     */
+    var $_hijos = array();
+
     /**
      * Nombre del servicio.
      *
@@ -123,7 +131,7 @@ class Servicio {
 
     // +X2C Operation 457
     /**
-     * @param  DB &$db Base de datos a utilizar.
+     * @param  mixed &$db Base de datos o Resultado a utilizar.
      *
      * @return bool
      * @access public
@@ -160,5 +168,18 @@ class Servicio {
     }
     // -X2C
 
+    // +X2C Operation 465
+    /**
+     * @param  int $servicio ID del servicio.
+     *
+     * @return void
+     * @access public
+     */
+    function Servicio($servicio = 0)// ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
 } // -X2C Class :Servicio
 ?>
\ No newline at end of file
index 552d5f3a39169173c528b49532e568950f444655..f8de80946c8265c22d6cecb6e19a6d2836bea4d0 100644 (file)
@@ -93,7 +93,7 @@ class Sistema {
 
     // +X2C Operation 460
     /**
-     * @param  DB &$db Base de datos a utilizar.
+     * @param  mixed &$db Base de datos o Resultado a utilizar.
      *
      * @return bool
      * @access public
@@ -117,5 +117,18 @@ class Sistema {
     }
     // -X2C
 
+    // +X2C Operation 466
+    /**
+     * @param  int $sistema ID del sistema.
+     *
+     * @return void
+     * @access public
+     */
+    function Sistema($sistema = 0)// ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
 } // -X2C Class :Sistema
 ?>
\ No newline at end of file