employeeService->getImportColumns(); return view('bo.employees.form', compact('importColumns')); } public function importSubmit(ImportRequest $request): RedirectResponse { $importResults = $this->employeeService->import($request->getSalarieImportFile()); if ($importResults->insertedCount > 0) { $this->flashMessageService->info(trans(':count lines imported', [ 'count' => $importResults->insertedCount, ])); } if ($importResults->updatedCount > 0) { $this->flashMessageService->info(trans(':count lines updated', [ 'count' => $importResults->updatedCount, ])); } if (! empty($importResults->errors)) { foreach ($importResults->errors as $error) { $this->flashMessageService->error($error); } } if ($importResults->insertedCount === 0 && $importResults->updatedCount === 0 && empty($importResults->errors)) { $this->flashMessageService->info(trans('No lines imported or updated')); } return to_route('bo.settings.employees'); } public function downloadExampleFile(): StreamedResponse { $exampleFilePath = resource_path('assets/files/salaries-import.csv'); throw_unless(File::exists($exampleFilePath), \LogicException::class, "Missing file at '{$exampleFilePath}'"); return Response::stream(function () use ($exampleFilePath): void { readfile($exampleFilePath); }, 200, [ 'Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="salaries-import.csv"', ]); } }