Example #1
0
 /**
  * Carga examen desde archivo csv
  */
 public function upload()
 {
     try {
         if (Input::file('file') != null && Input::file('file')->guessClientExtension() == strtolower("csv")) {
             //Guarda examen en carpeta uploads
             Input::file('file')->move(base_path() . '/uploads/', Input::file('file')->getClientOriginalName());
             $archivo = File::get(base_path() . '/uploads/' . Input::file('file')->getClientOriginalName());
             $contenido = explode(PHP_EOL, $archivo);
             $datosExamen = explode(",", $contenido[1]);
             //Crea Examen
             $examen = new Examen();
             $examen->curso = $datosExamen[0];
             $examen->titulo = $datosExamen[1];
             $examen->n_intentos = $datosExamen[2];
             $examen->duracion = $datosExamen[3];
             $examen->hora_inicio = $datosExamen[4];
             $examen->hora_fin = $datosExamen[5];
             $examen->pregunta = $datosExamen[6];
             $examen->save();
             //Crea preguntas de examen
             $contador = 0;
             foreach ($contenido as $pregunta) {
                 if ($contador >= 3) {
                     if (!empty($pregunta)) {
                         $detallePregunta = explode(",", $pregunta);
                         $pregunta = new Pregunta();
                         $pregunta->tipo_respuesta = $detallePregunta[0];
                         $pregunta->pregunta = $detallePregunta[1];
                         $pregunta->punteo = $detallePregunta[2];
                         $pregunta->porcentaje = $detallePregunta[3];
                         $pregunta->penalizacion = $detallePregunta[4];
                         $pregunta->respuesta_correcta = $detallePregunta[5];
                         $examen->preguntas()->save($pregunta);
                         //Graba opciones de seleccion multiple
                         if ($pregunta->tipo_respuesta == 'sel_mul') {
                             $respuestasSelMult = explode(";", $detallePregunta[6]);
                             foreach ($respuestasSelMult as $opcion) {
                                 $respuesta = new Respuesta();
                                 $respuesta->respuesta = $opcion;
                                 $pregunta->respuestas()->save($respuesta);
                             }
                         }
                     }
                 }
                 $contador++;
             }
             Session::flash('message', 'Examen cargado correctamente');
         } else {
             Session::flash('error', 'Extension invalida, archivo requerido ".CSV"');
         }
     } catch (\Exception $exception) {
         Session::flash('error', 'Carga de examen no se realizo correctamente');
         Log::error(__METHOD__ . "-[" . $exception->getMessage() . "] " . $exception->getTraceAsString());
     }
     return Redirect::to('exam/upload');
 }