]> git.llucax.com Git - mecon/ai.git/blobdiff - sistema/www/servicios.php
Se termina la primera versión funcional de servicios.
[mecon/ai.git] / sistema / www / servicios.php
index d4087ebd653d4fc3738ba2f6ea3fcbe102ca174a..417dd2a232f4f53b714b37951384e280e8d5c6f5 100644 (file)
@@ -1,5 +1,5 @@
 <?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',
@@ -41,12 +43,18 @@ $dbdata = array(
     '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:
@@ -55,100 +63,99 @@ switch(@$_REQUEST['accion']) {
     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();
+// }}}
 
 ?>