145 lines
4.6 KiB
PHP
145 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Site;
|
|
use App\User;
|
|
use App\Log;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class MaintenanceController extends Controller
|
|
{
|
|
public function show(Request $request)
|
|
{
|
|
$users = User::all();
|
|
|
|
foreach ($users as &$user) {
|
|
$sites = $user->sites()->get();
|
|
$user->linkedSites = "";
|
|
foreach ($sites as $site) {
|
|
$user->linkedSites .= '<p>' . $site->site_nom . '</p>';
|
|
}
|
|
}
|
|
$dates = array(date('m/Y'));
|
|
for ($i = 1; $i < 12; $i++) {
|
|
$datebefore = date("m/Y", strtotime("-" . $i . " months"));
|
|
array_push($dates, $datebefore);
|
|
}
|
|
$count = array();
|
|
foreach ($dates as $month) {
|
|
$logs = Log::where(['log_statut' => 'NOK'])->whereMonth('created_at', $month)->count();
|
|
array_push($count, [$month, $logs]);
|
|
}
|
|
|
|
// $logArray = array();
|
|
// foreach ($logs as $logMonth) {
|
|
// $count = count($logMonth);
|
|
// foreach ($logMonth as $log) {
|
|
// $date = Carbon::parse($log->created_at)->format('m/Y');
|
|
// }
|
|
// array_push($logArray, [$date, $count]);
|
|
// }
|
|
return view('maintenance.index')->with(['users' => $users, 'logs' => $count]);
|
|
}
|
|
|
|
public function usercreate(Request $request)
|
|
{
|
|
$sites = Site::all();
|
|
return view('user.create')->with(['sites' => $sites]);
|
|
}
|
|
|
|
public function userstore(Request $request)
|
|
{
|
|
|
|
$validatedData = $request->validate([
|
|
'email' => 'required|unique:users|email',
|
|
'name' => 'required',
|
|
'password' => 'required'
|
|
]);
|
|
|
|
$nom = $request->name;
|
|
$email = $request->email;
|
|
$password = $request->password;
|
|
$role = $request->roles;
|
|
|
|
$user = new User();
|
|
$user->name = $nom;
|
|
$user->email = $email;
|
|
$user->password = Hash::make($password);
|
|
$user->roles = $role;
|
|
$user->save();
|
|
|
|
// MAJ des sites liés
|
|
if (isset($request->site)) {
|
|
$siteids = $request->site;
|
|
$sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray();
|
|
$user->sites()->sync($sites);
|
|
}
|
|
|
|
|
|
$sites = Site::all();
|
|
$usersites = $user->sites()->get()->pluck('site_id')->toArray();
|
|
return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]);
|
|
}
|
|
|
|
public function useredit(User $user)
|
|
{
|
|
$sites = Site::all();
|
|
$usersites = $user->sites()->get()->pluck('site_id')->toArray();
|
|
return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]);
|
|
}
|
|
|
|
public function userdestroy(User $user)
|
|
{
|
|
if ($user->delete()) {
|
|
return redirect(route('maintenance.show'));
|
|
} else {
|
|
session()->flash('delete_nok', 'Erreur lors de la suppression');
|
|
return view('maintenance.user.edit')->with('user', $user);
|
|
}
|
|
}
|
|
|
|
public function userupdate(Request $request, User $user)
|
|
{
|
|
// MAJ du User
|
|
$user->name = $request->name;
|
|
$user->email = $request->email;
|
|
$user->roles = $request->roles;
|
|
$user->save();
|
|
|
|
// MAJ des sites liés
|
|
$siteids = $request->site;
|
|
$sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray();
|
|
$user->sites()->sync($sites);
|
|
|
|
$marques = Auth::user()->sites;
|
|
$submarques = $marques->map(function ($marque) {
|
|
return $marque->only(['id', 'site_nom', 'site_id', 'site_logo']);
|
|
});
|
|
|
|
session()->put('marques', $submarques);
|
|
|
|
$users = User::all();
|
|
|
|
foreach ($users as &$user) {
|
|
$sites = $user->sites()->get();
|
|
$user->linkedSites = "";
|
|
foreach ($sites as $site) {
|
|
$user->linkedSites .= '<p>' . $site->site_nom . '</p>';
|
|
}
|
|
}
|
|
$dates = array('02/2019');
|
|
for ($i = 1; $i < 12; $i++) {
|
|
$datebefore = date("m/Y", strtotime("-" . $i . " months"));
|
|
array_push($dates, $datebefore);
|
|
}
|
|
$count = array();
|
|
foreach ($dates as $month) {
|
|
$logs = Log::where(['log_statut' => 'NOK'])->whereMonth('created_at', $month)->count();
|
|
array_push($count, [$month, $logs]);
|
|
}
|
|
return view('maintenance.index')->with(['users' => $users, 'logs' => $count]);
|
|
}
|
|
}
|