/** * @param User $user The user to check participation status for. * @return ActivityParticipation|null Return the ActivityParticipation for the supplied user. Returns null if users doesn't participate. */ public function getParticipation(User $user, HelpingCommittee $h = null) { if ($h == null) { return ActivityParticipation::where('activity_id', $this->id)->where('user_id', $user->id)->whereNull('committees_activities_id')->first(); } else { return ActivityParticipation::where('activity_id', $this->id)->where('user_id', $user->id)->where('committees_activities_id', $h->id)->first(); } }
public function deleteHelp(Request $request, $id) { $help = HelpingCommittee::findOrFail($id); foreach ($help->users as $user) { $name = $user->name; $email = $user->email; $helptitle = $help->activity->event->title; Mail::queue('emails.committeehelpnotneeded', ['user' => $user, 'help' => $help], function ($m) use($name, $email, $helptitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('The activity ' . $helptitle . ' doesn\'t need your help anymore.'); }); } foreach (ActivityParticipation::withTrashed()->where('committees_activities_id', $help->id)->get() as $participation) { $participation->delete(); } $help->delete(); $request->session()->flash('flash_message', 'Removed ' . $help->committee->name . ' as helping committee.'); return Redirect::back(); }
/** * Remove the specified resource from storage. * * @param int $id The id of the participation to be removed. * @return \Illuminate\Http\Response */ public function destroy($participation_id, Request $request) { $participation = ActivityParticipation::findOrFail($participation_id); $notify = false; if ($participation->user->id != Auth::id()) { if (!Auth::user()->can('board')) { abort(403); } $notify = true; } if ($participation->committees_activities_id === null) { if ($participation->activity->closed) { abort(500, "This activity is closed, you cannot change participation anymore."); } if (!$participation->activity->canUnsubscribe() && !$participation->backup && !Auth::user()->can('board')) { abort(500, "You cannot unsubscribe for this event at this time."); } $backupparticipation = $participation->backup ? null : ActivityParticipation::where('activity_id', $participation->activity->id)->whereNull('committees_activities_id')->where('backup', true)->first(); if ($backupparticipation !== null) { $backupparticipation->backup = false; $backupparticipation->save(); $name = $backupparticipation->user->name; $email = $backupparticipation->user->email; $activitytitle = $backupparticipation->activity->event->title; Mail::queue('emails.takenfrombackup', ['participation' => $backupparticipation], function ($m) use($name, $email, $activitytitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('Moved from back-up list to participants for ' . $activitytitle . '.'); }); } if ($notify) { $name = $participation->user->name; $email = $participation->user->email; $activitytitle = $participation->activity->event->title; Mail::queue('emails.unsubscribeactivity', ['activity' => ['id' => $participation->activity->event->id, 'title' => $activitytitle, 'name' => $participation->user->calling_name]], function ($m) use($name, $email, $activitytitle) { $m->replyTo('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('You have been signed out for ' . $activitytitle . '.'); }); } $request->session()->flash('flash_message', $participation->user->name . ' is not attending ' . $participation->activity->event->title . ' anymore.'); $participation->delete(); } else { $request->session()->flash('flash_message', $participation->user->name . ' is not helping with ' . $participation->activity->event->title . ' anymore.'); if ($notify) { $name = $participation->user->name; $email = $participation->user->email; $activitytitle = $participation->activity->event->title; Mail::queue('emails.unsubscribehelpactivity', ['participation' => $participation], function ($m) use($name, $email, $activitytitle) { $m->queue('*****@*****.**', 'S.A. Proto'); $m->to($email, $name); $m->subject('You don\'t help with ' . $activitytitle . ' anymore.'); }); } $participation->delete(); } return Redirect::back(); }