/**
  * Displays a single Acervo model with images
  * @param integer $id
  * @return mixed
  */
 private function createOrUpdate($id = NULL, $ingreso_id = NULL, $ingreso_return = FALSE)
 {
     $model = NULL;
     $acervo_id = NULL;
     // Load Acervo ID From Model or Update ID
     $acervo = Yii::$app->request->post('Acervo');
     if (!empty($acervo) && array_key_exists('id', $acervo)) {
         $acervo_id = $acervo['id'];
     } elseif (!empty($id)) {
         $acervo_id = $id;
     }
     // Load Acervo model or Create new one
     if (!empty($acervo_id)) {
         $model = $this->findModel($acervo_id);
     } else {
         $model = new Acervo();
         $model->publicar_id = 1;
     }
     // Load Ingreso ID.
     //Request comes from Ingreso form
     if (!empty($ingreso_id)) {
         $model->ingreso_id = $ingreso_id;
         if ($model->isNewRecord) {
             $model->nroA = $ingreso_id;
         }
     }
     // Load Form data into model & Save it
     if ($model->load(Yii::$app->request->post())) {
         $dia = '';
         $dia2 = '';
         $mes = '';
         $mes2 = '';
         $anio = '';
         $anio2 = '';
         $fechaInicio = Yii::$app->request->post('fechaInicioRestauracion-acervo-fechainiciorestauracion');
         $fechaFin = Yii::$app->request->post('fechaFinRestauracion-acervo-fechafinrestauracion');
         if (strlen($fechaFin) > 0) {
             list($dia2, $mes2, $anio2) = explode("/", $fechaFin);
             $model->fechaFinRestauracion = $anio2 . '-' . $mes2 . '-' . $dia2;
         }
         if (isset($fechaInicio) and strlen($fechaInicio) > 0) {
             list($dia, $mes, $anio) = explode("/", $fechaInicio);
             $model->fechaInicioRestauracion = $anio . '-' . $mes . '-' . $dia;
             //Yii::$app->request->post('fechaFinRestauracion-acervo-fechafinrestauracion');
         }
         if (!$model->save()) {
             // exception err var_dump($model);die();or de guardado
         }
         $acervo_id = $model->id;
     }
     //var_dump(Yii::$app->request);die();
     // Save UbicacionExterna
     if ($this->saveUbicacionExterna($acervo_id, Yii::$app->request->post('UbicacionExterna'), Yii::$app->request->post('fechaInicio-ubicacionexterna-fechainicio'), Yii::$app->request->post('fechaCierre-ubicacionexterna-fechacierre'))) {
         Yii::$app->session->setFlash('success', ['type' => 'success', 'icon' => 'fa fa-users', 'message' => 'Ubicación Externa guardada exitosamente', 'title' => 'Carga de ubicación externa', 'positonY' => 'top', 'positonX' => 'left']);
     }
     // exception error de guardado
     // Load images
     $files = UploadedFile::getInstances($model, 'files');
     $upload_ok = TRUE;
     $filesUploads = 0;
     foreach ($files as $file) {
         $filesUploads++;
         $multimedia = new Multimedia();
         $multimedia->objetos_id = $acervo_id;
         $multimedia->tipoMultimedia_id = 1;
         // Tipo Imagen
         $ext = end(explode(".", $file->name));
         $filename = $acervo_id . "_" . Yii::$app->security->generateRandomString() . ".{$ext}";
         $multimedia->path = $multimedia->getImageFilePath() . $filename;
         if ($file->saveAs($multimedia->path, true)) {
             $multimedia->webPath = $multimedia->getUrlImageFolder() . $filename;
             $multimedia->save();
         } else {
             $upload_ok = FALSE;
         }
         $upload_ok = $upload_ok && TRUE;
     }
     if ($filesUploads > 0) {
         if ($upload_ok) {
             Yii::$app->session->setFlash('success', ['type' => 'success', 'icon' => 'fa fa-users', 'message' => 'Imágenes cargadas exitosamente', 'title' => 'Carga de imágenes', 'positonY' => 'top', 'positonX' => 'left']);
         } else {
             Yii::$app->session->setFlash('error', ['icon' => 'fa fa-users', 'message' => 'Una o mas imagenes han sigo cargadas con error', 'title' => 'Carga de imágenes', 'positonY' => 'top', 'positonX' => 'left']);
         }
     }
     // View to Render
     //Obtener fotos
     $dataprovider = new ArrayDataProvider(['allModels' => Multimedia::findAll(['objetos_id' => $model->id])]);
     //Obtener Ubicaciones Externas
     $dataprovider_ue = new ArrayDataProvider(['allModels' => UbicacionExterna::findAll(['acervo_id' => $model->id])]);
     if (Yii::$app->request->post('saveClose') == 1) {
         if ($ingreso_return) {
             return $this->redirect(['ingreso/update', 'id' => $model->ingreso_id, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
         }
         return $this->redirect(['view', 'id' => $model->id, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
     }
     return $this->render('ingreso', ['model' => $model, 'enableReturn' => $ingreso_return, 'dataProvider' => $dataprovider, 'dataProviderUbicacionExterna' => $dataprovider_ue]);
 }