]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/www/index.php
Bugfixes.
[mecon/ai.git] / sistema / www / index.php
index ce3d616d4a0192c7551c8dda39344da6d1fc95ca..d68fe8ec920900257b7f196e92861cb9f7457d6a 100644 (file)
 // $Id$
 //
 
+require_once 'MECON/HTML/Error.php';
+
 // Debug. {{{
 require_once 'PEAR.php';
-PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
-#PEAR::setErrorHandling(PEAR_ERROR_RETURN);
-// }}}
-
-// Clase de error HTML (para mostrar errores) TODO - ver si se pasa a meconlib {{{
-class HTML_Error {
-    var $msg = '';
-    function HTML_Error($msg) {
-        $this->msg = $msg;
-    }
-    function toHtml() {
-        return '<DIV style="font-size: 11px; text-align: center; color: red">' . $this->msg . '</DIV>';
-    }
-}
+#PEAR::setErrorHandling(PEAR_ERROR_TRIGGER);
+PEAR::setErrorHandling(PEAR_ERROR_RETURN);
 // }}}
 
 // Creo el Marco. {{{
@@ -166,11 +156,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 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 HTML_Error('Error no esperado: ' . $err->getMessage());
+                        $error = new MECON_HTML_Error('Error no esperado: '
+                            . $err->getMessage());
                     }
                     $marco->addBody($error);
                 } else {
@@ -184,8 +177,15 @@ if ($tipo) {
                 if (!@$a_confirmar) {
                     $form->llenarObjeto($obj);
                     $err =& $obj->borrar($db);
-                    if (PEAR::isError($err)) {
-                        $error = new 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");
@@ -199,7 +199,7 @@ if ($tipo) {
                     $form->llenarObjeto($obj);
                     $err =& $obj->guardar($db);
                     if (PEAR::isError($err)) {
-                        $error = new HTML_Error('Error no esperado: ' . $err->getMessage());
+                        $error = new MECON_HTML_Error('Error no esperado: ' . $err->getMessage());
                         $marco->addBody($error);
                     } else {
                         header(sprintf('Location: %s?accion=%d&id=%d',
@@ -221,22 +221,21 @@ if ($tipo) {
         'db'            => &$db,
         'tabla'         => $tabla,
         'id'            => $tipo,
-        'nombre'        => $tipo,
-        'prepend_link'  => $tipo.'?accion='.AI_MODIF.'&id='
+        'nombre'        => 'nombre',
+        'prepend_link'  => $tipo.'?accion='.AI_MODIF.'&id=',
+        'order'         => 'asc',
     );
     if ($tipo == 'grupo' or $tipo == 'servicio') {
-        $dbdata['nombre']   = 'nombre';
         $dbdata['id_padre'] = $tipo . '_padre';
     } elseif ($tipo == 'sistema') { // FIXME - horrible!!!
-        $dbdata = array(
-            'db'            => &$db,
-            'tabla'         => "intranet.$tabla as A, samurai.sistema as S",
-            'id'            => "A.$tipo",
-            'nombre'        => 'S.nombre_sistema',
-            'prepend_link'  => $tipo.'?accion='.AI_MODIF.'&id=',
-            'where'         => 'S.id_sistema = A.sistema',
-            'order'         => 'asc',
-        );
+        $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);
     $marco->addMenuVertical($arbol);