<?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$
//
+// Requires. {{{
require_once 'MECON/HTML/Arbol/ArbolDB.php';
require_once 'AIForm.php';
require_once 'Servicio.php';
+// }}}
-// Dibujo el menu de arbol.
+// Creo el árbol con los servicios. {{{
$dbdata = array(
'db' => &$DB,
'tabla' => 'servicio',
'prepend_link' => 'servicios?accion='.MODIFICACION.'&id='
);
$arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
+// }}}
-// Creo un servicio y seteo su id.
+// Creo un servicio y seteo su id. {{{
$servicio = new Servicio;
$servicio->servicio = @$_REQUEST['id'];
+// }}}
-// Verifico que la accion sea válida.
+// Creo formulario. {{{
+$form =& new AIForm;
+// }}}
+
+// Verifico que la accion sea válida. {{{
switch(@$_REQUEST['accion']) {
case BAJA:
case MODIFICACION:
default:
$accion = ALTA;
}
+// }}}
-// Creo formulario.
-$form =& new AIForm;
-
-// Verifico si ya se envio el formulario.
-$freeze = false;
-switch (@strtolower(join('', ($form->getSubmitValue('botones'))))) {
- case 'agregar':
+// 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 'borrar':
+ case 'modificar_borrar':
+ // Viene de modificar, hay que confirmar primero.
+ $a_confirmar = true;
+ case 'aceptar_borrar':
$accion = BAJA;
$servicio->servicio = $form->getSubmitValue('servicio');
- // Es la primera "llamada" a borrar asi que indico que hay que
- // freezarlo primero para confirmar.
- $freeze = true;
break;
- case 'modificar':
- case 'cancelar':
+ case 'borrar_cancelar':
+ // Indico que viene de un formulario cancelado.
+ $cancelado = true;
+ case 'aceptar_modificar':
$accion = MODIFICACION;
$servicio->servicio = $form->getSubmitValue('servicio');
break;
}
+// }}}
-// Cargo datos de ser necesario.
+// Inicio el formulario, cargando datos de ser necesario. {{{
if ($accion & (BAJA | MODIFICACION)) {
$err =& $servicio->cargar($DB);
if (PEAR::isError($err)) {
die($err->getMessage());
}
- $form->iniciar(SERVICIO, $accion, $servicio);
+ $form->iniciar($servicio, $accion);
} else {
$accion = ALTA;
- $form->iniciar(SERVICIO, ALTA, $servicio);
+ $form->iniciar($servicio);
}
+// }}}
-// Freezo de ser necesario.
-if ($freeze) {
+// Freezo de ser necesario. {{{
+if (@$a_confirmar) {
$form->freeze();
}
+// }}}
-// Me fijo si se cargo un formulalrio y si es válido.
+// Me fijo si se cargo un formulalrio y si es válido. {{{
if ($form->validate()) {
-/* $botones =& $form->getElement('botones');
- $botones =& $botones->getElements();
- $btnAceptar =& $botones[0];
- $btnCancelar =& $botones[1];
- $body = $btnAceptar->getValue() . '<BR>' . $btnCancelar->getValue() . '<BR>';
- switch (strtolower($btnAceptar->getValue())) {
- case 'agregar':
- $body .= 'Tengo que agregar!!!';
- break;
- case 'modificar':
- if (strtolower($btnCancelar->getValue()) == 'borrar') {
- $body .= 'Tengo que poner confirmación para borrar!!!';
- } else {
- $body .= 'Tengo que modificar!!!';
- }
- break;
- case 'borrar':
- if (strtolower($btnCancelar->getValue()) == 'cancelar') {
- $body .= 'Tengo que poner para modificar de nuevo!!!';
- } else {
- $body .= 'Tengo que borrar!!!';
- }
- break;
- }*/
switch ($accion) {
case ALTA:
- $form->freeze();
- $body = 'Tengo que agregar!!!' . $form->toHtml();
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: servicios?accion=%d&id=%d',
+ MODIFICACION, $servicio->servicio));
+ exit;
break;
case BAJA:
- if ($form->isFrozen()) {
- $form->freeze();
- $body = 'Tengo que borrar!!!' . $form->toHtml();
- } else {
- $form->freeze();
- $body =& $form;
+ if (!@$a_confirmar) {
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->borrar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header('Location: servicios');
+ exit;
}
break;
case MODIFICACION:
- $form->freeze();
- $body = 'Tengo que modificar!!!' . $form->toHtml();
+ if (!@$cancelado) {
+ $form->llenarObjeto($servicio);
+ $err =& $servicio->guardar($DB);
+ if (PEAR::isError($err)) {
+ die($err->getMessage());
+ }
+ header(sprintf('Location: servicios?accion=%d&id=%d',
+ MODIFICACION, $servicio->servicio));
+ exit;
+ }
break;
}
-} else {
- $body =& $form;
}
+$body =& $form;
+// }}}
-// Dibujo.
+// Dibujo. {{{
$LAYOUT->setCellContents(0, 0, $arbol);
$LAYOUT->setCellContents(0, 2, $body);
$MARCO->addBody($LAYOUT);
$MARCO->display();
+// }}}
?>