]> git.llucax.com Git - mecon/ai.git/commitdiff
- Se termina de implementar GrupoSecciones (aparentemente).
authorLeandro Lucarella <llucax@gmail.com>
Thu, 26 Jun 2003 23:30:07 +0000 (23:30 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 26 Jun 2003 23:30:07 +0000 (23:30 +0000)
- Se eliminan las referencias para mayor compatibilidad con PHP5.
- Se agrega una clase de Error.
- Se actualiza UML y testeos.

doc/uml.xmi
sistema/local_lib/AIError.php [new file with mode: 0644]
sistema/local_lib/GrupoSecciones.php
sistema/local_lib/Servicio.php
sistema/local_lib/Sistema.php
test/grupo_secciones.php

index cd01daddb8876bc14e7be4304b885038012450c1..5105f8eacde2de1c5494fbdf5ce676dd5d04bbf6 100644 (file)
@@ -9,24 +9,25 @@
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="412" documentation="" uniqueid="467" />
+  <docsettings viewid="412" documentation="" uniqueid="502" />
   <umlobjects>
    <UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="" name="Servicio" 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>
   <umlobjects>
    <UML:Class stereotype="" package="" xmi.id="413" abstract="0" documentation="" name="Servicio" 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;mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="457" type="PEAR_Error" abstract="0" documentation="" name="cargar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
     </UML:Operation>
     </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 stereotype="" package="" xmi.id="458" type="PEAR_Error" abstract="0" documentation="" name="guardar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
     </UML:Operation>
     </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 stereotype="" package="" xmi.id="456" type="PEAR_Error" abstract="0" documentation="" name="borrar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
     </UML:Operation>
     </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 stereotype="" package="" xmi.id="463" type="PEAR_Error" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
     </UML:Operation>
     </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="501" type="Servicio" abstract="0" documentation="" name="__clone" static="0" scope="200" />
     <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="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="434" value="false" type="bool" abstract="0" documentation="True si es necesario que el usuario se loguee para usar el servicio." name="necesitaLogueo" 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:Attribute stereotype="" package="" xmi.id="434" value="false" type="bool" abstract="0" documentation="True si es necesario que el usuario se loguee para usar el servicio." name="necesitaLogueo" 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;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" />
-    </UML:Operation>
-    <UML:Operation stereotype="" package="" xmi.id="455" 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="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="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.
-x2c:get" name="hijos" static="0" scope="202" />
-    <UML:Attribute stereotype="" package="" xmi.id="424" value="array()" type="array" abstract="0" documentation="Secciones que pertenecen a este grupo." name="secciones" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="426" value="0" type="int" abstract="0" documentation="Antigüedad (en días) de las noticias a mostrar." name="antiguedad" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="427" value="false" type="bool" abstract="0" documentation="True si hay que mostrar los grupos hijos (?? FIXME)." name="mostrarHijos" static="0" scope="200" />
-    <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="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:Class stereotype="" package="" xmi.id="416" abstract="0" documentation="" name="Sistema" 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;mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="460" type="PEAR_Error" abstract="0" documentation="" name="cargar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="mixed" abstract="0" documentation="Base de datos o Resultado a utilizar." name="db" static="0" scope="200" />
     </UML:Operation>
     </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 stereotype="" package="" xmi.id="459" type="PEAR_Error" abstract="0" documentation="" name="guardar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
     </UML:Operation>
     </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" />
+    <UML:Operation stereotype="" package="" xmi.id="461" type="PEAR_Error" abstract="0" documentation="" name="borrar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
     </UML:Operation>
     </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="502" type="Sistema" abstract="0" documentation="" name="__clone" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="437" value="0" type="int" abstract="0" documentation="ID del sistema (ID en SAMURAI)." name="sistema" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="438" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del sistema." name="icono" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="439" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra el sistema." name="link" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="440" value="''" type="string" abstract="0" documentation="Enlace a la ayuda del sistema." name="linkAyuda" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="445" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
     <UML:Attribute stereotype="" package="" xmi.id="437" value="0" type="int" abstract="0" documentation="ID del sistema (ID en SAMURAI)." name="sistema" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="438" value="null" type="HTML_Imagen" abstract="0" documentation="Ícono del sistema." name="icono" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="439" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra el sistema." name="link" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="440" value="''" type="string" abstract="0" documentation="Enlace a la ayuda del sistema." name="linkAyuda" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="445" 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="469" abstract="0" documentation="" name="AIError" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="470" type="void" abstract="0" documentation="" name="AIError" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Código de error." name="codigo" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Mensaje para mostrar" name="mensaje" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="" xmi.id="471" abstract="0" documentation="x2c:extern
+x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" />
+   <UML:Class stereotype="" package="" xmi.id="486" abstract="0" documentation="Grupo de secciones." name="GrupoSecciones" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="495" 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="496" type="PEAR_Error" abstract="0" documentation="" name="cargar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="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="497" type="PEAR_Error" abstract="0" documentation="" name="guardar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB donde guardar." name="db" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="498" type="PEAR_Error" abstract="0" documentation="" name="borrar" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB de donde borrar." name="db" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="499" type="PEAR_Error" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="DB de donde cargar los hijos." name="db" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="500" type="GrupoSecciones" abstract="0" documentation="" name="__clone" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="487" value="0" type="int" abstract="0" documentation="ID del grupo de secciones." name="grupo" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="488" value="''" type="string" abstract="0" documentation="Nombre." name="nombre" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="489" value="0" type="int" abstract="0" documentation="" name="padre" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="490" value="array()" type="array" abstract="0" documentation="Grupos de secciones que tiene este grupo.
+x2c:get" name="hijos" static="0" scope="202" />
+    <UML:Attribute stereotype="" package="" xmi.id="491" value="array()" type="array" abstract="0" documentation="Secciones que pertenecen a este grupo." name="secciones" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="492" value="0" type="int" abstract="0" documentation="Antigüedad (en días) de las noticias a mostrar." name="antiguedad" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="493" value="false" type="bool" abstract="0" documentation="True si hay que mostrar los grupos hijos (?? FIXME)." name="mostrarHijos" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="494" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
+   </UML:Class>
   </umlobjects>
   <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>
   </umlobjects>
   <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="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" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="193" showattsigs="601" usesdiagramusefillcolour="0" x="270" linecolour="#ff0000" y="20" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="238" 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="184" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="250" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="154" 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="256" showattsigs="601" usesdiagramusefillcolour="0" x="240" linecolour="#ff0000" y="350" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="469" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="73" showattsigs="601" usesdiagramusefillcolour="0" x="330" linecolour="#ff0000" y="270" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="24" usefillcolor="1" showattributes="0" xmi.id="471" showoperations="0" 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="30" linecolour="#ff0000" y="20" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" usefillcolor="1" showattributes="1" xmi.id="486" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
     </widgets>
     <messages/>
     </widgets>
     <messages/>
-    <associations/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="471" widgetaid="469" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="368" starty="350" />
+       <endpoint endx="366" endy="294" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
    </diagram>
   </diagrams>
   <listview>
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
    </diagram>
   </diagrams>
   <listview>
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
-     <listitem open="0" type="807" id="412" label="Clases" />
-     <listitem open="0" type="813" id="414" label="GrupoSecciones" >
-      <listitem open="0" type="814" id="426" label="antiguedad" />
-      <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="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" />
-      <listitem open="0" type="814" id="427" label="mostrarHijos" />
-      <listitem open="0" type="814" id="425" label="nombre" />
-      <listitem open="0" type="814" id="450" label="padre" />
-      <listitem open="0" type="814" id="424" label="secciones" />
+     <listitem open="1" type="803" id="-1" label="AI" >
+      <listitem open="0" type="813" id="469" label="AIError" >
+       <listitem open="0" type="815" id="470" label="AIError" />
+      </listitem>
+      <listitem open="0" type="813" id="486" label="GrupoSecciones" >
+       <listitem open="0" type="814" id="492" label="antiguedad" />
+       <listitem open="0" type="815" id="498" label="borrar" />
+       <listitem open="0" type="815" id="496" label="cargar" />
+       <listitem open="0" type="815" id="499" label="cargarHijos" />
+       <listitem open="0" type="815" id="500" label="__clone" />
+       <listitem open="0" type="814" id="487" label="grupo" />
+       <listitem open="0" type="815" id="495" label="GrupoSecciones" />
+       <listitem open="0" type="815" id="497" label="guardar" />
+       <listitem open="0" type="814" id="494" label="habilitado" />
+       <listitem open="0" type="814" id="490" label="hijos" />
+       <listitem open="0" type="814" id="493" label="mostrarHijos" />
+       <listitem open="0" type="814" id="488" label="nombre" />
+       <listitem open="0" type="814" id="489" label="padre" />
+       <listitem open="0" type="814" id="491" label="secciones" />
+      </listitem>
+      <listitem open="0" type="813" id="413" label="Servicio" >
+       <listitem open="0" type="815" id="456" label="borrar" />
+       <listitem open="0" type="815" id="457" label="cargar" />
+       <listitem open="0" type="815" id="463" label="cargarHijos" />
+       <listitem open="0" type="815" id="501" label="__clone" />
+       <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" />
+       <listitem open="0" type="814" id="434" label="necesitaLogueo" />
+       <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" />
+       <listitem open="0" type="815" id="460" label="cargar" />
+       <listitem open="0" type="815" id="502" label="__clone" />
+       <listitem open="0" type="815" id="459" label="guardar" />
+       <listitem open="0" type="814" id="445" label="habilitado" />
+       <listitem open="0" type="814" id="438" label="icono" />
+       <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>
-     <listitem open="0" type="813" id="413" label="Servicio" >
-      <listitem open="0" type="815" id="456" label="borrar" />
-      <listitem open="0" type="815" id="457" label="cargar" />
-      <listitem open="0" type="815" id="463" label="cargarHijos" />
-      <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" />
-      <listitem open="0" type="814" id="434" label="necesitaLogueo" />
-      <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" />
-      <listitem open="0" type="815" id="460" label="cargar" />
-      <listitem open="0" type="815" id="459" label="guardar" />
-      <listitem open="0" type="814" id="445" label="habilitado" />
-      <listitem open="0" type="814" id="438" label="icono" />
-      <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 open="0" type="807" id="412" label="Clases" />
+     <listitem open="0" type="803" id="-1" label="Externo" >
+      <listitem open="0" type="813" id="471" label="PEAR_Error" />
      </listitem>
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
      </listitem>
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
diff --git a/sistema/local_lib/AIError.php b/sistema/local_lib/AIError.php
new file mode 100644 (file)
index 0000000..76ab374
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// +--------------------------------------------------------------------+
+// |                      Ministerio de Economía                        |
+// |                  AI (Administrador de Intranet)                    |
+// +--------------------------------------------------------------------+
+// | This file is part of AI.                                           |
+// |                                                                    |
+// | AI is free software; you can redistribute it and/or modify         |
+// | it under the terms of the GNU General Public License as published  |
+// | by the Free Software Foundation; either version 2 of the License,  |
+// | or (at your option) any later version.                             |
+// |                                                                    |
+// | AI is distributed in the hope that it will be useful, but          |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
+// | General Public License for more details.                           |
+// |                                                                    |
+// | You should have received a copy of the GNU General Public License  |
+// | along with Hooks; if not, write to the Free Software Foundation,   |
+// | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
+// +--------------------------------------------------------------------+
+// | Creado: Thu Jun 26 16:49:08 2003                                   |
+// | Autor:  Leandro Lucarella <llucar@mecon.gov.ar>                    |
+// +--------------------------------------------------------------------+
+//
+// $Id$
+//
+
+// +X2C includes
+require_once 'PEAR.php';
+// ~X2C
+
+/**
+ * Error que indica que no hay más resultados en una base de datos.
+ *
+ * Es un error esperado y poco grave que sucede cada vez que se itera
+ * sobre un resultado de una base de datos.
+ */
+define('AIERROR_NO_RESULTADOS', 1);
+
+// +X2C Class 469 :AIError
+/**
+ * @access public
+ */
+class AIError extends PEAR_Error {
+    // ~X2C
+
+    // +X2C Operation 470
+    /**
+     * @param  int $codigo Cdigo de error.
+     * @param  string $mensaje Mensaje para mostrar
+     *
+     * @return void
+     * @access public
+     */
+    function AIError($codigo, $mensaje = '')// ~X2C
+    {
+        $this->PEAR_Error($mensaje, $codigo);
+    }
+    // -X2C
+
+} // -X2C Class :AIError
+
+?>
\ No newline at end of file
index be0548868539bba86a0c3e069e86c126fbdf0783..a9985214832046392be58e14868657774d63aaaa 100644 (file)
@@ -27,7 +27,9 @@
 // $Id$
 //
 
 // $Id$
 //
 
-// +X2C Class 414 :GrupoSecciones
+require_once 'AIError.php';
+
+// +X2C Class 486 :GrupoSecciones
 /**
  * Grupo de secciones.
  *
 /**
  * Grupo de secciones.
  *
@@ -109,7 +111,7 @@ class GrupoSecciones {
 
     // ~X2C
 
 
     // ~X2C
 
-    // +X2C Operation 464
+    // +X2C Operation 495
     /**
      * @param  int $grupo ID del grupo.
      *
     /**
      * @param  int $grupo ID del grupo.
      *
@@ -122,24 +124,22 @@ class GrupoSecciones {
     }
     // -X2C
 
     }
     // -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
      */
      * @access public
      */
-    function cargar(&$db)// ~X2C
+    function cargar($db)// ~X2C
     {
         $grupo = intval($this->grupo);
         if (is_a($db, 'db_result')) {
     {
         $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 {
         // Si no es un resultado, hago el query.
         } else {
-            $dbh    =& $db;
-            $result =& $dbh->query(
+            $result = $db->query(
                 "SELECT *
                     FROM grupo_secciones
                     WHERE grupo = $grupo"
                 "SELECT *
                     FROM grupo_secciones
                     WHERE grupo = $grupo"
@@ -151,7 +151,8 @@ class GrupoSecciones {
         // Obtengo la fila.
         $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
         if (!$row) {
         // 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);
         }
         // Asigno valores al objeto.
         extract($row);
@@ -161,7 +162,7 @@ class GrupoSecciones {
         $this->antiguedad   = $antiguedad;
         $this->mostrarHijos = $mostrar_hijos;
         // Obtengo secciones.
         $this->antiguedad   = $antiguedad;
         $this->mostrarHijos = $mostrar_hijos;
         // Obtengo secciones.
-        $secciones =& $dbh->getCol(
+        $secciones = $db->getCol(
             "SELECT seccion
                 FROM grupo_secciones_seccion
                 WHERE grupo = $grupo"
             "SELECT seccion
                 FROM grupo_secciones_seccion
                 WHERE grupo = $grupo"
@@ -178,14 +179,14 @@ class GrupoSecciones {
     }
     // -X2C
 
     }
     // -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
      */
      * @access public
      */
-    function guardar(&$db)// ~X2C
+    function guardar($db)// ~X2C
     {
         $grupo = intval($this->grupo);
         $where = '';
     {
         $grupo = intval($this->grupo);
         $where = '';
@@ -209,20 +210,20 @@ class GrupoSecciones {
             $this->grupo = $grupo;
             $datos['grupo'] = $grupo;
         }
             $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;
         }
         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;
         }
         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;
         }
             (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;
         }
         if (DB::isError($res)) {
             return $res;
         }
@@ -230,23 +231,23 @@ class GrupoSecciones {
     }
     // -X2C
 
     }
     // -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) {
      * @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;
             }
                 "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;
                 "DELETE FROM grupo_secciones_seccion WHERE grupo = $grupo");
             if (DB::isError($res)) {
                 return $res;
@@ -257,31 +258,45 @@ class GrupoSecciones {
     }
     // -X2C
 
     }
     // -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
      */
      * @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;
         }
         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)) {
         while (!PEAR::isError($err)) {
-            $hijos[] =& $hijo;
+            $this->_hijos[] = $hijo->__clone();
             $err = $hijo->cargar($result);
         }
             $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
 
     }
     // -X2C
 
index 217425607c8e0f099561bd633dda24bc990f4a31..3f5685a001d5b063143a6ebb935571bb14d418a2 100644 (file)
@@ -118,9 +118,9 @@ class Servicio {
 
     // +X2C Operation 456
     /**
 
     // +X2C Operation 456
     /**
-     * @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
      * @access public
      */
     function borrar($db)// ~X2C
@@ -131,12 +131,12 @@ class Servicio {
 
     // +X2C Operation 457
     /**
 
     // +X2C Operation 457
     /**
-     * @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
      */
      * @access public
      */
-    function cargar(&$db)// ~X2C
+    function cargar($db)// ~X2C
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
@@ -144,12 +144,12 @@ class Servicio {
 
     // +X2C Operation 458
     /**
 
     // +X2C Operation 458
     /**
-     * @param  DB &$db DB donde guardar.
+     * @param  DB $db DB donde guardar.
      *
      *
-     * @return bool
+     * @return PEAR_Error
      * @access public
      */
      * @access public
      */
-    function guardar(&$db)// ~X2C
+    function guardar($db)// ~X2C
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
@@ -157,12 +157,12 @@ class Servicio {
 
     // +X2C Operation 463
     /**
 
     // +X2C Operation 463
     /**
-     * @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
      */
      * @access public
      */
-    function cargarHijos(&$db)// ~X2C
+    function cargarHijos($db)// ~X2C
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
@@ -181,5 +181,16 @@ class Servicio {
     }
     // -X2C
 
     }
     // -X2C
 
+    // +X2C Operation 501
+    /**
+     * @return Servicio
+     * @access public
+     */
+    function __clone()// ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
 } // -X2C Class :Servicio
 ?>
\ No newline at end of file
 } // -X2C Class :Servicio
 ?>
\ No newline at end of file
index f8de80946c8265c22d6cecb6e19a6d2836bea4d0..7725ca8e74e36c04522537e0a760dccdd378d396 100644 (file)
@@ -80,12 +80,12 @@ class Sistema {
 
     // +X2C Operation 459
     /**
 
     // +X2C Operation 459
     /**
-     * @param  DB &$db DB donde guardar.
+     * @param  DB $db DB donde guardar.
      *
      *
-     * @return bool
+     * @return PEAR_Error
      * @access public
      */
      * @access public
      */
-    function guardar(&$db)// ~X2C
+    function guardar($db)// ~X2C
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
@@ -93,12 +93,12 @@ class Sistema {
 
     // +X2C Operation 460
     /**
 
     // +X2C Operation 460
     /**
-     * @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
      */
      * @access public
      */
-    function cargar(&$db)// ~X2C
+    function cargar($db)// ~X2C
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
     {
         trigger_error('Not implemented!', E_USER_WARNING);
     }
@@ -106,9 +106,9 @@ class Sistema {
 
     // +X2C Operation 461
     /**
 
     // +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
      * @access public
      */
     function borrar($db)// ~X2C
@@ -130,5 +130,16 @@ class Sistema {
     }
     // -X2C
 
     }
     // -X2C
 
+    // +X2C Operation 502
+    /**
+     * @return Sistema
+     * @access public
+     */
+    function __clone()// ~X2C
+    {
+        trigger_error('Not implemented!', E_USER_WARNING);
+    }
+    // -X2C
+
 } // -X2C Class :Sistema
 ?>
\ No newline at end of file
 } // -X2C Class :Sistema
 ?>
\ No newline at end of file
index b7887131a8ebeb1820b60ba336a03246307cfcaf..d842a6d71fea071df5bd0dd13741d16c07b33713 100644 (file)
@@ -3,33 +3,84 @@
 require_once 'DB.php';
 require_once '../sistema/local_lib/GrupoSecciones.php';
 
 require_once 'DB.php';
 require_once '../sistema/local_lib/GrupoSecciones.php';
 
-$db =& DB::connect('mysql://intranet:intranet@bal747f/intranet');
+$db = DB::connect('mysql://intranet:intranet@bal747f/intranet');
 
 if (DB::isError($db)) {
     var_dump($db);
     exit;
 }
 
 
 if (DB::isError($db)) {
     var_dump($db);
     exit;
 }
 
-$grupo =& new GrupoSecciones;
 
 
-$grupo->grupo = 3;
-$err =& $grupo->cargar($db);
+// Carga.
+echo "Cargas:\n";
+$grupo = new GrupoSecciones(1);
+$err   = $grupo->cargar($db);
 if (PEAR::isError($err)) {
     var_dump($err);
 } else {
     var_dump($grupo);
 }
 
 if (PEAR::isError($err)) {
     var_dump($err);
 } else {
     var_dump($grupo);
 }
 
-echo "\n\n\nAlta:\n";
+// Obtengo hijos.
+echo "\n\n\nObtengo Hijos:\n";
+$err = $grupo->cargarHijos($db);
+if (PEAR::isError($err)) {
+    var_dump($err);
+} else {
+    var_dump($grupo->getHijos());
+}
 
 // Alta.
 
 // Alta.
-$grupo->grupo = 0;
+echo "\n\n\nAlta:\n";
+$grupo->grupo  = 0;
+$grupo->padre  = 1;
 $grupo->secciones = array(1, 4, 6, 8);
 $err = $grupo->guardar($db);
 $grupo->secciones = array(1, 4, 6, 8);
 $err = $grupo->guardar($db);
+if (PEAR::isError($err)) {
+    var_dump($err);
+}
+$err = $grupo->cargarHijos($db);
+echo "Carga hijos: "; var_dump($err);
+var_dump($grupo);
+
+// Nuevo ID.
+$id_nuevo = $grupo->grupo;
+
+// Modificación.
+echo "\n\n\nModificación:\n";
+$grupo->secciones = array(2, 3, 5, 11);
+$grupo->nombre = 'Me cambiaron';
+$err = $grupo->guardar($db);
 if (PEAR::isError($err)) {
     var_dump($err);
 } else {
 if (PEAR::isError($err)) {
     var_dump($err);
 } else {
+    var_dump($grupo);
+}
+
+// Verifica.
+echo "\n\n\nVerifica:\n";
+$grupo->grupo = 1;
+$err = $grupo->cargar($db);
+if (PEAR::isError($err)) {
+    var_dump($err);
+} else {
+    var_dump($grupo);
+}
+
+// Borra.
+echo "\n\n\nBorra grupo $id_nuevo:\n";
+$grupo->grupo = $id_nuevo;
+$err = $grupo->borrar($db);
+var_dump($err);
+
+// Verifica obteniendo hijos.
+echo "\n\n\nVerifica Hijos:\n";
+$grupo->grupo = 1;
+$err = $grupo->cargarHijos($db);
+if (PEAR::isError($err)) {
     var_dump($err);
     var_dump($err);
+} else {
+    var_dump($grupo->getHijos());
 }
 
 ?>
 }
 
 ?>