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'); } }