', Carbon::now())->paginate(); $ranges = Ranges::with('products')->get(); return view('bo.reductions.index', compact('r', 'ranges')); } public function saveDatas(Request $request) { $reductionId = $request->reductionId; $products = $request->products; $ranges = $request->ranges; $notification = $request->notification === null ? 0 : 1; $reduction = Reductions::find($reductionId); $reduction->ranges()->sync($ranges); foreach ($ranges as $rangeId) { $range = $reduction->ranges()->where('range_id', $rangeId)->first(); foreach ($products as $product) { if (in_array($product, $range->products()->pluck('id')->toArray())) { array_splice($products, array_search($product, $products), 1); } } } $reduction->products()->sync($products); $reduction->notification = $notification; $reduction->save(); if ($notification === 1) { event(new NewNotification(NotificationType::reduction(), route('club.reductions'), $reduction)); } return "Traitement terminé"; } /** * Permet la mise à jour des bons de réductions depuis MesBR manuellement dans le BO */ public function updateBr() { // On commence par supprimer les réductions dont la date de fin est dépassée Reductions::where('end_date_broadcast', '<', Carbon::now())->delete(); // On récupère les réductions depuis MesBR /** @var \App\Lib\MesBR */ $mesBR = app('mesBr'); $reductions = $mesBR->getDetailCampaign(); // Mise à jour et ajout des coupons en BDD $detailCampagne = $reductions->{'Détails Campagne'}; if (isset($detailCampagne->Coupons)) { foreach ($detailCampagne->Coupons as $coupon) { $reduction = Reductions::where('code', $coupon->{'Code traitement'})->first(); if (!$reduction) { $reduction = new Reductions(); $reduction->code = $coupon->{'Code traitement'}; } $reduction->wording = $coupon->{'Nom'}; $reduction->number_broadcast = $coupon->{'Nb à diffuser'}; $reduction->number_broadcasted = $coupon->{'Nb diffusé'}; $reduction->face_value = floatval($coupon->{'Valeur faciale'}); $reduction->status = $coupon->{'En ligne'} == "oui" ? 1 : 0; if ( isset($coupon->{'Date de fin de diffusion'}) && $coupon->{'Date de fin de diffusion'} != "01/01/1970" ) { $endDatetime = Carbon::createFromFormat( 'Y-m-d', date('Y-m-d', strtotime(str_replace("/", "-", $coupon->{'Date de fin de diffusion'}))) ); } else { $endDatetime = Carbon::createFromFormat('Y-m-d', date('Y-m-d', strtotime("2099-12-30"))); } // Ne pas enregistrer les reductions dont la date de fin est déjà passée if ($endDatetime < Carbon::now()) { continue; } $reduction->end_date_broadcast = $endDatetime; $reduction->save(); } } return redirect()->route('bo.reductions.index'); } }