public function testClases_con_Asist() { try { $objeto = new Asistencia(); $objeto->setClase(null); $objeto->setAlumno(null); $objeto->guardar(); } catch (Exception $e) { return; } echo 'fallo el segundo'; }
function registrar() { include_once "../modelo/asistencia.class.php"; for ($i = 0; $i < sizeof($_POST) - 1; $i++) { $a = new Asistencia(); $a->setAlumno($_POST['alumno' . $i]['documento']); $a->setPresente(isset($_POST['alumno' . $i]['presente']) ? 1 : 0); $a->setJustificada($_POST['alumno' . $i]['justificada']); $a->guardar(); } header("Location: ../index.php"); die; }
/** * Execute the console command. * * @return mixed */ public function fire() { //Coger eventos del día siguiente $events = Evento::getNextDayEventos()->get(); foreach ($events as $e) { //Coger los gcm_regids de los voluntarios asignados al evento que pueden recibir notificaciones $registration_ids = Asistencia::getUsersToNotificate($e->ideventos)->get()->lists('gcm_token'); $title = 'AFI Perú - Evento'; $message = 'Recordatorio de evento: ' . $e->nombre . ' - ' . $e->fecha_evento; $type = 1; $m = ['title' => $title, 'message' => $message, 'type' => $type]; $response = Helpers::pushGCM($registration_ids, $m); //$this->info(var_dump($response)); } ///Coger todos los padrinos $sponsors = Padrino::getActivePadrinosPushInfo()->get(); foreach ($sponsors as $s) { //Si el padrino tiene activado el push de pagos y tiene registadro su gcm_token if ($s->push_pagos && $s->gcm_token) { //Buscar si hay una deuda pendiente para el día siguiente $fee = CalendarioPago::getCalendarioPagoPendienteNextDayByPadrino($s->idpadrinos)->first(); if ($fee) { //$this->info(var_dump($s->gcm_regid)); $title = 'AFI Perú - Padrino'; $message = 'Recordatorio de pago: ' . $fee->vencimiento; $type = 2; $m = ['title' => $title, 'message' => $message, 'type' => $type]; $response = Helpers::pushGCM(array($s->gcm_token), $m); //$this->info(var_dump($response)); } } } }
public function actionGetParvulos() { $fecha = $this->bodyRequest()['fecha']; if (!isset($fecha)) { $this->sendResponse("No se recibio parametro fecha", 500); } $asistenciaModel = Asistencia::model()->findByAttributes(array('fecha' => $fecha)); // $ids_parvulos = ParvuloAsistencia::model()->findByAttributes( array('id_asistencia' => $asistenciaModel->id_asistencia) ); // $parvulos = Parvulo::model()->findByAttributes([]); if ($asistenciaModel != null) { $this->sendResponse($asistenciaModel->parvulos); } else { // $asistenciaModel = new Asistencia; // $asistenciaModel->fecha = $this->sendResponse(array()); } }
public function index() { $auth_token = \Request::header('authorization'); $user = \User::where('auth_token', '=', $auth_token)->first(); // obtener los permisos del usuario $idpermisos = \User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos'); // obtener los eventos de acuerdo a los permisos del usuario $eventos = []; if (in_array(12, $idpermisos)) { // tiene el permiso "listar (todos los) eventos" $eventos = \Evento::all(); } elseif (in_array(15, $idpermisos)) { // tiene el permiso "mis eventos" $eventos = \Asistencia::getEventosPorUser($user->id)->get(); } $response = []; foreach ($eventos as $e) { // obtener los documentos del evento $docs = \DocumentosEvento::getDocumentosPorEvento($e->ideventos)->get(); foreach ($docs as $d) { // obtener hace cuantos dias se subio el documento $from = new \DateTime(); $from->setTimestamp(strtotime($d->created_at)); $to = new \DateTime('today'); $dias = $from->diff($to)->d; // obtener los usuarios asignados al documento (al evento) $users = []; $usuarios = \Asistencia::getUsersPorEvento($e->ideventos)->get(); foreach ($usuarios as $u) { $perfiles = \User::getPerfilesPorUsuario2($u->id)->get(); $perfiles_array = []; foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } // verificar si el usuario ha visto el documento $visto = \Visualizacion::getVisualizacionesPorUserPorEventoPorDocumento($u->id, $e->ideventos, $d->iddocumentos)->first(); $users[] = ['id' => $u->id, 'names' => $u->nombres, 'last_name' => $u->apellido_pat, 'username' => $u->num_documento, 'profiles' => $perfiles_array, 'seen' => $visto ? 1 : 0]; } $response[] = ['id' => $d->iddocumentos, 'name' => $d->titulo, 'url' => $d->ruta . $d->nombre_archivo, 'upload_date' => 'Hace ' . $dias . ' día' . ($dias != 1 ? 's' : '') . ', ' . date('h:i A', $from->getTimestamp()), 'size' => $d->peso . ' KB', 'users' => $users]; } } return \Response::json($response, 200); }
static function asistencias() { //MMETODO ESTATICO QUE RETORNA TODOS LOS asistenciaS DE LA BASE $as = array(); $conn = new Conexion(); $sql = 'SELECT id_asistencia FROM asistencia'; $consulta = $conn->prepare($sql); $consulta->setFetchMode(PDO::FETCH_ASSOC); try { $consulta->execute(); $results = $consulta->fetchall(); foreach ($results as $r) { $a = Asistencia::asistencia($r['id_asistencia']); array_push($as, $a); } } catch (PDOException $e) { throw new Exception("Ocurrio un error: " . $e->getMessage()); } return $as; }
case 'registrar asistencia': $codigos = explode(',', $_POST['codigos']); $asistencias = explode(',', $_POST['asistencias']); for ($i = 0; $i < count($codigos); $i++) { $codigo = $codigos[$i]; $presente = 1; $licencia = 0; if ($asistencias[$i] == 'ausente') { $presente = 0; } else { if ($asistencias[$i] == 'licencia') { $presente = 0; $licencia = 1; } } $asistencia = new Asistencia($registro, $codigo, $presente, $licencia); $asistencia->insertarBD(); } break; case 'registrar reportes': $roles = explode(',', $_POST['roles']); $actividades = explode(',', $_POST['actividades']); $hechos = explode(',', $_POST['hechos']); $resultados = explode(',', $_POST['resultados']); $conclusiones = explode(',', $_POST['conclusiones']); $observaciones = explode(',', $_POST['observaciones']); for ($i = 0; $i < count($roles); $i++) { $rol = $roles[$i]; $actividad = $actividades[$i]; $hecho = 1; $resultado = $resultados[$i];
$a->listAsistenciaTutores($_tutor, $_catedra, $_fini, $_ffin); } break; case 'list_fun': $smarty->display('asistencia' . DS . 'asistencia_menubar.tpl'); $smarty->display('end_menubar.tpl'); if (!$uperms['asistencia_r']) { Elfic::cosRedirect('index2.php', MSG_NOPERM_COM); } else { $a = new Asistencia(); $a->listAsistenciaFuncionarios($_funcionario); } break; case 'setInTutor': $smarty->display('asistencia' . DS . 'asistencia_menubar.tpl'); $smarty->display('end_menubar.tpl'); if (!$uperms['asistencia_r']) { Elfic::cosRedirect('index2.php', MSG_NOPERM_COM); } else { $a = new Asistencia(); $a->setAsistenciaTutor(); } break; case 'ajax': if (!$uperms['asistencia_r']) { Elfic::cosRedirect('index2.php', MSG_NOPERM_COM); } else { include 'asistencia.ajax.php'; } break; }
public function postCrealista() { $fecha_fin = Input::get('fecha'); $fecha_fin_carbon = Carbon::parse($fecha_fin); $fecha_inicio_carbon = $fecha_fin_carbon->subDays(Input::get('tipo_lista'))->toDateString(); $lista = new Lista(); $lista->fecha_inicio = $fecha_inicio_carbon; $lista->fecha_fin = $fecha_fin; $lista->save(); $trabajadores_activos = VistaEmpleado::where('activo', 1)->count(); $trabajadores = VistaEmpleado::where('activo', 1)->get(); foreach ($trabajadores as $trabajador) { $asistencia = new Asistencia(); $asistencia->lista_id = $lista->id; $asistencia->empleado_id = $trabajador->id; $asistencia->save(); if ($trabajador->departamento_id == 2) { $bono_mtto = new BonoMtto(); $bono_mtto->asistencia_id = $asistencia->id; $bono_mtto->save(); } } return Redirect::to('personal-operativo/asistencia/' . $lista->id); }
/** * Graba las asistencias */ public function executeGrabar() { // inicializando variables $aDatosTipoasistencia = array(); // tomando los datos del formulario $division_id = $this->getRequestParameter('division_id'); $vista_id = $this->getRequestParameter('vista_id'); $d = $this->getRequestParameter('dia'); $m = $this->getRequestParameter('mes'); $y = $this->getRequestParameter('ano'); $destino = "asistencia/index?division_id={$division_id}&dia={$d}&mes={$m}&ano={$y}&vistas={$vista_id}"; if ($this->getRequestParameter('alumno_id')) { $alumno_id = $this->getRequestParameter('alumno_id'); $destino .= "&alumno_id={$alumno_id}"; } $aAsistencia = $this->getRequestParameter('asistencia'); $cantAsistencia = count($aAsistencia); if ($cantAsistencia > 0) { // tomo los tipos de asistencias $aDatosTablaTipoAsistencias = $this->getTiposasistencias(); //grabo al disco $con = Propel::getConnection(); // Propel::getConnection() try { $con->beginTransaction(); $criteria = new Criteria(); foreach ($aAsistencia as $alumno_id => $aPeriodo) { foreach ($aPeriodo as $fecha => $Tipoasistencia) { $cton1 = $criteria->getNewCriterion(AsistenciaPeer::FK_ALUMNO_ID, $alumno_id); $cton2 = $criteria->getNewCriterion(AsistenciaPeer::FECHA, $fecha); $cton1->addAnd($cton2); $criteria->addOr($cton1); } } AsistenciaPeer::doDelete($criteria); foreach ($aAsistencia as $alumno_id => $aPeriodo) { foreach ($aPeriodo as $fecha => $Tipoasistencia) { $Asistencia = new Asistencia(); $Tipoasistencia = strtoupper($Tipoasistencia); if (array_key_exists($Tipoasistencia, $aDatosTablaTipoAsistencias)) { $Asistencia->setFkAlumnoId($alumno_id); list($y, $m, $d) = split("[/. -]", $fecha); $fecha = "{$y}-{$m}-{$d}"; $Asistencia->setFecha($fecha); $Asistencia->setFkTipoasistenciaId($aDatosTablaTipoAsistencias[$Tipoasistencia][0]); $Asistencia->save(); } } } $con->commit(); } catch (PDOException $e) { $con->rollBack(); throw $e; } } return $this->redirect($destino); }
public function registrar() { $this->layout = false; //Verifica si es por metodo post if ($this->request->is('post')) { App::import('Model', 'Asistencia'); //Verifica que el docente se encuentra registrado $no_registrado = 0; $no_registrado = $this->Personal->find('count', array('conditions' => array('cedula' => $this->request->data['cedula']), 'recursive' => -1)); if ($no_registrado < 1) { $this->Session->setFlash('Disculpe, Docente no registrado. Contacte el administrador!!', 'default', array('class' => 'error')); $this->redirect(array('controller' => 'usuarios', 'action' => 'login')); } //Si existe en l docente, se realiza la verificación de horarios $asistencia_registrada = 0; //Consulta de horarios $docente = $this->Personal->find('all', array('conditions' => array('cedula' => $this->request->data['cedula']), 'recursive' => -1)); $row = $this->Personal->query('SELECT personal.id AS id, personal.cedula AS cedula, personal.nombres AS nombres, personal.apellidos AS apellidos, materias.id AS materia_id, materias.nombre AS materia_nombre, secciones.id AS seccion_id, secciones.nombre AS seccion_nombre, aulas.id AS aula_id, aulas.nombre AS aula_nombre, DAYOFWEEK( CURDATE( ) -1 ) AS dia_id, CURDATE( ) AS fecha_hoy, CURTIME( ) AS hora_hoy, ( bloques_horas.bloque - CURTIME( ) ) AS diferencia, horarios.id as horario_id, NOW() as fecha FROM personal, horarios, bloques_horas, materias, secciones, aulas WHERE personal.id = horarios.personal_id AND materias.id = horarios.materia_id AND secciones.id = horarios.seccion_id AND aulas.id = horarios.aula_id AND cedula =' . $this->request->data['cedula'] . ' AND DAYOFWEEK( CURDATE( ) -1 ) = horarios.dia_id AND bloques_horas.id = horarios.inicio AND ( bloques_horas.bloque - CURTIME( ) ) BETWEEN -6000 AND 12000'); //Verificación de registro de asistencias existente $datos_docente = $docente[0]['Personal']['full_name']; if ($row) { $asistencia_registrada = $this->Personal->query('SELECT COUNT( asistencias.id ) as asistencia FROM asistencias, horarios WHERE asistencias.horario_id = ' . $row[0]['horarios']['horario_id'] . ' AND horarios.id = asistencias.horario_id AND DATE( asistencias.fecha ) = DATE( NOW( ) )'); } else { $this->Session->setFlash('Estimado Profesor(a): ' . $datos_docente . ' No hay horario disponible!!', 'default', array('class' => 'error')); $this->redirect(array('controller' => 'usuarios', 'action' => 'login')); } //Asistencia Registrada if ($asistencia_registrada[0][0]['asistencia'] > 0) { $this->Session->setFlash('Estimado Profesor(a): ' . $datos_docente . ' Su asistencia ya fue registrada!!', 'default', array('class' => 'warning')); $this->redirect(array('controller' => 'usuarios', 'action' => 'login')); } else { //Asignamos el id del horarios $this->request->data['Asistencia']['horario_id'] = $row[0]['horarios']['horario_id']; //Activamos el estatus de la asistencia $this->request->data['Asistencia']['estatus'] = 1; $asistencia = new Asistencia(); $registro = $asistencia->save($this->request->data['Asistencia']); if ($registro) { $this->set('horarios', $row); $this->Session->setFlash('Estimado Profesor(a): ' . $datos_docente . ' Asistencia Registrada!!', 'default', array('class' => 'success')); $this->redirect(array('controller' => 'usuarios', 'action' => 'login')); } //No hay horarios disponibles } } }
public function submit_registrar_comentario() { if (Auth::check()) { $data["inside_url"] = Config::get('app.inside_url'); $data["user"] = Session::get('user'); $data["permisos"] = Session::get('permisos'); if (in_array('side_mis_eventos', $data["permisos"])) { $ideventos = Input::get('ideventos'); $asistencia = Asistencia::validarAsistencia($data["user"]->id, $ideventos)->get(); if ($asistencia->isEmpty()) { Session::flash('error', 'Lo sentimos, no tiene acceso a ver el evento solicitado.'); return Redirect::to('eventos/mis_eventos'); } $data["evento_info"] = Evento::searchEventosById($ideventos)->get(); if ($data["evento_info"]->isEmpty()) { Session::flash('error', 'No se encontró el evento.'); return Redirect::to('eventos/mis_eventos'); } $data["evento_info"] = $data["evento_info"][0]; $data["hoy"] = date("Y-m-d H:i:s"); $idasistencia_ninhos = Input::get('idasistencia_ninhos'); $idcomentarios = Input::get('idcomentarios'); $calificaciones = Input::get('calificaciones'); $comentarios = Input::get('comentarios'); for ($i = 0; $i < count($idasistencia_ninhos); $i++) { if (empty($idcomentarios[$i])) { $comentario = new Comentario(); $comentario->idusers = $data["user"]->id; $comentario->idasistencia_ninhos = $idasistencia_ninhos[$i]; $comentario->comentario = $comentarios[$i]; $comentario->calificacion = $calificaciones[$i]; $comentario->save(); } else { $comentario = Comentario::find($idcomentarios[$i]); $comentario->comentario = $comentarios[$i]; $comentario->calificacion = $calificaciones[$i]; $comentario->save(); } } // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se registraron comentarios sobre los niños en el evento con id {{$ideventos}}"; Helpers::registrarLog(3, $descripcion_log); Session::flash('message', 'Se registraron correctamente los comentarios.'); return Redirect::to('eventos/registrar_comentario/' . $ideventos); } else { // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'"; Helpers::registrarLog(10, $descripcion_log); Session::flash('error', 'Usted no tiene permisos para realizar dicha acción.'); return Redirect::to('/dashboard'); } } else { return View::make('error/error'); } }
/** * Display a listing of the resource. * * @return Response */ public function sesiones() { // obtener usuario que esta haciendo la peticion $auth_token = \Request::header('authorization'); $user = User::where('auth_token', '=', $auth_token)->first(); // obtener los permisos del usuario $idpermisos = User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos'); // obtener las sesiones de acuerdo a los permisos del usuario $sesiones = []; if (in_array(12, $idpermisos)) { // tiene el permiso "listar (todos los) eventos" $sesiones = \Evento::all(); } elseif (in_array(15, $idpermisos)) { // tiene el permiso "mis eventos" $sesiones = \Asistencia::getEventosPorUser($user->id)->get(); } $response = []; foreach ($sesiones as $sesion) { //obtener los puntos de reunion de la sesion //$idpuntos = PuntoEvento::where('ideventos', '=', $sesion->ideventos)->get()->lists('idpuntos_reunion'); //$puntos_reunion = PuntoReunion::whereIn('idpuntos_reunion', $idpuntos)->get(); //$puntos_evento = PuntoEvento::getPuntosPorEvento($sesion->ideventos)->get(); $puntos_reunion = PuntoReunion::all(); $lista_puntos = []; foreach ($puntos_reunion as $punto) { // verificar si la sesion tiene asignado el punto de reunion $punto_evento = PuntoEvento::getPuntosPorEventoXPunto($sesion->ideventos, $punto->idpuntos_reunion)->first(); $lista_puntos[] = ['id' => $punto->idpuntos_reunion, 'latitude' => (double) $punto->latitud, 'longitude' => (double) $punto->longitud, 'selected' => $punto_evento ? 1 : 0]; } //obtener los documentos de la sesion //$iddocumentos = DocumentosEvento::where('ideventos', '=', $sesion->ideventos)->get()->lists('iddocumentos'); //$documentos = Documento::whereIn('iddocumentos', $iddocumentos)->get(); $documentos = DocumentosEvento::getDocumentosPorEvento($sesion->ideventos)->get(); $lista_docs = []; foreach ($documentos as $doc) { // obtener hace cuantos dias se subio el documento $from = new \DateTime(); $from->setTimestamp(strtotime($doc->created_at)); $to = new \DateTime('today'); $dias = $from->diff($to)->d; // obtener los usuarios asignados al documento (al evento) $users = []; $usuarios = \Asistencia::getUsersPorEvento($sesion->ideventos)->get(); foreach ($usuarios as $u) { $perfiles = \User::getPerfilesPorUsuario2($u->id)->get(); $perfiles_array = []; foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } // verificar si el usuario ha visto el documento $visto = \Visualizacion::getVisualizacionesPorUserPorEventoPorDocumento($u->id, $sesion->ideventos, $doc->iddocumentos)->first(); $users[] = ['id' => $u->id, 'names' => $u->nombres, 'last_name' => $u->apellido_pat, 'username' => $u->num_documento, 'profiles' => $perfiles_array, 'seen' => $visto ? 1 : 0]; } $lista_docs[] = ['id' => $doc->iddocumentos, 'name' => $doc->titulo, 'url' => $doc->ruta . $doc->nombre_archivo, 'upload_date' => 'Hace ' . $dias . ' día' . ($dias != 1 ? 's' : '') . ', ' . date('h:i A', $from->getTimestamp()), 'size' => $doc->peso . ' KB', 'users' => $users]; } //obtener los niños asignados a la sesion $ninhos = AsistenciaNinho::getNinhosPorEvento($sesion->ideventos)->get(); $lista_ninhos = []; foreach ($ninhos as $n) { // genero $genero = null; if ($n->genero == 'm' || $n->genero == 'M') { $genero = 0; } elseif ($n->genero == 'f' || $n->genero == 'F') { $genero = 1; } // edad $from = new \DateTime($n->fecha_nacimiento); $to = new \DateTime('today'); $edad = $from->diff($to)->y; // obtener el comentario que el usuario le ha hecho al niño $ha_comentado = 0; $comentario = null; $c = Comentario::getComentarioPorUserPorNinhos($user->id, $n->idasistencia_ninhos)->first(); if ($c) { $ha_comentado = 1; $comentario = ['id' => $c->idcomentarios, 'message' => $c->comentario, 'face' => (int) $c->calificacion]; } $lista_ninhos[] = ['id' => $n->idasistencia_ninhos, 'child' => ['id' => $n->idninhos, 'names' => $n->nombres, 'last_name' => $n->apellido_pat, 'gender' => $genero, 'age' => $edad, 'sessions' => \AsistenciaNinho::where('idninhos', '=', $n->idninhos)->count(), 'joining_date' => strtotime($n->created_at)], 'commented' => $ha_comentado, 'comment' => $comentario]; } //obtener los voluntarios asignados a la sesion $voluntarios = Asistencia::getUsersPorEvento($sesion->ideventos)->get(); $lista_voluntarios = []; foreach ($voluntarios as $v) { $perfiles = User::getPerfilesPorUsuario2($v->id)->get(); $perfiles_array = array(); foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } $lista_voluntarios[] = ['id' => $v->idasistencias, 'volunteer' => ['id' => $v->id, 'names' => $v->nombres, 'last_name' => $v->apellido_pat, 'username' => $v->num_documento, 'email' => $v->email, 'profiles' => $perfiles_array], 'attended' => (bool) $v->asistio, 'rating' => (int) $v->calificacion, 'comment' => $v->comentario]; } $response[] = ['id' => $sesion->ideventos, 'name' => $sesion->nombre, 'date' => strtotime($sesion->fecha_evento), 'location' => ['latitude' => (double) $sesion->latitud, 'longitude' => (double) $sesion->longitud, 'address' => $sesion->direccion], 'meeting_points' => $lista_puntos, 'documents' => $lista_docs, 'attendance_children' => $lista_ninhos, 'attendance_volunteers' => $lista_voluntarios]; } return Response::json($response, 200); }
protected function processForm(sfWebRequest $request, sfForm $form, $celulaId = null) { $asistencia = $request->getParameter('reunion')['asistencias']; $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); $fields = $form->getFormFieldSchema()->getValue(); if ($form->isValid()) { $reunion = $form->save(); foreach ($reunion->getAsistencias() as $borrable) { $borrable->delete(); } $asistencias = explode(',', $asistencia); foreach ($asistencias as $key => $asistencia) { if ($asistencia > 0) { $source = new Asistencia(); $source->setReunionId($reunion->getId()); $source->setMiembroCelulaId($asistencia); $source->save(); } } $this->getUser()->setFlash('notice', "Reunión guardada exitosamente", true); if (isset($celulaId)) { $this->redirect('celulas/show?id=' . $celulaId); } else { $this->forward('celulas', 'index'); } } $this->getUser()->setFlash('error', "Error!!! " . $form->getErrorSchema(), true); if (isset($celulaId)) { $this->redirect('celulas/show?id=' . $celulaId); } else { $this->forward('celulas', 'index'); } }
public static function addInstanceToPool(Asistencia $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getId(); } self::$instances[$key] = $obj; } }
public function submit_asistencia_excel() { if (Auth::check()) { $data["inside_url"] = Config::get('app.inside_url'); $data["user"] = Session::get('user'); $data["permisos"] = Session::get('permisos'); if (in_array('side_reporte_asistencia', $data["permisos"])) { $data["search_periodo"] = Input::get('search_periodo_excel'); $data["search_usuario"] = Input::get('search_usuario_excel'); $data["periodos"] = Periodo::lists('nombre', 'idperiodos'); $periodo = Periodo::find($data["search_periodo"]); $eventos_asistencia = Asistencia::getEventosAsistencia()->get(); $voluntarios_data = UsersPerfil::searchVoluntariosReporteInfo($data["search_periodo"], $data["search_usuario"]); $str_table = "<table><tr><td></td><td></td><td></td><td><strong>Reporte de Asistencia</strong></td></tr></table>"; if ($periodo == null) { $str_table .= "<table><tr><td><strong>Periodo</strong></td><td>Todos</td></tr><tr></tr></table>"; } else { $str_table .= "<table><tr><td><strong>Periodo:</strong></td><td>" . $periodo->nombre . "</td></tr><tr></tr></table>"; } $str_table .= "<table border=1><tr><th>Periodo</th><th>Doc. de Identidad</th><th>Nombre</th><th>Eventos Programados</th><th>Eventos que Asistio</th><th>% Asistencia</th><th>Promedio Calificacion</th></tr>"; if ($voluntarios_data != null) { foreach ($voluntarios_data as $voluntario_data) { $eventos_total = 0; $eventos_asistidos = 0; $str_table .= "<tr><td>" . htmlentities($voluntario_data->nombre_periodo) . "</td><td>" . htmlentities($voluntario_data->num_documento) . "</td><td>" . htmlentities($voluntario_data->apellido_pat . ' ' . $voluntario_data->apellido_mat . ', ' . $voluntario_data->nombre_persona) . "</td><td>"; foreach ($eventos_asistencia as $asistencia) { if ($asistencia->idusers == $voluntario_data->id) { $str_table .= "-" . htmlentities($asistencia->nombre) . "<br>"; $eventos_total++; } } $str_table .= "</td><td>"; foreach ($eventos_asistencia as $asistencia) { if ($asistencia->idusers == $voluntario_data->id) { if ($asistencia->asistio == 1) { $str_table .= "-" . htmlentities($asistencia->nombre) . "<br>"; $eventos_asistidos++; } } } $str_table .= "</td><td>" . htmlentities(round($eventos_asistidos / $eventos_total * 100, 2)) . "%</td><td>" . htmlentities(round($voluntario_data->prom_calificaciones), 2) . "</td></tr>"; } } $str_table .= "</table>"; $filename = "reporte_asistencia" . date('Y-m-d') . ".xls"; // Show the download dialog header("Content-type: application/vnd.ms-excel; charset=utf-8"); // Let's indicate to the browser we are giving it the file header("Content-Disposition: attachment; filename=\"{$filename}\""); // Avoid the browser to save the file into it's cache header("Pragma: no-cache"); header("Expires: 0"); // Render the table echo $str_table; } else { return View::make('error/error'); } } else { return View::make('error/error'); } }