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

60 lines
1.8 KiB
PHP
Raw Normal View History

2020-10-05 15:21:25 +02:00
<?php
namespace App\Http\Controllers\Bo;
use App\Enums\NotificationType;
use App\Events\NewNotification;
2020-10-05 15:21:25 +02:00
use App\Http\Controllers\Controller;
2021-10-13 12:06:41 +02:00
use App\Http\Requests\UpdateReductionRequest;
2021-09-21 09:26:21 +02:00
use App\Models\Range;
2021-10-13 12:06:41 +02:00
use App\Models\Reduction;
use App\Traits\UpdateModelStatus;
2020-10-05 15:21:25 +02:00
class ReductionsController extends Controller
{
2021-10-13 12:06:41 +02:00
use UpdateModelStatus;
public function index()
{
2022-02-10 16:14:58 +01:00
$r = Reduction::paginate();
2021-09-21 09:26:21 +02:00
$ranges = Range::with('products')->get();
return view('bo.reductions.index', compact('r', 'ranges'));
}
2021-10-13 12:06:41 +02:00
public function saveDatas(UpdateReductionRequest $request)
{
2022-02-10 16:14:58 +01:00
$reductionId = $request->reductionId;
$products = $request->products;
$ranges = $request->ranges;
$notification = $request->notification === null ? 0 : 1;
2021-10-13 12:06:41 +02:00
$reduction = Reduction::find($reductionId);
$reduction->ranges()->sync($ranges);
foreach ($ranges as $rangeId) {
$range = $reduction->ranges()->where('range_id', $rangeId)->first();
2021-03-20 14:38:15 +01:00
foreach ($products as $product) {
if (in_array($product, $range->products()->pluck('id')->toArray())) {
array_splice($products, array_search($product, $products), 1);
2021-03-20 14:38:15 +01:00
}
}
}
$reduction->products()->sync($products);
$reduction->notification = $notification;
$reduction->save();
2021-03-20 14:38:15 +01:00
if ($notification === 1) {
event(new NewNotification(NotificationType::reduction(), route('club.reductions'), $reduction));
2021-03-20 14:38:15 +01:00
}
return "Traitement terminé";
}
/**
* Permet la mise à jour des bons de réductions depuis MesBR manuellement dans le BO
*/
2021-06-14 15:15:52 +02:00
public function updateBr()
{
2021-10-13 12:06:41 +02:00
Reduction::updateBr();
return redirect()->route('bo.reductions.index');
2020-10-05 15:21:25 +02:00
}
}