From: Martín Marrese Date: Fri, 18 Jul 2003 17:53:40 +0000 (+0000) Subject: Funcionalidad terminada, salvo consultas. Solo falta ver bien si hay errores X-Git-Tag: svn_import~106 X-Git-Url: https://git.llucax.com/mecon/samurai.git/commitdiff_plain/1fce1689d24ee6eed11644946bfa777a06d2ef8e?ds=sidebyside;hp=4a91ae5069fc847c7f27e84a8449fbbd0742e2b2 Funcionalidad terminada, salvo consultas. Solo falta ver bien si hay errores --- diff --git a/doc/uml/Samurai.xmi b/doc/uml/Samurai.xmi index 2e0294c..957c67f 100644 --- a/doc/uml/Samurai.xmi +++ b/doc/uml/Samurai.xmi @@ -160,7 +160,6 @@ x2c: get set" name="permisos" static="0" scope="201" /> - @@ -279,7 +278,7 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - + diff --git a/lib/SAMURAI/Perfil.php b/lib/SAMURAI/Perfil.php index 87bc1ce..b5742f8 100644 --- a/lib/SAMURAI/Perfil.php +++ b/lib/SAMURAI/Perfil.php @@ -450,6 +450,7 @@ class SAMURAI_Perfil { //Reemplazo el filtro por ##?## $consulta = ereg_replace ('##FILTRO##', $filtro, $tmp2); } + $consulta.= $sql['obtener_id_perfiles4']; $dbh = $db->prepare($consulta); if ($id_sistema) { $tmp[] = $id_sistema; @@ -628,4 +629,4 @@ class SAMURAI_Perfil { } // -X2C Class :SAMURAI_Perfil -?> +?> \ No newline at end of file diff --git a/lib/SAMURAI/Perfil/consultas.ini b/lib/SAMURAI/Perfil/consultas.ini index 7a3dda6..fba4c77 100644 --- a/lib/SAMURAI/Perfil/consultas.ini +++ b/lib/SAMURAI/Perfil/consultas.ini @@ -7,6 +7,7 @@ obtener_datos_perfil3 = " WHERE p.desc_perfil = ?" obtener_id_perfiles = " SELECT ps.id_perfil FROM samurai.perfil_sist as ps, samurai.perfil as p WHERE ps.id_perfil = p.id_perfil " obtener_id_perfiles3 = " AND ps.id_sistema = ? " obtener_id_perfiles2 = " AND p.desc_perfil like '%##FILTRO##%'" +obtener_id_perfiles4 = " ORDER BY p.desc_perfil" borrar_perfil = " DELETE FROM samurai.perfil as p " obtener_permisos = " SELECT id_permiso, observaciones FROM samurai.perm_perfil_sist WHERE id_perfil = ? AND id_sistema = ?" diff --git a/lib/SAMURAI/Permiso.php b/lib/SAMURAI/Permiso.php index c2049c9..ba385a0 100644 --- a/lib/SAMURAI/Permiso.php +++ b/lib/SAMURAI/Permiso.php @@ -310,6 +310,7 @@ class SAMURAI_Permiso { $consulta.= $sql['obtener_datos_permiso3']; $tmp[] = $id_sistema; } + $consulta.= $sql['obtener_datos_permiso5']; $dbh = $db->prepare($consulta); $res = $db->execute($dbh, $tmp); while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { diff --git a/lib/SAMURAI/Permiso/consultas.ini b/lib/SAMURAI/Permiso/consultas.ini index b0f53ec..493ce74 100644 --- a/lib/SAMURAI/Permiso/consultas.ini +++ b/lib/SAMURAI/Permiso/consultas.ini @@ -5,6 +5,7 @@ obtener_datos_permiso = "SELECT p.id_permiso, p.desc_permiso, p.responsable FROM samurai.permiso as p " obtener_datos_permiso2 = "WHERE p.id_permiso = ? " +obtener_datos_permiso5 = " ORDER BY p.desc_permiso " obtener_datos_permiso3 = ",samurai.perm_sist as ps WHERE ps.id_sistema = ? AND ps.id_permiso = p.id_permiso " obtener_datos_permiso4 = ",samurai.perm_sist as ps WHERE ps.id_permiso = p.id_permiso " borrar_permiso = "DELETE FROM samurai.permiso WHERE id_permiso = ?" diff --git a/lib/SAMURAI/Sistema.php b/lib/SAMURAI/Sistema.php index 84299b5..42a562f 100644 --- a/lib/SAMURAI/Sistema.php +++ b/lib/SAMURAI/Sistema.php @@ -613,6 +613,7 @@ class SAMURAI_Sistema { if (PEAR::isError($res)) { return $res; } + $this->_id = $idSistema; } // -X2C @@ -700,7 +701,7 @@ class SAMURAI_Sistema { $re = $this->_db->autoPrepare('perm_sist', $datos, DB_AUTOQUERY_INSERT); if (isset($this->_permisos)) { foreach ($this->_permisos as $permiso) { - $datos = array ($permiso['0'], $idSistema, $this->getResponsable()); + $datos = array ($permiso, $idSistema, $this->getResponsable()); $res = $this->_db->execute($re, $datos); if (PEAR::isError($res)) { return $res; @@ -756,7 +757,6 @@ class SAMURAI_Sistema { */ function guardarAsociacion($idPermiso, $observacion = '') // ~X2C { - $error = true; if (!$this->_existeAsociacion($idPermiso, $observacion)) { //Guardo la asociacion //Grabo el sistema @@ -769,9 +769,11 @@ class SAMURAI_Sistema { $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT); //Recargo los datos del sistema $this->_obtenerDatosDb(); - $error = false; + return null; + } + else { + return new PEAR_Error('La Asociacion ya existe.'); } - return $error; } // -X2C @@ -787,12 +789,74 @@ class SAMURAI_Sistema { */ function eliminarAsociacion($idPermiso, $observacion = '') // ~X2C { - $error = false; - //Elimino la asociacion - $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso); + //TODO Arreglar el asco este + $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true); + $res = ''; + //Obtengo los id de los perfiles del permiso en el sistema + $tmp = $sql['ea_obt_idperfil']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId())); + if (PEAR::isError($res)) { + return $res; + } + $i = 0; + $tmp = ''; + while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) { + $tmp[] = $re['0']; + $i++; + } + $PERFILES = $tmp; + //Borro el permiso de los perfiles del sistema + $tmp = $sql['ea_del_perm_perfil_sist']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($idPermiso, $observacion, $this->getId())); + if (PEAR::isError($res)) { + return $res; + } + //Verifico si era el unico permiso de cada uno de los perfiles en los que estaba asignado + if (@$PERFILES) { + foreach ($PERFILES as $perfil) { + //Cuento + $tmp = $sql['ea_obt_cuenta_perfil']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($perfil, $this->getId())); + if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0) { + //Borro perfil_sist + $tmp = $sql['ea_del_perfil_sist']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($perfil, $this->getId())); + if (PEAR::isError($res)) { + return $res; + } + //Borro perfil_sist_usuario + $tmp = $sql['ea_del_perfil_sist_usuario']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($perfil, $this->getId())); + if (PEAR::isError($res)) { + return $res; + } + //Verifico si hay otro sistema usando este perfil + $tmp = $sql['ea_obt_cuenta_perfil_sist']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($perfil)); + if (($re = $res->fetchRow(DB_FETCHMODE_ASSOC)) && $re['cuenta'] == 0){ + $tmp = $sql['ea_del_perfil']; + $dbh = $this->_db->prepare($tmp); + $res = $this->_db->execute($dbh, array ($perfil)); + if (PEAR::isError($res)) { + return $res; + } + } + } + } + } + //Borro la asociacion perm_sist + $res = $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso); + if (PEAR::isError($res)) { + return $res; + } //Recargo los datos del sistema $this->_obtenerDatosDb(); - return $error; } // -X2C @@ -801,16 +865,14 @@ class SAMURAI_Sistema { * Actualiza los datos de la asociacion en la base de datos. * * @param int $idPermiso Identificador del permiso - * @param int $idPermiso_ant Identificador del permiso anterior * @param string $observacion Observacion a insertar * @param string $obs_ant Observacion anterior * * @return bool * @access public */ - function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '') // ~X2C + function modificarAsociacion($idPermiso, $observacion = '', $obs_ant = '') // ~X2C { - $error = true; //Busco la nueva asociacion if (!$this->_existeAsociacion($idPermiso, $observacion)) { //Actualizo la asociacion @@ -823,13 +885,15 @@ class SAMURAI_Sistema { $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_UPDATE, - 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\''); + 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso.' AND observaciones =\''.$obs_ant.'\''); //Recargo los datos del sistema $this->_obtenerDatosDb(); - $error = false; + return null; + } + else { + return new PEAR_Error('La Asociacion ya existe.'); } - return $error; } // -X2C @@ -897,7 +961,7 @@ class SAMURAI_Sistema { //OBTENGO LOS ID DE LA BASE $rta = array(); $sql = parse_ini_file(dirname(__FILE__) . '/Sistema/consultas.ini', true); - $dbh = $db->prepare($sql['obtener_datos_sistema'].$sql['obtener_datos_sistema3']); + $dbh = $db->prepare($sql['obtener_datos_sistema'].$sql['obtener_datos_sistema3'].$sql['obtener_datos_sistema4']); $res = $db->execute($dbh); while ($re = $res->fetchrow(DB_FETCHMODE_ASSOC)) { array_push($rta,$re['id_sistema']); @@ -929,4 +993,4 @@ class SAMURAI_Sistema { } // -X2C Class :SAMURAI_Sistema -?> \ No newline at end of file +?> diff --git a/lib/SAMURAI/Sistema/consultas.ini b/lib/SAMURAI/Sistema/consultas.ini index 6ebc013..012b672 100644 --- a/lib/SAMURAI/Sistema/consultas.ini +++ b/lib/SAMURAI/Sistema/consultas.ini @@ -1,17 +1,25 @@ ; Configuración de la base de datos. ; $Id$ - - - obtener_datos_sistema = " SELECT s.id_sistema as id_sistema, s.nombre_sistema as nombre_sistema, s.desc_sistema as desc_sistema, s.fecha_inicio as fecha_inicio, s.fecha_fin as fecha_fin, s.fecha_implementacion as fecha_implementacion, s.contacto as contacto, s.responsable as responsable FROM samurai.sistema as s " obtener_datos_sistema2 = " WHERE s.id_sistema = ? " obtener_datos_sistema3 = " WHERE s.estado = 1" +obtener_datos_sistema4 = " ORDER BY s.nombre_sistema" obtener_permisos = " SELECT ps.id_permiso, ps.observaciones, p.desc_permiso FROM samurai.perm_sist as ps, samurai.permiso as p WHERE ps.id_sistema = ? AND ps.id_permiso = p.id_permiso" -obtener_permisos2 = " ORDER BY p.id_permiso" +obtener_permisos2 = " ORDER BY p.desc_permiso" obtener_permisos3 = " AND ps.id_permiso = ?" obtener_permisos4 = " AND ps.observaciones = ?" obtener_max_id_sistemas = " SELECT IFNULL(max(id_sistema), 1) as id_sistema FROM samurai.sistema" borrar_permisos = " DELETE FROM samurai.perm_sist WHERE id_sistema = ? " borrar_permisos2 = " AND observaciones = ?" borrar_permisos3 = " AND id_permiso = ?" + +;BORRAR ASOCIACIONES +ea_obt_idperfil = "SELECT id_perfil FROM samurai.perm_perfil_sist WHERE id_permiso = ? AND observaciones = ? AND id_sistema = ?" +ea_del_perm_perfil_sist = "DELETE FROM samurai.perm_perfil_sist WHERE id_permiso = ? AND observaciones = ? AND id_sistema = ?" +ea_obt_cuenta_perfil = "SELECT IF(0,0,count(*)) as cuenta FROM samurai.perm_perfil_sist WHERE id_perfil = ? AND id_sistema = ?" +ea_obt_cuenta_perfil_sist = "SELECT IF(0,0,count(*)) as cuenta FROM samurai.perfil_sist WHERE id_perfil = ?" +ea_del_perfil_sist = "DELETE FROM samurai.perfil_sist WHERE id_perfil = ? AND id_sistema = ?" +ea_del_perfil_sist_usuario = "DELETE FROM samurai.perfil_sist_usuario WHERE id_perfil = ? AND id_sistema = ?" +ea_del_perfil = "DELETE FROM samurai.perfil WHERE id_perfil = ?" + diff --git a/lib/SAMURAI/Usuario.php b/lib/SAMURAI/Usuario.php index f05e2ed..913ee12 100644 --- a/lib/SAMURAI/Usuario.php +++ b/lib/SAMURAI/Usuario.php @@ -434,4 +434,4 @@ class SAMURAI_Usuario { // -X2C } // -X2C Class :SAMURAI_Usuario -?> +?> \ No newline at end of file diff --git a/sistema/conf/confSecciones.php b/sistema/conf/confSecciones.php index afb45b1..1508771 100644 --- a/sistema/conf/confSecciones.php +++ b/sistema/conf/confSecciones.php @@ -120,6 +120,12 @@ 'imagenSelect' => '', 'link' => 'sistemas/sistemas-permisos', ), + array ( 'nombre' => 'ABM Asociacion', + 'imagenComun' => '', + 'imagenMouseOn' => '', + 'imagenSelect' => '', + 'link' => 'sistemas/sistemas-permisos-abm', + ), ), ), array ( diff --git a/sistema/www/perfiles/perfiles-datos.php b/sistema/www/perfiles/perfiles-datos.php index 1ffb1a6..1ed8d2c 100644 --- a/sistema/www/perfiles/perfiles-datos.php +++ b/sistema/www/perfiles/perfiles-datos.php @@ -71,7 +71,7 @@ case 'D': $TipoPerfil = 'Dios'; break; } -//}}] +//}}} //AGREGO LOS ELEMENTOS AL FORM {{{ $FORM->addElement ('static', 'id_perfil' , 'Id Perfil' , $PERFIL->getId() ); @@ -84,7 +84,8 @@ //DIBUJO LA PAGINA {{{ $PAGE->addBodyContent($FORM); - $PAGE->addBodyContent(new HTML_Image('/MECON/images/general_cerrar.gif', 'Cerrar', array ('border'=>'0', 'onClick'=>'self.close();return false;'))); + $imagen = new HTML_Image('/MECON/images/general_cerrar.gif'); + $PAGE->addBodyContent(''.$imagen->toHtml().''); $PAGE->display(); // }}} //FIN diff --git a/sistema/www/perfiles/perfiles.php b/sistema/www/perfiles/perfiles.php index 1c98531..b59d770 100644 --- a/sistema/www/perfiles/perfiles.php +++ b/sistema/www/perfiles/perfiles.php @@ -48,7 +48,7 @@ if (!@$_SESSION['samurai']['id_sistema'] || !@$_SESSION['samurai']['login']) { $imagen = new HTML_Image('/MECON/images/vinetas_flecha_doble.gif'); $row = array ($imagen->toHtml().' SISTEMA: '.$SISTEMA->getNombre().''); $TABLA3->addRow($row,'align=left'); - $row = array ('Ingresar Nuevo Perfil'); + $row = array ('Ingresar Nuevo Perfil'); $TABLA2->addRow($row,'align=right'); $row = array ('Id','Descripcion','Tipo','Modif.','Elim.'); $TABLA->addRow($row,'cabecera'); diff --git a/sistema/www/sistemas/sistemas-abm.php b/sistema/www/sistemas/sistemas-abm.php index 1110161..0f306ce 100644 --- a/sistema/www/sistemas/sistemas-abm.php +++ b/sistema/www/sistemas/sistemas-abm.php @@ -185,6 +185,9 @@ } else { $res = $SISTEMA->guardarDatos($aceptar->getValue()); + if ($aceptar->getValue() != 'Eliminar') { + $_SESSION['samurai']['id_sistema'] = $SISTEMA->getId(); + } if (PEAR::isError($res)) { $ERROR = new MECON_HTML_Error($res->getMessage()); } diff --git a/sistema/www/sistemas/sistemas-datos.php b/sistema/www/sistemas/sistemas-datos.php new file mode 100644 index 0000000..578538d --- /dev/null +++ b/sistema/www/sistemas/sistemas-datos.php @@ -0,0 +1,77 @@ + +// +----------------------------------------------------------------------+ +// +// $Id$ +// + +//REQUIRE ONCE {{{ + //MECON {{{ + require_once 'MECON/HTML/QuickForm.php'; + require_once 'MECON/HTML/Error.php'; + //}}} + //SAMURAI {{{ + require_once 'SAMURAI/Sistema.php'; + //}}} + require_once 'HTML/Image.php'; + require_once 'HTML/Page.php'; +// }}} + +//CREO LOS OBJETOS NECESARIOS {{{ + if (!@$_GET['id_sistema']) { + $FORM = new MECON_HTML_Error('No hay un perfil seleccionado'); + } + else { + $PAGE = new HTML_Page(array ('doctype' => 'HTML 4.01 Transitional', + 'charset' => 'iso-8859-1', + 'lineend' => 'unix', + 'language' => 'es', + 'cache' => 'false', + 'simple' => 'true')); + $FORM = new MECON_HTML_QuickForm ('sistemas_datos','post','sistemas-datos'); + $SISTEMA = new SAMURAI_Sistema ($DB, $_GET['id_sistema']); + } +// }}} + + +//AGREGO LOS ELEMENTOS AL FORM {{{ + $fecha_inicio = $SISTEMA->getFechaInicio(); + $fecha_fin = $SISTEMA->getFechaFin(); + $fecha_implementacion = $SISTEMA->getFechaImplementacion(); + $fecha_inicio = $fecha_inicio ? $fecha_inicio->format("%d-%m-%Y") : '--'; + $fecha_fin = $fecha_fin ? $fecha_fin->format("%d-%m-%Y") : '--'; + $fecha_implementacion = $fecha_implementacion ? $fecha_implementacion->format("%d-%m-%Y") : '--'; + + $FORM->addElement ('static', 'id_sistema' , 'Id Sistema' , $SISTEMA->getId() ); + $FORM->addElement ('static', 'nombre' , 'Nombre' , $SISTEMA->getNombre() ); + $FORM->addElement ('static', 'descripcion', 'Descripcion' , $SISTEMA->getDescripcion()); + $FORM->addElement ('static', 'fch_inicio' , 'Fecha Inicio' , $fecha_inicio ); + $FORM->addElement ('static', 'fch_fin' , 'Fecha Fin' , $fecha_fin ); + $FORM->addElement ('static', 'fch_imple' , 'Fecha Implementacion', $fecha_implementacion ); + $FORM->addElement ('static', 'contacto' , 'Contacto' , $SISTEMA->getContacto() ); + $FORM->freeze(); +// }}} + +//DIBUJO LA PAGINA {{{ + $PAGE->addBodyContent($FORM); + $imagen = new HTML_Image('/MECON/images/general_cerrar.gif'); + $PAGE->addBodyContent(''.$imagen->toHtml().''); + $PAGE->display(); +// }}} +//FIN +?> diff --git a/sistema/www/sistemas/sistemas-permisos-abm.php b/sistema/www/sistemas/sistemas-permisos-abm.php new file mode 100644 index 0000000..5f1bc54 --- /dev/null +++ b/sistema/www/sistemas/sistemas-permisos-abm.php @@ -0,0 +1,166 @@ + +// +----------------------------------------------------------------------+ +// +// $Id$ +// + +//REQUIRE_ONCE {{{ + //MECON {{{ + require_once 'MECON/HTML/QuickForm.php'; + require_once 'MECON/HTML/Tabla.php'; + require_once 'MECON/HTML/Error.php'; + // }}} + //SAMURAI {{{ + require_once 'SAMURAI/Sistema.php'; + require_once 'SAMURAI/Permiso.php'; + // }}} +// }}} +//OBTENGO EL ID DEL SISTEMA {{{ + //El id de sistema viene por get o por post, no hay otra posibilidad + $idSistema = 0; + if (isset($_GET['idSistema'])) { + $idSistema = $_GET['idSistema']; + } + elseif (isset($_POST['idSistema'])) { + $idSistema = $_POST['idSistema']; + } +// }}} +//CREO LOS OBJETO NECESARIOS {{{ + $SISTEMA = new SAMURAI_Sistema ($DB, $idSistema); + $TABLASIST = new Tabla ('cellpadding=2'); + $SISTEMA->setResponsable($_SESSION['samurai']['login']); + $FORM = new MECON_HTML_QuickForm ('sistemas_permisos_abm','post','sistemas-permisos-abm'); +// }}} +//AGREGO LA INFORMACION DEL SISTEMA {{{ + $row = array ('Datos del sistema'); + $TABLASIST->addRow($row, 'cabecera colspan=3'); + $row = array ('Id', 'Nombre', 'Descripcion'); + $TABLASIST->addRow($row, 'titulo'); + $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion()); + $TABLASIST->addRow($row, 'comun'); +// }}} +//DEFINO CUAL ES LA ACCION Y LA OBSERVACION, CARGO LOS PERMISOS{{{ + if (@$_GET['accion']) { + switch (@$_GET['accion']) { + case 'n': $accion = 'Grabar'; + $obs = ''; + $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB); + $id_permiso = ''; + break; + case 'm': $accion = 'Modificar'; + $id_permiso = $_GET['idPermiso']; + $PERMISOS = new SAMURAI_Permiso($DB, $id_permiso); + $obs = $_GET['observacion']; + $obs_ant = $_GET['observacion']; + break; + case 'e': $accion = 'Eliminar'; + $id_permiso = $_GET['idPermiso']; + $PERMISOS = new SAMURAI_Permiso($DB, $id_permiso); + $obs = $_GET['observacion']; + break; + } + } + else{ + switch (@$_POST['accion']) { + case 'Grabar': $accion = 'Grabar'; + $obs = ''; + $id_permiso = ''; + $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB); + break; + case 'Modificar':$accion = 'Modificar'; + $id_permiso = $_POST['idPermiso']; + $PERMISOS = new SAMURAI_Permiso($DB, $id_permiso); + $obs = $_POST['observacion']; + $obs_ant = $_POST['obs_ant']; + break; + case 'Eliminar':$accion = 'Eliminar'; + $id_permiso = $_POST['idPermiso']; + $PERMISOS = new SAMURAI_Permiso($DB, $id_permiso); + $obs = $_POST['observacion']; + break; + } + } +// }}} +//AGREGO LOS ELEMENTOS DEL FORM {{{ + $FORM->addElement('header', 'cabecera', $accion.' Asociacion'); + $f_sistema =& $FORM->addElement('hidden', 'idSistema', $idSistema); + $f_accion =& $FORM->addElement('hidden', 'accion' , $accion); + if ($accion == 'Grabar') { + $f_permisos =& $FORM->addElement('select', 'permisos' , 'Permisos', $PERMISOS); + $f_id_permiso =& $FORM->addElement('hidden', 'idPermiso', $id_permiso); + } + else { + $f_permisos =& $FORM->addElement('static', 'permisos' , 'Permisos', $PERMISOS->getDescripcion()); + $f_id_permiso =& $FORM->addElement('hidden', 'idPermiso', $id_permiso); + } + if ($accion == 'Modificar') { + $f_obs_ant =& $FORM->addElement('hidden', 'obs_ant' , $obs_ant); + } + $f_observacion =& $FORM->addElement('text' , 'observacion', 'Observacion', array ('value' => $obs)); + $f_aceptar =& HTML_QuickForm::createElement('submit', 'aceptar' , $accion); + $f_cancelar =& HTML_QuickForm::createElement('submit', 'cancelar', 'Cancelar', array ('onClick' => 'javascript:window.location = \'sistemas-permisos?idSistema='.$idSistema.'\';return false;')); + $group = array ($f_aceptar, $f_cancelar); + $f_group =& $FORM->addGroup($group,'botones', '', ', '); + + if ($accion == 'Eliminar') { + $FORM->freeze(); + } +// }}} +//VALIDO EL FORMULARIO {{{ + if ($FORM->validate()) { + $botones = $FORM->getSubmitValue('botones'); + if (@$botones['cancelar']) { + header('Location: sistemas-permisos?idSistema='.$idSistema); + } + + if ($accion == 'Grabar') { + $tmp = $f_permisos->getSelected(); + $f_id_permiso->setValue($tmp['0']); + $res = $SISTEMA->guardarAsociacion($tmp['0'], $f_observacion->getValue()); + } + elseif ($accion == 'Modificar') { + $res = $SISTEMA->modificarAsociacion($f_id_permiso->getValue(), $f_observacion->getValue(), $f_obs_ant->getValue()); + } + elseif ($accion == 'Eliminar') { + $res = $SISTEMA->eliminarAsociacion($f_id_permiso->getValue(), $f_observacion->getValue()); + } + else { + $ERROR = new MECON_HTML_Error('No se reconoce la accion seleccionada'); + } + if (PEAR::isError($res)) { + $ERROR = new MECON_HTML_Error($res->getMessage()); + } + else { + header('Location: sistemas-permisos?idSistema='.$idSistema); + } + } +// }}} +//DIBUJO LA PAGINA {{{ + $MARCO = new Marco ('../../conf/confSecciones.php'); + $MARCO->addBody($TABLASIST); + $MARCO->addBody('
'); + if (@$ERROR) { + $MARCO->addBody($ERROR); + } + $MARCO->addBody($FORM); + $MARCO->display(); +// }}} +//FIN + +?> diff --git a/sistema/www/sistemas/sistemas-permisos.php b/sistema/www/sistemas/sistemas-permisos.php index 16c0710..b3870d9 100644 --- a/sistema/www/sistemas/sistemas-permisos.php +++ b/sistema/www/sistemas/sistemas-permisos.php @@ -22,9 +22,7 @@ //REQUIRE_ONCE {{{ //MECON {{{ - require_once 'MECON/HTML/QuickForm.php'; require_once 'MECON/HTML/Tabla.php'; - require_once 'MECON/HTML/Error.php'; // }}} //SAMURAI {{{ require_once 'SAMURAI/Sistema.php'; @@ -40,9 +38,9 @@ elseif (isset($_POST['idSistema'])) { $idSistema = $_POST['idSistema']; } + $_SESSION['samurai']['id_sistema'] = $idSistema; // }}} //CREO LOS OBJETO NECESARIOS {{{ - $FORM = new MECON_HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos'); $SISTEMA = new SAMURAI_Sistema ($DB, $idSistema); $TABLASIST = new Tabla ('cellpadding=2'); $TABLAPERM = new Tabla ('cellpadding=2'); @@ -56,89 +54,24 @@ $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion()); $TABLASIST->addRow($row, 'comun'); // }}} -//AGREGO LOS ELEMENTOS DEL FORM {{{ - //Obtengo la lista de permisos - $PERMISOS = SAMURAI_Permiso::getArrayPermisos($DB); - //Agrego elementos - $FORM->addElement ('header', 'cabecera' , 'Agregar una asociacion'); - $FORM->addElement ('hidden', 'idSistema' , $idSistema); - $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '1')); - $FORM->addElement ('hidden', 'permant'); //Permiso anterior - $FORM->addElement ('hidden', 'obsant'); //Obseracion anterior - $FORM->addElement ('text' , 'observacion', 'Observacion', array('size' => '30')); - $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); - $FORM->addGroup($group,'botones', '', ', '); -// }}} -//VALIDO EL FORMULARIO {{{ - if ($FORM->validate()) { - $idPermiso =& $FORM->getElement ('permisos' ); - $idPerm_ant =& $FORM->getElement ('permant' ); - $observacion =& $FORM->getElement ('observacion'); - $obs_ant =& $FORM->getElement ('obsant' ); - $group =& $FORM->getElement ('botones' ); - $group =& $group->getElements('aceptar' ); - $aceptar =& $group[0]; - - $tmp = $idPermiso->getSelected(); - $tmp = $tmp['0']; - if ($aceptar->getValue() == 'Grabar') { - $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue()); - } - elseif ($aceptar->getValue() == 'Modificar') { - $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue()); - } - elseif ($aceptar->getValue() == 'Eliminar') { - $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue()); - } - - if ($error) { - $ERROR = new MECON_HTML_Error('La asociacion ya existe, modifique alguno de sus datos'); - } - else { - $idPermiso->setSelected(null); - $observacion->setValue(null); - $aceptar->setValue('Grabar'); - } - } -// }}} -//VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT {{{ - if (isset($_GET['accion'])) { - $group =& $FORM->getElement ('botones'); - $group =& $group->getElements('aceptar'); - $aceptar =& $group[0]; - - if ($_GET['accion'] == 'm') { - $aceptar->setValue('Modificar'); - } - elseif ($_GET['accion'] == 'e') { - $aceptar->setValue('Eliminar'); - $FORM->freeze(); - } - } -// }}} -//CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM {{{ - if (isset($_GET['accion'])) { - $idPermiso =& $FORM->getElement ('permisos' ); - $idPerm_ant =& $FORM->getElement ('permant' ); - $observacion =& $FORM->getElement ('observacion'); - $obs_ant =& $FORM->getElement ('obsant' ); - $idPermiso->setSelected($_GET['idPermiso']); - $idPerm_ant->setValue($_GET['idPermiso']); - $observacion->setValue($_GET['observacion']); - $obs_ant->setValue($_GET['observacion']); - } -// }}} //AGREGO LA INFORMACION DE LAS ASOCIACIONES {{{ - $aHref = ''; + $aHref = ''; $aHrefModif = $aHref.'Modificar'; $aHrefElim = $aHref.'Eliminar'; + + $TABLA2 = new Tabla ('cellspacing=0'); + $tt = ereg_replace ('##ACCION##' , 'n', $aHref); + $tt = ereg_replace ('##PERMISO##', 'p', $tt ); + $tt = ereg_replace ('##OBS##' , 'o', $tt ); + $row = array ($tt.'Asociar nuevo permiso al sistema'); + $TABLA2->addRow($row, 'align=right'); + + $row = array ('Permisos Asociados al Sistema'); + $TABLAPERM->addRow($row, 'cabecera colspan=4'); $row = array ('Nombre', 'Observacion', 'Modif.', 'Elim.'); - $TABLAPERM->addRow($row, 'cabecera'); + $TABLAPERM->addRow($row, 'titulo'); $asocs = $SISTEMA->getAsociaciones(); - - $idPerm_ant =& $FORM->getElement ('permant'); - $obs_ant =& $FORM->getElement ('obsant' ); foreach ($asocs as $key => $asoc) { $estilo = 'comun'; @@ -149,11 +82,6 @@ $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim ); $Modif = ereg_replace('##ACCION##' , 'm' , $Modif ); $Elim = ereg_replace('##ACCION##' , 'e' , $Elim ); - - if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) { - $estilo = 'titulo'; - } - $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim); $TABLAPERM->addRow($row, $estilo); } @@ -171,14 +99,8 @@ //AGREGO LA TABLA DEL SISTEMA $MARCO->addBody($TABLASIST); $MARCO->addBody('
'); - //AGREGO EL ERROR - if (isset($ERROR)) { - $MARCO->addBody($ERROR); - } - //AGREGO LA TABLA DEL FORM - $MARCO->addBody($FORM); - $MARCO->addBody('
'); //AGREGO LA TABLA DE PERMISOS + $MARCO->addBody($TABLA2); $MARCO->addBody($TABLAPERM); $MARCO->display(); // }}} diff --git a/sistema/www/sistemas/sistemas.php b/sistema/www/sistemas/sistemas.php index b033aa9..80882a9 100644 --- a/sistema/www/sistemas/sistemas.php +++ b/sistema/www/sistemas/sistemas.php @@ -22,6 +22,7 @@ require_once 'MECON/HTML/Tabla.php'; require_once 'SAMURAI/Sistema.php'; + $aHrefPopup = ''; $aHref = ''; $aHrefModif = $aHref.'Modificar Sistema'; $aHrefElim = $aHref.'Eliminar Sistema'; @@ -41,38 +42,27 @@ $TABLA2->setColAlign(1,'right'); $TABLA = new Tabla ('cellpadding=2'); - $row = array ('Id','Nombre','Descripcion','Fecha Inicio','Fecha Fin','Fecha Impl.','Contacto','Modif.','Elim.','Perm.'); + $row = array ('Id','Nombre','Modif.','Elim.','Perm.'); $TABLA->addRow($row,'cabecera'); foreach ($sistemas as $sistema) { + $Popup = ereg_replace('##SISTEMA##', $sistema->getId(), $aHrefPopup); $Modif = ereg_replace('##NUEVO##' , $sistema->getId(), $aHrefModif); $Elim = ereg_replace('##NUEVO##' , $sistema->getId(), $aHrefElim); $Modif = ereg_replace('##ACCION##' , 'm' , $Modif); $Elim = ereg_replace('##ACCION##' , 'e' , $Elim); $Perm = ereg_replace('##SISTEMA##', $sistema->getId(), $aHrefPerm); + $Popup = $Popup.$sistema->getNombre().''; - $fecha_inicio = $sistema->getFechaInicio(); - $fecha_fin = $sistema->getFechaFin(); - $fecha_implementacion = $sistema->getFechaImplementacion(); - $row = array ( $sistema->getId(), - $sistema->getNombre(), - $sistema->getDescripcion(), - $fecha_inicio ? $fecha_inicio->format("%d-%m-%Y") : '--', - $fecha_fin ? $fecha_fin->format("%d-%m-%Y") : '--', - $fecha_implementacion ? $fecha_implementacion->format("%d-%m-%Y") : '--', - $sistema->getContacto(), + $Popup, $Modif, $Elim, $Perm, ); - $TABLA->addRow($row); } - - - //Agrego las cosas al cuerpo de la pagina $MARCO = new Marco ('../../conf/confSecciones.php'); diff --git a/sistema/www/usuarios/usuarios-datos.php b/sistema/www/usuarios/usuarios-datos.php index cb170aa..4d9659e 100644 --- a/sistema/www/usuarios/usuarios-datos.php +++ b/sistema/www/usuarios/usuarios-datos.php @@ -66,7 +66,8 @@ //DIBUJO LA PAGINA {{{ $PAGE->addBodyContent($FORM); - $PAGE->addBodyContent(new HTML_Image('/MECON/images/general_cerrar.gif', 'Cerrar', array ('border'=>'0', 'onClick'=>'self.close();return false;'))); + $imagen = new HTML_Image('/MECON/images/general_cerrar.gif'); + $PAGE->addBodyContent(''.$imagen->toHtml().''); $PAGE->display(); // }}} //FIN