2021-02-17 17:40:35 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Bo;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use App\Models\Employees;
|
|
|
|
|
use App\Models\BusinessSector;
|
|
|
|
|
use Illuminate\Http\Request;
|
2021-02-18 17:29:54 +01:00
|
|
|
use Illuminate\Support\Str;
|
2021-02-17 17:40:35 +01:00
|
|
|
|
|
|
|
|
class EmployeesController extends Controller
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* Display a listing of the resource.
|
|
|
|
|
*
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
$employees = Employees::get();
|
|
|
|
|
$sectors = BusinessSector::orderBy('order', 'ASC')->get();
|
|
|
|
|
return view('bo.employees.index',compact('employees','sectors'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Show the form for creating a new resource.
|
|
|
|
|
*
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function create()
|
|
|
|
|
{
|
2021-02-18 17:29:54 +01:00
|
|
|
$s = BusinessSector::orderBy('order', 'ASC')->get();
|
|
|
|
|
return view('bo.employees.create', compact('s'));
|
2021-02-17 17:40:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Store a newly created resource in storage.
|
|
|
|
|
*
|
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function store(Request $request)
|
|
|
|
|
{
|
2021-02-18 17:29:54 +01:00
|
|
|
$lastname = $request->lastname;
|
|
|
|
|
$firstname = $request->firstname;
|
|
|
|
|
$video = $request->video;
|
|
|
|
|
$photo = $request->photo;
|
|
|
|
|
|
|
|
|
|
$request->validate([
|
|
|
|
|
'lastname' => 'required|string|max:255',
|
|
|
|
|
'firstname' => 'required|string|max:255',
|
|
|
|
|
'job_title' => 'max:255',
|
|
|
|
|
'video' => 'max:255',
|
|
|
|
|
'photo' => 'required|image|mimes:jpeg,png,jpg|max:2048|dimensions:width=100,height=100',
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$imageName = Str::slug($firstname."-".$lastname) . '-jeusselin.' . $photo->extension();
|
|
|
|
|
$photo->move(public_path('uploads/images/profiles/' . date('Y') . '/' . date('m')), $imageName);
|
|
|
|
|
|
|
|
|
|
$e = new Employees();
|
|
|
|
|
$e->civility = $request->civility;
|
|
|
|
|
$e->lastname = $lastname;
|
|
|
|
|
$e->firstname = $firstname;
|
|
|
|
|
$e->job_title = $request->job_title;
|
|
|
|
|
$e->video = $video;
|
|
|
|
|
$e->photo = 'uploads/images/profiles/' . date('Y') . '/' . date('m') . '/' . $imageName;
|
|
|
|
|
$e->save();
|
|
|
|
|
|
|
|
|
|
//prise en charge de la liaison avec les secteurs
|
|
|
|
|
$associatedSectors = $request->associated_sectors;
|
|
|
|
|
$e->businessSectors()->sync($associatedSectors);
|
|
|
|
|
|
|
|
|
|
return redirect()->route('bo.employees.index');
|
2021-02-17 17:40:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Display the specified resource.
|
|
|
|
|
*
|
|
|
|
|
* @param int $id
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function show($id)
|
|
|
|
|
{
|
|
|
|
|
//
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Show the form for editing the specified resource.
|
|
|
|
|
*
|
|
|
|
|
* @param int $id
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function edit($id)
|
|
|
|
|
{
|
2021-02-18 17:29:54 +01:00
|
|
|
$e = Employees::findOrFail($id);
|
|
|
|
|
$s = BusinessSector::orderBy('order', 'ASC')->get();
|
|
|
|
|
|
|
|
|
|
$seIds = [];
|
|
|
|
|
foreach ($e->businessSectors as $sector_employee) {
|
|
|
|
|
$seIds[] = $sector_employee->id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return view('bo.employees.edit', compact('e','s'))->with('seIds', $seIds);
|
2021-02-17 17:40:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Update the specified resource in storage.
|
|
|
|
|
*
|
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
|
* @param int $id
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function update(Request $request, $id)
|
|
|
|
|
{
|
2021-02-18 17:29:54 +01:00
|
|
|
$lastname = $request->lastname;
|
|
|
|
|
$firstname = $request->firstname;
|
|
|
|
|
$video = $request->video;
|
|
|
|
|
$photo = $request->file('photo');
|
|
|
|
|
|
|
|
|
|
$request->validate([
|
|
|
|
|
'lastname' => 'required|string|max:255',
|
|
|
|
|
'firstname' => 'required|string|max:255',
|
|
|
|
|
'job_title' => 'max:255',
|
|
|
|
|
'video' => 'max:255',
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
if($photo !== NULL) {
|
|
|
|
|
$request->validate([
|
|
|
|
|
'photo' => 'image|mimes:jpeg,png,jpg|max:2048|dimensions:width=100,height=100',
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$e = Employees::findOrFail($id);
|
|
|
|
|
|
|
|
|
|
if($photo !== NULL) {
|
|
|
|
|
if(file_exists(public_path() . '/' . $e->photo))
|
|
|
|
|
unlink(public_path() . '/' . $e->photo);
|
|
|
|
|
$imageName = Str::slug($firstname."-".$lastname) . '-jeusselin.' . $photo->extension();
|
|
|
|
|
$photo->move(public_path('uploads/images/profiles/' . date('Y') . '/' . date('m')), $imageName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$e->civility = $request->civility;
|
|
|
|
|
$e->lastname = $lastname;
|
|
|
|
|
$e->firstname = $firstname;
|
|
|
|
|
$e->job_title = $request->job_title;
|
|
|
|
|
$e->video = $video;
|
|
|
|
|
if($photo !== NULL) {
|
|
|
|
|
$e->photo = 'uploads/images/profiles/' . date('Y') . '/' . date('m') . '/' . $imageName;
|
|
|
|
|
}
|
|
|
|
|
$e->save();
|
|
|
|
|
|
|
|
|
|
//prise en charge de la liaison avec les secteurs
|
|
|
|
|
$associatedSectors = $request->associated_sectors;
|
|
|
|
|
$e->businessSectors()->sync($associatedSectors);
|
|
|
|
|
|
|
|
|
|
return redirect()->route('bo.employees.index');
|
2021-02-17 17:40:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Remove the specified resource from storage.
|
|
|
|
|
*
|
|
|
|
|
* @param int $id
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
|
|
|
|
public function destroy($id)
|
|
|
|
|
{
|
2021-02-18 17:29:54 +01:00
|
|
|
$e = Employees::findOrFail($id);
|
|
|
|
|
|
|
|
|
|
if(file_exists(public_path() . '/' . $e->photo))
|
|
|
|
|
unlink(public_path() . '/' . $e->photo);
|
|
|
|
|
|
|
|
|
|
//prise en charge de la liaison avec les secteurs
|
|
|
|
|
|
|
|
|
|
$e->delete();
|
|
|
|
|
|
|
|
|
|
return redirect()->route('bo.employees.index');
|
2021-02-17 17:40:35 +01:00
|
|
|
}
|
|
|
|
|
}
|