0){ $insignias = array_column($registros, 'insignia_id'); $eventos = EventoInsignia::getDatosEventos($pdo, $_POST['month'], $_POST['year']); $eventos = depuraEventosAnteriores($eventos, $insignias); } if (count($eventos) == 0) { $return['html'] = '


NOparticipaste en ningún evento de éste mes
'; } else { $html = ''; if (count($eventos) > 1) { reset($eventos); while ($evento = current($eventos)) { $index = key($eventos); $fechas = EventoInsignia::getFechasRomanizadas($evento['fechas'], $evento['periodicidad'], $_POST['year'] . '-' . Fechas::dosDigitos($_POST['month']), true); $eventos[$index]['texto'] = $fechas['texto']; $eventos[$index]['horario'] = $fechas['horario']; $eventos[$index]['horarioTemp'] = $fechas['horarioTemp']; next($eventos); } usort($eventos, function($a, $b) { $retval = $a['dia'] <=> $b['dia']; if ($retval == 0) { $retval = $a['horarioTemp'] <=> $b['horarioTemp']; } return $retval; }); } else { $fechas = EventoInsignia::getFechasRomanizadas($eventos[0]['fechas'], $eventos[0]['periodicidad'], $_POST['year'] . '-' . Fechas::dosDigitos($_POST['month']), true); $eventos[0]['texto'] = $fechas['texto']; $eventos[0]['horario'] = $fechas['horario']; $eventos[0]['horarioTemp'] = $fechas['horarioTemp']; } foreach($eventos as $evento){ $insignia = EventoInsignia::getDatosInsignia($pdo, $evento['evento_id']); $registro = EventoInsignia::getRegistroEvento($pdo, $_SESSION['usuario_id'], $evento['insignia_id']); if (count($registro) == 1) { $registro = $registro[0]; $botones = getEstatus($registro); $html .= generaEvento($evento['insignia_id'], $evento['titulo'], $insignia['InsigniaTipo_desc'], $insignia['InsigniaTipo_color'], $evento['texto'], $evento['dia'], $fechas['horario'], $botones); } } if (!empty($html)) $return['html'] = '
' . $html . '
'; else $return['error'] = 'No fue posible generar los eventos'; } } else { $eventos = EventoInsignia::getDatosEventos($pdo, $_POST['month'], $_POST['year']); if (count($eventos) == 0){ $return['html'] = '


AúnNOhay eventos programados
'; } else { $html = ''; if (count($eventos) > 1) { while ($evento = current($eventos)) { $index = key($eventos); $fechas = EventoInsignia::getFechasRomanizadas($evento['fechas'], $evento['periodicidad'], $_POST['year'] . '-' . Fechas::dosDigitos($_POST['month']), true); $eventos[$index]['texto'] = $fechas['texto']; $eventos[$index]['horario'] = $fechas['horario']; $eventos[$index]['horarioTemp'] = $fechas['horarioTemp']; next($eventos); } usort($eventos, function($a, $b) { $retval = $a['dia'] <=> $b['dia']; if ($retval == 0) { $retval = $a['horarioTemp'] <=> $b['horarioTemp']; } return $retval; }); } else { $fechas = EventoInsignia::getFechasRomanizadas($eventos[0]['fechas'], $eventos[0]['periodicidad'], $_POST['year'] . '-' . Fechas::dosDigitos($_POST['month']), true); $eventos[0]['texto'] = $fechas['texto']; $eventos[0]['horario'] = $fechas['horario']; $eventos[0]['horarioTemp'] = $fechas['horarioTemp']; } foreach($eventos as $evento){ $insignia = EventoInsignia::getDatosInsignia($pdo, $evento['evento_id']); $registro = EventoInsignia::getRegistroEvento($pdo, $_SESSION['usuario_id'], $evento['insignia_id']); if (count($registro) == 1) $registro = $registro[0]; $botones = getBotones($insignia, $evento, $registro); $html .= generaEvento($evento['insignia_id'], $evento['titulo'], $insignia['InsigniaTipo_desc'], $insignia['InsigniaTipo_color'], $evento['texto'], $evento['dia'], $evento['horario'], $botones, $evento['detalle']); } if (!empty($html)) $return['html'] = '
' . $html . '
'; else $return['error'] = 'No fue posible generar los eventos'; } } break; case 2://Inscripcion a evento $_POST['insignia'] = filter_var($_POST['insignia'], FILTER_SANITIZE_NUMBER_INT); $stmt = $pdo->prepare('SELECT * FROM alu_fi_inscripcionevento(:Insignia, :Usuario)'); $stmt->bindParam(':Insignia', $_POST['insignia']); $stmt->bindParam(':Usuario',$_SESSION['usuario_id']); if(!$stmt->execute()){ $return['error'] = 'No fue posible inscribirte al evento '; print_r($stmt->errorInfo()); }else{ $return['msg'] = '¡Felicidades!'; $return['ok'] = 'Te has inscrio a '; } $stmt->closeCursor(); $stmt = null; break; case 3://Desinscripcion de evento $_POST['insignia'] = filter_var($_POST['insignia'], FILTER_SANITIZE_NUMBER_INT); $registro = EventoInsignia::getRegistroEvento($pdo, $_SESSION['usuario_id'], $_POST['insignia']); if(isset($registro[0]['evidencia']) && !is_null($registro[0]['evidencia'])) $ejecuta = Archivos::eliminaArchivo('archivos/eventos/' . $_POST['shortname'] . '/' . $_POST['insignia'], $registro[0]['evidencia']); else $ejecuta = true; if ($ejecuta){ $stmt = $pdo->prepare('SELECT * FROM alu_fd_inscripcionevento(:Insignia, :Usuario)'); $stmt->bindParam(':Insignia', $_POST['insignia']); $stmt->bindParam(':Usuario', $_SESSION['usuario_id']); if(!$stmt->execute()){ $return['error'] = 'No fue posible desinscribirte del evento '; print_r($stmt->errorInfo()); }else{ $evidencia = $stmt->fetch(); $return['msg'] = '¡Que triste!'; $return['ok'] = 'Te has desinscrio de '; } $stmt->closeCursor(); $stmt = null; } else $return['error'] = 'No fue posible eliminar tu evidencia para desinscribirte del evento '; break; case 4://subir archivos $ruta = 'archivos/eventos/'.$_POST['shortname']; $carpeta = Archivos::existeCapeta($ruta); if(!$carpeta)//busca carpeta y la crea si no existe $carpeta = Archivos::creaCarpeta($ruta); if($carpeta) { $ruta .= '/'.$_POST['insignia']; $carpeta = Archivos::existeCapeta($ruta);//busca carpeta y la crea si no existe if(!$carpeta) //busca carpeta y la crea si no existe $carpeta = Archivos::creaCarpeta($ruta); if($carpeta) {//si existe o se creo la carpeta $nombre = "evidencia_" . $_SESSION['usuario_id'] . "_" . uniqid() . substr($_FILES['archivo']['name'][0], strrpos($_FILES['archivo']['name'][0], '.')); if(Archivos::agregaArchivo($_FILES['archivo']['tmp_name'][0], $ruta, $nombre)) { $stmt = $pdo->prepare('SELECT * FROM alu_fu_insigniaevidencia(:Insignia, :Usuario, :Evidencia)'); $stmt->bindParam(':Insignia', $_POST['insignia']); $stmt->bindParam(':Usuario', $_SESSION['usuario_id']); $stmt->bindParam(':Evidencia', $nombre); if(!$stmt->execute()){ $return['error'] = 'No fue posible subir el archivo'; print_r($stmt->errorInfo()); Archivos::eliminaArchivo($ruta, $nombre); }else{ $return['ok'] = 'El archivo se subió correctamente'; } $stmt->closeCursor(); $stmt = null; } else $return['error'] = 'No fue posible cargar el archivo'; } else $return['error'] = 'No fue posible acceder a la carpeta del evento'; } else $return['error'] = 'No fue posible acceder a la carpeta principal'; break; } } $return['json'] = json_encode($return); echo json_encode($return); function depuraEventosAnteriores($eventos, $insignias){ //$eliminar = array(); while ($evento = current($eventos)) { if (!in_array($evento['insignia_id'],$insignias)) { $index = key($eventos); unset($eventos[$index]); } next($eventos); } return $eventos; } function generaEvento($insignia_id, $titulo, $tipo, $color, $fechas, $dia, $horario, $botones, $detalle = null){ $html = '

' . $dia . '

' . $horario . '
' . $tipo . ':' . $titulo . ''; if (!is_null($detalle)) $html .= ''; $html .= '
' . $fechas. '
' . $botones . '
'; if (!is_null($detalle)) $html .= '
Detalles del Evento
' . $detalle . '
'; $html .= '
'; return $html; } function getEstatus($registro){ $html = ''; switch (strtoupper($registro['estado'])){ case 'INSCRITO': $html .= '
Inscrito al evento
'; break; case 'RECHAZADO': $html .= '
Insignia/Inscripción Rechazada
'; break; case 'AUTORIZADO': $html .= '
Insignia/Inscripción Autorizada
'; break; case 'COMPLETADO': $html .= '
Insignia Asignada
'; break; } if (!is_null($registro['comentario'])) $html .= '
' . $registro['comentarios'] . '
'; return $html; } function getBotones($insignia, $evento, $registro){ $html = ''; $hoy = strtotime(date('Y-m-d h:i:s')); if(!isset($registro['estado'])) {//si el alumno no esta inscrito if (!is_null($insignia['InsigniaGeneral_inscripciones_inicial'])){ if ($hoy >= strtotime($insignia['InsigniaGeneral_inscripciones_inicial']) && $hoy <= strtotime($insignia['InsigniaGeneral_inscripciones_final'])){ $html .= ''; } else { if ($hoy < strtotime($insignia['InsigniaGeneral_inscripciones_inicial'])) { $html .= ''; } else { $html .= ''; } } } else { $html .= ''; } } else {//si esta inscrito $html .= ''; } if(isset($registro['estado']) && $insignia['Insignia_hasEvidencia']) { if (!$registro['evidencia']) {//si el evento necesita evidencia y no se ha subido if (is_null($insignia['Insignia_evidencia_desc'])) $insignia['Insignia_evidencia_desc'] = ''; $html .= ''; } else { $html .= ' Ver Evidencia Cargada '; } } return $html; }