prepare('Select * from fs_mihorario(:usr, :per, 3)');//Obtiene todo el calendario
$stmt->bindParam(":per", $_SESSION["periodo_id"]);
}else
$stmt = $pdo->prepare('Select * from fs_mihorario(:usr, 0, 3)');//Obtiene todo el calendario
$stmt->bindParam(":usr", $_SESSION["usuario_id"]);*/
$stmt = $pdo->prepare('Select * from fs_mihorariofull(:usr, :fecha, 3)');//Obtiene todo el calendario
$stmt->bindParam(":fecha", $fecha_ini);
$stmt->bindParam(":usr", $_SESSION["usuario_id"]);
if(!$stmt->execute()){
//$t = $stmt->errorInfo();
echo "Ocurrió un error al obtener el horario";
}else
$horario_rs = $stmt->fetchAll();
if(isset($horario_rs) && count($horario_rs) > 0){
$horaMin = horaMin($horario_rs, "Hora_inicio");
$horaMax = horaMax($horario_rs, "Hora_final");
$stmt->closeCursor();
$rs_i = 0;
$spacerArr = array(1=>0,0,0,0,0,0);
$total_tipo = array(1=>0,0,0);
$erroresArr = validaHorarios($horario_rs);
if(count($erroresArr) > 0){
foreach($erroresArr as $err){
echo '
'.$ICO["alerta"].' El horario administrativo actual se sobrepone con el bloque '.$err['nombre'].' ( '.$err['dia'].' '.$err['hora_i'].' - '.$err['hora_f'].' ) y no se puede mostrar correctamente.
';
}
echo '
Crea un horario administrativo nuevo o cancela el actual.
';
}else{
?>
assign("DIA", $dia["Dia_desc"]);
$xtpl->parse("main.header");
}
//$horas_dif = intval(date('H', strtotime($horaMax))) - intval(date('H', strtotime($horaMin)));
for($h = date('H', strtotime($horaMin)); $h <= date('H', strtotime($horaMax)) && $h < HORA_FINAL; $h++){
$xtpl->assign("HORA", date('H', strtotime($h.":00")));
$xtpl->assign("FRACCIONES", FRACCION_HORA);
$xtpl->parse("main.hora_row.hora");
for($f = 0; $f < FRACCION_HORA; $f++){
foreach($dias_rs as $dia){
if($rs_i < count($horario_rs) && date('H:i', strtotime($horario_rs[$rs_i]["Hora_inicio"])) == date('H:i', strtotime($h.":".($f * (60/FRACCION_HORA)))) && $horario_rs[$rs_i]["Dia_id"] == $dia["Dia_id"]){
$size = $horario_rs[$rs_i]["Duracion"]/(60/FRACCION_HORA);
$spacerArr[$dia["Dia_id"]] = $size -1;
$xtpl->assign("DURACION_SIZE", $size);
$xtpl->assign("COLOR", $horario_rs[$rs_i]["TipoHorario_color"]);
$xtpl->assign("TIPO", $horario_rs[$rs_i]["TipoHorario_desc"]);
$total_tipo[$horario_rs[$rs_i]["TipoHorario_id"]]+= $horario_rs[$rs_i]["Duracion"]/60;
$salon = "";
do{
if($horario_rs[$rs_i]["Salon_desc"] != "") $salon = "Salón: ".$horario_rs[$rs_i]["Salon_desc"];
else if($horario_rs[$rs_i]["Materia_desc"] != "") $salon = "
Pendiente";
$xtpl->assign("MATERIA", $horario_rs[$rs_i]["Materia_desc"]);
$grupo = "";
//if($_SESSION["nivel_id"] == 1)
$grupo = $horario_rs[$rs_i]["Grupo_desc"]." ".$horario_rs[$rs_i]["Carrera_prefijo"];
//else
//$grupo = $horario_rs[$rs_i]["Grupo_desc"];
$xtpl->assign("GRUPO", $grupo);
if($horario_rs[$rs_i]["Materia_desc"] != "")
$xtpl->parse("main.hora_row.td.td_mihorario.texto");
$rs_i++;
}while($rs_i < count($horario_rs) && date('H:i', strtotime($horario_rs[$rs_i-1]["Hora_inicio"])) == date('H:i', strtotime($horario_rs[$rs_i]["Hora_inicio"])) && $horario_rs[$rs_i]["Dia_id"] == $dia["Dia_id"]);
$xtpl->assign("SALON", $salon);
$min = $f*(60/FRACCION_HORA);
if($min < 10) $min = "0".$min;
$xtpl->assign("MIN", $min);
$xtpl->parse("main.hora_row.td.td_mihorario");
}else{
if(!isset($spacerArr[$dia["Dia_id"]]) || $spacerArr[$dia["Dia_id"]] == 0)
$xtpl->parse("main.hora_row.td.td_vacio");
else
$spacerArr[$dia["Dia_id"]]--;
}
$xtpl->parse("main.hora_row.td");
}
$xtpl->parse("main.hora_row");
}
}
$xtpl->parse("main");
$stmt = $pdo->prepare('Select * from fs_tipohorario(NULL, NULL)');
$stmt->execute();
$tipohorarioAll_rs = $stmt->fetchAll();
$stmt->closeCursor();
if(count($tipohorarioAll_rs)>0){
?>
out("main");
?>
No hay horarios aprobados";
}?>