]> git.llucax.com Git - mecon/ai.git/blob - sistema/www/servicios.php
Se termina la primera versión funcional de servicios.
[mecon/ai.git] / sistema / www / servicios.php
1 <?php
2 // vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker:
3 // +--------------------------------------------------------------------+
4 // |                      Ministerio de Economía                        |
5 // |                  AI (Administrador de Intranet)                    |
6 // +--------------------------------------------------------------------+
7 // | This file is part of AI.                                           |
8 // |                                                                    |
9 // | AI is free software; you can redistribute it and/or modify         |
10 // | it under the terms of the GNU General Public License as published  |
11 // | by the Free Software Foundation; either version 2 of the License,  |
12 // | or (at your option) any later version.                             |
13 // |                                                                    |
14 // | AI is distributed in the hope that it will be useful, but          |
15 // | WITHOUT ANY WARRANTY; without even the implied warranty of         |
16 // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   |
17 // | General Public License for more details.                           |
18 // |                                                                    |
19 // | You should have received a copy of the GNU General Public License  |
20 // | along with Hooks; if not, write to the Free Software Foundation,   |
21 // | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA      |
22 // +--------------------------------------------------------------------+
23 // | Creado: vie jun 27 17:08:18 ART 2003                               |
24 // | Autor:  Leandro Lucarella <llucar@mecon.gov.ar>                    |
25 // +--------------------------------------------------------------------+
26 //
27 // $Id$
28 //
29
30 // Requires. {{{
31 require_once 'MECON/HTML/Arbol/ArbolDB.php';
32 require_once 'AIForm.php';
33 require_once 'Servicio.php';
34 // }}}
35
36 // Creo el árbol con los servicios. {{{
37 $dbdata = array(
38     'db'            => &$DB,
39     'tabla'         => 'servicio',
40     'id'            => 'servicio',
41     'nombre'        => 'nombre',
42     'id_padre'      => 'servicio_padre',
43     'prepend_link'  => 'servicios?accion='.MODIFICACION.'&id='
44 );
45 $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
46 // }}}
47
48 // Creo un servicio y seteo su id. {{{
49 $servicio = new Servicio;
50 $servicio->servicio = @$_REQUEST['id'];
51 // }}}
52
53 // Creo formulario. {{{
54 $form =& new AIForm;
55 // }}}
56
57 // Verifico que la accion sea válida. {{{
58 switch(@$_REQUEST['accion']) {
59     case BAJA:
60     case MODIFICACION:
61         $accion = $_REQUEST['accion'];
62         break;
63     default:
64         $accion = ALTA;
65 }
66 // }}}
67
68 // Verifico si ya se envio el formulario. {{{
69 $botones = $form->getSubmitValue('botones');
70 if ($boton = @join('', array_keys($botones))) {
71     $boton = $boton . '_' . strtolower($botones[$boton]);
72 }
73 switch ($boton) {
74     case 'aceptar_agregar':
75         $accion = ALTA;
76         break;
77     case 'modificar_borrar':
78         // Viene de modificar,  hay que confirmar primero.
79         $a_confirmar = true;
80     case 'aceptar_borrar':
81         $accion = BAJA;
82         $servicio->servicio = $form->getSubmitValue('servicio');
83         break;
84     case 'borrar_cancelar':
85         // Indico que viene de un formulario cancelado.
86         $cancelado = true;
87     case 'aceptar_modificar':
88         $accion = MODIFICACION;
89         $servicio->servicio = $form->getSubmitValue('servicio');
90         break;
91 }
92 // }}}
93
94 // Inicio el formulario, cargando datos de ser necesario. {{{
95 if ($accion & (BAJA | MODIFICACION)) {
96     $err =& $servicio->cargar($DB);
97     if (PEAR::isError($err)) {
98         die($err->getMessage());
99     }
100     $form->iniciar($servicio, $accion);
101 } else {
102     $accion = ALTA;
103     $form->iniciar($servicio);
104 }
105 // }}}
106
107 // Freezo de ser necesario. {{{
108 if (@$a_confirmar) {
109     $form->freeze();
110 }
111 // }}}
112
113 // Me fijo si se cargo un formulalrio y si es válido. {{{
114 if ($form->validate()) {
115     switch ($accion) {
116         case ALTA:
117             $form->llenarObjeto($servicio);
118             $err =& $servicio->guardar($DB);
119             if (PEAR::isError($err)) {
120                 die($err->getMessage());
121             }
122             header(sprintf('Location: servicios?accion=%d&id=%d',
123                 MODIFICACION, $servicio->servicio));
124             exit;
125             break;
126         case BAJA:
127             if (!@$a_confirmar) {
128                 $form->llenarObjeto($servicio);
129                 $err =& $servicio->borrar($DB);
130                 if (PEAR::isError($err)) {
131                     die($err->getMessage());
132                 }
133                 header('Location: servicios');
134                 exit;
135             }
136             break;
137         case MODIFICACION:
138             if (!@$cancelado) {
139                 $form->llenarObjeto($servicio);
140                 $err =& $servicio->guardar($DB);
141                 if (PEAR::isError($err)) {
142                     die($err->getMessage());
143                 }
144                 header(sprintf('Location: servicios?accion=%d&id=%d',
145                     MODIFICACION, $servicio->servicio));
146                 exit;
147             }
148             break;
149     }
150 }
151 $body =& $form;
152 // }}}
153
154 // Dibujo. {{{
155 $LAYOUT->setCellContents(0, 0, $arbol);
156 $LAYOUT->setCellContents(0, 2, $body);
157 $MARCO->addBody($LAYOUT);
158 $MARCO->display();
159 // }}}
160
161 ?>