]> git.llucax.com Git - mecon/ai.git/commitdiff
Se trata de terminar de tomar en cuenta el flag habilitado, pero no anda la
authorLeandro Lucarella <llucax@gmail.com>
Fri, 25 Jul 2003 23:13:46 +0000 (23:13 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 25 Jul 2003 23:13:46 +0000 (23:13 +0000)
alta de sistemas.
Se hacen joins en todos los querys de AI_Sistema.
Se actualiza la TODO list.

TODO
doc/uml.xmi
lib/AI/Sistema.php
sistema/local_lib/AI/Form.php
sistema/www/index.php

diff --git a/TODO b/TODO
index 982b28c0a7c425620632d5dc1f0762584c79f7a8..9b20dd7df4dc0239f5cbcdfe41d6225f03599698 100644 (file)
--- a/TODO
+++ b/TODO
@@ -4,5 +4,9 @@ $Id$
   ícono de la sección que es poco intuitivo.
 - Ver que se hace con sistemas borrados de SAMURAI con baja lógica.
 - Resolver tema de JOIN con SAMURAI.
-- Hacer que filtre los no habilitados para gonzalo.
 - Hacer subclase de ArbolDB al estilo de QuickForm.
+
+--------------------
+URGENTE:
+- Ver el tema de AI_Sistema::getSistemasArray() y AI_Form para que ande de
+  nuevo la alta.
index 87fe249cfc3e4caf74d9b0b30a2622e2315c8ab4..85c596ed53d410495661c7fed877b8563f360445 100644 (file)
@@ -9,7 +9,7 @@
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="412" documentation="" uniqueid="531" />
+  <docsettings viewid="412" documentation="" uniqueid="536" />
   <umlobjects>
    <UML:Class stereotype="" package="AI" xmi.id="413" abstract="0" documentation="Servicio." name="AI_Servicio" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="465" type="void" abstract="0" documentation="" name="AI_Servicio" static="0" scope="200" >
     <UML:Attribute stereotype="" package="" xmi.id="431" value="''" type="string" abstract="0" documentation="Enlace a donde el este servicio." name="link" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="432" value="''" type="string" abstract="0" documentation="Enlace a donde se encuentra la ayuda del servicio." name="link_ayuda" static="0" scope="200" />
     <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="necesita_logueo" 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:Attribute stereotype="" package="" xmi.id="534" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="AI" xmi.id="416" abstract="0" documentation="Sistema." name="AI_Sistema" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="466" type="void" abstract="0" documentation="" name="AI_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="536" 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 de donde cargar el sistema." name="db" static="0" scope="200" />
+    </UML:Operation>
     <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:Parameter stereotype="" package="" xmi.id="2" value="false" type="bool" abstract="0" documentation="Si es true, se fuerza a guardar el servicio como nuevo." name="nuevo" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="531" type="array" abstract="0" documentation="" name="getSistemas" static="1" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="Base de datos de donde obtener los sistemas." name="db" static="0" scope="200" />
-     <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Clausula WHERE para filtrar la búsqueda." name="where" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="true" type="bool" abstract="0" documentation="Clausula WHERE para filtrar la búsqueda." name="soloHabilitados" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="Clausula WHERE para filtrar la búsqueda." name="where" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="528" type="array" abstract="0" documentation="Obtiene un array con los identificadores de los sistemas cargados." name="getSistemasArray" static="1" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="Base de datos de la cual obtener los sistemas." name="db" static="0" scope="200" />
-     <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Clausula WHERE para filtrar resultados." name="where" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="Clausula WHERE para filtrar la búsqueda." name="where" static="0" scope="200" />
     </UML:Operation>
     <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="513" value="''" type="string" abstract="0" documentation="Nombre del sistema (sólo de lectura, extraído de SAMURAI)." name="nombre" static="0" scope="200" />
@@ -51,7 +55,7 @@
     <UML:Attribute stereotype="" package="" xmi.id="438" value="''" type="string" 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="link_ayuda" 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:Attribute stereotype="" package="" xmi.id="533" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="AI" xmi.id="469" abstract="0" documentation="" name="AI_Error" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="470" type="void" abstract="0" documentation="" name="AI_Error" static="0" scope="200" >
@@ -87,7 +91,7 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" />
     <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="mostrar_hijos" 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:Attribute stereotype="" package="" xmi.id="535" value="true" type="bool" abstract="0" documentation="Indica si esta habilitado." name="habilitado" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="AI" xmi.id="516" abstract="1" documentation="Objecto con capacidad de guardarse, cargarse y borrarse de una base de datos." name="AI_DBObject" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="519" type="void" abstract="0" documentation="" name="AI_DBObject" static="0" scope="200" >
@@ -113,8 +117,9 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="1" value="0" type="int" abstract="0" documentation="Identificador del objecto." name="id" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="2" value="''" type="string" abstract="0" documentation="Configuración del objeto." name="confFile" static="0" scope="200" />
     </UML:Operation>
-    <UML:Operation stereotype="" package="" xmi.id="527" type="PEAR_Error" abstract="0" documentation="" name="cargarHijos" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="527" type="mixed" abstract="0" documentation="Carga hijos de un objeto. Si hubo error devuelve un PEAR_Error, si no hubo error, devuleve un array de objetos (los hijos)." name="cargarHijos" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="mixed" abstract="0" documentation="Base de datos o resultado de donde cargar los hijos." name="db" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="true" type="bool" abstract="0" documentation="Si es true, se cargan solo los hijos con el flag habilitado." name="soloHabilitados" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="529" type="PEAR_Error" abstract="0" documentation="Borra el objeto de la base de datos verificando que no tenga hijos." name="borrar" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="DB" abstract="0" documentation="Base de datos de la cual borrar el objeto." name="db" static="0" scope="200" />
@@ -126,44 +131,44 @@ x2c:get" name="hijos" static="0" scope="202" />
   <diagrams>
    <diagram snapgrid="0" 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="170" showattsigs="601" usesdiagramusefillcolour="0" x="309" linecolour="#ff0000" y="360" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="168" 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="287" showattsigs="601" usesdiagramusefillcolour="0" x="29" linecolour="#ff0000" y="162" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="168" 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="262" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="441" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="49" 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="125" linecolour="#ff0000" y="385" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#dcdcdc" 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="277" showattsigs="601" usesdiagramusefillcolour="0" x="492" linecolour="#ff0000" y="360" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="182" 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" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="346" showattsigs="601" usesdiagramusefillcolour="0" x="144" linecolour="#ff0000" y="29" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="98" usefillcolor="1" showattributes="1" xmi.id="516" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="297" showattsigs="601" usesdiagramusefillcolour="0" x="350" linecolour="#ff0000" y="162" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="70" usefillcolor="1" showattributes="1" xmi.id="524" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="170" showattsigs="601" usesdiagramusefillcolour="0" x="419" linecolour="#ff0000" y="353" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="156" 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="404" showattsigs="601" usesdiagramusefillcolour="0" x="9" linecolour="#ff0000" y="180" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="169" 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="262" showattsigs="601" usesdiagramusefillcolour="0" x="89" linecolour="#ff0000" y="430" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="45" 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="184" linecolour="#ff0000" y="374" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="23" 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="158" showattsigs="601" usesdiagramusefillcolour="0" x="605" linecolour="#ff0000" y="354" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="169" 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" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="346" showattsigs="601" usesdiagramusefillcolour="0" x="244" linecolour="#ff0000" y="10" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="91" usefillcolor="1" showattributes="1" xmi.id="516" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="322" showattsigs="601" usesdiagramusefillcolour="0" x="448" linecolour="#ff0000" y="180" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="65" usefillcolor="1" showattributes="1" xmi.id="524" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="Helvetica,8,-1,5,50,0,0,0,0,0" />
     </widgets>
     <messages/>
     <associations>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="471" widgetaid="469" documentation="" type="500" >
       <linepath>
-       <startpoint startx="161" starty="441" />
-       <endpoint endx="161" endy="409" />
+       <startpoint startx="220" starty="430" />
+       <endpoint endx="220" endy="397" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="516" widgetaid="416" documentation="" type="500" >
       <linepath>
-       <startpoint startx="172" starty="162" />
-       <endpoint endx="259" endy="127" />
+       <startpoint startx="211" starty="180" />
+       <endpoint endx="359" endy="101" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="516" widgetaid="524" documentation="" type="500" >
       <linepath>
-       <startpoint startx="498" starty="162" />
-       <endpoint endx="374" endy="127" />
+       <startpoint startx="609" starty="180" />
+       <endpoint endx="474" endy="101" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="524" widgetaid="486" documentation="" type="500" >
       <linepath>
-       <startpoint startx="630" starty="360" />
-       <endpoint endx="548" endy="232" />
+       <startpoint startx="684" starty="354" />
+       <endpoint endx="662" endy="245" />
       </linepath>
      </UML:AssocWidget>
      <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="524" widgetaid="413" documentation="" type="500" >
       <linepath>
-       <startpoint startx="394" starty="360" />
-       <endpoint endx="449" endy="232" />
+       <startpoint startx="504" starty="353" />
+       <endpoint endx="555" endy="245" />
       </linepath>
      </UML:AssocWidget>
     </associations>
@@ -181,7 +186,7 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="814" id="517" label="conf" />
        <listitem open="0" type="815" id="521" label="guardar" />
       </listitem>
-      <listitem open="0" type="813" id="524" label="AI_DBTreeObject" >
+      <listitem open="1" type="813" id="524" label="AI_DBTreeObject" >
        <listitem open="0" type="815" id="526" label="AI_DBTreeObject" />
        <listitem open="0" type="815" id="529" label="borrar" />
        <listitem open="0" type="815" id="527" label="cargarHijos" />
@@ -191,7 +196,7 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="815" id="470" label="AI_Error" />
        <listitem open="0" type="815" id="530" label="isError" />
       </listitem>
-      <listitem open="0" type="813" id="486" label="AI_GrupoSecciones" >
+      <listitem open="1" type="813" id="486" label="AI_GrupoSecciones" >
        <listitem open="0" type="815" id="495" label="AI_GrupoSecciones" />
        <listitem open="0" type="814" id="492" label="antiguedad" />
        <listitem open="0" type="815" id="498" label="borrar" />
@@ -200,16 +205,16 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="814" id="487" label="grupo" />
        <listitem open="0" type="814" id="489" label="grupo_padre" />
        <listitem open="0" type="815" id="497" label="guardar" />
-       <listitem open="0" type="814" id="494" label="habilitado" />
+       <listitem open="0" type="814" id="535" label="habilitado" />
        <listitem open="0" type="814" id="493" label="mostrar_hijos" />
        <listitem open="0" type="814" id="488" label="nombre" />
        <listitem open="0" type="814" id="491" label="secciones" />
       </listitem>
-      <listitem open="0" type="813" id="413" label="AI_Servicio" >
+      <listitem open="1" type="813" id="413" label="AI_Servicio" >
        <listitem open="0" type="815" id="465" label="AI_Servicio" />
        <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="534" label="habilitado" />
        <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="link_ayuda" />
@@ -218,13 +223,14 @@ x2c:get" name="hijos" static="0" scope="202" />
        <listitem open="0" type="814" id="428" label="servicio" />
        <listitem open="0" type="814" id="452" label="servicio_padre" />
       </listitem>
-      <listitem open="0" type="813" id="416" label="AI_Sistema" >
+      <listitem open="1" type="813" id="416" label="AI_Sistema" >
        <listitem open="0" type="815" id="466" label="AI_Sistema" />
+       <listitem open="0" type="815" id="536" label="cargar" />
        <listitem open="0" type="814" id="514" label="descripcion" />
        <listitem open="0" type="815" id="531" label="getSistemas" />
        <listitem open="0" type="815" id="528" label="getSistemasArray" />
        <listitem open="0" type="815" id="459" label="guardar" />
-       <listitem open="0" type="814" id="445" label="habilitado" />
+       <listitem open="0" type="814" id="533" 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="link_ayuda" />
index 54260afc017ce302e7bbce55be40907ef4e02c02..f0e907dc3af6043ad3ea658232309f7c5e2af53e 100644 (file)
@@ -117,6 +117,46 @@ class AI_Sistema extends AI_DBObject {
     }
     // -X2C
 
+    // +X2C Operation 536
+    /**
+     * @param  mixed $db Base de datos o resultado de donde cargar el sistema.
+     *
+     * @return PEAR_Error
+     * @access public
+     */
+    function cargar($db) // ~X2C
+    {
+        $id_field = $this->conf['id'];
+        $id = intval($this->$id_field);
+        if (is_a($db, 'db_result')) {
+            $result = $db;
+            $db     = $result->dbh;
+        // Si no es un resultado, hago el query.
+        } else {
+            // FIXME - ver como manejar JOINs - Ver de hacer el JOIN tambien en cargar.
+            $result = $db->query(
+                "SELECT AI.*, SA.nombre_sistema as nombre, SA.desc_sistema as descripcion
+                    FROM {$this->conf['base']}.{$this->conf['tabla']} as AI, samurai.sistema as SA
+                    WHERE AI.$id_field = $id AND AI.$id_field = SA.id_sistema"
+            );
+            if (DB::isError($result)) {
+                return $result;
+            }
+        }
+        // Obtengo la fila.
+        $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
+        if (!$row) {
+            return new AI_Error(AI_ERROR_NO_RESULTADOS,
+                "No hay más resultados en la DB [id=$id]");
+        }
+        // Asigno valores al objeto.
+        foreach ($row as $key => $val) {
+            $this->$key = $val;
+        }
+        return true;
+    }
+    // -X2C
+
     // +X2C Operation 459
     /**
      * @param  DB $db DB donde guardar.
@@ -145,7 +185,7 @@ class AI_Sistema extends AI_DBObject {
      * Obtiene un array con los identificadores de los sistemas cargados.
      *
      * @param  DB $db Base de datos de la cual obtener los sistemas.
-     * @param  string $where Clausula WHERE para filtrar resultados.
+     * @param  string $where Clausula WHERE para filtrar la bsqueda.
      *
      * @return array
      * @access public
@@ -158,12 +198,17 @@ class AI_Sistema extends AI_DBObject {
             $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true);
         }
         extract($conf);
+        // FIXME - ver como manejar JOINs - Ver de hacer el JOIN tambien en cargar.
         $query = "
-            SELECT   $id
-            FROM     $base.$tabla";
+            SELECT    SA.nombre_sistema, SA.id_sistema
+            FROM      samurai.sistema as SA
+            LEFT JOIN $base.$tabla as AI
+            ON        AI.sistema = SA.id_sistema
+            WHERE     AI.sistema IS NULL AND SA.estado = 1";
         if ($where) {
-            $query .= "WHERE $where";
+            $query .= " AND $where";
         }
+        $query .= " ORDER BY SA.nombre_sistema ASC";
         return $db->getCol($query);
     }
     // -X2C
@@ -171,13 +216,14 @@ class AI_Sistema extends AI_DBObject {
     // +X2C Operation 531
     /**
      * @param  DB $db Base de datos de donde obtener los sistemas.
+     * @param  bool $soloHabilitados Clausula WHERE para filtrar la bsqueda.
      * @param  string $where Clausula WHERE para filtrar la bsqueda.
      *
      * @return array
      * @access public
      * @static
      */
-    function getSistemas($db, $where = '') // ~X2C
+    function getSistemas($db, $soloHabilitados = true, $where = '') // ~X2C
     {
         static $conf;
         if (!$conf) {
@@ -189,9 +235,12 @@ class AI_Sistema extends AI_DBObject {
         $query = "
             SELECT AI.*, SA.nombre_sistema as nombre, SA.desc_sistema as descripcion
             FROM   $tabla as AI, samurai.sistema as SA
-            WHERE  SA.id_sistema = AI.sistema and SA.estado = 1";
+            WHERE  SA.id_sistema = AI.sistema AND SA.estado = 1";
+        if ($soloHabilitados) {
+            $query .= ' AND AI.habilitado = 1';
+        }
         if ($where) {
-            $query .= " WHERE $where";
+            $query .= " AND $where";
         }
         $query  .= ' ORDER BY nombre ASC';
         $result  = $db->query($query);
index 804ed27148d8c401d2e9993a98f060c2c83a9896..f17e12d2222d36547250b1e636c65d4f95226f1b 100644 (file)
@@ -87,13 +87,7 @@ class AI_Form extends MECON_HTML_QuickForm {
         if ($tipo == 'sistema') {
             require_once 'SAMURAI/Sistema.php';
             $sistemas = array('' => '--');
-            $cargados = AI_Sistema::getSistemasArray($db);
-            foreach (SAMURAI_Sistema::getArraySistemas($db) as $id => $nom) {
-                if (!in_array($id, $cargados)
-                        or ($accion & (AI_BAJA | AI_MODIF) and $id == $obj->$tipo)) {
-                    $sistemas[$id] = $nom;
-                }
-            }
+            $sistemas += AI_Sistema::getSistemasArray($db, false);
             $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
             $this->addRule($tipo, 'Debe ingresar un sistema.', 'required');
         }
index 81cd6a31f8213ef38346c278d521532349108911..090c6fb4982da4d3d2f5665642d5dda180d02db8 100644 (file)
@@ -33,8 +33,8 @@ prepend_include_path('/var/www/sistemas/ai/sistema/local_lib');
 
 // Debug. {{{
 require_once 'PEAR.php';
-#PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
-PEAR::setErrorHandling(PEAR_ERROR_RETURN);
+PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
+#PEAR::setErrorHandling(PEAR_ERROR_RETURN);
 // }}}
 
 // Creo el Marco. {{{