source: admin/WebConsole/principal/programacionesaulas.php @ 9a2cda1e

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 9a2cda1e was b0dc2e4, checked in by alonso <alonso@…>, 16 years ago

git-svn-id: https://opengnsys.es/svn/trunk@489 a21b9725-9963-47de-94b9-378ad31fedc9

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