opengnsys/admin/WebConsole/gestores/gestor_grupos.php

274 lines
10 KiB
PHP

<?
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: Año 2009-2010
// Fecha Última modificación: Agosto-2010
// Nombre del fichero: gestor_grupos.php
// Descripción :
// Gestiona el mantenimiento de la tabla de grupos
// *************************************************************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../clases/AdoPhp.php");
include_once("../clases/XmlPhp.php");
include_once("../clases/ArbolVistaXML.php");
include_once("../includes/CreaComando.php");
include_once("../includes/constantes.php");
include_once("./relaciones/aulas_eliminacion.php");
include_once("./relaciones/ordenadores_eliminacion.php");
include_once("./relaciones/gruposordenadores_eliminacion.php");
include_once("./relaciones/procedimientos_eliminacion.php");
include_once("./relaciones/tareas_eliminacion.php");
include_once("./relaciones/trabajos_eliminacion.php");
include_once("./relaciones/imagenes_eliminacion.php");
include_once("./relaciones/hardwares_eliminacion.php");
include_once("./relaciones/perfileshard_eliminacion.php");
include_once("./relaciones/softwares_eliminacion.php");
include_once("./relaciones/perfilessoft_eliminacion.php");
include_once("./relaciones/incrementales_eliminacion.php");
include_once("./relaciones/repositorios_eliminacion.php");
include_once("./relaciones/menus_eliminacion.php");
include_once("./relaciones/reservas_eliminacion.php");
include_once("./relaciones/entidades_eliminacion.php");
include_once("./relaciones/centros_eliminacion.php");
include_once("../includes/opciones.php");
//________________________________________________________________________________________________________
$opcion=0; // Inicializa parametros
$nombregrupo="";
$grupoid=0;
$idgrupo=0;
$tipo=0;
$literaltipo="";
$iduniversidad=0;
$comentarios="";
if (isset($_POST["opcion"])) $opcion=$_POST["opcion"]; // Recoge parametros
if (isset($_POST["nombregrupo"])) $nombregrupo=$_POST["nombregrupo"];
if (isset($_POST["grupoid"])) $grupoid=$_POST["grupoid"];
if (isset($_POST["idgrupo"])) $idgrupo=$_POST["idgrupo"];
if (isset($_POST["tipo"])) $tipo=$_POST["tipo"];
if (isset($_POST["literaltipo"])) $literaltipo=$_POST["literaltipo"];
if (isset($_POST["iduniversidad"])) $iduniversidad=$_POST["iduniversidad"];
if (isset($_POST["comentarios"])) $comentarios=$_POST["comentarios"];
$tablanodo=""; // Arbol para nodos insertados
$cmd=CreaComando($cadenaconexion); // Crea objeto comando
$resul=false;
if ($cmd){
$resul=Gestiona();
$cmd->Conexion->Cerrar();
}
// *************************************************************************************************************************************************
?>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<BODY>
<SCRIPT language="javascript" src="../jscripts/propiedades_grupos.js"></SCRIPT>
<?
$literal="";
switch($opcion){
case $op_alta :
$literal="resultado_insertar_grupos";
break;
case $op_modificacion:
$literal="resultado_modificar_grupos";
break;
case $op_eliminacion :
$literal="resultado_eliminar_grupos";
break;
default:
break;
}
echo '<p><span id="arbol_nodo">'.$tablanodo.'</span></p>';
if ($resul){
echo '<SCRIPT language="javascript">'.chr(13);
echo 'var o=document.getElementById("arbol_nodo");'.chr(13);
if ($opcion==$op_alta )
echo $literal."(1,'".$cmd->DescripUltimoError()." ',".$idgrupo.",o.innerHTML);";
else
echo $literal."(1,'".$cmd->DescripUltimoError()." ','".$nombregrupo."');";
echo '</SCRIPT>';
}
else{
echo '<SCRIPT language="javascript">';
echo $literal."(0,'".$cmd->DescripUltimoError()."',".$idgrupo.")";
echo '</SCRIPT>';
}
?>
</BODY>
</HTML>
<?
/**************************************************************************************************************************************************
Inserta, modifica o elimina datos en la tabla grupos
________________________________________________________________________________________________________*/
function Gestiona(){
global $cmd;
global $opcion;
global $idcentro;
global $nombregrupo;
global $grupoid;
global $idgrupo;
global $tipo;
global $literaltipo;
global $iduniversidad;
global $comentarios;
global $op_alta;
global $op_modificacion;
global $op_eliminacion;
global $tablanodo;
if($iduniversidad) $idcentro=0; // Administración
$cmd->CreaParametro("@nombregrupo",$nombregrupo,0);
$cmd->CreaParametro("@grupoid",$grupoid,1);
$cmd->CreaParametro("@idcentro",$idcentro,1);
$cmd->CreaParametro("@idgrupo",$idgrupo,1);
$cmd->CreaParametro("@tipo",$tipo,1);
$cmd->CreaParametro("@iduniversidad",$iduniversidad,1);
$cmd->CreaParametro("@comentarios",$comentarios,0);
switch($opcion){
case $op_alta :
$cmd->texto="INSERT INTO grupos(nombregrupo,idcentro,grupoid,tipo,iduniversidad,comentarios) VALUES (@nombregrupo,@idcentro,@grupoid,@tipo,@iduniversidad,@comentarios)";
$resul=$cmd->Ejecutar();
if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta
$idgrupo=$cmd->Autonumerico();
$arbolXML=SubarbolXML_grupos($idgrupo,$nombregrupo,$literaltipo);
$baseurlimg="../images/signos";
$clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol
$arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault);
$tablanodo=$arbol->CreaNodo(0);
}
break;
case $op_modificacion:
$cmd->texto="UPDATE grupos SET nombregrupo=@nombregrupo,comentarios=@comentarios WHERE idgrupo=@idgrupo";
$resul=$cmd->Ejecutar();
break;
case $op_eliminacion :
$resul=EliminaGrupos($cmd,$idgrupo,"idgrupo",$literaltipo);// Eliminación en cascada
break;
default:
break;
}
return($resul);
}
/*________________________________________________________________________________________________________
Crea un arbol XML para el nuevo nodo insertado
________________________________________________________________________________________________________*/
function SubarbolXML_grupos($idgrupo,$nombregrupo,$literaltipo){
$cadenaXML='<GRUPOS';
// Atributos
$cadenaXML.=' clickcontextualnodo="menu_contextual(this,' ."'flo_".$literaltipo."'" .')"';
$cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
$cadenaXML.=' infonodo="'.$nombregrupo.'"';
$cadenaXML.=' nodoid='.$literaltipo.'-'.$idgrupo;
$cadenaXML.='>';
$cadenaXML.='</GRUPOS>';
return($cadenaXML);
}
/*________________________________________________________________________________________________________
Elimina en cascada grupos
Parametros:
- cmd: Un comando ya operativo (con conexión abierta)
- idgrupo: El identificador del grupo
- literaltipo: El literal del grupo
- literaltipo: El literal del grupo
- swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
________________________________________________________________________________________________________*/
function EliminaGrupos($cmd,$identificador,$nombreid,$literaltipo,$swid=1){
if (empty($identificador)) return(true);
global $LITAMBITO_GRUPOSAULAS ;
global $LITAMBITO_GRUPOSIMAGENES ;
global $LITAMBITO_GRUPOSPROCEDIMIENTOS ;
global $LITAMBITO_GRUPOSTAREAS ;
global $LITAMBITO_GRUPOSTRABAJOS ;
global $LITAMBITO_GRUPOSCOMPONENTESHARD ;
global $LITAMBITO_GRUPOSCOMPONENTESSOFT ;
global $LITAMBITO_GRUPOSPERFILESHARD ;
global $LITAMBITO_GRUPOSPERFILESSOFT ;
global $LITAMBITO_GRUPOSSOFTINCREMENTAL ;
global $LITAMBITO_GRUPOSMENUS ;
global $LITAMBITO_GRUPOSREPOSITORIOS ;
global $LITAMBITO_GRUPOSRESERVAS ;
global $LITAMBITO_GRUPOSENTIDADES ;
if($swid==0)
$cmd->texto="SELECT idgrupo FROM grupos WHERE ".$nombreid."='".$identificador."'";
else
$cmd->texto='SELECT idgrupo FROM grupos WHERE '.$nombreid.'='.$identificador;
$rs=new Recordset;
$rs->Comando=&$cmd;
if (!$rs->Abrir()) return(false); // Error al abrir recordset
if ($rs->numeroderegistros==0) return(true);
$rs->Primero();
while (!$rs->EOF){
$resul=EliminaGrupos($cmd,$rs->campos["idgrupo"],"grupoid",$literaltipo);
if ($resul){
switch($literaltipo){
case $LITAMBITO_GRUPOSAULAS :
$resul=EliminaAulas($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSPROCEDIMIENTOS :
$resul=EliminaProcedimientos($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSTAREAS :
$resul=EliminaTareas($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSTRABAJOS :
$resul=EliminaTrabajos($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSIMAGENES :
$resul=EliminaImagenes($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSCOMPONENTESHARD :
$resul=EliminaHardwares($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSCOMPONENTESSOFT :
$resul=EliminaSoftwares($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSPERFILESHARD :
$resul=EliminaPerfileshard($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSPERFILESSOFT :
$resul=EliminaPerfilessoft($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSSOFTINCREMENTAL :
$resul=EliminaSoftincremental($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSREPOSITORIOS :
$resul=Eliminarepositorios($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSMENUS :
$resul=EliminaMenus($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSRESERVAS :
$resul=EliminaReservas($cmd,$rs->campos["idgrupo"],"grupoid");
break;
case $LITAMBITO_GRUPOSENTIDADES :
$resul=EliminaEntidad($cmd,$rs->campos["idgrupo"],"grupoid");
break;
default:
$resul=false;
}
}
if (!$resul){
$rs->Cerrar();
return(false);
}
$rs->Siguiente();
}
if($swid==0)
$cmd->texto="DELETE FROM grupos WHERE ".$nombreid."='".$identificador."'";
else
$cmd->texto='DELETE FROM grupos WHERE '.$nombreid.'='.$identificador;
$resul=$cmd->Ejecutar();
return($resul);
}
?>