]> git.llucax.com Git - mecon/samurai.git/commitdiff
Funcionalidad terminada, salvo consultas. Solo falta ver bien si hay errores
authorMartín Marrese <marrese@gmail.com>
Fri, 18 Jul 2003 17:53:40 +0000 (17:53 +0000)
committerMartín Marrese <marrese@gmail.com>
Fri, 18 Jul 2003 17:53:40 +0000 (17:53 +0000)
17 files changed:
doc/uml/Samurai.xmi
lib/SAMURAI/Perfil.php
lib/SAMURAI/Perfil/consultas.ini
lib/SAMURAI/Permiso.php
lib/SAMURAI/Permiso/consultas.ini
lib/SAMURAI/Sistema.php
lib/SAMURAI/Sistema/consultas.ini
lib/SAMURAI/Usuario.php
sistema/conf/confSecciones.php
sistema/www/perfiles/perfiles-datos.php
sistema/www/perfiles/perfiles.php
sistema/www/sistemas/sistemas-abm.php
sistema/www/sistemas/sistemas-datos.php [new file with mode: 0644]
sistema/www/sistemas/sistemas-permisos-abm.php [new file with mode: 0644]
sistema/www/sistemas/sistemas-permisos.php
sistema/www/sistemas/sistemas.php
sistema/www/usuarios/usuarios-datos.php

index 2e0294c3dfbd07bf47bf83884468ee0f5305faac..957c67f57314e65ac6a65e095df8371843de482d 100644 (file)
@@ -160,7 +160,6 @@ x2c: get set" name="permisos" static="0" scope="201" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="314" type="bool" abstract="0" documentation="Actualiza los datos de la asociacion en la base de datos." name="modificarAsociacion" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="int" abstract="0" documentation="Identificador del permiso" name="idPermiso" static="0" scope="200" />
-     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="int" abstract="0" documentation="Identificador del permiso anterior" name="idPermiso_ant" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="3" value="''" type="string" abstract="0" documentation="Observacion a insertar" name="observacion" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="4" value="''" type="string" abstract="0" documentation="Observacion anterior" name="obs_ant" static="0" scope="200" />
     </UML:Operation>
@@ -279,7 +278,7 @@ x2c:include: DB.php" name="DB" static="0" scope="200" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="469" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="240" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="280" usefillcolor="1" showattributes="1" xmi.id="208" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="396" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="10" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" usefillcolor="1" showattributes="1" xmi.id="210" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="95" showattsigs="601" usesdiagramusefillcolour="0" x="590" linecolour="#ff0000" y="80" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="35" usefillcolor="1" showattributes="1" xmi.id="265" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="558" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="540" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="630" usefillcolor="1" showattributes="1" xmi.id="209" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="473" showattsigs="601" usesdiagramusefillcolour="0" x="10" linecolour="#ff0000" y="540" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="630" usefillcolor="1" showattributes="1" xmi.id="209" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
      <UML:ConceptWidget usesdiagramfillcolour="0" width="409" showattsigs="601" usesdiagramusefillcolour="0" x="590" linecolour="#ff0000" y="130" showopsigs="601" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="238" usefillcolor="1" showattributes="1" xmi.id="207" showoperations="1" showpackage="0" showscope="1" showstereotype="0" font="helvetica,8,-1,0,50,0,0,0,0,0" />
     </widgets>
     <messages/>
index 87bc1cea92afcaca0bd4dc071913ebf91f852554..b5742f84a00b76ce33c0429502335a9b3df01f59 100644 (file)
@@ -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
index 7a3dda63e913e3a0acac14691ff034235826610d..fba4c77d80fcdbae1964919bdce3360cbb39d935 100644 (file)
@@ -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 = ?"
 
index c2049c9801980b16dcf725c70ff6d37154ba5a31..ba385a038557f8bf53a0787825d71a2c158c9551 100644 (file)
@@ -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)) {
index b0f53ec5cf35d10a8ee1038d72279ccacf2d0d83..493ce74923901f21d14c56f57eeb6e7431cb7db4 100644 (file)
@@ -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 = ?"
index 84299b560e4545bb13c4f9c56beafdeb54e0f4f7..42a562f17316b1dce268c2d0d634febd7da9e9a7 100644 (file)
@@ -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
+?>
index 6ebc013c32cb7a9e60536cef33b8a5b608f549cb..012b672fe6c399835f5940f0f7696d8ab8f4e77e 100644 (file)
@@ -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 = ?"
+
index f05e2ed9c738ac2a098c71c9c745256c6aa47735..913ee125617db681e5c5856330d9e972ac99e255 100644 (file)
@@ -434,4 +434,4 @@ class SAMURAI_Usuario {
     // -X2C
 
 } // -X2C Class :SAMURAI_Usuario
-?>
+?>
\ No newline at end of file
index afb45b111e6bb14b8262bf7c5a2a4309e7e8d3b2..15087714361a1113532bbe5dec654abcf7eaea56 100644 (file)
                                             'imagenSelect'  => '',                  
                                             'link'          => 'sistemas/sistemas-permisos',  
                                     ),
+                                    array ( 'nombre'        => 'ABM Asociacion',   
+                                            'imagenComun'   => '',  
+                                            'imagenMouseOn' => '',                  
+                                            'imagenSelect'  => '',                  
+                                            'link'          => 'sistemas/sistemas-permisos-abm',  
+                                    ),
                                 ),
         ),
         array (
index 1ffb1a61d487265edba5c4429889242e0e27ed3c..1ed8d2c420b081d9519cdd4d692b3ffd6078d4f3 100644 (file)
@@ -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('<a href="" onClick=\'self.close();return false;\'>'.$imagen->toHtml().'</a>');
     $PAGE->display();                          
 // }}}
 //FIN
index 1c98531160fd37851045ba3aae288be3edb847d1..b59d7705c49f001f2c635db86317284222c0739f 100644 (file)
@@ -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().'&nbsp;<b>SISTEMA: '.$SISTEMA->getNombre().'</b>');
     $TABLA3->addRow($row,'align=left'); 
-    $row   = array ('<a href="perfiles-nuevo"><img src="/MECON/images/general_nuevo.gif" border="0">Ingresar Nuevo Perfil</a>');
+    $row   = array ('<a href="perfiles-nuevo"><img src="/MECON/images/general_nuevo.gif" border="0">Ingresar&nbsp;Nuevo&nbsp;Perfil</a>');
     $TABLA2->addRow($row,'align=right');    
     $row   = array ('Id','Descripcion','Tipo','Modif.','Elim.');
     $TABLA->addRow($row,'cabecera');
index 1110161660b586802fd02965988f45426f29e4d5..0f306ce6c8985eb50d2f283f068681ba07bdfc8a 100644 (file)
         } 
         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 (file)
index 0000000..578538d
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4 foldmethod=marker:
+// +----------------------------------------------------------------------+
+// | PHP Version 4                                                        |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2003 The PHP Group                                |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.02 of the PHP license,      |
+// | that is bundled with this package in the file LICENSE, and is        |
+// | available at through the world-wide-web at                           |
+// | http://www.php.net/license/2_02.txt.                                 |
+// | If you did not receive a copy of the PHP license and are unable to   |
+// | obtain it through the world-wide-web, please send a note to          |
+// | license@php.net so we can mail you a copy immediately.               |
+// +----------------------------------------------------------------------+
+// | Created: jue jul 17 16:29:54 ART 2003
+// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
+// +----------------------------------------------------------------------+
+//
+// $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('<a href="" onClick=\'self.close();return false;\'>'.$imagen->toHtml().'</a>');
+    $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 (file)
index 0000000..5f1bc54
--- /dev/null
@@ -0,0 +1,166 @@
+<?php
+// vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4 foldmethod=marker:
+// +----------------------------------------------------------------------+
+// | PHP Version 4                                                        |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2003 The PHP Group                                |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 2.02 of the PHP license,      |
+// | that is bundled with this package in the file LICENSE, and is        |
+// | available at through the world-wide-web at                           |
+// | http://www.php.net/license/2_02.txt.                                 |
+// | If you did not receive a copy of the PHP license and are unable to   |
+// | obtain it through the world-wide-web, please send a note to          |
+// | license@php.net so we can mail you a copy immediately.               |
+// +----------------------------------------------------------------------+
+// | Created: mar may 27 15:16:38 ART 2003
+// | Author:  Martin Marrese <mmarre@mecon.gov.ar>
+// +----------------------------------------------------------------------+
+//
+// $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', '', ',&nbsp;');
+
+    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('<BR>');
+    if (@$ERROR) {
+        $MARCO->addBody($ERROR);
+    }
+    $MARCO->addBody($FORM);
+    $MARCO->display();
+// }}}
+//FIN
+
+?>
index 16c0710a0cc51c88ae479c3d9d9109435ebaaf2e..b3870d95747fbe3c31dcbe72f451ae1fbbeca2a6 100644 (file)
@@ -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');
     $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', '', ',&nbsp;');
-// }}}
-//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      = '<a href="sistemas-permisos?accion=##ACCION##&idPermiso=##PERMISO##&observacion=##OBS##&idSistema='.$idSistema.'">';
+    $aHref      = '<a href="sistemas-permisos-abm?accion=##ACCION##&idPermiso=##PERMISO##&observacion=##OBS##&idSistema='.$idSistema.'">';
     $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar"></a>';
     $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar" ></a>';
+
+    $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.'<img src="/MECON/images/general_nuevo.gif" border="0">Asociar nuevo permiso al sistema</a>');
+    $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';
         $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);
     }
     //AGREGO LA TABLA DEL SISTEMA
     $MARCO->addBody($TABLASIST);
     $MARCO->addBody('<BR>');
-    //AGREGO EL ERROR
-    if (isset($ERROR)) {
-        $MARCO->addBody($ERROR);
-    }
-    //AGREGO LA TABLA DEL FORM
-    $MARCO->addBody($FORM);
-    $MARCO->addBody('<BR>');
     //AGREGO LA TABLA DE PERMISOS
+    $MARCO->addBody($TABLA2);
     $MARCO->addBody($TABLAPERM);
     $MARCO->display();
 // }}}
index b033aa9dd94d91f7a02e42561c7901147e8219df..80882a9534e216fc73bc88fcd6ca2fdba21e85e9 100644 (file)
@@ -22,6 +22,7 @@
     require_once 'MECON/HTML/Tabla.php';
     require_once 'SAMURAI/Sistema.php';
 
+    $aHrefPopup = '<a href="" onClick="window.open(\'sistemas-datos?id_sistema=##SISTEMA##\',\'sistemasdatos\',\'height=400,width=400,scrollbars=yes\');return false;">';
     $aHref      = '<a href="sistemas-abm?accion=##ACCION##&idSistema=##NUEVO##">';
     $aHrefModif = $aHref.'<img src="/MECON/images/general_modificar.gif" border="0" alt="Modificar Sistema"></a>';
     $aHrefElim  = $aHref.'<img src="/MECON/images/general_eliminar.gif"  border="0" alt="Eliminar Sistema" ></a>';
     $TABLA2->setColAlign(1,'right');
     
     $TABLA = new Tabla ('cellpadding=2');
-    $row = array ('Id','Nombre','Descripcion','Fecha&nbsp;Inicio','Fecha&nbsp;Fin','Fecha&nbsp;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().'</a>';
         
-        $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');
index cb170aad4ec9f1332ff9743bd6d9bf53294ca2eb..4d9659e016574b4890b455b3b1baf700d4f04d70 100644 (file)
@@ -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('<a href="" onClick=\'self.close();return false;\'>'.$imagen->toHtml().'</a>');
     $PAGE->display();                          
 // }}}
 //FIN