public function submit_create_reporte_padrinos()
 {
     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_reporte_padrinos', $data["permisos"])) {
             $anho = date("Y");
             $padrinos = Padrino::getPadrinosActivos($anho)->get();
             if ($padrinos->isEmpty()) {
                 Session::flash('error', 'No se encontraron padrinos asociados al año actual, no se envió ningun correo.');
                 return Redirect::to('padrinos/create_reporte_padrinos');
             }
             if (Input::hasFile('archivo')) {
                 $archivo = Input::file('archivo');
                 $rutaDestino = 'files/reportes_padrinos/';
                 $nombreArchivo = $archivo->getClientOriginalName();
                 $nombreArchivoEncriptado = Str::random(27) . '.' . pathinfo($nombreArchivo, PATHINFO_EXTENSION);
                 $peso = $archivo->getSize();
                 $uploadSuccess = $archivo->move($rutaDestino, $nombreArchivoEncriptado);
                 /* Creo el documento */
                 $documento = new Documento();
                 $documento->titulo = $nombreArchivo;
                 $documento->idtipo_documentos = 2;
                 // ¡Que viva el hardcode!
                 $documento->nombre_archivo = $nombreArchivoEncriptado;
                 $documento->peso = $peso;
                 $documento->ruta = $rutaDestino;
                 $documento->save();
                 $emails = array();
                 foreach ($padrinos as $padrino) {
                     /* Creo la relación del documento con el padrino */
                     $documentos_padrino = new DocumentosPadrino();
                     $documentos_padrino->idpadrinos = $padrino->idpadrinos;
                     $documentos_padrino->iddocumentos = $documento->iddocumentos;
                     $documentos_padrino->save();
                     $emails[] = $padrino->email;
                 }
                 /* Envio las notificaciones via e-mail a los padrinos */
                 Mail::send('emails.reportePadrinos', array('archivo' => $archivo), function ($message) use($emails) {
                     $message->to($emails)->subject('Te queremos informar la labor de AFI PERÚ.');
                 });
                 //Enviar las push notifications a los padrinos y madrinas
                 $padrinos_push = Padrino::getActivePadrinosPushInfo()->get();
                 foreach ($padrinos_push as $padrino_push) {
                     if ($padrino_push->push_reports && $padrino_push->uuid) {
                         $message = 'Te queremos informar la labor de AFI PERÚ.';
                         Helpers::pushAPNS($padrino_push->uuid, $message, 4);
                     }
                 }
                 //Enviar las push notifications (android) a los padrinos y madrinas
                 $gcm_tokens = Padrino::getPadrinosToNotificateReport($anho)->get()->lists('gcm_token');
                 $message = 'Te queremos informar la labor de AFI PERÚ.';
                 $type = 4;
                 $m = ['title' => $title, 'message' => $message, 'type' => $type];
                 Helpers::pushGCM($gcm_tokens, $m);
                 // Llamo a la función para registrar el log de auditoria
                 $descripcion_log = "Se envió el reporte con id {{$documento->iddocumentos}}";
                 Helpers::registrarLog(7, $descripcion_log);
                 Session::flash('message', 'Se envió el reporte correctamente por correo a los padrinos.');
                 return Redirect::to('padrinos/create_reporte_padrinos');
             }
         } 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');
     }
 }