source: admin/WebConsole/principal/programacionesaulas.php @ d42d7c7

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