ldc-boutique-cnc-sable/app/Http/Controllers/Bo/SalariesController.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é.');
}
}