diff options
author | alonso <alonso@us.es> | 2009-11-04 12:41:19 +0000 |
---|---|---|
committer | alonso <alonso@us.es> | 2009-11-04 12:41:19 +0000 |
commit | b0dc2e4f68d239ce72f138c47d5762973dfa851e (patch) | |
tree | 8b22fe4101e8e527f474291ed19f4446f02a2343 /admin/WebConsole/principal/colasreservas.php | |
parent | a7fa603b2d3bb05c60c61265f2bf4b561bb00ba3 (diff) |
git-svn-id: https://opengnsys.es/svn/trunk@489 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/principal/colasreservas.php')
-rw-r--r-- | admin/WebConsole/principal/colasreservas.php | 969 |
1 files changed, 969 insertions, 0 deletions
diff --git a/admin/WebConsole/principal/colasreservas.php b/admin/WebConsole/principal/colasreservas.php new file mode 100644 index 00000000..2dd2096b --- /dev/null +++ b/admin/WebConsole/principal/colasreservas.php @@ -0,0 +1,969 @@ +<? +// ************************************************************************************************************************************************* +// Aplicación WEB: ogAdmWebCon +// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla +// Fecha Creación: Año 2003-2004 +// Fecha Última modificación: Noviembre-2005 +// Nombre del fichero: colasreservas.php +// Descripción : +// Visualiza las reservas pendientes, confirmadas, denegadas y fecha y hora de la reserva +// ************************************************************************************************************************************************* +include_once("../includes/ctrlacc.php"); +include_once("../clases/AdoPhp.php"); +include_once("../includes/constantes.php"); +include_once("../includes/CreaComando.php"); +include_once("../includes/HTMLCTEMULSELECT.php"); +include_once("../clases/ArbolVistaXML.php"); +include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php"); +include_once("../idiomas/php/".$idioma."/colasreservas_".$idioma.".php"); +//________________________________________________________________________________________________________ +$ambito=""; +$idambito=0; +$nombreambito=""; +$fechainicio=""; +$fechafin=""; +$estadoreserva=""; +$situacion=""; + +if (isset($_GET["ambito"])) $ambito=$_GET["ambito"]; +if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; +if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"]; +if (isset($_GET["tipocola"])) $tipocola=$_GET["tipocola"]; + +$cmd=CreaComando($cadenaconexion); +if (!$cmd) + Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D. +//________________________________________________________________________________________________________ +// Criterios por defecto +if($ambito!="" && $idambito!="" && $nombreambito!="" && $tipocola!=""){ + $wfechainicio=mktime(0, 0, 0, date("m") , date("d"), date("Y")); // Reservas desde un mes anterior + $wfechafin=mktime(0, 0, 0, date("m")+6 , date("d"), date("Y")); + $fechainicio=date("d/m/Y",$wfechainicio); + $fechafin=date("d/m/Y ",$wfechafin); + // Tipos de reservas + switch($tipocola){ + case 0: + $westadoreserva[0]=$RESERVA_CONFIRMADA; + $westadoreserva[1]=$RESERVA_PENDIENTE; + $westadoreserva[2]=$RESERVA_DENEGADA; + + $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";"; + $estadoreserva.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";"; + $estadoreserva.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";"; + break; + case $RESERVA_CONFIRMADA: + $westadoreserva[0]=$RESERVA_CONFIRMADA; + $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";"; + break; + case $RESERVA_PENDIENTE: + $westadoreserva[0]=$RESERVA_PENDIENTE; + $estadoreserva=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";"; + break; + case $RESERVA_DENEGADA: + $westadoreserva[0]=$RESERVA_DENEGADA; + $estadoreserva=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";"; + break; + } + // Estados default + $wsituacion[0]=$RESERVA_PARADA; + $wsituacion[1]=$RESERVA_ACTIVA; + $situacion=$RESERVA_PARADA."=".$LITRESERVA_PARADA.";"; + $situacion.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA.";"; +} +//________________________________________________________________________________________________________ +// Recupera parametros del formulario +if (isset($_POST["ambito"])) $ambito=$_POST["ambito"]; +if (isset($_POST["idambito"])) $idambito=$_POST["idambito"]; +if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"]; +if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"]; +if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"]; + +if (isset($_POST["estadoreserva"])) { + $estadoreserva=$_POST["estadoreserva"]; + $auxP=split(";",$estadoreserva); + $cont=0; + for ($i=0;$i<sizeof($auxP)-1;$i++){ + $dualparam=split("=",$auxP[$i]); + $westadoreserva[$cont++]=$dualparam[0]; + } +} +if (isset($_POST["situacion"])){ + $situacion=$_POST["situacion"]; + $auxP=split(";",$situacion); + $cont=0; + for ($i=0;$i<sizeof($auxP)-1;$i++){ + $dualparam=split("=",$auxP[$i]); + $wsituacion[$cont++]=$dualparam[0]; + } +} +//________________________________________________________________________________________________________ +?> +<HTML> +<TITLE>Administración web de aulas</TITLE> +<HEAD> + <LINK rel="stylesheet" type="text/css" href="../estilos.css"> + <SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT> + <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT> + <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT> + <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT> + <SCRIPT language="javascript" src="../jscripts/colasreservas.js"></SCRIPT> + <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/colasreservas_'.$idioma.'.js"></SCRIPT>'?> + <? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?> + +</HEAD> +<BODY> +<? +switch($ambito){ + case $AMBITO_CENTROS : + $urlimg='../images/iconos/centros.gif'; + $textambito=$TbMsg[12]; + break; + case $AMBITO_GRUPOSAULAS : + $urlimg='../images/iconos/carpeta.gif'; + $textambito=$TbMsg[13]; + break; + case $AMBITO_AULAS : + $urlimg='../images/iconos/aula.gif'; + $textambito=$TbMsg[14]; + break; +} +echo '<p align=center class=cabeceras><img src="../images/iconos/reservas.gif"> '.$TbMsg[0].' '; +echo '<FORM name="fdatos" action="colasreservas.php" method="post">'.chr(13); +// Campos ocultos +echo '<INPUT type=hidden name=ambito value="'.$ambito.'">'; +echo '<INPUT type=hidden name=idambito value="'.$idambito.'">'; +echo '<INPUT type=hidden name=nombreambito value="'.$nombreambito.'">'; +echo '<INPUT type=hidden name=estadoreserva value="'.$estadoreserva.'">'; +echo '<INPUT type=hidden name=situacion value="'.$situacion.'">'; +echo CriteriosBusquedas(); // Opciones de búsqueda +echo '</FORM>'.chr(13); + +echo '<DIV align=center >'; +echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>, '.$nombreambito.'</span> <IMG src="'.$urlimg.'"></span></DIV></p>'; +//________________________________________________________________________________________________________ +// Localiza las aulas pertenecientes al ámbito + +$cadenaaulas=""; +$cont_aulas=0; + +$sw=false; +switch($ambito){ + case $AMBITO_CENTROS : + $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito; + RecorreCentro($cmd); + break; + case $AMBITO_GRUPOSAULAS : + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS; + RecorreGruposAulas($cmd); + break; + case $AMBITO_AULAS : + $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idaula=".$idambito; + RecorreAulas($cmd); + break; +} +//________________________________________________________________________________________________________ +// Proceso de selección de reservas +$ClausulaWhere=""; +//________________________________________________________________________________________________________ +// Cuestion identificador del Centro que ha ejecutado la acción +$WhereCentroAccion=""; +$WhereCentroAccion='reservas.idcentro='.$idcentro; +$ClausulaWhere.=" AND (".$WhereCentroAccion.")"; +//________________________________________________________________________________________________________ +// Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas ) +$WhereEstadosReservas=""; +for($i=0;$i<sizeof($westadoreserva);$i++){ + if (isset($westadoreserva[$i])) + $WhereEstadosReservas.=" reservas.estado=".$westadoreserva[$i]." OR "; +} +if($WhereEstadosReservas!=""){ + $WhereEstadosReservas=substr($WhereEstadosReservas,0,strlen($WhereEstadosReservas)-3); + $ClausulaWhere.=" AND (".$WhereEstadosReservas.")"; +} +//________________________________________________________________________________________________________ +// Cuestion situación de la programación +$WhereSituaciones=""; +for($i=0;$i<sizeof($wsituacion);$i++){ + if (isset($wsituacion[$i])) + $WhereSituaciones.=" programaciones.suspendida=".$wsituacion[$i]." OR "; +} +if($WhereSituaciones!=""){ + $WhereSituaciones=substr($WhereSituaciones,0,strlen($WhereSituaciones)-3); + $ClausulaWhere.=" AND (".$WhereSituaciones.")"; +} +//________________________________________________________________________________________________________ +$cadenaaulas=substr($cadenaaulas,0,strlen($cadenaaulas)-1); // Quita la coma +$ClausulaWhere.=" AND idaula in(".$cadenaaulas.")"; +//________________________________________________________________________________________________________ +// Cuestion de fechas +if(empty($fechainicio)) $fechainicio=date("d/m/Y",mktime(0, 0, 0, date("m") , date("d"), date("Y"))); +if(empty($fechafin)) $fechafin=date("d/m/Y",mktime(0, 0, 0, date("m")+1 , date("d"), date("Y"))); + +list($dia_i,$mes_i,$anno_i)=split("/",$fechainicio); +list($dia_f,$mes_f,$anno_f)=split("/",$fechafin); + +// Elimina registros en tabla temporal +$cmd->texto="DELETE FROM reservastemporal where idcentro=".$idcentro." AND usuario='".$usuario."'"; // Elimina todos los registros de la tabla temporal +$resul=$cmd->Ejecutar(); + +//Recorre de fecha inicio a fecha fin +$calendario=new Calendario("tabla_reservas"); +$anno_c=$anno_i; +$mes_c=$mes_i; + +// Calcula el rango de meses dependiendo del intervalo de fechas solicitado +while($anno_c<=$anno_f){ + if($anno_c==$anno_i){ + $mes_c=$mes_i; + if($anno_f>$anno_c) + $mes_t=12; + else + $mes_t=$mes_f; + } + else{ + if($anno_c>$anno_i){ + if($anno_c==$anno_f){ + $mes_c=1; + $mes_t=$mes_f; + } + else{ + $mes_c=1; + $mes_t=12; + } + } + } + $HEXanno=$calendario->numero_annos[$anno_c-2003][1]; // Primera referencia: 2004 + $HEXmeses=0; + $mes_desde=$mes_c; + $mes_hasta=$mes_t; + while($mes_c<=$mes_t){ + $HEXmeses=$HEXmeses | $calendario->nombre_mes[$mes_c][1]; + $mes_c++; + } + // Cadena SQL para seleccionar reservas + $cmd->texto="SELECT reservas.idreserva,reservas.descripcion,programaciones.idprogramacion, programaciones.nombrebloque,programaciones.annos, programaciones.meses, programaciones.diario, programaciones.dias, programaciones.semanas, programaciones.horasini, programaciones.ampmini, programaciones.minutosini, programaciones.horasfin, programaciones.ampmfin, programaciones.minutosfin FROM reservas"; + $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador"; + $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ; + $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)"; + $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ; + CreaReservasTemporal($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f); + $anno_c++; +} +$cadenaXML=""; +$cont_a=0; +$cont_m=0; +$cont_d=0; +$HTMLannos=""; +$HTMLmeses=""; +$HTMLdias=""; +$HTMLhoras=""; + +$sw=true; +switch($ambito){ + case $AMBITO_CENTROS : + $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito; + RecorreCentro($cmd); + break; + case $AMBITO_GRUPOSAULAS : + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS; + RecorreGruposAulas($cmd); + break; + case $AMBITO_AULAS : + $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idaula=".$idambito; + RecorreAulas($cmd); + break; +} + +// Creación del árbol +$baseurlimg="../images/tsignos"; // Url de las imágenes de signo +$clasedefault="texto_arbol"; +$titulotabla=$TbMsg[0]; +$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,2,20,270,2,$titulotabla); +$salidaHTML=$arbol->CreaArbolVistaXml(); // Muestra árbol +echo "<BR>"; +echo "<DIV align=center width=100%>"; +echo " <TABLE align=center width=100%>"; +echo " <TR><TD>"; +echo urldecode($salidaHTML); +echo " </TD></TR><TABLE></DIV>"; + +//________________________________________________________________________________________________________ +include_once("../includes/iframecomun.php"); +//________________________________________________________________________________________________________ +?> +</BODY> +</HTML> +<? +// ************************************************************************************************************************************************* +function CreaReservasTemporal($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f){ + global $usuario; + global $idcentro; + + $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i); + $fechamaxima=mktime(0, 0, 0, $mes_f, $dia_f, $anno_f); + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + // Recorre reservas + while (!$rs->EOF){ + $cadenafechas=FechasReservas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]); + $fechas_reservas=split(";",$cadenafechas); + for ($i=0;$i<sizeof($fechas_reservas)-1;$i++){ + list($auxdia,$auxmes,$auxanno)=split("/",$fechas_reservas[$i]); + $auxfecha=mktime(0, 0, 0, $auxmes,$auxdia, $auxanno); + + if($auxfecha>=$fechaminima && $auxfecha<=$fechamaxima){ + $cmd->texto="INSERT INTO reservastemporal(idcentro,usuario,idprogramacion,idreserva,fecha) VALUES (".$idcentro.",'".$usuario."',".$rs->campos["idprogramacion"].",".$rs->campos["idreserva"].",'".$fechas_reservas[$i]."')"; + $resul=$cmd->Ejecutar(); + } + } + $rs->Siguiente(); + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +// Función : FechasReservas +// Descripción : +// Devuelve una cadena de fechas separada por comas que son precisamente las fechas que forman parte de una reserva concreta +// Parametros: +// - anno_c: Un año determinado +// - mes_desde: El mes desde que se considera la reserva +// - mes_hasta: El mes hasta que se considera la reserva +// - meses: Campo con información hexadecimal de los meses de la reserva ( la información contenida en el campo de la tabla con este nombre +// - diario: Idem para los dias de un mes +// - dias: idem para los nombres de los días +// - semanas: Idem para las semanas +//________________________________________________________________________________________________________ +function FechasReservas($anno_c,$mes_desde,$mes_hasta,$meses,$diario,$dias,$semanas){ + global $calendario; + + $cadenafechas=""; + $mascara=0x0001; + $cadenameses=""; + $meses=$meses>>($mes_desde-1); + for($i=$mes_desde;$i<=$mes_hasta;$i++){ + if($meses&$mascara>0){ + $cadenameses.=$i.";"; + // Dias de la semAna + if($dias>0){ + $auxdias=$dias; + for($j=1;$j<=7;$j++){ + if($auxdias&$mascara>0){ + $cadenadias=$calendario->DiasPorMes($i,$anno_c,$j); + $tbdias=split(";",$cadenadias); + for ($k=0;$k<sizeof($tbdias)-1;$k++) + $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";"; + } + $auxdias=$auxdias>>1; + } + } + // Semanas + if($semanas>0){ + $auxsemanas=$semanas; + for($j=1;$j<=6;$j++){ + if($auxsemanas&$mascara>0){ + if($j==6){ + $ulse=$calendario->UltimaSemana($i,$anno_c); + $cadenadias=$calendario->DiasPorSemanas($i,$anno_c,$ulse); + } + else + $cadenadias=$calendario->DiasPorSemanas($i,$anno_c,$j); + $tbdias=split(";",$cadenadias); + for ($k=0;$k<sizeof($tbdias)-1;$k++) + $cadenafechas.=$tbdias[$k]."/".$i."/".$anno_c.";"; + } + $auxsemanas=$auxsemanas>>1; + } + } + } + $meses=$meses>>1; + } + $cadenadiario=""; + for($i=1;$i<32;$i++){ + if($diario&$mascara>0) $cadenadiario.=$i.";"; + $diario=$diario>>1; + } + $tbmeses=split(";",$cadenameses); + $tbdiario=split(";",$cadenadiario); + for ($i=0;$i<sizeof($tbmeses)-1;$i++){ + for ($j=0;$j<sizeof($tbdiario)-1;$j++){ + $cadenafechas.=$tbdiario[$j]."/".$tbmeses[$i]."/".$anno_c.";"; + } + } + return($cadenafechas); +} +/*________________________________________________________________________________________________________ + Recorrea los distintos ámbitos +________________________________________________________________________________________________________*/ +function RecorreCentro($cmd){ + global $AMBITO_CENTROS; + global $LITAMBITO_CENTROS; + global $AMBITO_GRUPOSAULAS; + global $cadenaXML; + global $sw; + global $idambito,$nombreambito; + + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + if(!$rs->EOF){ + if($sw) { + $cadenaXML.='<CENTRO'; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/centros.gif"'; + $cadenaXML.=' nodoid='.$LITAMBITO_CENTROS."-".$idambito; + $cadenaXML.=' infonodo='.$nombreambito; + $cadenaXML.='>'; + } + $idcentro=$rs->campos["idcentro"]; + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS; + RecorreGruposAulas($cmd); + $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0"; + RecorreAulas($cmd); + if($sw) $cadenaXML.='</CENTRO>'; + + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +function RecorreGruposAulas($cmd){ + global $AMBITO_GRUPOSAULAS; + global $LITAMBITO_GRUPOSAULAS; + global $cadenaXML; + global $sw; + + $rs=new Recordset; + $cmd->texto.="ORDER by nombregrupo"; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + + while (!$rs->EOF){ + if($sw) { + $cadenaXML.='<GRUPOSAULAS'; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"'; + $cadenaXML.=' nodoid='.$LITAMBITO_GRUPOSAULAS."-".$rs->campos["idgrupo"]; + $cadenaXML.=' infonodo="'.$rs->campos["nombregrupo"].'"'; + $cadenaXML.='>'; + } + $idgrupo=$rs->campos["idgrupo"]; + $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSAULAS; + RecorreGruposAulas($cmd); + $cmd->texto="SELECT idaula,nombreaula,horaresevfin FROM aulas WHERE grupoid=".$idgrupo; + RecorreAulas($cmd); + $rs->Siguiente(); + if($sw) $cadenaXML.='</GRUPOSAULAS>'; + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +function RecorreAulas($cmd){ + global $AMBITO_AULAS; + global $LITAMBITO_AULAS; + global $cadenaaulas; + global $cont_aulas; + global $sw; + global $cadenaXML; + + $rs=new Recordset; + $cmd->texto.="ORDER by nombreaula"; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + + while (!$rs->EOF){ + if($sw && $rs->campos["horaresevfin"]>0) { + $cadenaXML.='<AULA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/aula.gif"'; + $cadenaXML.=' infonodo="'.$rs->campos["nombreaula"].'"'; + $cadenaXML.=' nodoid='.$LITAMBITO_AULAS.'-'.$rs->campos["idaula"]; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#B5DAAD;"; + $cadenaXML.='>'; + } + $idaula=$rs->campos["idaula"]; + $cadenaaulas.=$idaula.","; + $cont_aulas++; + if($sw && $rs->campos["horaresevfin"]>0) ListaReservas($cmd,$idaula,$rs->campos["nombreaula"]); + $rs->Siguiente(); + if($sw && $rs->campos["horaresevfin"]>0) $cadenaXML.='</AULA>'; + } + $rs->Cerrar(); +} +//________________________________________________________________________________________________________ +function ListaReservas($cmd,$idaula,$nombreaula){ + global $idcentro; + global $usuario; + global $TbMsg; + global $calendario; + global $RESERVA_CONFIRMADA; + global $RESERVA_PENDIENTE; + global $RESERVA_DENEGADA; + global $EJECUCION_RESERVA; + + global $AMBITO_CENTROS; + global $AMBITO_GRUPOSAULAS; + global $AMBITO_AULAS; + + global $cadenaXML; + + global $cont_a; + global $cont_m; + global $cont_d; + global $HTMLannos; + global $HTMLmeses; + global $HTMLdias; + global $HTMLhoras; + + $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif'; + $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif'; + $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif'; + + $tbampm[0]="a.m."; + $tbampm[1]="p.m."; + + $cmd->texto="SELECT DISTINCT aulas.horaresevini,aulas.horaresevfin,reservastemporal.idreserva, reservastemporal.fecha,programaciones.horasini,programaciones.ampmini,programaciones.minutosini,trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,reservas.idreserva,reservas.descripcion,DAY(reservastemporal.fecha) as dia,MONTH(reservastemporal.fecha) as mes,YEAR(reservastemporal.fecha) as anno,reservas.descripcion,aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen,"; + $cmd->texto.=" programaciones.horasini,programaciones.minutosini,programaciones.horasfin,programaciones.minutosfin,programaciones.ampmini,programaciones.ampmfin"; + $cmd->texto.=" FROM reservas"; + $cmd->texto.=" INNER JOIN reservastemporal ON reservas.idreserva = reservastemporal.idreserva"; + $cmd->texto.=" INNER JOIN aulas ON reservas.idaula = aulas.idaula"; + $cmd->texto.=" LEFT OUTER JOIN imagenes ON reservas.idimagen = imagenes.idimagen"; + $cmd->texto.=" LEFT OUTER JOIN tareas ON reservas.idtarea = tareas.idtarea"; + $cmd->texto.=" LEFT OUTER JOIN trabajos ON reservas.idtrabajo = trabajos.idtrabajo"; + $cmd->texto.=" INNER JOIN programaciones ON reservastemporal.idprogramacion = programaciones.idprogramacion"; + $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") "; + $cmd->texto.=" AND (aulas.idaula = ".$idaula.") "; + $cmd->texto.=" AND (reservastemporal.idcentro='".$idcentro."') "; + $cmd->texto.=" AND (reservastemporal.usuario='".$usuario."') "; + $cmd->texto.=" ORDER by reservastemporal.fecha,programaciones.ampmini,programaciones.horasini,programaciones.minutosini"; + $rs=new Recordset; + $rs->Comando=&$cmd; + if (!$rs->Abrir()) return; // Error al abrir recordset + $rs->Primero(); + + $calendario->aula=$idaula; + $calendario->horaresevini=$rs->campos["horaresevini"]; + $calendario->horaresevfin=$rs->campos["horaresevfin"]; + $swa=false; + $swm=false; + $swd=false; + $ganno=0; + $gmes=0; + $gdia=0; + + $cont_a=0; + $HTMLannos=""; + + // Recorre reservas temporales + while (!$rs->EOF){ + // Año + if($ganno<>$rs->campos["anno"]){ + if($swd){ + GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes); + $cadenaXML.='</DIA> '; + } + if($swm){ + GuardaMesAnno($ganno,$gmes,$CntMes); + $cadenaXML.='</MES> '; + } + if($swa){ + GuardaAnno($ganno); + $cadenaXML.='</ANNO> '; + } + $ganno=$rs->campos["anno"]; + $cadenaXML.='<ANNO '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E '.$TbMsg[15].': %3C/b%3E'.$ganno.'"'; + $cadenaXML.=' nodoid=nodoanno-'.$ganno; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#B5B7B9;"; + $cadenaXML.='>'; + $gmes=0; + $gdia=0; + $swa=true; + $swm=false; + $swd=false; + PintaAnno($ganno); + $HTMLmeses=""; + $cont_m=0; + } + + // Mes + if($gmes<>$rs->campos["mes"]){ + if($swd){ + GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes); + $cadenaXML.='</DIA> '; + } + if($swm){ + GuardaMesAnno($ganno,$gmes,$CntMes); + $cadenaXML.='</MES> '; + } + $gmes=$rs->campos["mes"]; + $nombremes=$calendario->nombre_mes[$rs->campos["mes"]][0]; + + $cadenaXML.='<MES '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"'; + $cadenaXML.=' infonodo="%3CA name=anodomes-'.$idaula."-".$gmes.'/'.$ganno.'%3E%3Cb%3E '.$TbMsg[16].': %3C/b%3E'.$nombremes.' %3C/A%3E "'; + $cadenaXML.=' nodoid=nodomes-'.$idaula."-".$gmes.'/'.$ganno; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#E3D8C6"; + $cadenaXML.='>'; + $gdia=0; + $swm=true; + $swd=false; + $CntMes=""; + PintaMesAnno($ganno,$gmes); + $HTMLdias=""; + $cont_d=0; + } + // Dia + if($gdia<>$rs->campos["dia"]){ + if($swd){ + GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes); + $cadenaXML.='</DIA> '; + } + $gdia=$rs->campos["dia"]; + $nombredia=$rs->campos["dia"]." - ".$nombremes." - ".$rs->campos["anno"]; + $cadenaXML.='<DIA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/carpeta.gif"'; + $cadenaXML.=' infonodo="%3CA name=anododia-'.$idaula."-".$gdia.'/'.$gmes.'/'.$ganno.'%3E%3Cb%3E '.$TbMsg[17].': %3C/b%3E'.$nombredia.' %3C/A%3E "'; + $cadenaXML.=' nodoid=nododia-'.$idaula."-".$gdia.'/'.$gmes.'/'.$ganno; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#CFDAE6"; + $cadenaXML.='>'; + $swd=true; + //$CntMes[$gdia]=1; + $CntDia=""; + PintaHorasDias($ganno,$gmes,$gdia); + $HTMLhoras=""; + } + + // Cuestion Ocupación + $hexhoradesde=$rs->campos["horasini"]; + $minutosdesde=$rs->campos["minutosini"]; + if($minutosdesde==0) $minutosdesde="00"; + $minutosdesde.=" ".$tbampm[$rs->campos["ampmini"]]; + $hexhorahasta=$rs->campos["horasfin"]; + $minutoshasta=$rs->campos["minutosfin"]; + if($minutoshasta==0) $minutoshasta="00"; + $minutoshasta.=" ".$tbampm[$rs->campos["ampmfin"]]; + $cont=0; + while($hexhoradesde>0){ + $cont++; + $hexhoradesde=$hexhoradesde>>1; + } + $horadesde=$cont-1; + $cont=0; + while($hexhorahasta>0){ + $cont++; + $hexhorahasta=$hexhorahasta>>1; + } + $horahasta=$cont-1; + + $mulmin=floor($minutosdesde/15); + $currentminutos=$mulmin*15; + $CntDia[(int)$rs->campos["ampmini"]][(int)$horadesde][(int)$currentminutos]=1; + $mulmin=floor($minutoshasta/15); + $currentminutos=$mulmin*15; + $CntDia[(int)$rs->campos["ampmfin"]][(int)$horahasta][(int)$currentminutos]=0; + + + // Descripción de la reserva + $cadenaXML.='<RESERVA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/reservas.gif"'; + $cadenaXML.=' infonodo="%3CIMG src='.$tbimg[$rs->campos["estado"]].'%3E %3Cb%3E'.$rs->campos["descripcion"].': %3C/b%3E'; + $cadenaXML.=' %3CIMG src="../images/iconos/reloj.gif"%3E ('.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.')"'; + + $cadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"]; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#EEEECC;"; + $cadenaXML.='>'; + + $cadenaXML.='<OCUPACION '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/reloj.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[19].':%3C/b%3E '.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.'"'; + $cadenaXML.=' nodoid=opcupacion-'.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</OCUPACION>'; + + + $cadenaXML.='<AULA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/aula.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$nombreaula.'"';; + $cadenaXML.=' nodoid=aula-'.$idaula; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</AULA>'; + + $nombreimagen=$rs->campos["nombreimagen"]; + if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23]; + // Descripción de la imagen a restaurar + $cadenaXML.='<IMAGEN '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/imagenes.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[20].': %3C/b%3E'.$nombreimagen.'"'; + $cadenaXML.=' nodoid=imagen-'.$rs->campos["idimagen"]; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</IMAGEN>'; + + $nombretarea=$rs->campos["nombretarea"]; + if(!empty($nombretarea) ){ + // Descripción de la tarea a restaurar + $cadenaXML.='<TAREA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/tareas.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[28].': %3C/b%3E'.$nombretarea.'"'; + $cadenaXML.=' nodoid=tarea-'.$rs->campos["idtarea"]; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</TAREA>'; + } + + $nombretrabajo=$rs->campos["nombretrabajo"]; + if(!empty($nombretrabajo) ){ + // Descripción del trabajo a restaurar + $cadenaXML.='<TRABAJO '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/trabajos.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[29].': %3C/b%3E'.$nombretrabajo.'"'; + $cadenaXML.=' nodoid=trabajo-'.$rs->campos["idtrabajo"]; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</TRABAJO>'; + } + + $cadenaXML.='<EMAIL '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/email.gif"'; + $cadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[25].':%3C/b%3E '.$rs->campos["solicitante"].' (%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"'; + $cadenaXML.=' nodoid=email-'.$idaula; + $cadenaXML.=' colornodo='."#000000"; + $cadenaXML.=' fondonodo='."#FBECFA;"; + $cadenaXML.='>'; + $cadenaXML.='</EMAIL>'; + + + + $cadenaXML.='</RESERVA>'; + + $rs->Siguiente(); + } + if($swd){ + GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,&$CntMes); + $cadenaXML.='</DIA> '; + } + if($swm){ + GuardaMesAnno($ganno,$gmes,$CntMes); + $cadenaXML.='</MES> '; + } + if($swa){ + GuardaAnno($ganno); + $cadenaXML.='</ANNO> '; + } +} +//________________________________________________________________________________________________________ +function PintaAnno($ganno){ + global $cadenaXML; + global $cont_a; + + $cadenaXML.='<TBANNO '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/nada.gif"'; + $cadenaXML.=' infonodo=%anno-'.$ganno.'%'; + $cadenaXML.=' nodoid=anno-'.$ganno; + $cadenaXML.=' fondonodo='."#FFFFFF"; + $cadenaXML.='>'; + $cadenaXML.='</TBANNO> '; +} +//________________________________________________________________________________________________________ +function GuardaAnno($ganno){ + global $cadenaXML; + global $cont_a; + global $cont_m; + global $HTMLmeses; + global $HTMLannos; + global $calendario; + +$HTMLannos[$cont_a]="<TABLE><TR>"; +$j=0; + for($i=0;$i<$cont_m;$i++){ + if(isset($HTMLmeses[$i])){ + $HTMLannos[$cont_a].='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>'.$HTMLmeses[$i].'</TD>'; + $j++; + if($j==4) { + $HTMLannos[$cont_a].="</TR><TR>"; + $j=0; + } + } + } + $HTMLannos[$cont_a].="</TR></TABLE>"; + $cadenaXML=ereg_replace( "%anno-".$ganno.'%',urlencode($HTMLannos[$cont_a]), $cadenaXML ); + $cont_a++; +} +//________________________________________________________________________________________________________ +function PintaMesAnno($ganno,$gmes){ + global $cadenaXML; + + $cadenaXML.='<TBMES '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/nada.gif"'; + $cadenaXML.=' infonodo=%mes-'.$ganno.'-'.$gmes.'%'; + $cadenaXML.=' nodoid=mes-'.$ganno.'-'.$gmes; + $cadenaXML.=' fondonodo='."#FFFFFF"; + $cadenaXML.='>'; + $cadenaXML.='</TBMES> '; +} +//________________________________________________________________________________________________________ +function GuardaMesAnno($ganno,$gmes,$CntMes){ + global $cadenaXML; + global $cont_m; + global $calendario; + global $HTMLmeses; + + $HTMLmeses[$cont_m]="<TABLE cellspacing=3><TR><TD valign=top>"; + $HTMLmeses[$cont_m].=$calendario->MesAnno($gmes,$ganno,$CntMes); + $HTMLmeses[$cont_m].="</TD></TR></TABLE>"; + $cadenaXML=ereg_replace('%mes-'.$ganno.'-'.$gmes.'%',urlencode($HTMLmeses[$cont_m]), $cadenaXML ); + $cont_m++; +} +//________________________________________________________________________________________________________ +function PintaHorasDias($ganno,$gmes,$gdia){ + global $cadenaXML; + + $cadenaXML.='<TBDIA '; + // Atributos + $cadenaXML.=' imagenodo="../images/iconos/nada.gif"'; + $cadenaXML.=' infonodo=%horas-'.$ganno.'-'.$gmes.'-'.$gdia.'%'; + $cadenaXML.=' nodoid=horas-'.$ganno.'-'.$gmes.'-'.$gdia; + $cadenaXML.=' fondonodo='."#FFFFFF"; + $cadenaXML.='>'; + $cadenaXML.='</TBDIA> '; +} +//________________________________________________________________________________________________________ +function GuardaHorasDias($ganno,$gmes,$gdia,$CntDia,$CntMes){ + global $cadenaXML; + global $calendario; + global $HTMLhorasdias; + + $HTMLhorasdias="<TABLE cellspacing=3><TR><TD valign=top>"; + $HTMLhorasdias.=$calendario->HorasDias($CntDia,&$porcenhoras); + $HTMLhorasdias.="</TD></TR></TABLE>"; + + $CntMes[$gdia]=$porcenhoras; + $cadenaXML=ereg_replace('%horas-'.$ganno.'-'.$gmes.'-'.$gdia.'%',urlencode($HTMLhorasdias), $cadenaXML ); +} +//________________________________________________________________________________________________________ +function CriteriosBusquedas(){ + global $idcentro; + global $TbMsg; + + global $RESERVA_CONFIRMADA; + global $RESERVA_PENDIENTE; + global $RESERVA_DENEGADA; + global $LITRESERVA_CONFIRMADA; + global $LITRESERVA_PENDIENTE; + global $LITRESERVA_DENEGADA; + + global $RESERVA_PARADA; // reserva momentanemente parada + global $RESERVA_ACTIVA; // Reserva activa + global $LITRESERVA_PARADA; + global $LITRESERVA_ACTIVA; + + global $fechainicio; + global $fechafin; + + global $westadoreserva; + global $wsituacion; + + $HTMLCriterios=""; + $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13); + $HTMLCriterios.='<TR HEIGHT=30>'.chr(13); + $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13); + $HTMLCriterios.='<SPAN align=center style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">_______________ '.$TbMsg[1].' _______________</SPAN>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='</TD>'.chr(13); + + // Desplegable con los tipos de reservas + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.='<TD>'.chr(13); + $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.=' <TH align=center> '.$TbMsg[2].' </TH>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13); + $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13); + $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA; + $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'</TD>'; + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='</TABLE>'.chr(13); + $HTMLCriterios.='</TD>'.chr(13); + // Desplegable con los distintos situacion + $HTMLCriterios.='<TD>'.chr(13); + $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.=' <TH align=center> '.$TbMsg[4].' </TH>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13); + $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA; + $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'</TD>'; + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='</TABLE>'.chr(13); + $HTMLCriterios.='</TD>'.chr(13); + + // Fechas + $HTMLCriterios.='<TD COLSPAN=2>'.chr(13); + $HTMLCriterios.='<TABLE WIDTH=100% class=tabla_standar align=center border="0">'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.='<TH> '.$TbMsg[7].': </TH>'.chr(13); + $HTMLCriterios.='<TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.='<TH align=right> '.$TbMsg[8].': </TH>'.chr(13); + $HTMLCriterios.='<TD> <INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='</TABLE>'.chr(13); + $HTMLCriterios.='</TD>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + + $HTMLCriterios.='<TR height=5>'.chr(13); + $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13); + $HTMLCriterios.='<SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">__________________________________________________</SPAN>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + + // Lupa + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.='<TD COLSPAN=4>'.chr(13); + $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13); + $HTMLCriterios.='<TR>'.chr(13); + $HTMLCriterios.='<TD>'; + + $HTMLCriterios.='<IMG src="../images/iconos/busquedas.gif" onclick="javascript:fdatos.submit()" style="cursor:hand" alt="Buscar">'; + $HTMLCriterios.='</TD>'; + $HTMLCriterios.='<TD>'; + $HTMLCriterios.='</TD>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); + $HTMLCriterios.='</TABLE>'; + $HTMLCriterios.='</TD>'.chr(13); + $HTMLCriterios.='</TR>'.chr(13); +$HTMLCriterios.='</TABLE>'; +return($HTMLCriterios); +}?>
\ No newline at end of file |