public function reactivate($id)
 {
     $membership = Membership::findOrFail($id);
     $membership->reactivate();
     return Redirect::back()->with("good", "Successfully reactivated membership.");
 }
Beispiel #2
0
 public function removeMembership(GrantRemoveMembershipRequest $request)
 {
     $user = User::findOrFail($request->user_id);
     $spaces_left = $user->membership_spaces_left($request->membership_id);
     if ($spaces_left < $request->spaces_to_change) {
         return Redirect::back()->with("bad", "You cannot remove more passes than the user currently has (currently " . $spaces_left . " passes left of that type).");
     }
     $membership = Membership::findOrFail($request->membership_id);
     $spaces_to_remove = $request->spaces_to_change;
     while ($spaces_to_remove > 0) {
         $user_membership_id = DB::table('user_memberships')->join('transactions', 'user_memberships.transaction_id', '=', 'transactions.id')->where('transactions.successful', '=', 1)->where('user_memberships.membership_id', '=', $request->membership_id)->where('user_memberships.user_id', '=', $user->id)->where('user_memberships.spaces_left', '>', 0)->select('user_memberships.id')->first();
         $user_membership = User_Membership::findOrFail($user_membership_id->id);
         $spaces_removing_now = min($spaces_to_remove, $user_membership->spaces_left);
         $user_membership->spaces_left = $user_membership->spaces_left - $spaces_removing_now;
         $user_membership->save();
         $spaces_to_remove = $spaces_to_remove - $spaces_removing_now;
     }
     $transaction = new Transaction();
     $transaction->payment_method_id = 4;
     $transaction->name = "Admin Removed Memberships";
     $transaction->description = $request->spaces_to_change . " x " . $membership->name . " spaces removed";
     $transaction->amount = 0;
     $transaction->successful = 1;
     $user->transactions()->save($transaction);
     $this->emailAdminActionComplete($user, $transaction);
     return Redirect::back()->with("good", "Successfully removed " . $request->spaces_to_change . " memberships.");
 }
 public function bookClassMembershipComplete(BookClassMembershipRequest $request)
 {
     $user = Auth::user();
     $class = Classe::findOrFail($request->classe_id);
     $user_membership_id = DB::table('user_memberships')->join('transactions', 'user_memberships.transaction_id', '=', 'transactions.id')->where('transactions.failed', '!=', 1)->where('transactions.strike', '!=', 1)->where('user_memberships.membership_id', '=', $request->membership_id)->where('user_memberships.user_id', '=', $user->id)->where('user_memberships.spaces_left', '>', 0)->select('user_memberships.id')->first();
     $user_membership = User_Membership::findOrFail($user_membership_id->id);
     DB::table('classe_user')->insert(['classe_id' => $class->id, 'user_id' => $user->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'used_free_space' => 1, 'user_membership_id' => $user_membership->id, 'rejected' => 0]);
     $user_membership->spaces_left = $user_membership->spaces_left - 1;
     $user_membership->save();
     $membership = Membership::findOrFail($request->membership_id);
     $tags = ["payment_method" => $membership->name, "cost" => "Free"];
     $this->emailBookingComplete($user, $class, $tags);
     $this->bookGuest($user, $class, $request->guest_name);
     return Redirect::action('ClassesController@show', [$class->id])->with("good", "Successfully booked onto class.");
 }