]> git.llucax.com Git - mecon/ai.git/blob - sistema/www/sistemas.php
Se completa la primera alfa. Ahora se hace todo desde el index.php.
[mecon/ai.git] / sistema / www / sistemas.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 'Sistema.php';
34 // }}}
35
36 // Creo el árbol con los servicios. {{{
37 $dbdata = array(
38     'db'            => &$DB,
39     'tabla'         => 'sistema',
40     'id'            => 'sistema',
41     'nombre'        => 'sistema',
42     'prepend_link'  => 'sistema?accion='.MODIFICACION.'&id='
43 );
44 $arbol = new HTML_ArbolDB($dbdata, '/MECON/images/arbol_noticias.gif');
45 // }}}
46
47 // Creo un servicio y seteo su id. {{{
48 $sistema = new Sistema;
49 $sistema->sistema = @$_REQUEST['id'];
50 // }}}
51
52 // Creo formulario. {{{
53 $form =& new AIForm;
54 // }}}
55
56 // Verifico que la accion sea válida. {{{
57 switch(@$_REQUEST['accion']) {
58     case BAJA:
59     case MODIFICACION:
60         $accion = $_REQUEST['accion'];
61         break;
62     default:
63         $accion = ALTA;
64 }
65 // }}}
66
67 // Verifico si ya se envio el formulario. {{{
68 $botones = $form->getSubmitValue('botones');
69 if ($boton = @join('', array_keys($botones))) {
70     $boton = $boton . '_' . strtolower($botones[$boton]);
71 }
72 switch ($boton) {
73     case 'aceptar_agregar':
74         $accion = ALTA;
75         break;
76     case 'modificar_borrar':
77         // Viene de modificar,  hay que confirmar primero.
78         $a_confirmar = true;
79     case 'aceptar_borrar':
80         $accion = BAJA;
81         $sistema->sistema = $form->getSubmitValue('sistema');
82         break;
83     case 'borrar_cancelar':
84         // Indico que viene de un formulario cancelado.
85         $cancelado = true;
86     case 'aceptar_modificar':
87         $accion = MODIFICACION;
88         $sistema->sistema = $form->getSubmitValue('sistema');
89         break;
90 }
91 // }}}
92
93 // Inicio el formulario, cargando datos de ser necesario. {{{
94 if ($accion & (BAJA | MODIFICACION)) {
95     $err =& $sistema->cargar($DB);
96     if (PEAR::isError($err)) {
97         die($err->getMessage());
98     }
99     $form->iniciar($sistema, $accion);
100 } else {
101     $accion = ALTA;
102     $form->iniciar($sistema);
103 }
104 // }}}
105
106 // Freezo de ser necesario. {{{
107 if (@$a_confirmar) {
108     $form->freeze();
109 }
110 // }}}
111
112 // Me fijo si se cargo un formulalrio y si es válido. {{{
113 if ($form->validate()) {
114     switch ($accion) {
115         case ALTA:
116             $form->llenarObjeto($sistema);
117             $err =& $sistema->guardar($DB);
118             if (PEAR::isError($err)) {
119                 die($err->getMessage());
120             }
121             header(sprintf('Location: sistema?accion=%d&id=%d',
122                 MODIFICACION, $sistema->sistema));
123             exit;
124             break;
125         case BAJA:
126             if (!@$a_confirmar) {
127                 $form->llenarObjeto($sistema);
128                 $err =& $sistema->borrar($DB);
129                 if (PEAR::isError($err)) {
130                     die($err->getMessage());
131                 }
132                 header('Location: sistema');
133                 exit;
134             }
135             break;
136         case MODIFICACION:
137             if (!@$cancelado) {
138                 $form->llenarObjeto($sistema);
139                 $err =& $sistema->guardar($DB);
140                 if (PEAR::isError($err)) {
141                     die($err->getMessage());
142                 }
143                 header(sprintf('Location: sistema?accion=%d&id=%d',
144                     MODIFICACION, $sistema->sistema));
145                 exit;
146             }
147             break;
148     }
149 }
150 $body =& $form;
151 // }}}
152
153 // Dibujo. {{{
154 $LAYOUT->setCellContents(0, 0, $arbol);
155 $LAYOUT->setCellContents(0, 2, $body);
156 $MARCO->addBody($LAYOUT);
157 $MARCO->display();
158 // }}}
159
160 ?>