timeslotSettings; if ($timeslotSettings->count() === 0) { //Aucun settings pour ce magasin $timeslotSettings = $this->makeCreneauxSettings($id); } $plage_days = Setting::where('key', 'order_withdrawal_period')->firstOrFail()->value; return view('bo.creneaux.settings', compact('timeslotSettings', 'plage_days', 'magasin')); } public function makeCreneauxSettings($id) { for ($i=0;$i<7;$i++) { $dayset = new TimeslotSetting(); $dayset->magasin_id = $id; $dayset->day_index = ''.$i; $dayset->save(); } return Magasin::findOrFail($id)->timeslotSettings; } public function updateSettings(Request $request,$id) { $plage = $request->plage; $plage_days = $request->plage_days; $magasin_id = $id; foreach($plage as $index => $day) { $setting = TimeslotSetting::where('day_index', ''.$index) ->where('magasin_id', $magasin_id) ->firstOrFail(); //$setting->magasin_id = $magasin_id; ne doit pas changer $setting->morning_start = $day['morning_start']; $setting->morning_end = $day['morning_end']; $setting->afternoon_start = $day['afternoon_start']; $setting->afternoon_end = $day['afternoon_end']; $setting->interval = $day['interval']; $setting->max_orders_per_interval = $day['max_orders_per_interval']; $setting->min_order_preparation = $day['min_order_preparation']; $setting->save(); } $order_withdrawal_period = Setting::where('key','order_withdrawal_period')->firstOrFail(); $order_withdrawal_period->value = $plage_days; $order_withdrawal_period->save(); return redirect()->route('bo.creneaux.settings', $magasin_id)->with('success', 'Modifications enregistrées !'); } }