54 lines
1.7 KiB
PHP
54 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Bo;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\Bo\ImportRequest;
|
|
use App\Imports\SalariesImport;
|
|
use App\Jobs\SalariesExportJob;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
class SalariesController extends Controller
|
|
{
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return \Illuminate\Contracts\View\View
|
|
* @ignore phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
|
|
*/
|
|
public function index(): \Illuminate\Contracts\View\View
|
|
{
|
|
return view('bo.salaries.index');
|
|
}
|
|
|
|
/**
|
|
* Mass import by CSV.
|
|
* matricule;lastname;firstname;email
|
|
* default role = user
|
|
*
|
|
* @param \App\Http\Requests\Bo\ImportRequest $request
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*/
|
|
public function import(ImportRequest $request)
|
|
{
|
|
$salariesImport = new SalariesImport();
|
|
Excel::import($salariesImport, $request->import, null, \Maatwebsite\Excel\Excel::CSV);
|
|
$this->export($salariesImport->salariesImport);
|
|
|
|
return redirect()->route('bo.salaries.index')->with('success', 'Import terminé.');
|
|
}
|
|
|
|
/**
|
|
* Exporter l'ensemble des salariés dans un fichier .csv,
|
|
* au format matricule | code.
|
|
*
|
|
* @param array $salariesImport
|
|
* @return \Illuminate\Http\Response|\Illuminate\Contracts\Routing\ResponseFactory
|
|
*/
|
|
public function export(array $salariesImport)
|
|
{
|
|
$this->dispatch(new SalariesExportJob($salariesImport, Auth::user()));
|
|
return redirect()->route('bo.salaries.index')->with('success', 'Export terminé.');
|
|
}
|
|
}
|