/**
  * Creates a new Departamento model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Departamento();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 public function store(Request $request)
 {
     $file = $request->file('file');
     if (is_null($request->file('file'))) {
         Session::flash('message', 'Seleccion el archivo');
         return redirect()->back();
     }
     //obtenemos el campo file obtenido por el formulario
     $nombre = $file->getClientOriginalName();
     //indicamos que queremos guardar un nuevo archivo en el disco local
     \Storage::disk('local')->put($nombre, \File::get($file));
     $facultades = $request->get('facultades');
     $falla = false;
     \Excel::load('/storage/public/files/' . $nombre, function ($archivo) use(&$falla) {
         $result = $archivo->get();
         //leer todas las filas del archivo
         foreach ($result as $key => $value) {
             $facultades = Facultad::whereNombre($value->facultad_id)->pluck('id');
             //echo $facultades."<br>";
             if (is_null($facultades)) {
                 // El campus no existe, deberia hacer algo para mitigar esto, o retornarlo al usuario ...
             }
             $var = new Departamento();
             $datos = ['nombre' => $value->nombre, 'descripcion' => $value->descripcion, 'facultad_id' => $facultades];
             $validator = Validator::make($datos, Departamento::storeRules());
             if ($validator->fails()) {
                 Session::flash('message', 'Los Departamentos ya existen o el archivo ingresado no es valido');
                 $falla = true;
             } else {
                 $var->fill($datos);
                 $var->save();
             }
         }
     })->get();
     if ($falla) {
         // Fallo la validacion de algun campus, retornar al index con mensaje
         return redirect()->route('Administrador.departamentos.index');
     }
     \Storage::delete($nombre);
     Session::flash('message', 'Los Departamentos fueron agregados exitosamente!');
     return redirect()->route('Administrador.departamentos.index');
 }
 /**
  * Updates Departamento into database
  *
  * @param Departamento $departamento
  * @param array $input
  *
  * @return Departamento
  */
 public function update($departamento, $input)
 {
     $departamento->fill($input);
     $departamento->save();
     return $departamento;
 }