]> git.llucax.com Git - mecon/samurai.git/blob - sistema/www/sistemas/sistemas-permisos.php
- ABM de sistemas terminado.
[mecon/samurai.git] / sistema / www / sistemas / sistemas-permisos.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
4 // | PHP Version 4                                                        |
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group                                |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license,      |
9 // | that is bundled with this package in the file LICENSE, and is        |
10 // | available at through the world-wide-web at                           |
11 // | http://www.php.net/license/2_02.txt.                                 |
12 // | If you did not receive a copy of the PHP license and are unable to   |
13 // | obtain it through the world-wide-web, please send a note to          |
14 // | license@php.net so we can mail you a copy immediately.               |
15 // +----------------------------------------------------------------------+
16 // | Created: mar may 27 15:16:38 ART 2003
17 // | Author:  Martin Marrese <mmarre@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
19 //
20 // $Id: sistemas-permisos.php 21 2003-06-25 22:26:30Z mmarre e
21 // $Author$
22 // $URL$
23 // $Date$
24 // $Rev$
25 // 
26     require_once 'HTML/QuickForm.php';
27     require_once 'MECON/HTML/QuickForm/Renderer/Tabla.php';
28     require_once 'MECON/HTML/Tabla.php';
29
30 //OBTENGO EL ID DEL SISTEMA
31     //El id de sistema viene por get o por post, no hay otra posibilidad
32     $idSistema = 0;
33     if (isset($_GET['idSistema'])) {
34         $idSistema = $_GET['idSistema'];
35     }
36     elseif (isset($_POST['idSistema'])) {
37         $idSistema = $_POST['idSistema'];
38     }
39 //
40 //CREO LOS OBJETO NECESARIOS
41     $SAMURAI   = new Samurai($DB);
42     $FORM      = new HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos');
43     $SISTEMA   = new Sistema ($DB, $idSistema);
44     $TABLASIST = new Tabla ('cellpadding=2');
45     $TABLAPERM = new Tabla ('cellpadding=2');
46 //
47     $SISTEMA->setResponsable($_SESSION['samurai']['login']);
48 //AGREGO LA INFORMACION DEL SISTEMA
49     $row = array ('Id', 'Nombre', 'Descripcion');
50     $TABLASIST->addRow($row, 'cabecera');
51     $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion());
52     $TABLASIST->addRow($row, 'comun');
53 //
54 //AGREGO LOS ELEMENTOS DEL FORM
55     //Obtengo la lista de permisos
56     $PERMISOS = $SAMURAI->getSelectPermisos();
57     //Agrego elementos
58     $FORM->addElement ('header', 'cabecera'   , 'Agregar una asociacion');
59     $FORM->addElement ('hidden', 'idSistema'  , $idSistema);
60     $FORM->addElement ('select', 'permisos'   , 'Permisos'   , $PERMISOS, array('size' => '1'));
61     $FORM->addElement ('hidden', 'permant');
62     $FORM->addElement ('hidden', 'obsant');
63     $FORM->addElement ('text'  , 'observacion', 'Observacion', array('size' => '30'));
64     $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar');
65     $FORM->addGroup($group,'botones', '', ',&nbsp;');
66 //
67 //VALIDO EL FORMULARIO
68     if ($FORM->validate()) {
69         $idPermiso   =& $FORM->getElement  ('permisos'   );
70         $idPerm_ant  =& $FORM->getElement  ('permant'    );
71         $observacion =& $FORM->getElement  ('observacion');
72         $obs_ant     =& $FORM->getElement  ('obsant'    );
73         $group       =& $FORM->getElement  ('botones'    );
74         $group       =& $group->getElements('aceptar'    );
75         $aceptar     =& $group[0];
76
77         $tmp = $idPermiso->getSelected();
78         $tmp = $tmp['0'];
79         if ($aceptar->getValue() == 'Grabar') {
80             $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue());
81         }
82         elseif ($aceptar->getValue() == 'Modificar') {
83             $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue());
84         }
85         elseif ($aceptar->getValue() == 'Eliminar') {
86             $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue());
87         }
88
89         if ($error) {
90             $group = array ();
91             $group[] = HTML_QuickForm::createElement('static', 'error' , 'Error', 'La asociacion ya existe, modifique alguno de sus datos.');
92             $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar');
93             $FORM->removeElement('botones');
94             $FORM->addGroup($group,'botones', '', '<br>');
95         }
96         else {
97             $idPermiso->setSelected(null);
98             $observacion->setValue(null);
99             $aceptar->setValue('Grabar');
100         }
101     }
102 //
103 //VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT
104     if (isset($_GET['accion'])) { 
105         $group   =& $FORM->getElement  ('botones');
106         $group   =& $group->getElements('aceptar');
107         $aceptar =& $group[0];
108         
109         if ($_GET['accion'] == 'm') {
110             $aceptar->setValue('Modificar');
111         }
112         elseif ($_GET['accion'] == 'e') {
113             $aceptar->setValue('Eliminar');
114             $FORM->freeze();
115         }
116     } 
117 //
118 //CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM
119     if (isset($_GET['accion'])) {
120         $idPermiso   =& $FORM->getElement ('permisos'   );
121         $idPerm_ant  =& $FORM->getElement ('permant'    );
122         $observacion =& $FORM->getElement ('observacion');
123         $obs_ant     =& $FORM->getElement ('obsant'     );  
124         $idPermiso->setSelected($_GET['idPermiso']);
125         $idPerm_ant->setValue($_GET['idPermiso']);
126         $observacion->setValue($_GET['observacion']);
127         $obs_ant->setValue($_GET['observacion']);    
128     }
129 //
130 //AGREGO LA INFORMACION DE LAS ASOCIACIONES
131     $aHref      = '<a href="sistemas-permisos?accion=##ACCION##&idPermiso=##PERMISO##&observacion=##OBS##&idSistema='.$idSistema.'">';
132     $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar"></a>';
133     $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar" ></a>';
134     $row = array ('Nombre', 'Observacion', 'Modif.', 'Elim.');
135     $TABLAPERM->addRow($row, 'cabecera');
136     
137     $asocs = $SISTEMA->getAsociaciones();
138  
139     $idPerm_ant  =& $FORM->getElement ('permant'    );
140     $obs_ant     =& $FORM->getElement ('obsant'     );  
141    
142     foreach ($asocs as $key => $asoc) {
143         $estilo = 'comun';
144         $permiso = new Permiso($DB, $asoc['id']);
145         $Modif = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefModif);
146         $Elim  = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim);
147         $Modif = ereg_replace('##OBS##'    , $asoc['obs'], $Modif);
148         $Elim  = ereg_replace('##OBS##'    , $asoc['obs'], $Elim);
149         $Modif = ereg_replace('##ACCION##' , 'm', $Modif);
150         $Elim  = ereg_replace('##ACCION##' , 'e', $Elim);
151         
152         if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) {
153             $estilo = 'titulo';
154         }
155         
156         $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim);
157         $TABLAPERM->addRow($row, $estilo);
158     }
159
160 //
161 //DIBUJO LA PAGINA
162     $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"');
163     $FORM->accept($renderer);
164
165     $MARCO = new Marco ('../../conf/confSecciones.php');
166     $MARCO->addTitle('Asociar Permisos y Sistemas');
167     //AGREGO LA TABLA DEL SISTEMA
168     $MARCO->addBody($TABLASIST);
169     $MARCO->addBody('<BR>');
170     //AGREGO LA TABLA DEL FORM
171     $MARCO->addBody($renderer);
172     $MARCO->addBody('<BR>');
173     //AGREGO LA TABLA DE PERMISOS
174     $MARCO->addBody($TABLAPERM);
175     $MARCO->display();
176 //
177 //FIN
178
179 ?>