// $Id$
//
+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';
-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. {{{
$marco = new Marco('../conf/Marco.php');
// }}}
-// Averiguo si estoy administrando algún tipo de objeto. XXX - desafear {{{
+// Averiguo si estoy administrando algún tipo de objeto. {{{
$tipo = null;
if (@$_SERVER['PATH_INFO']) {
$tmp = ltrim($_SERVER['PATH_INFO'], '/');
}
// }}}
+ // 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);
}
// }}}
$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 {
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");
$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',
}
// }}}
- // 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' => $tipo,
- 'prepend_link' => $tipo.'?accion='.AI_MODIF.'&id='
- );
- 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',
- );
- }
- $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. {{{