]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/www/index.php
- Se usa el nuevo método de ArbolDB para indicar qué elemento se está editando.
[mecon/ai.git] / sistema / www / index.php
index 50218683cd26f203cc3b56ef7d2f38e5de2d71a4..438f132adc73c0dc88e1b1fc5f41b498c08a1f30 100644 (file)
@@ -28,6 +28,8 @@
 //
 
 require_once 'MECON/HTML/Error.php';
+require_once 'MECON/general.php';
+prepend_include_path('/var/www/sistemas/ai/sistema/local_lib');
 
 // Debug. {{{
 require_once 'PEAR.php';
@@ -130,16 +132,44 @@ if ($tipo) {
     }
     // }}}
 
+    // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{
+    require_once 'MECON/HTML/Arbol/ArbolDB.php';
+    $dbdata = array(
+        'db'            => &$db,
+        'tabla'         => $tabla,
+        'id'            => $tipo,
+        'nombre'        => 'nombre',
+        'order'         => 'asc',
+    );
+    // Activo el id del objeto que estamos modificando.
+    if ($accion & (AI_BAJA | AI_MODIF)) {
+        $dbdata['id_activo'] = $obj->$tipo;
+    }
+    if ($tipo == 'grupo' or $tipo == 'servicio') {
+        $dbdata['id_padre'] = $tipo . '_padre';
+    } elseif ($tipo == 'sistema') { // FIXME - horrible!!!
+        $dbdata =
+            array(
+                'tabla'         => "intranet.$tabla as A, samurai.sistema as S",
+                'id'            => "A.$tipo",
+                'nombre'        => 'S.nombre_sistema',
+                'where'         => 'S.id_sistema = A.sistema AND S.estado = 1',
+            )
+            + $dbdata;
+    }
+    $arbol = new HTML_ArbolDB($dbdata, $arbol, $tipo.'?accion='.AI_MODIF.'&id=');
+    // }}}
+
     // Inicio el formulario, cargando datos de ser necesario. {{{
     if ($accion & (AI_BAJA | AI_MODIF)) {
         $err =& $obj->cargar($db);
         if (PEAR::isError($err)) {
             die($err->getMessage());
         }
-        $form->iniciar($obj, $accion);
+        $form->iniciar($obj, $accion, $arbol, $db);
     } else {
         $accion = AI_ALTA;
-        $form->iniciar($obj);
+        $form->iniciar($obj, $accion, $arbol, $db);
     }
     // }}}
 
@@ -156,11 +186,14 @@ if ($tipo) {
                 $form->llenarObjeto($obj);
                 $err =& $obj->guardar($db, true);
                 if (PEAR::isError($err)) {
-                    if (DB::isError($err) and $err->getCode() == DB_ERROR_ALREADY_EXISTS) {
-                        $error = new MECON_HTML_Error("Ya existe un $nombre con el identificador "
+                    if (DB::isError($err)
+                            and $err->getCode() == DB_ERROR_ALREADY_EXISTS) {
+                        $error = new MECON_HTML_Error(
+                            "Ya existe un $nombre con el identificador "
                             . $obj->$tipo);
                     } else {
-                        $error = new MECON_HTML_Error('Error no esperado: ' . $err->getMessage());
+                        $error = new MECON_HTML_Error('Error no esperado: '
+                            . $err->getMessage());
                     }
                     $marco->addBody($error);
                 } else {
@@ -174,8 +207,15 @@ if ($tipo) {
                 if (!@$a_confirmar) {
                     $form->llenarObjeto($obj);
                     $err =& $obj->borrar($db);
-                    if (PEAR::isError($err)) {
-                        $error = new MECON_HTML_Error('Error no esperado: ' . $err->getMessage());
+                    if (AI_Error::isError($err)
+                            and $err->getCode() == AI_ERROR_TIENE_HIJOS) {
+                        $error = new MECON_HTML_Error('No se puede borrar el '
+                            . $nombre . ' porque todavía tiene "hijos".'
+                            . ' Elimine todos los "hijos" y pruebe otra vez.');
+                        $marco->addBody($error);
+                    } elseif (PEAR::isError($err)) {
+                        $error = new MECON_HTML_Error('Error no esperado: '
+                            . $err->getMessage());
                         $marco->addBody($error);
                     } else {
                         header("Location: $tipo");
@@ -203,40 +243,11 @@ if ($tipo) {
     }
     // }}}
 
-    // Agrego el menu y el formulario a la página. {{{
-
-    // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{
-    require_once 'MECON/HTML/Arbol/ArbolDB.php';
-    $dbdata = array(
-        'db'            => &$db,
-        'tabla'         => $tabla,
-        'id'            => $tipo,
-        'nombre'        => 'nombre',
-        'prepend_link'  => $tipo.'?accion='.AI_MODIF.'&id=',
-        'order'         => 'asc',
-    );
-    if ($tipo == 'grupo' or $tipo == 'servicio') {
-        $dbdata['id_padre'] = $tipo . '_padre';
-    } elseif ($tipo == 'sistema') { // FIXME - horrible!!!
-        $dbdata =
-            array(
-                'tabla'         => "intranet.$tabla as A, samurai.sistema as S",
-                'id'            => "A.$tipo",
-                'nombre'        => 'S.nombre_sistema',
-                'where'         => 'S.id_sistema = A.sistema AND S.estado = 1',
-            )
-            + $dbdata;
-    }
-    $arbol = new HTML_ArbolDB($dbdata, $arbol);
+    // Agrego el menu y formulario a la página. {{{
     $marco->addMenuVertical($arbol);
-    // }}}
-
-    // Agrego el formulario a la página. {{{
     $marco->addBody($form);
     // }}}
 
-    // }}}
-
 // }}}
 
 // No se está editando nada, agrego la imágen de bienvenida a la página. {{{