示例#1
0
 /**
  * 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();
     }
 }
示例#2
0
 /**
  * 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');
 }
示例#3
0
 /**
  * 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');
 }