ldc-legaulois/app/Http/Controllers/Bo/BalancedMenusController.php

127 lines
3.9 KiB
PHP
Raw Normal View History

2020-09-28 11:43:01 +02:00
<?php
2021-03-20 14:38:15 +01:00
namespace App\Http\Controllers\Bo;
2020-09-28 11:43:01 +02:00
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Models\BalancedMenus;
use App\Models\Products;
2021-04-28 13:57:12 +02:00
use App\Traits\UpdateModelStatus;
2020-09-28 11:43:01 +02:00
class BalancedMenusController extends Controller
{
2021-04-28 13:57:12 +02:00
use UpdateModelStatus;
2020-09-28 11:43:01 +02:00
public function index()
{
2021-04-12 10:01:48 +02:00
$m = BalancedMenus::paginate();
2021-04-28 13:57:12 +02:00
return view('bo.balanced-menus.index', compact('m'));
2020-09-28 11:43:01 +02:00
}
public function create()
{
$p = Products::all();
2021-04-28 13:57:12 +02:00
return view('bo.balanced-menus.create', compact('p'));
2020-09-28 11:43:01 +02:00
}
public function store(Request $request)
{
$productId = $request->product_id;
2020-09-28 11:43:01 +02:00
$type = $request->type;
$picture = $request->picture;
$entree = $request->entree;
$meal = $request->meal;
$dessert = $request->dessert;
$status = 0;
$request->validate([
'picture' => 'required|image|mimes:jpeg,png,jpg|max:2048|dimensions:width=770,height=684',
'entree' => 'required|max:4000',
'meal' => 'required|max:4000',
'dessert' => 'required|max:4000',
]);
2021-04-28 13:57:12 +02:00
$m = new BalancedMenus();
$m->type = $type;
2021-06-14 15:15:52 +02:00
$imageName = 'menu-' . Str::slug($m->type->label) . '-' .
date('d-m-Y-h-i-s') . '-le-gaulois.' . $picture->extension();
2021-02-16 17:32:51 +01:00
$picture->move(public_path('uploads/images/menus-equilibres/' . date('Y') . '/' . date('m')), $imageName);
2020-09-28 11:43:01 +02:00
$m->product_id = $productId;
2021-02-16 17:32:51 +01:00
$m->picture = 'uploads/images/menus-equilibres/' . date('Y') . '/' . date('m') . '/' . $imageName;
2020-09-28 11:43:01 +02:00
$m->entree = $entree;
$m->meal = $meal;
$m->dessert = $dessert;
$m->status = $status;
$m->save();
return redirect()->route('bo.balanced-menus.index');
}
2021-06-14 15:15:52 +02:00
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
2021-04-28 13:57:12 +02:00
public function edit(BalancedMenus $m)
2020-09-28 11:43:01 +02:00
{
$p = Products::all();
2021-04-28 13:57:12 +02:00
return view('bo.balanced-menus.edit', compact('m', 'p'));
2020-09-28 11:43:01 +02:00
}
2021-04-28 13:57:12 +02:00
public function update(Request $request, BalancedMenus $m)
2020-09-28 11:43:01 +02:00
{
$productId = $request->product_id;
2020-09-28 11:43:01 +02:00
$type = $request->type;
$picture = $request->picture;
$entree = $request->entree;
$meal = $request->meal;
$dessert = $request->dessert;
$status = $request->status === null ? 0 : 1;
$request->validate([
'entree' => 'required|max:4000',
'meal' => 'required|max:4000',
'dessert' => 'required|max:4000',
]);
if ($picture !== null) {
$request->validate([
'picture' => 'required|image|mimes:jpeg,png,jpg|max:2048|dimensions:width=770,height=684',
]);
}
2021-04-28 13:57:12 +02:00
$m->type = $type;
2020-09-28 11:43:01 +02:00
if ($picture !== null) {
2021-03-20 14:38:15 +01:00
if (file_exists(public_path() . '/' . $m->picture)) {
unlink(public_path() . '/' . $m->picture);
2021-03-20 14:38:15 +01:00
}
2021-06-14 15:15:52 +02:00
$imageName = 'menu-' . Str::slug($m->type->label) . '-' .
date('d-m-Y-h-i-s') . '-le-gaulois.' . $picture->extension();
2021-02-16 17:32:51 +01:00
$picture->move(public_path('uploads/images/menus-equilibres/' . date('Y') . '/' . date('m')), $imageName);
2020-09-28 11:43:01 +02:00
}
$m->product_id = $productId;
2021-03-20 14:38:15 +01:00
if ($picture !== null) {
2021-02-16 17:32:51 +01:00
$m->picture = 'uploads/images/menus-equilibres/' . date('Y') . '/' . date('m') . '/' . $imageName;
2021-03-20 14:38:15 +01:00
}
2020-09-28 11:43:01 +02:00
$m->entree = $entree;
$m->meal = $meal;
$m->dessert = $dessert;
$m->status = $status;
$m->save();
return redirect()->route('bo.balanced-menus.edit', $m->id)->with('success', 'Enregistré !');
2020-09-28 11:43:01 +02:00
}
2021-04-28 13:57:12 +02:00
public function destroy(BalancedMenus $m)
2020-09-28 11:43:01 +02:00
{
2021-03-20 14:38:15 +01:00
if (file_exists(public_path() . '/' . $m->picture)) {
unlink(public_path() . '/' . $m->picture);
2021-03-20 14:38:15 +01:00
}
2020-09-28 11:43:01 +02:00
$m->delete();
return redirect()->route('bo.balanced-menus.index');
}
}