source: admin/WebConsole/principal/programacionesreservas.php

qndtest
Last change on this file was 74c410a, checked in by ramon <ramongomez@…>, 6 years ago

#834: Eliminar etiquetas y código redundante en JavaScript?.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5632 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 27.7 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Noviembre-2005
7// Nombre del fichero: programaciones.php
8// Descripción :
9//              Visualiza las reservas pendientes, confirmadas, denegadas y fecha y hora de la reserva
10// *************************************************************************************************************************************************
11include_once("../includes/ctrlacc.php");
12include_once("../clases/AdoPhp.php");
13include_once("../includes/constantes.php");
14include_once("../includes/CreaComando.php");
15include_once("../includes/HTMLCTEMULSELECT.php");
16include_once("../clases/ArbolVistaXML.php");
17include_once("../idiomas/php/".$idioma."/clases/Calendario_".$idioma.".php");
18include_once("../idiomas/php/".$idioma."/programacionesreservas_".$idioma.".php");
19//________________________________________________________________________________________________________
20$ambito=""; 
21$idambito=0;
22$nombreambito="";
23$fechainicio="";
24$fechafin="";
25$estadoreserva="";
26$situacion="";
27
28if (isset($_GET["ambito"]))     $ambito=$_GET["ambito"]; 
29if (isset($_GET["idambito"])) $idambito=$_GET["idambito"]; 
30if (isset($_GET["nombreambito"])) $nombreambito=$_GET["nombreambito"]; 
31if (isset($_GET["tipocola"])) $tipocola=$_GET["tipocola"]; 
32
33$cmd=CreaComando($cadenaconexion);
34if (!$cmd)
35        Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
36//________________________________________________________________________________________________________
37// Criterios por defecto
38if($ambito!="" && $idambito!="" && $nombreambito!="" && $tipocola!=""){ 
39        $wfechainicio=mktime(0, 0, 0, date("m")  , date("d"), date("Y")); // Reservas desde un mes anterior
40        $wfechafin=mktime(0, 0, 0, date("m")+6 , date("d"), date("Y"));
41        $fechainicio=date("d/m/Y",$wfechainicio);
42        $fechafin=date("d/m/Y ",$wfechafin);
43        // Tipos de reservas
44        switch($tipocola){
45                case 0:
46                        $westadoreserva[0]=$RESERVA_CONFIRMADA;
47                        $westadoreserva[1]=$RESERVA_PENDIENTE;
48                        $westadoreserva[2]=$RESERVA_DENEGADA;
49
50                        $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
51                        $estadoreserva.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
52                        $estadoreserva.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
53                        break;
54                case $RESERVA_CONFIRMADA:
55                        $westadoreserva[0]=$RESERVA_CONFIRMADA;
56                        $estadoreserva=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.";";
57                        break;
58                case $RESERVA_PENDIENTE:
59                        $westadoreserva[0]=$RESERVA_PENDIENTE;
60                        $estadoreserva=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.";";
61                        break;
62                case $RESERVA_DENEGADA:
63                        $westadoreserva[0]=$RESERVA_DENEGADA;
64                        $estadoreserva=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA.";";
65                        break;
66        }
67                // Estados default
68        $wsituacion[0]=$RESERVA_PARADA;
69        $wsituacion[1]=$RESERVA_ACTIVA;
70        $situacion=$RESERVA_PARADA."=".$LITRESERVA_PARADA.";";
71        $situacion.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA.";";
72}
73//________________________________________________________________________________________________________
74// Recupera parametros del formulario
75if (isset($_POST["ambito"]))    $ambito=$_POST["ambito"]; 
76if (isset($_POST["idambito"])) $idambito=$_POST["idambito"]; 
77if (isset($_POST["nombreambito"])) $nombreambito=$_POST["nombreambito"]; 
78if (isset($_POST["fechainicio"])) $fechainicio=$_POST["fechainicio"]; 
79if (isset($_POST["fechafin"])) $fechafin=$_POST["fechafin"]; 
80
81if (isset($_POST["estadoreserva"])) {
82        $estadoreserva=$_POST["estadoreserva"]; 
83        $auxP=explode(";",$estadoreserva);
84        $cont=0;
85        for ($i=0;$i<sizeof($auxP)-1;$i++){
86                $dualparam=explode("=",$auxP[$i]);
87                $westadoreserva[$cont++]=$dualparam[0];
88        }
89}
90if (isset($_POST["situacion"])){
91        $situacion=$_POST["situacion"]; 
92        $auxP=explode(";",$situacion);
93        $cont=0;
94        for ($i=0;$i<sizeof($auxP)-1;$i++){
95                $dualparam=explode("=",$auxP[$i]);
96                $wsituacion[$cont++]=$dualparam[0];
97        }
98}
99//________________________________________________________________________________________________________
100?>
101<HTML>
102<TITLE>Administración web de aulas</TITLE>
103<HEAD>
104        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
105        <LINK rel="stylesheet" type="text/css" href="../estilos.css">
106        <SCRIPT language="javascript" src="../clases/jscripts/ArbolVistaXML.js"></SCRIPT>
107        <SCRIPT language="javascript" src="../clases/jscripts/MenuContextual.js"></SCRIPT>
108        <SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
109        <SCRIPT language="javascript" src="../jscripts/comunes.js"></SCRIPT>
110        <SCRIPT language="javascript" src="../jscripts/programacionesreservas.js"></SCRIPT>
111        <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/programacionesreservas_'.$idioma.'.js"></SCRIPT>'?>
112        <?php echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
113</HEAD>
114<BODY>
115<?php
116switch($ambito){
117                case $AMBITO_GRUPOSRESERVAS :
118                        $urlimg='../images/iconos/carpeta.gif';
119                        $textambito=$TbMsg[13];
120                        break;
121                case $AMBITO_RESERVAS :
122                        $urlimg='../images/iconos/reservas.gif';
123                        $textambito=$TbMsg[14];
124                        break;
125}
126echo '<p align=center class=cabeceras><img src="../images/iconos/reservas.gif">&nbsp;'.$TbMsg[0].'&nbsp;';
127echo '<FORM name="fdatos" action="programacionesreservas.php" method="post">'.chr(13);
128// Campos ocultos
129echo '<INPUT type=hidden name=ambito value="'.$ambito.'">';
130echo '<INPUT type=hidden name=idambito value="'.$idambito.'">';
131echo '<INPUT type=hidden name=nombreambito value="'.$nombreambito.'">';
132echo '<INPUT type=hidden name=estadoreserva value="'.$estadoreserva.'">';
133echo '<INPUT type=hidden name=situacion value="'.$situacion.'">';
134echo CriteriosBusquedas(); // Opciones de búsqueda
135echo '</FORM>'.chr(13);
136
137echo '<DIV align=center >';
138echo '<span align=center class=subcabeceras><U>'.$TbMsg[11].':'.$textambito.'</U>,&nbsp'.$nombreambito.'</span>&nbsp;&nbsp;<IMG src="'.$urlimg.'"></span></DIV></p>';
139
140//________________________________________________________________________________________________________
141// Proceso de selección de reservas
142$ClausulaWhere="";
143//________________________________________________________________________________________________________
144// Cuestion identificador del ámbito
145$WhereCentroAccion="";
146$WhereCentroAccion='reservas.idcentro='.$idcentro;
147$ClausulaWhere.=" AND (".$WhereCentroAccion.")";
148
149$cadenareservas="";
150if(!empty($idambito)){
151        $cmd->texto="SELECT idgrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSRESERVAS;
152        RecorreGruposReservas($cmd);
153}
154else{
155        $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=0 AND tipo=".$AMBITO_GRUPOSRESERVAS;
156        RecorreGruposReservas($cmd);
157        $cmd->texto="SELECT idreserva FROM reservas WHERE grupoid=0";
158        RecorreReservas($cmd);
159}
160if(strlen($cadenareservas)>0){
161        $cadenareservas=substr($cadenareservas,0,strlen($cadenareservas)-1); // Quita la coma
162        $ClausulaWhere.=" AND idreserva in(".$cadenareservas.")";
163}
164//________________________________________________________________________________________________________
165// Cuestion estado de las reservas ( Confirmadas,Pendientes o Denegadas )
166$WhereEstadosReservas="";
167for($i=0;$i<sizeof($westadoreserva);$i++){
168                if (isset($westadoreserva[$i]))
169                        $WhereEstadosReservas.=" reservas.estado=".$westadoreserva[$i]." OR ";
170}
171if($WhereEstadosReservas!=""){
172        $WhereEstadosReservas=substr($WhereEstadosReservas,0,strlen($WhereEstadosReservas)-3); 
173        $ClausulaWhere.=" AND (".$WhereEstadosReservas.")";
174}
175//________________________________________________________________________________________________________
176// Cuestion situación de la programación
177$WhereSituaciones="";
178for($i=0;$i<sizeof($wsituacion);$i++){
179        if (isset($wsituacion[$i]))
180                $WhereSituaciones.=" programaciones.suspendida=".$wsituacion[$i]." OR ";
181}
182if($WhereSituaciones!=""){
183        $WhereSituaciones=substr($WhereSituaciones,0,strlen($WhereSituaciones)-3); 
184        $ClausulaWhere.=" AND (".$WhereSituaciones.")";
185}
186//________________________________________________________________________________________________________
187// Cuestion de fechas
188$calendario=new Calendario("tabla_reservas");
189
190if(empty($fechainicio)) $fechainicio=date("d/m/Y",mktime(0, 0, 0, date("m")  , date("d"), date("Y")));
191if(empty($fechafin))    $fechafin=date("d/m/Y",mktime(0, 0, 0, date("m")+1  , date("d"), date("Y")));
192
193$sumahoras=0;
194$JDif=0;
195$TBfechas="";
196$TOTfechas="";
197$cadenaXML=ProcesoAnual($fechainicio,$fechafin);
198// Creación del árbol
199$baseurlimg="../images/tsignos"; // Url de las imágenes de signo
200$clasedefault="tabla_listados_sin";
201$titulotabla=$TbMsg[0]; 
202$arbol=new ArbolVistaXml($cadenaXML,0,$baseurlimg,$clasedefault,1,20,270,2,$titulotabla);
203$salidaHTML=$arbol->CreaArbolVistaXml();  // Muestra  árbol
204echo "<BR>";
205echo "<DIV align=center width=100%>";
206echo "   <TABLE align=center width=100%>";
207echo "          <TR><TD>";
208echo urldecode($salidaHTML);
209echo "          </TD></TR><TABLE></DIV>";
210?>
211</BODY>
212</HTML>
213<?php
214// *************************************************************************************************************************************************
215function ProcesoAnual($fechainicio,$fechafin){
216        global $EJECUCION_RESERVA;
217        global $calendario;
218        global $cmd;
219        global $ClausulaWhere;
220        global $sumahoras;
221        global $TbMsg;
222        global $TOTfechas;
223        global $TBfechas;
224        global $JDif;
225
226        list($sdia,$smes,$sanno)=explode("/",$fechainicio);
227        $dia_i=(int)$sdia;
228        $mes_i=(int)$smes;
229        $anno_i=(int)$sanno;
230
231        list($sdia,$smes,$sanno)=explode("/",$fechafin);
232        $dia_f=(int)$sdia;
233        $mes_f=(int)$smes;
234        $anno_f=(int)$sanno;
235
236        $udm=$calendario->dias_meses[(int)$mes_f]; // Último día del mes
237        if($calendario->bisiesto($anno_f) && $mes_f==2) $udm++;
238
239        $JDif=$calendario->juliana("1/".$mes_i."/".$anno_i); // calcula valor de resta para indices de fechas en tabla de memoria
240        $JDesde=0;
241        $JHasta=$calendario->juliana($udm."/".$mes_f."/".$anno_f)-$JDif;
242        $TOTfechas=""; // tabla en memoria para acumulado de horas por fecha
243        $TBfechas=""; // tabla en memoria para acumulado de horas por fecha
244
245        $cmd->texto="SELECT   SUM(horaresevfin - horaresevini) as sumahoras FROM  aulas";
246        $rs=new Recordset; 
247        $rs->Comando=&$cmd; 
248        if (!$rs->Abrir()) $sumahoras=0; // Error al abrir recordset
249        if(!$rs->EOF){
250                $sumahoras=$rs->campos["sumahoras"]*60;
251        }
252
253        //Recorre de fecha inicio a fecha fin
254        $anno_c=$anno_i;
255        $mes_c=$mes_i;
256
257        $cadenaXML="";
258
259        // Calcula el rango de meses dependiendo del intervalo de fechas solicitado
260        while($anno_c<=$anno_f){
261                if($anno_c==$anno_i){
262                        $mes_c=$mes_i;
263                        if($anno_f>$anno_c)
264                                $mes_t=12;
265                        else
266                                $mes_t=$mes_f;
267                }
268                else{
269                                if($anno_c>$anno_i){
270                                        if($anno_c==$anno_f){
271                                                $mes_c=1;
272                                                $mes_t=$mes_f;
273                                        }
274                                        else{
275                                                $mes_c=1;
276                                                $mes_t=12;
277                                        }
278                                }
279                }
280                $HEXanno=$calendario->numero_annos[$anno_c-2003][1];  // Primera referencia: 2004
281                $HEXmeses=0;
282                $mes_desde=$mes_c;
283                $mes_hasta=$mes_t;
284                while($mes_c<=$mes_t){
285                                $HEXmeses=$HEXmeses | $calendario->nombre_mes[(int)$mes_c][1];
286                                $mes_c++;
287                }
288                // Cadena SQL para seleccionar reservas
289                $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,";
290                $cmd->texto.="trabajos.idtrabajo,tareas.idtarea,trabajos.descripcion AS nombretrabajo,tareas.descripcion AS nombretarea,";
291                $cmd->texto.="reservas.idreserva,reservas.descripcion,reservas.solicitante,reservas.email,reservas.estado,reservas.idaula,";
292                $cmd->texto.="aulas.nombreaula as nombreaula,imagenes.idimagen ,imagenes.descripcion as nombreimagen";
293                $cmd->texto.=" FROM   reservas";
294                $cmd->texto.=" INNER JOIN programaciones ON reservas.idreserva = programaciones.identificador";
295                $cmd->texto.=" LEFT OUTER JOIN  aulas ON reservas.idaula = aulas.idaula";
296                $cmd->texto.=" LEFT OUTER JOIN imagenes ON reservas.idimagen = imagenes.idimagen";
297                $cmd->texto.=" LEFT OUTER JOIN tareas ON reservas.idtarea = tareas.idtarea";
298                $cmd->texto.=" LEFT OUTER JOIN trabajos ON reservas.idtrabajo = trabajos.idtrabajo";
299                $cmd->texto.=" WHERE (programaciones.tipoaccion = ".$EJECUCION_RESERVA.") ".$ClausulaWhere ;
300                $cmd->texto.=" AND (programaciones.annos & ".$HEXanno."<>0)";
301                $cmd->texto.=" AND (programaciones.meses & ".$HEXmeses."<>0)" ;
302                $cmd->texto.=" ORDER BY programaciones.annos,programaciones.meses,"; 
303                $cmd->texto.="  programaciones.ampmini,programaciones.horasini,programaciones.minutosini"; ;
304
305                $AuxcadenaXML=ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f);
306
307                $cadenaXML.='<TBANNO ';
308                // Atributos           
309                $cadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
310                $cadenaXML.=' clickimg="AnnoReserva('.$anno_c.');"';
311                $cadenaXML.=' infonodo="%3Cb%3E&nbsp; '.$TbMsg[15].': %3C/b%3E'.$anno_c.'"';
312                $cadenaXML.=' nodoid=anno-'.$anno_c;
313                $cadenaXML.='>';
314                        $cadenaXML.='<ANNO ';
315                        // Atributos           
316                        $cadenaXML.=' imagenodo="../images/iconos/nada.gif"';
317                        //___________________________________________________________________________
318                        $HTMLannos="<TABLE><TR>";
319                                for ($i=$mes_desde;$i<=$mes_hasta;$i++){
320                                                if($i%7==0)     $HTMLannos.="</TR><TR>";
321                                                $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
322                                                $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TOTfechas,$sumahoras);
323                                                $HTMLannos.='</TD>';
324                                }
325                        $HTMLannos.="</TR></TABLE>";
326                        //___________________________________________________________________________
327                        $cadenaXML.=' infonodo='.urlencode($HTMLannos);
328                        $cadenaXML.=' nodoid=tablameses-'.$anno_c;
329                        $cadenaXML.=' fondonodo='."#FFFFFF";
330                        $cadenaXML.='>';
331                        $cadenaXML.='</ANNO> ';
332                        $cadenaXML.=$AuxcadenaXML;
333                $cadenaXML.='</TBANNO> ';
334
335                $anno_c++;
336        }
337        return($cadenaXML);
338}
339//________________________________________________________________________________________________________
340function CriteriosBusquedas(){
341        global $idcentro;
342        global $TbMsg;
343
344        global $RESERVA_CONFIRMADA;
345        global $RESERVA_PENDIENTE;
346        global $RESERVA_DENEGADA;
347        global $LITRESERVA_CONFIRMADA;
348        global $LITRESERVA_PENDIENTE;
349        global $LITRESERVA_DENEGADA;
350
351        global $RESERVA_PARADA;  // reserva momentanemente parada
352        global $RESERVA_ACTIVA; // Reserva activa
353        global $LITRESERVA_PARADA;
354        global $LITRESERVA_ACTIVA;
355
356        global $fechainicio;
357        global $fechafin;
358       
359        global $westadoreserva;
360        global $wsituacion;
361
362        $HTMLCriterios="";
363        $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
364        $HTMLCriterios.='<TR HEIGHT=30>'.chr(13);
365                $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
366                $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);
367                $HTMLCriterios.='</TR>'.chr(13);
368                $HTMLCriterios.='</TD>'.chr(13);
369
370        // Desplegable con los tipos de reservas
371        $HTMLCriterios.='<TR>'.chr(13);
372                $HTMLCriterios.='<TD>'.chr(13);
373                        $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
374                        $HTMLCriterios.='<TR>'.chr(13);
375                        $HTMLCriterios.='       <TH align=center>&nbsp;'.$TbMsg[2].'&nbsp;</TH>'.chr(13);
376                        $HTMLCriterios.='</TR>'.chr(13);
377                        $HTMLCriterios.='<TR>'.chr(13);
378                        $parametros=$RESERVA_CONFIRMADA."=".$LITRESERVA_CONFIRMADA.chr(13);
379                        $parametros.=$RESERVA_PENDIENTE."=".$LITRESERVA_PENDIENTE.chr(13);
380                        $parametros.=$RESERVA_DENEGADA."=".$LITRESERVA_DENEGADA;
381                        $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"westadoreserva",$westadoreserva,"estilodesple","chgdesplereservas",100,3).'</TD>';
382                        $HTMLCriterios.='</TR>'.chr(13);
383                        $HTMLCriterios.='</TABLE>'.chr(13);
384                $HTMLCriterios.='</TD>'.chr(13);
385        // Desplegable con los distintos situacion
386                $HTMLCriterios.='<TD>'.chr(13);
387                        $HTMLCriterios.='<TABLE class=tabla_standar align=center border="0">'.chr(13);
388                        $HTMLCriterios.='<TR>'.chr(13);
389                        $HTMLCriterios.='       <TH align=center>&nbsp;'.$TbMsg[4].'&nbsp;</TH>'.chr(13);
390                        $HTMLCriterios.='</TR>'.chr(13);
391                        $HTMLCriterios.='<TR>'.chr(13);
392                        $parametros=$RESERVA_PARADA."=".$LITRESERVA_PARADA.chr(13);
393                        $parametros.=$RESERVA_ACTIVA."=".$LITRESERVA_ACTIVA;
394                        $HTMLCriterios.='<TD colspan=3>'.HTMLCTEMULSELECT($parametros,"wsituacion",$wsituacion,"estilodesple","chgdesplesituacion",100,3).'</TD>';
395                        $HTMLCriterios.='</TR>'.chr(13);
396                        $HTMLCriterios.='</TABLE>'.chr(13);
397        $HTMLCriterios.='</TD>'.chr(13);
398
399        // Fechas
400                $HTMLCriterios.='<TD  COLSPAN=2>'.chr(13);
401                        $HTMLCriterios.='<TABLE WIDTH=100% class=tabla_standar align=center border="0">'.chr(13);
402                        $HTMLCriterios.='<TR>'.chr(13);
403                        $HTMLCriterios.='<TH>&nbsp;'.$TbMsg[7].':&nbsp;</TH>'.chr(13);
404                        $HTMLCriterios.='<TD><INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechainicio" value="'.$fechainicio.'"></TD>'.chr(13);
405                        $HTMLCriterios.='</TR>'.chr(13);
406                        $HTMLCriterios.='<TR>'.chr(13);
407                        $HTMLCriterios.='<TH align=right>&nbsp;'.$TbMsg[8].':&nbsp;&nbsp;</TH>'.chr(13);
408                        $HTMLCriterios.='<TD> <INPUT class="cajatexto" onclick="vertabla_calendario(this)" style="WIDTH:80" name="fechafin" value="'.$fechafin.'"></TD>'.chr(13);
409                        $HTMLCriterios.='</TR>'.chr(13);
410                        $HTMLCriterios.='</TABLE>'.chr(13);             
411                $HTMLCriterios.='</TD>'.chr(13);
412        $HTMLCriterios.='</TR>'.chr(13);
413
414        $HTMLCriterios.='<TR height=5>'.chr(13);
415                $HTMLCriterios.='<TD colspan=4 align="center" >'.chr(13);
416                $HTMLCriterios.='<SPAN style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px;COLOR:#5a86b5;FONT-WEIGHT: 700;">__________________________________________________</SPAN>'.chr(13);
417        $HTMLCriterios.='</TR>'.chr(13);
418
419        // Lupa
420        $HTMLCriterios.='<TR>'.chr(13);
421                $HTMLCriterios.='<TD  COLSPAN=4>'.chr(13);
422                $HTMLCriterios.='<TABLE class=tabla_busquedas align=center border="0">'.chr(13);
423                $HTMLCriterios.='<TR>'.chr(13);
424                $HTMLCriterios.='<TD>';
425
426                $HTMLCriterios.= '<IMG src="../images/iconos/busquedas.gif" onclick="fdatos.submit();" style="cursor:hand" alt="Buscar">';
427                $HTMLCriterios.='</TD>';
428                $HTMLCriterios.='<TD>';
429                $HTMLCriterios.='</TD>'.chr(13);
430                $HTMLCriterios.='</TR>'.chr(13);
431                $HTMLCriterios.='</TABLE>';
432                $HTMLCriterios.='</TD>'.chr(13);
433        $HTMLCriterios.='</TR>'.chr(13);
434$HTMLCriterios.='</TABLE>';
435return($HTMLCriterios);
436}
437//________________________________________________________________________________________________________
438function ListaReservas($cmd,$anno_c,$mes_desde,$mes_hasta,$dia_i,$dia_f,$mes_i,$mes_f,$anno_i,$anno_f){
439        global $calendario;
440        global $JDif;
441        global $TBfechas;
442        global $TOTfechas;
443        global $sumahoras;
444        global $TbMsg;
445
446        $cadenaXML="";
447
448        $udm=$calendario->dias_meses[(int)$mes_hasta]; // Último día del mes
449        if($calendario->bisiesto($anno_f) && $mes_hasta==2) $udm++;
450        $fechaminima=mktime(0, 0, 0, $mes_i, 1, $anno_i);
451        $fechamaxima=mktime(0, 0, 0, $mes_f,$udm, $anno_f);
452
453        $rs=new Recordset; 
454        $rs->Comando=&$cmd; 
455        if (!$rs->Abrir()) return; // Error al abrir recordset
456        $rs->Primero(); 
457        // Recorre reservas
458        while (!$rs->EOF){
459                $swr=false; // detecta si la reserva es válida
460                $TBfechas=""; // tabla en memoria para acumulado de horas por fecha de cada reserva
461                $cf=$calendario->Fechas($anno_c,$mes_desde,$mes_hasta,$rs->campos["meses"],$rs->campos["diario"],$rs->campos["dias"],$rs->campos["semanas"]);
462                $fechas_reservas=explode(";",$cf);
463                for ($i=0;$i<sizeof($fechas_reservas)-1;$i++){
464                                list($auxdia,$auxmes,$auxanno)=explode("/",$fechas_reservas[$i]);
465                                $auxfecha=mktime(0, 0, 0, $auxmes,$auxdia, $auxanno);
466                                if($auxfecha>=$fechaminima &&  $auxfecha<=$fechamaxima){
467                                        $swr=true;
468                                        $Jreserva=$calendario->juliana($fechas_reservas[$i]);
469                                        $idx=$Jreserva-$JDif;
470                                        // Cálculo de los minutos
471                                        $sOcupacion=CalculaMinutos($rs);
472                                        if (!isset($TBfechas[$idx])) $TBfechas[$idx]=0;
473                                        if (!isset($TOTfechas[$idx])) $TOTfechas[$idx]=0;
474                                        $TBfechas[$idx]+=$sOcupacion;
475                                        $TOTfechas[$idx]+=$sOcupacion;
476                                }
477                }
478                if($swr)
479                        $cadenaXML.=TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c);
480                $rs->Siguiente();
481        }
482        $rs->Cerrar();
483        return($cadenaXML);
484}
485//________________________________________________________________________________________________________
486function TomaReserva($rs,$mes_desde,$mes_hasta,$anno_c){
487        global $TbMsg;
488        global $calendario;
489        global $RESERVA_CONFIRMADA;
490        global $RESERVA_PENDIENTE;
491        global $RESERVA_DENEGADA;
492        global $EJECUCION_RESERVA;
493        global $TBfechas;
494        global $sumahoras;
495        global $JDif;
496
497         $AuxcadenaXML="";
498
499        $tbimg[$RESERVA_CONFIRMADA]='../images/iconos/confirmadas.gif';
500        $tbimg[$RESERVA_PENDIENTE]='../images/iconos/pendientes.gif';
501        $tbimg[$RESERVA_DENEGADA]='../images/iconos/denegadas.gif';
502
503        $tbampm[0]="a.m.";
504        $tbampm[1]="p.m.";
505
506        // Descripción de la reserva
507        $AuxcadenaXML.='<RESERVAS ';
508        // Atributos           
509        $AuxcadenaXML.=' imagenodo="../images/iconos/reservas.gif"';
510
511        // Construye tabla de ocupación
512       
513        $AuxcadenaXML.=' infonodo="%3CIMG src='.$tbimg[$rs->campos["estado"]].'%3E&nbsp;%3Cb%3E'.$rs->campos["descripcion"].' %3C/b%3E';
514        $AuxcadenaXML.='&nbsp;(%3Cb%3E'.$TbMsg[15].":%3C/b%3E".$anno_c.')"';
515
516        $AuxcadenaXML.=' nodoid=reserva-'.$rs->campos["idreserva"];
517        $AuxcadenaXML.=' colornodo='."#000000";
518        $AuxcadenaXML.=' fondonodo='."#EEEECC;";
519        $AuxcadenaXML.='>';
520
521        $AuxcadenaXML.='<OCUPACION ';
522        // Atributos           
523        $AuxcadenaXML.=' imagenodo="../images/iconos/nada.gif"';
524        //___________________________________________________________________________
525        $HTMLannos="<TABLE><TR>";
526                for ($i=$mes_desde;$i<=$mes_hasta;$i++){
527                                if($i%7==0)     $HTMLannos.="</TR><TR>";
528                                $HTMLannos.='<TD style="BACKGROUND-COLOR:#FFFFFF" valign=top>';
529                                $HTMLannos.=$calendario->JMesAnno($i,$anno_c,$JDif,$TBfechas,$sumahoras);
530                                $HTMLannos.='</TD>';
531                }
532        $HTMLannos.="</TR></TABLE>";
533        //___________________________________________________________________________
534        $AuxcadenaXML.=' infonodo='.urlencode($HTMLannos);
535        $AuxcadenaXML.=' nodoid=opcupacion';
536        $AuxcadenaXML.=' colornodo='."#000000";
537        $AuxcadenaXML.=' fondonodo='."#FFFFFF;";
538        $AuxcadenaXML.='>';
539        $AuxcadenaXML.='</OCUPACION>';
540
541/*
542        $AuxcadenaXML.='<RESERVA ';
543                // Atributos           
544        $AuxcadenaXML.=' imagenodo="../images/iconos/carpeta.gif"';
545        $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[30].':%3C/b%3E "';
546        $AuxcadenaXML.=' nodoid=reserva';
547        $AuxcadenaXML.=' colornodo='."#000000";
548        $AuxcadenaXML.='>';
549*/
550
551// Cuestion Ocupación
552                $hexhoradesde=$rs->campos["horasini"];
553                $minutosdesde=$rs->campos["minutosini"];
554                if($minutosdesde==0) $minutosdesde="00";
555                $minutosdesde.=" ".$tbampm[$rs->campos["ampmini"]];
556                $hexhorahasta=$rs->campos["horasfin"];
557                $minutoshasta=$rs->campos["minutosfin"];
558                if($minutoshasta==0) $minutoshasta="00";
559                $minutoshasta.=" ".$tbampm[$rs->campos["ampmfin"]];
560                $cont=0;
561                while($hexhoradesde>0){
562                        $cont++;
563                        $hexhoradesde=$hexhoradesde>>1;
564                }
565                $horadesde=$cont-1;
566                $cont=0;
567                while($hexhorahasta>0){
568                        $cont++;
569                        $hexhorahasta=$hexhorahasta>>1;
570                }
571                $horahasta=$cont-1;
572
573                $mulmin=floor($minutosdesde/15);
574                $currentminutos=$mulmin*15;
575                $CntDia[(int)$rs->campos["ampmini"]][(int)$horadesde][(int)$currentminutos]=1;
576                $mulmin=floor($minutoshasta/15);
577                $currentminutos=$mulmin*15;
578                $CntDia[(int)$rs->campos["ampmfin"]][(int)$horahasta][(int)$currentminutos]=0;
579
580                $AuxcadenaXML.='<OCUPACION ';
581                // Atributos           
582                $AuxcadenaXML.=' imagenodo="../images/iconos/reloj.gif"';
583                $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[19].':%3C/b%3E '.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta.'"';
584                $AuxcadenaXML.=' nodoid=opcupacion-'.$horadesde.":".$minutosdesde." - ".$horahasta.":".$minutoshasta;
585                $AuxcadenaXML.=' colornodo='."#000000";
586                $AuxcadenaXML.=' fondonodo='."#FBECFA;";
587                $AuxcadenaXML.='>';
588                $AuxcadenaXML.='</OCUPACION>';
589
590                $idaula=$rs->campos["idaula"];
591                $nombreaula=$rs->campos["nombreaula"];
592                $AuxcadenaXML.='<AULA ';
593                        // Atributos           
594                $AuxcadenaXML.=' imagenodo="../images/iconos/aula.gif"';
595                $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[24].':%3C/b%3E '.$nombreaula.'"';;
596                $AuxcadenaXML.=' nodoid=aula-'.$rs->campos["idaula"];
597                $AuxcadenaXML.=' colornodo='."#000000";
598                $AuxcadenaXML.=' fondonodo='."#FBECFA;";
599                $AuxcadenaXML.='>';
600                $AuxcadenaXML.='</AULA>';
601
602                $nombreimagen=$rs->campos["nombreimagen"];
603                if(empty($nombreimagen) ) $nombreimagen=$TbMsg[23];
604                // Descripción de la imagen a restaurar
605                $AuxcadenaXML.='<IMAGEN ';
606                // Atributos           
607                $AuxcadenaXML.=' imagenodo="../images/iconos/imagenes.gif"';
608                $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[20].':  %3C/b%3E'.$nombreimagen.'"';
609                $AuxcadenaXML.=' nodoid=imagen-'.$rs->campos["idimagen"];
610                $AuxcadenaXML.=' colornodo='."#000000";
611                $AuxcadenaXML.=' fondonodo='."#FBECFA;";
612                $AuxcadenaXML.='>';
613                $AuxcadenaXML.='</IMAGEN>';
614
615                $nombretarea=$rs->campos["nombretarea"];
616                if(!empty($nombretarea) ){
617                        // Descripción de la tarea a restaurar
618                        $AuxcadenaXML.='<TAREA ';
619                        // Atributos           
620                        $AuxcadenaXML.=' imagenodo="../images/iconos/tareas.gif"';
621                        $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[28].':  %3C/b%3E'.$nombretarea.'"';
622                        $AuxcadenaXML.=' nodoid=tarea-'.$rs->campos["idtarea"];
623                        $AuxcadenaXML.=' colornodo='."#000000";
624                        $AuxcadenaXML.=' fondonodo='."#FBECFA;";
625                        $AuxcadenaXML.='>';
626                        $AuxcadenaXML.='</TAREA>';
627                }
628                $nombretrabajo=$rs->campos["nombretrabajo"];
629                if(!empty($nombretrabajo) ){
630                        // Descripción del  trabajo a restaurar
631                        $AuxcadenaXML.='<TRABAJO ';
632                        // Atributos           
633                        $AuxcadenaXML.=' imagenodo="../images/iconos/trabajos.gif"';
634                        $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[29].':  %3C/b%3E'.$nombretrabajo.'"';
635                        $AuxcadenaXML.=' nodoid=trabajo-'.$rs->campos["idtrabajo"];
636                        $AuxcadenaXML.=' colornodo='."#000000";
637                        $AuxcadenaXML.=' fondonodo='."#FBECFA;";
638                        $AuxcadenaXML.='>';
639                        $AuxcadenaXML.='</TRABAJO>';
640                }
641                $AuxcadenaXML.='<EMAIL ';
642                // Atributos           
643                $AuxcadenaXML.=' imagenodo="../images/iconos/email.gif"';
644                $AuxcadenaXML.=' infonodo="%3Cb%3E'.$TbMsg[25].':%3C/b%3E&nbsp;'.$rs->campos["solicitante"].' &nbsp;(%3CA href=mailto:'.$rs->campos["email"].'%3E'.$rs->campos["email"].'%3C/A%3E)"';
645                $AuxcadenaXML.=' nodoid=email-'.$idaula;
646                $AuxcadenaXML.=' colornodo='."#000000";
647                $AuxcadenaXML.=' fondonodo='."#FBECFA;";
648                $AuxcadenaXML.='>';
649                $AuxcadenaXML.='</EMAIL>';
650
651
652        //$AuxcadenaXML.='</RESERVA> ';
653        $AuxcadenaXML.='</RESERVAS>';
654        return($AuxcadenaXML);
655}
656//________________________________________________________________________________________________________
657function CalculaMinutos($rs){
658        $hexhoradesde=$rs->campos["horasini"];
659        $hexhorahasta=$rs->campos["horasfin"];
660        $cont=0;
661        while($hexhoradesde>0){
662                $cont++;
663                $hexhoradesde=$hexhoradesde>>1;
664        }
665        $shorasini=$cont-1;
666        $cont=0;
667        while($hexhorahasta>0){
668                $cont++;
669                $hexhorahasta=$hexhorahasta>>1;
670        }
671        $shorasfin=$cont-1;
672        $sminutosini=$rs->campos["minutosini"];
673        $sminutosfin=$rs->campos["minutosfin"];
674        if($rs->campos["ampmini"]==1) $shorasini+=12;
675        if($rs->campos["ampmfin"]==1) $shorasfin+=12;
676        $socupacion=($shorasfin-$shorasini)*60+($sminutosfin-$sminutosini);
677        return($socupacion);
678}
679//________________________________________________________________________________________________________
680function RecorreGruposReservas($cmd){
681        global $AMBITO_GRUPOSRESERVAS;
682        global $LITAMBITO_GRUPOSRESERVAS;
683
684        $rs=new Recordset; 
685        $rs->Comando=&$cmd; 
686        if (!$rs->Abrir()) return; // Error al abrir recordset
687        $rs->Primero(); 
688        while (!$rs->EOF){
689                $idgrupo=$rs->campos["idgrupo"];
690                $cmd->texto="SELECT idgrupo FROM grupos WHERE grupoid=".$idgrupo ." AND tipo=".$AMBITO_GRUPOSRESERVAS;
691                RecorreGruposReservas($cmd);
692                $cmd->texto="SELECT idreserva FROM reservas WHERE  grupoid=".$idgrupo;
693                RecorreReservas($cmd);
694                $rs->Siguiente();
695        }
696        $rs->Cerrar();
697}
698//________________________________________________________________________________________________________
699function RecorreReservas($cmd){
700        global $AMBITO_RESERVAS;
701        global $LITAMBITO_RESERVAS;
702        global $cadenareservas;
703
704        $rs=new Recordset; 
705        $rs->Comando=&$cmd; 
706        if (!$rs->Abrir()) return; // Error al abrir recordset
707        $rs->Primero(); 
708        while (!$rs->EOF){
709                $idreserva=$rs->campos["idreserva"];
710                $cadenareservas.=$idreserva.",";
711                $rs->Siguiente();
712        }
713        $rs->Cerrar();
714}
715?>
Note: See TracBrowser for help on using the repository browser.