/** * Processes the edit meal form to update a meal * @return Redirect */ public function update($id, Request $request) { // Only update existing meals $meal = Meal::find($id); if (!$meal) { App::abort(404, "Maaltijd niet gevonden"); } // Construct candidate object $meal_data = $request->all(); // Validate the resulting input $validator = Validator::make($meal_data, ['meal_timestamp' => ['date_format:d-m-Y G:i', 'required', 'unique:meals,meal_timestamp,' . $meal->id], 'locked_timestamp' => ['date_format:d-m-Y G:i', 'required']], ['meal_timestamp.date_format' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.required' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.unique' => 'Er is al een maaltijd op deze datum en tijd', 'locked_timestamp.date_format' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'locked_timestamp.required' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)']); if ($validator->passes()) { // Format dates to database compatible values $meal_data['meal_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['meal_timestamp']); $meal_data['locked_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['locked_timestamp']); // Update meal in database $meal->update($meal_data); if ($meal->save()) { Log::info("Maaltijd geupdate: {$meal->id}|{$meal->meal_timestamp}|{$meal->event}"); Flash::set(Flash::SUCCESS, 'Maaltijd geupdate'); return redirect('/administratie/' . $meal->id); } else { Flash::set(Flash::ERROR, 'Maaltijd kon niet worden geupdate'); } } else { Session::flash('validation_errors', $validator->messages()); return redirect('/administratie/' . $meal->id . '/edit')->withInput(); } }
/** * Processes the new meal form to create a new meal * @return Redirect */ public function create(Request $request) { // Construct candidate object $meal_data = $request->all(); // Use todays date as defaults if none are given if (empty($meal_data['meal_timestamp'])) { $meal_data['meal_timestamp'] = date('d-m-Y') . ' 18:30'; } if (empty($meal_data['locked_timestamp'])) { $meal_data['locked_timestamp'] = date('d-m-Y') . ' 15:00'; } // Validate the resulting input $validator = Validator::make($meal_data, ['meal_timestamp' => ['date_format:d-m-Y G:i', 'required', 'after:now', 'unique:meals'], 'locked_timestamp' => ['date_format:d-m-Y G:i', 'required', 'after:now']], ['meal_timestamp.date_format' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.required' => 'De ingevulde maaltijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'meal_timestamp.after' => 'Je kunt geen maaltijden aanmaken in het verleden', 'meal_timestamp.unique' => 'Er is al een maaltijd op deze datum en tijd', 'locked_timestamp.date_format' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'locked_timestamp.required' => 'De ingevulde sluitingstijd is ongeldig (formaat DD-MM-YYYY HH:MM)', 'locked_timestamp.after' => 'De deadline voor aanmelding mag niet al geweest zijn']); if ($validator->passes()) { // Format dates to database compatible values $meal_data['meal_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['meal_timestamp']); $meal_data['locked_timestamp'] = DateTime::createFromFormat('d-m-Y G:i', $meal_data['locked_timestamp']); // Save new meal $meal = new Meal($meal_data); if ($meal->save()) { Log::info("Nieuwe maaltijd: {$meal->id}|{$meal->meal_timestamp}|{$meal->event}"); Flash::set(Flash::SUCCESS, 'Maaltijd toegevoegd op ' . $meal); return redirect('/administratie'); } else { Flash::set(Flash::ERROR, 'Maaltijd kon niet worden toegevoegd'); } } else { Session::flash('validation_errors', $validator->messages()); // Repopulate the form Input::flash(); } return redirect('/administratie/nieuwe_maaltijd'); }
/** * Removes a meal * @param int $id the id of the meal to remove * @return Redirect */ public function verwijder($id) { // Find the meal $meal = Meal::find($id); if (!$meal) { \App::abort(404, "Maaltijd niet gevonden"); } // Store the name of the meal for usage in the flash message $date = (string) $meal; // Send an e-mail to the registrations for confirmation \App\Http\Helpers\Mailer::mealIsDestroyedEmail($meal); // Remove all guests foreach ($meal->registrations()->get() as $registration) { if ($registration->email !== null) { $registration->delete(); } } // Remove the meal $meal->delete(); // Update user Flash::set(Flash::SUCCESS, "Maaltijd op {$date} verwijderd. Alle aanmeldingen zijn gemaild met een bevestiging."); \Log::info("Maaltijd verwijderd: {$date}"); return \Redirect::to('/administratie'); }