]> git.llucax.com Git - mecon/ai.git/blobdiff - lib/AI/Form.php
- Se agrega un método estático AI_Error::isError() para saber si algo es un
[mecon/ai.git] / lib / AI / Form.php
index 75be294ddd13f5efc473c049568d83e7318a2a14..dc81494ec869448ddea72bf28bd4583785083c21 100644 (file)
@@ -57,6 +57,8 @@ class AI_Form extends MECON_HTML_QuickForm {
      */
     function iniciar(&$obj, $accion = AI_ALTA) // ~X2C
     {
      */
     function iniciar(&$obj, $accion = AI_ALTA) // ~X2C
     {
+        # FIXME - Tomar la db desde afuera.
+        $db = AI_DB::connect('../conf/DB.ini');
         $tipo   = substr(get_class($obj), 3);
         $s_tipo = ucfirst($tipo);
         if ($tipo == 'gruposecciones') {
         $tipo   = substr(get_class($obj), 3);
         $s_tipo = ucfirst($tipo);
         if ($tipo == 'gruposecciones') {
@@ -81,8 +83,16 @@ class AI_Form extends MECON_HTML_QuickForm {
         // Elementos.
         if ($tipo == 'sistema') {
             require_once 'SAMURAI/Sistema.php';
         // Elementos.
         if ($tipo == 'sistema') {
             require_once 'SAMURAI/Sistema.php';
-            $sistemas = SAMURAI_Sistema::getArraySistemas(AI_DB::connect('../conf/DB.ini'));
-            $fId        =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
+            $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;
+                }
+            }
+            $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas);
+            $this->addRule($tipo, 'Debe ingresar un sistema.', 'required');
         }
         if ($accion & (AI_BAJA | AI_MODIF)) {
             if ($tipo == 'sistema') {
         }
         if ($accion & (AI_BAJA | AI_MODIF)) {
             if ($tipo == 'sistema') {
@@ -94,10 +104,13 @@ class AI_Form extends MECON_HTML_QuickForm {
             $fId->freeze();
         }
         if ($tipo == 'grupo' or $tipo == 'servicio') {
             $fId->freeze();
         }
         if ($tipo == 'grupo' or $tipo == 'servicio') {
-            $tipos = array('' => '--', '0' => 'Página Principal') +
-                arbol2array(AI_DB::connect('../conf/DB.ini'),
-                ($tipo == 'grupo') ? 'grupo_secciones' : $tipo, 0, $tipo, 'nombre',
-                $tipo . '_padre');
+            $tipos = array('' => '--', '0' => 'Página Principal')
+                + arbol2array($db, ($tipo == 'grupo') ? 'grupo_secciones' : $tipo,
+                    0, $tipo, 'nombre', $tipo . '_padre', 'ASC');
+            // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo).
+            if ($accion & (AI_BAJA | AI_MODIF)) {
+                unset($tipos[$obj->$tipo]);
+            }
             $fPadre  =& $this->addElement('select', $padre, 'Padre', $tipos);
             $fNombre =& $this->addElement('text', 'nombre', 'Nombre');
             // Validación.
             $fPadre  =& $this->addElement('select', $padre, 'Padre', $tipos);
             $fNombre =& $this->addElement('text', 'nombre', 'Nombre');
             // Validación.
@@ -115,8 +128,8 @@ class AI_Form extends MECON_HTML_QuickForm {
             $fAntiguedad   =& $this->addElement('select', 'antiguedad', 'Antigüedad',
                 array(3 => '3 días', 1 => '1 día', 7 => '1 semana'));
             $fSecciones    =& $this->addElement('select', 'secciones', 'Secciones',
             $fAntiguedad   =& $this->addElement('select', 'antiguedad', 'Antigüedad',
                 array(3 => '3 días', 1 => '1 día', 7 => '1 semana'));
             $fSecciones    =& $this->addElement('select', 'secciones', 'Secciones',
-                AI_GrupoSecciones::getSeccionesArray(),
-                array('multiple' => 'multiple', 'size' => 5));
+                AI_GrupoSecciones::getSeccionesArray($db),
+                array('multiple' => 'multiple', 'size' => 8));
             $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos');
             // Validación.
             $this->addRule('antiguedad', 'La antigüedad debe ser un número natural.',
             $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos');
             // Validación.
             $this->addRule('antiguedad', 'La antigüedad debe ser un número natural.',