importService = $importService; } public function doImport() { $source = Input::get('source'); $files = []; foreach (ImportService::$entityTypes as $entityType) { if (Input::file("{$entityType}_file")) { $files[$entityType] = Input::file("{$entityType}_file")->getRealPath(); if ($source === IMPORT_CSV) { Session::forget("{$entityType}-data"); } } } if ( ! count($files)) { Session::flash('error', trans('texts.select_file')); return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } try { if ($source === IMPORT_CSV) { $data = $this->importService->mapCSV($files); return View::make('accounts.import_map', ['data' => $data]); } elseif ($source === IMPORT_JSON) { $results = $this->importService->importJSON($files[IMPORT_JSON]); return $this->showResult($results); } else { $results = $this->importService->importFiles($source, $files); return $this->showResult($results); } } catch (Exception $exception) { Utils::logError($exception); Session::flash('error', $exception->getMessage()); return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } } public function doImportCSV() { $map = Input::get('map'); $headers = Input::get('headers'); try { $results = $this->importService->importCSV($map, $headers); return $this->showResult($results); } catch (Exception $exception) { Utils::logError($exception); Session::flash('error', $exception->getMessage()); return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } } private function showResult($results) { $message = ''; $skipped = []; foreach ($results as $entityType => $entityResults) { if ($count = count($entityResults[RESULT_SUCCESS])) { $message .= trans("texts.created_{$entityType}s", ['count' => $count]) . '
'; } if (count($entityResults[RESULT_FAILURE])) { $skipped = array_merge($skipped, $entityResults[RESULT_FAILURE]); } } if (count($skipped)) { $message .= '

' . trans('texts.failed_to_import') . '
'; foreach ($skipped as $skip) { $message .= json_encode($skip) . '
'; } } if ($message) { Session::flash('warning', $message); } return Redirect::to('/settings/' . ACCOUNT_IMPORT_EXPORT); } }