<?php
-// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
+// vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
// +--------------------------------------------------------------------+
// | Ministerio de Economía |
// | AI (Administrador de Intranet) |
// $Id$
//
-$MARCO->addBody("SISTEMAS");
+// Requires. {{{
+require_once 'MECON/HTML/Arbol/ArbolDB.php';
+require_once 'AIForm.php';
+require_once 'Sistema.php';
+// }}}
+
+// Creo el árbol con los servicios. {{{
+$dbdata = array(
+ 'db' => &$DB,
+ 'tabla' => 'sistema',
+ 'id' => 'sistema',
+ 'nombre' => 'sistema',
+ 'prepend_link' => 'sistema?accion='.MODIFICACION.'&id='
+);
+$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
+// }}}
+
+// Creo un servicio y seteo su id. {{{
+$sistema = new Sistema;
+$sistema->sistema = @$_REQUEST['id'];
+// }}}
+
+// Creo formulario. {{{
+$form =& new AIForm;
+// }}}
+
+// Verifico que la accion sea válida. {{{
+switch(@$_REQUEST['accion']) {
+ case BAJA:
+ case MODIFICACION:
+ $accion = $_REQUEST['accion'];
+ break;
+ default:
+ $accion = ALTA;
+}
+// }}}
+
+// Verifico si ya se envio el formulario. {{{
+$botones = $form->getSubmitValue('botones');
+if ($boton = @join('', array_keys($botones))) {
+ $boton = $boton . '_' . strtolower($botones[$boton]);
+}
+switch ($boton) {
+ case 'aceptar_agregar':
+ $accion = ALTA;
+ break;
+ case 'modificar_borrar':
+ // Viene de modificar, hay que confirmar primero.
+ $a_confirmar = true;
+ case 'aceptar_borrar':
+ $accion = BAJA;
+ $sistema->sistema = $form->getSubmitValue('sistema');
+ break;
+ case 'borrar_cancelar':
+ // Indico que viene de un formulario cancelado.
+ $cancelado = true;
+ case 'aceptar_modificar':
+ $accion = MODIFICACION;
+ $sistema->sistema = $form->getSubmitValue('sistema');
+ break;
+}
+// }}}
+
+// Inicio el formulario, cargando datos de ser necesario. {{{
+if ($accion & (BAJA | MODIFICACION)) {
+ $err =& $sistema->cargar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ $form->iniciar($sistema, $accion);
+} else {
+ $accion = ALTA;
+ $form->iniciar($sistema);
+}
+// }}}
+
+// Freezo de ser necesario. {{{
+if (@$a_confirmar) {
+ $form->freeze();
+}
+// }}}
+
+// Me fijo si se cargo un formulalrio y si es válido. {{{
+if ($form->validate()) {
+ switch ($accion) {
+ case ALTA:
+ $form->llenarObjeto($sistema);
+ $err =& $sistema->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: sistema?accion=%d&id=%d',
+ MODIFICACION, $sistema->sistema));
+ exit;
+ break;
+ case BAJA:
+ if (!@$a_confirmar) {
+ $form->llenarObjeto($sistema);
+ $err =& $sistema->borrar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header('Location: sistema');
+ exit;
+ }
+ break;
+ case MODIFICACION:
+ if (!@$cancelado) {
+ $form->llenarObjeto($sistema);
+ $err =& $sistema->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: sistema?accion=%d&id=%d',
+ MODIFICACION, $sistema->sistema));
+ exit;
+ }
+ break;
+ }
+}
+$body =& $form;
+// }}}
+
+// Dibujo. {{{
+$LAYOUT->setCellContents(0, 0, $arbol);
+$LAYOUT->setCellContents(0, 2, $body);
+$MARCO->addBody($LAYOUT);
$MARCO->display();
+// }}}
?>