'?> '?>  '.$TbMsg[0].' '; echo '
'.chr(13); // Campos ocultos echo ''; echo ''; echo ''; echo ''; echo ''; echo CriteriosBusquedas(); // Opciones de búsqueda echo '
'.chr(13); echo '
'; echo ''.$TbMsg[11].':'.$textambito.', '.$nombreambito.'  

'; //________________________________________________________________________________________________________ // Proceso de selección de reservas $ClausulaWhere=""; //________________________________________________________________________________________________________ // Cuestion identificador del ámbito $WhereCentroAccion=""; $WhereCentroAccion='reservas.idcentro='.$idcentro; $ClausulaWhere.=" AND (".$WhereCentroAccion.")"; $cadenareservas=""; if(!empty($idambito)){ $cmd->texto="SELECT idgrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSRESERVAS; RecorreGruposReservas($cmd); } else{ $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=0 AND tipo=".$AMBITO_GRUPOSRESERVAS; RecorreGruposReservas($cmd); $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=0"; RecorreReservas($cmd); } if(strlen($cadenareservas)>0){ $cadenareservas=substr($cadenareservas,0,strlen($cadenareservas)-1); // Quita la coma $ClausulaWhere.=" AND idreserva in(".$cadenareservas.")"; } //________________________________________________________________________________________________________ // Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas ) $WhereEstadosReservas=""; for($i=0;$iCreaArbolVistaXml(); // Muestra árbol echo "
"; echo "
"; echo " "; echo "
"; echo urldecode($salidaHTML); echo "
"; ?> dias_meses[(int)$mes_f]; // Último día del mes if($calendario->bisiesto($anno_f) && $mes_f==2) $udm++; $JDif=$calendario->juliana("1/".$mes_i."/".$anno_i); // calcula valor de resta para indices de fechas en tabla de memoria $JDesde=0; $JHasta=$calendario->juliana($udm."/".$mes_f."/".$anno_f)-$JDif; $TOTfechas=""; // tabla en memoria para acumulado de horas por fecha $TBfechas=""; // tabla en memoria para acumulado de horas por fecha $cmd->texto="SELECT SUM(horaresevfin - horaresevini) as sumahoras FROM aulas"; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) $sumahoras=0; // Error al abrir recordset if(!$rs->EOF){ $sumahoras=$rs->campos["sumahoras"]*60; } //Recorre de fecha inicio a fecha fin $anno_c=$anno_i; $mes_c=$mes_i; $cadenaXML=""; // 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[(int)$mes_c][1]; $mes_c++; } // Cadena SQL para seleccionar reservas $cmd->texto="SELECT 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,"; $cmd->texto.="trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,"; $cmd->texto.="reservas.idreserva,reservas.descripcion,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,"; $cmd->texto.="aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen"; $cmd->texto.=" FROM reservas"; $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador"; $cmd->texto.=" LEFT OUTER 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.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ; $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)"; $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ; $cmd->texto.=" ORDER BY programaciones.annos,programaciones.meses,"; $cmd->texto.=" programaciones.ampmini,programaciones.horasini,programaciones.minutosini"; ; $AuxcadenaXML=ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f); $cadenaXML.='JMesAnno($i,$anno_c,$JDif,$TOTfechas,$sumahoras); $HTMLannos.=''; } $HTMLannos.="
"; //___________________________________________________________________________ $cadenaXML.=' infonodo='.urlencode($HTMLannos); $cadenaXML.=' nodoid=tablameses-'.$anno_c; $cadenaXML.=' fondonodo='."#FFFFFF"; $cadenaXML.='>'; $cadenaXML.=' '; $cadenaXML.=$AuxcadenaXML; $cadenaXML.=' '; $anno_c++; } return($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.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); // Desplegable con los tipos de reservas $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); // Desplegable con los distintos situacion $HTMLCriterios.=''.chr(13); // Fechas $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); // Lupa $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.='_______________ '.$TbMsg[1].' _______________'.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=' '.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13); $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13); $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA; $HTMLCriterios.=''; $HTMLCriterios.=''.chr(13); $HTMLCriterios.='
 '.$TbMsg[2].' 
'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'
'.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=' '.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13); $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA; $HTMLCriterios.=''; $HTMLCriterios.=''.chr(13); $HTMLCriterios.='
 '.$TbMsg[4].' 
'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'
'.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.='
 '.$TbMsg[7].': 
 '.$TbMsg[8].':  
'.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.='__________________________________________________'.chr(13); $HTMLCriterios.='
'.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''; $HTMLCriterios.=''.chr(13); $HTMLCriterios.=''.chr(13); $HTMLCriterios.='
'; $HTMLCriterios.= 'Buscar'; $HTMLCriterios.=''; $HTMLCriterios.='
'; $HTMLCriterios.='
'; return($HTMLCriterios); } //________________________________________________________________________________________________________ function ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f){ global $calendario; global $JDif; global $TBfechas; global $TOTfechas; global $sumahoras; global $TbMsg; $cadenaXML=""; $udm=$calendario->dias_meses[(int)$mes_hasta]; // Último día del mes if($calendario->bisiesto($anno_f) && $mes_hasta==2) $udm++; $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i); $fechamaxima=mktime(0, 0, 0, $mes_f,$udm, $anno_f); $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return; // Error al abrir recordset $rs->Primero(); // Recorre reservas while (!$rs->EOF){ $swr=false; // detecta si la reserva es válida $TBfechas=""; // tabla en memoria para acumulado de horas por fecha de cada reserva $cf=$calendario->Fechas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]); $fechas_reservas=explode(";",$cf); for ($i=0;$i=$fechaminima && $auxfecha<=$fechamaxima){ $swr=true; $Jreserva=$calendario->juliana($fechas_reservas[$i]); $idx=$Jreserva-$JDif; // Cálculo de los minutos $sOcupacion=CalculaMinutos($rs); if (!isset($TBfechas[$idx])) $TBfechas[$idx]=0; if (!isset($TOTfechas[$idx])) $TOTfechas[$idx]=0; $TBfechas[$idx]+=$sOcupacion; $TOTfechas[$idx]+=$sOcupacion; } } if($swr) $cadenaXML.=TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c); $rs->Siguiente(); } $rs->Cerrar(); return($cadenaXML); } //________________________________________________________________________________________________________ function TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c){ global $TbMsg; global $calendario; global $RESERVA_CONFIRMADA; global $RESERVA_PENDIENTE; global $RESERVA_DENEGADA; global $EJECUCION_RESERVA; global $TBfechas; global $sumahoras; global $JDif; $AuxcadenaXML=""; $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."; // Descripción de la reserva $AuxcadenaXML.='campos["estado"]].'%3E %3Cb%3E'.$rs->campos["descripcion"].' %3C/b%3E'; $AuxcadenaXML.=' (%3Cb%3E'.$TbMsg[15].":%3C/b%3E".$anno_c.')"'; $AuxcadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"]; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#EEEECC;"; $AuxcadenaXML.='>'; $AuxcadenaXML.='JMesAnno($i,$anno_c,$JDif,$TBfechas,$sumahoras); $HTMLannos.=''; } $HTMLannos.=""; //___________________________________________________________________________ $AuxcadenaXML.=' infonodo='.urlencode($HTMLannos); $AuxcadenaXML.=' nodoid=opcupacion'; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FFFFFF;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; /* $AuxcadenaXML.='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; $AuxcadenaXML.='campos["idaula"]; $nombreaula=$rs->campos["nombreaula"]; $AuxcadenaXML.='campos["idaula"]; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FBECFA;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; $nombreimagen=$rs->campos["nombreimagen"]; if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23]; // Descripción de la imagen a restaurar $AuxcadenaXML.='campos["idimagen"]; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FBECFA;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; $nombretarea=$rs->campos["nombretarea"]; if(!empty($nombretarea) ){ // Descripción de la tarea a restaurar $AuxcadenaXML.='campos["idtarea"]; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FBECFA;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; } $nombretrabajo=$rs->campos["nombretrabajo"]; if(!empty($nombretrabajo) ){ // Descripción del trabajo a restaurar $AuxcadenaXML.='campos["idtrabajo"]; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FBECFA;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; } $AuxcadenaXML.='campos["solicitante"].'  (%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"'; $AuxcadenaXML.=' nodoid=email-'.$idaula; $AuxcadenaXML.=' colornodo='."#000000"; $AuxcadenaXML.=' fondonodo='."#FBECFA;"; $AuxcadenaXML.='>'; $AuxcadenaXML.=''; //$AuxcadenaXML.=' '; $AuxcadenaXML.=''; return($AuxcadenaXML); } //________________________________________________________________________________________________________ function CalculaMinutos($rs){ $hexhoradesde=$rs->campos["horasini"]; $hexhorahasta=$rs->campos["horasfin"]; $cont=0; while($hexhoradesde>0){ $cont++; $hexhoradesde=$hexhoradesde>>1; } $shorasini=$cont-1; $cont=0; while($hexhorahasta>0){ $cont++; $hexhorahasta=$hexhorahasta>>1; } $shorasfin=$cont-1; $sminutosini=$rs->campos["minutosini"]; $sminutosfin=$rs->campos["minutosfin"]; if($rs->campos["ampmini"]==1) $shorasini+=12; if($rs->campos["ampmfin"]==1) $shorasfin+=12; $socupacion=($shorasfin-$shorasini)*60+($sminutosfin-$sminutosini); return($socupacion); } //________________________________________________________________________________________________________ function RecorreGruposReservas($cmd){ global $AMBITO_GRUPOSRESERVAS; global $LITAMBITO_GRUPOSRESERVAS; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return; // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ $idgrupo=$rs->campos["idgrupo"]; $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSRESERVAS; RecorreGruposReservas($cmd); $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=".$idgrupo; RecorreReservas($cmd); $rs->Siguiente(); } $rs->Cerrar(); } //________________________________________________________________________________________________________ function RecorreReservas($cmd){ global $AMBITO_RESERVAS; global $LITAMBITO_RESERVAS; global $cadenareservas; $rs=new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return; // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ $idreserva=$rs->campos["idreserva"]; $cadenareservas.=$idreserva.","; $rs->Siguiente(); } $rs->Cerrar(); } ?>