public function logout()
 {
     // Llamo a la función para registrar el log de auditoria
     $descripcion_log = "Se cerró sesión";
     Helpers::registrarLog(2, $descripcion_log);
     // Cierro la sesion del usuario
     Auth::logout();
     Session::flush();
     return Redirect::to('/');
 }
 public function submit_registrar_pagos()
 {
     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_registrar_pago', $data["permisos"])) {
             $rules = array('comprobante' => 'required|numeric', 'banco' => 'required|alpha_spaces|min:2|max:100');
             $validator = Validator::make(Input::all(), $rules);
             $url = "padrinos/list_registrar_pagos";
             if ($validator->fails()) {
                 return Redirect::to($url)->withErrors($validator);
             } else {
                 $data["search"] = null;
                 $idcalendario_pagos = Input::get('idcalendario_pagos');
                 $num_comprobante = Input::get('comprobante');
                 $banco = Input::get('banco');
                 $pago = CalendarioPago::find($idcalendario_pagos);
                 $pago->fecha_pago = date("Y-m-d");
                 $pago->banco = $banco;
                 $pago->num_comprobante = $num_comprobante;
                 $pago->aprobacion = null;
                 $pago->save();
                 $descripcion_log = "Se registró el pago con id {{$pago->idcalendario_pagos}}";
                 Helpers::registrarLog(3, $descripcion_log);
                 return Redirect::to($url);
             }
         } 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');
     }
 }
 public function submit_aprove_proyecto()
 {
     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_proyecto', $data["permisos"])) {
             $selected_ids = Input::get('selected_id');
             $idconcursos = Input::get('idconcursos');
             $selected_ids = $selected_ids[0];
             $proyectos = Proyecto::SearchProyectosByIdConcurso($idconcursos)->get();
             foreach ($proyectos as $proyecto) {
                 if ($proyecto->idproyectos == $selected_ids) {
                     $proyecto->aprobacion = 1;
                     $proyecto->save();
                     // Llamo a la función para registrar el log de auditoria
                     $descripcion_log = "Se aprobó el proyecto con id {{$proyecto->idproyectos}}";
                     Helpers::registrarLog(4, $descripcion_log);
                 } else {
                     $proyecto->aprobacion = 2;
                     $proyecto->save();
                 }
             }
             return Response::json(array('success' => true, 'proyecto' => $proyecto), 200);
         } else {
             return Response::json(array('success' => false), 200);
         }
     } else {
         return Response::json(array('success' => false), 200);
     }
 }
 public function submit_mi_cuenta()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         // Validate the info, create rules for the inputs
         $attributes = array('idtipo_identificacion' => 'Tipo de identificación', 'num_documento' => 'Número de Documento', 'email' => 'E-mail', 'nombres' => 'Nombres', 'apellido_pat' => 'Apellido Paterno', 'apellido_mat' => 'Apellido Materno', 'fecha_nacimiento' => 'Fecha de nacimiento', 'direccion' => 'Dirección', 'telefono' => 'Teléfono', 'celular' => 'Celular');
         $messages = array();
         $rules = array('idtipo_identificacion' => 'required', 'num_documento' => 'numeric|digits_between:8,16|unique:users', 'email' => 'email|max:100|unique:users', 'nombres' => 'required|alpha_spaces|min:2|max:100', 'apellido_pat' => 'required|alpha_spaces|min:2|max:100', 'apellido_mat' => 'required|alpha_spaces|min:2|max:100', 'direccion' => 'required|max:150', 'telefono' => 'numeric|digits_between:7,20', 'celular' => 'numeric|digits_between:7,20');
         // 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("user/mi_cuenta")->withErrors($validator)->withInput(Input::all());
         } else {
             $persona = Persona::find($data["user"]->idpersona);
             $persona->nombres = Input::get('nombres');
             $persona->apellido_pat = Input::get('apellido_pat');
             $persona->apellido_mat = Input::get('apellido_mat');
             if (!empty(Input::get('fecha_nacimiento'))) {
                 $persona->fecha_nacimiento = date('Y-m-d H:i:s', strtotime(Input::get('fecha_nacimiento')));
             }
             $persona->direccion = Input::get('direccion');
             $persona->telefono = Input::get('telefono');
             $persona->celular = Input::get('celular');
             $persona->latitud = Input::get('latitud');
             $persona->longitud = Input::get('longitud');
             $persona->save();
             $password = Input::get('password');
             $user = User::find($data["user"]->id);
             if (!empty(Input::get('email'))) {
                 $user->email = Input::get('email');
             }
             if (!empty($password)) {
                 $user->password = Hash::make($password);
             }
             if (!empty(Input::get('num_documento'))) {
                 $user->num_documento = Input::get('num_documento');
             }
             $user->idtipo_identificacion = Input::get('idtipo_identificacion');
             $user->save();
             // Llamo a la función para registrar el log de auditoria
             $descripcion_log = "Editó su información de usuario";
             Helpers::registrarLog(4, $descripcion_log);
             Session::flash('message', 'Se editó correctamente la información.');
             return Redirect::to("user/mi_cuenta");
         }
     } else {
         return View::make('error/error');
     }
 }
 public function render_edit_precolegio($id = null)
 {
     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_colegio', $data["permisos"]) && $id) {
             $data["precolegio_info"] = Precolegio::searchPreColegioById($id)->get();
             if ($data["precolegio_info"]->isEmpty()) {
                 Session::flash('error', 'No se encontró al colegio.');
                 return Redirect::to('colegios/list_precolegios');
             }
             $data["precolegio_info"] = $data["precolegio_info"][0];
             //$data["perfiles"] = User::getPerfilesPorUsuario($data["user_info"]->id)->get();
             return View::make('colegios/editPreColegios', $data);
         } else {
             $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registrarLog(10, $descripcion_log);
             return View::make('error/error');
         }
     } else {
         return View::make('error/error');
     }
 }
 public function update_academic_year()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_nuevo_anho_escolar', $data["actions"])) {
             // Validate the info, create rules for the inputs
             $attributes = array('name' => 'Nombre del Año escolar', 'initial_date' => 'Fecha de Inicio', 'final_date' => 'Fecha de Fin');
             $messages = array();
             $academic_year_id = Input::get('academic_year_id');
             $rules = array('name' => 'required|alpha_num_dash|min:2|max:45|unique:academic_years,name,' . $academic_year_id . ',id,deleted_at,NULL', 'initial_date' => 'required', 'final_date' => '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
             //$convocatoria_id = Input::get('convocatoria_id');
             $url = "academic_years/edit_academic_year" . "/" . $academic_year_id;
             if ($validator->fails()) {
                 return Redirect::to($url)->withErrors($validator)->withInput(Input::all());
             } else {
                 $initial_date = date('Y-m-d H:i:s', strtotime(Input::get('initial_date')));
                 $final_date = date('Y-m-d H:i:s', strtotime(Input::get('final_date')));
                 //$interseccion_fecha_inicio = Periodo::getPeriodosIntersectionWithDatesNewPeriodEdit($fecha_inicio,$convocatoria_id)->get();
                 //$interseccion_fecha_fin = Periodo::getPeriodosIntersectionWithDatesNewPeriodEdit($fecha_fin,$convocatoria_id)->get();
                 if ($initial_date < $final_date) {
                     //if($interseccion_fecha_inicio->isEmpty() && $interseccion_fecha_fin->isEmpty()){
                     if (AcademicYear::verifyAcademicYearsIntersectionEdit($initial_date, $final_date, $academic_year_id)) {
                         $academic_year = AcademicYear::find($academic_year_id);
                         $academic_year->name = Input::get('name');
                         $academic_year->initial_date = $initial_date;
                         $academic_year->final_date = $final_date;
                         $academic_year->save();
                         Session::flash('message', 'Se editó correctamente el Año escolar.');
                         // Llamo a la función para registrar el log de auditoria
                         $log_description = "Se editó el Año escolar con id {{$academic_year->id}}";
                         Helpers::registerLog(4, $log_description);
                         return Redirect::to($url);
                     } else {
                         Session::flash('error', 'Las fechas de inicio o fin se intersectan con las fechas de otro año escolar.');
                         return Redirect::to($url)->withInput(Input::all());
                     }
                 } else {
                     Session::flash('error', 'La Fecha de Inicio debe ser menor a la Fecha de Fin.');
                     return Redirect::to($url)->withInput(Input::all());
                 }
             }
         } 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');
     }
 }
 public function submit_enable_ninho()
 {
     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_ninho', $data["permisos"])) {
             $ninho_id = Input::get('ninho_id');
             $url = "ninhos/edit_ninho/" . $ninho_id;
             $ninho = Ninho::withTrashed()->find($ninho_id);
             $ninho->restore();
             $descripcion_log = "Se habilitó el niño con id {{$ninho_id}}";
             Helpers::registrarLog(6, $descripcion_log);
             Session::flash('message', 'Se habilitó correctamente al niño.');
             return Redirect::to($url);
         } else {
             $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registrarLog(10, $descripcion_log);
             return View::make('error/error');
         }
     } else {
         return View::make('error/error');
     }
 }
 public function update_administrative_staff()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_nuevo_personal_administrativo', $data["actions"])) {
             // Validate the info, create rules for the inputs
             $attributes = array('dni' => 'DNI del Personal Administrativo', 'names' => 'Nombres del Personal Administrativo', 'lastname' => 'Apellidos del Personal Administrativo', 'birthdate' => 'Fecha de nacimiento', 'email' => 'E-mail', 'telephone' => 'Teléfono o Celular');
             $messages = array();
             $administrative_staff_id = Input::get('administrative_staff_id');
             $administrative_staff = AdministrativeStaff::find($administrative_staff_id);
             $administrative_staff_user = $administrative_staff->user;
             $rules = array('dni' => 'required|digits:8|unique:users,dni,' . $administrative_staff_user->id . ',id,deleted_at,NULL', 'names' => 'required|alpha_num_dash|max:45', 'lastname' => 'required|alpha_num_dash|max:45', 'email' => 'required|email|max:100|unique:users,email,' . $administrative_staff_user->id . ',id,deleted_at,NULL');
             // 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
             $url = "people/edit_administrative_staff" . "/" . $administrative_staff_id;
             if ($validator->fails()) {
                 return Redirect::to($url)->withErrors($validator)->withInput(Input::all());
             } else {
                 $administrative_staff_user->dni = Input::get('dni');
                 $e = Input::get('email');
                 if ($e != '') {
                     $administrative_staff_user->email = $e;
                 }
                 $administrative_staff_user->save();
                 $administrative_staff->names = Input::get('names');
                 $administrative_staff->lastname = Input::get('lastname');
                 $b = Input::get('birthdate');
                 if ($b != '') {
                     $administrative_staff->birthdate = date('Y-m-d', strtotime($b));
                 }
                 $administrative_staff->telephone = Input::get('telephone');
                 $administrative_staff->save();
                 Session::flash('message', 'Se modificó correctamente la información del Personal Administrativo.');
                 // Llamo a la función para registrar el log de auditoria
                 $log_description = "Se editó el Personal Administrativo con id {{$administrative_staff->id}}";
                 Helpers::registerLog(4, $log_description);
                 return Redirect::to($url);
             }
         } 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');
     }
 }
 public function search_logs()
 {
     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_log', $data["permisos"])) {
             $data["search"] = Input::get('search');
             $data["search_tipo_log"] = Input::get('search_tipo_log');
             $data["fecha_ini"] = Input::get('fecha_ini');
             $data["fecha_fin"] = Input::get('fecha_fin');
             $data["tipo_logs"] = TipoLog::lists('nombre', 'idtipo_logs');
             $data["logs"] = LogAuditoria::searchLogsInfo($data["search"], $data["search_tipo_log"], $data["fecha_ini"], $data["fecha_fin"])->paginate(30);
             return View::make('sistema/listLogs', $data);
         } 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');
     }
 }
 public function submit_enable_empresa()
 {
     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_listar_empresas', $data["permisos"])) {
             $empresa_id = Input::get('empresa_id');
             $url = "empresas/edit_empresa/" . $empresa_id;
             $empresa = Empresa::withTrashed()->find($empresa_id);
             $empresa->restore();
             $descripcion_log = "Se habilitó la empresa con id {{$empresa_id}}";
             Helpers::registrarLog(6, $descripcion_log);
             Session::flash('message', 'Se habilitó correctamente la empresa.');
             return Redirect::to($url);
         } else {
             $descripcion_log = "Se intentó acceder a la ruta '" . Request::path() . "' por el método '" . Request::method() . "'";
             Helpers::registrarLog(10, $descripcion_log);
             return View::make('error/error');
         }
     } else {
         return View::make('error/error');
     }
 }
 public function download_payment_document($id)
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_matricularse', $data["actions"]) || in_array('side_aprobar_matriculas_online', $data["actions"])) {
             $enrollment = Enrollment::find($id);
             $path = $enrollment->doc_path . $enrollment->doc_name;
             $headers = array('Content-Type', mime_content_type($path));
             // Llamo a la función para registrar el log de auditoria
             $log_description = "Se descargó la boleta de la Matrícula con id {{$enrollment->id}}";
             Helpers::registerLog(9, $log_description);
             return Response::download($path, basename($enrollment->doc_title), $headers);
         } 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');
     }
 }
 public function render_comentarios_ninos($id = null)
 {
     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"]) && $id) {
             $data["comentarios"] = AsistenciaNinho::getComentariosPorEvento($id)->get();
             return View::make('eventos/comentarios_ninhos', $data);
         } 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');
     }
 }
 public function submit_enable_convocatoria()
 {
     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_usuario', $data["permisos"])) {
             $idperiodo = Input::get('idperiodo');
             $url = "convocatorias/edit_convocatoria/" . $idperiodo;
             $periodo = Periodo::withTrashed()->find($idperiodo);
             $periodo->restore();
             // Llamo a la función para registrar el log de auditoria
             $descripcion_log = "Se habilitó el periodo con id {{$periodo->idperiodos}}";
             Helpers::registrarLog(6, $descripcion_log);
             Session::flash('message', 'Se habilitó correctamente la convocatoria.');
             return Redirect::to($url);
         } 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');
     }
 }
 public function download_silabus()
 {
     if (Auth::check()) {
         $data["inside_url"] = Config::get('app.inside_url');
         $data["user"] = Session::get('user');
         $data["actions"] = Session::get('actions');
         if (in_array('side_listar_niveles', $data["actions"])) {
             $document = Document::find(Input::get('document_id'));
             if (!$document) {
                 Session::flash('error', 'No se encontró el documento solicitado.');
             }
             $path = $document->path . $document->name;
             $headers = array('Content-Type', mime_content_type($path));
             // Llamo a la función para registrar el log de auditoria
             $log_description = "Se descargó el Documento con id: {{$document->id}}";
             Helpers::registerLog(9, $log_description);
             return Response::download($path, basename($document->title), $headers);
         } 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');
     }
 }
 public function submit_repostulacion()
 {
     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"])) {
             $data["user_perfil"] = null;
             $data["periodo_actual"] = null;
             $data["usuario_ya_inscrito"] = true;
             $user_periodo = new UsersPeriodo();
             $user_periodo->idusers = Input::get('user_id');
             $user_periodo->idperiodos = Input::get('idperiodos');
             $user_periodo->save();
             // Llamo a la función para registrar el log de auditoria
             $descripcion_log = "Se creó el usuario por periodo con id {{$user_periodo->idusers_periodos}}";
             Helpers::registrarLog(3, $descripcion_log);
             Session::flash('message', "Se ha registrado correctamente su postulación al nuevo período.");
             return Redirect::to('/eventos/mis_eventos');
         } else {
             return View::make('error/error');
         }
     } else {
         return View::make('error/error');
     }
 }