public function actionRegistrarParvulos() { $params = $this->bodyRequest(); $parvulos = $params['parvulos']; $fecha = $params['fecha']; $asistenciaModel = Asistencia::model()->findByAttributes(array('fecha' => $fecha)); if ($asistenciaModel == null) { $asistenciaModel = new Asistencia(); $asistenciaModel->fecha = $fecha; if (!$asistenciaModel->save()) { $this->sendResponse("No se pudo guardar asistencia model", 500); } } $error = false; foreach ($parvulos as $parvulo) { $id_parvulo_errores = array(); $relacionModel = ParvuloAsistencia::model()->findByAttributes(array('id_asistencia' => $asistenciaModel->id_asistencia, 'id_parvulo' => $parvulo['id_parvulo'])); if ($parvulo['presente'] == "1" && $relacionModel == null) { $relacionModel = new ParvuloAsistencia(); $relacionModel->id_asistencia = $asistenciaModel->id_asistencia; $relacionModel->id_parvulo = $parvulo['id_parvulo']; if (!$relacionModel->save()) { $error = true; $id_parvulo_errores[] = $parvulo['id_parvulo']; } } else { if ($parvulo['presente'] == "0" && $relacionModel != null) { $relacionModel->delete(); $hayOtraRelacion = ParvuloAsistencia::model()->findByAttributes(array('id_asistencia' => $asistenciaModel->id_asistencia)); if ($hayOtraRelacion == null) { $asistenciaModel->delete(); } } } } if (!$error) { $this->sendResponse("OK"); } else { $this->sendResponse(array("mensaje" => "No se pudieron guardar los siguientes ids_parvulo", "ids_parvulos" => $id_parvulo_errores), 500); } }
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_create_evento() { 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_nuevo_evento', $data["permisos"])) { // Validate the info, create rules for the inputs $attributes = array('nombre' => 'Título del Evento', 'fecha_evento' => 'Fecha del Evento', 'idcolegios' => 'Colegio', 'direccion' => 'Dirección Exacta', 'voluntarios' => 'Voluntarios', 'latitud' => 'Punto en el Mapa'); $messages = array(); $rules = array('nombre' => 'required|alpha_spaces|min:2|max:100', 'fecha_evento' => 'required', 'idcolegios' => 'required', 'direccion' => 'required|max:100', 'voluntarios' => 'required', 'latitud' => 'required'); // Run the validation rules on the inputs from the form $validator = Validator::make(Input::all(), $rules, $messages, $attributes); // If the validator fails, redirect back to the form if ($validator->fails()) { return Redirect::to('eventos/create_evento')->withErrors($validator)->withInput(Input::all()); } else { /* Primero creo el evento */ $evento = new Evento(); $evento->nombre = Input::get('nombre'); $evento->fecha_evento = date('Y-m-d H:i:s', strtotime(Input::get('fecha_evento'))); //$evento->idtipo_eventos = Input::get('idtipo_eventos'); $evento->direccion = Input::get('direccion'); $evento->latitud = Input::get('latitud'); $evento->longitud = Input::get('longitud'); $evento->idperiodos = Input::get('idperiodos'); $evento->save(); /* Creo los puntos de reunion */ if (!empty(Input::get('puntos_reunion'))) { foreach (Input::get('puntos_reunion') as $punto_reunion) { $punto_reunion_evento = new PuntoEvento(); $punto_reunion_evento->idpuntos_reunion = $punto_reunion; $punto_reunion_evento->ideventos = $evento->ideventos; $punto_reunion_evento->save(); } } /* Creo las asistencias de los usuarios */ foreach (Input::get('voluntarios') as $voluntario) { $asistencia = new Asistencia(); $asistencia->asistio = 0; $asistencia->idusers = $voluntario; $asistencia->ideventos = $evento->ideventos; $asistencia->save(); } /* Creo las asistencias de los niños */ $ninhos = Ninho::getNinhosPorColegio(Input::get('idcolegios'))->get(); foreach ($ninhos as $ninho) { $asistencia_ninho = new AsistenciaNinho(); $asistencia_ninho->idninhos = $ninho->idninhos; $asistencia_ninho->ideventos = $evento->ideventos; $asistencia_ninho->save(); } /* Envio las notificaciones via e-mail a los voluntarios */ $emails_voluntarios = Asistencia::getUsersPorEvento($evento->ideventos)->get(); $emails = array(); foreach ($emails_voluntarios as $email_voluntario) { $emails[] = $email_voluntario->email; } Mail::send('emails.eventRegistration', array('evento' => $evento), function ($message) use($emails, $evento) { $message->to($emails)->subject('Tienes un nuevo evento de AFI Perú.'); }); // Llamo a la función para registrar el log de auditoria $descripcion_log = "Se creó el evento con id {{$evento->ideventos}}"; Helpers::registrarLog(3, $descripcion_log); Session::flash('message', 'Se registró correctamente el evento.'); return Redirect::to('eventos/create_evento'); } } 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'); } }
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'); } }