public function purchaseMembershipComplete(PurchaseMembershipRequest $request) { $user = Auth::user(); $membership = Membership::findOrFail($request->membership_id); $payment_method = Payment_Method::findOrFail($request->payment_method_id); $transaction = new Transaction(); $transaction->payment_method_id = $request->payment_method_id; $transaction->name = "Membership Fee"; $transaction->description = $membership->name; $transaction->amount = $membership->cost; $transaction->grant_membership = $membership->includes_membership; $user->transactions()->save($transaction); $user_membership = new User_Membership(); $user_membership->membership_id = $membership->id; $user_membership->transaction_id = $transaction->id; $user_membership->spaces_left = $membership->free_classes; $user->user_memberships()->save($user_membership); $tags = ["first_name" => $user->first_name, "last_name" => $user->last_name, "transaction_name" => $transaction->name, "transaction_description" => $transaction->description, "transaction_amount" => sprintf('£%01.2f', $transaction->amount), "payment_method" => $transaction->payment_method->name]; EmailHelper::sendEmail(EmailHelper::PURCHASE_COMPLETE, $tags, $user->email); return view('users.purchase_membership_complete', compact('user', 'transaction', 'membership')); }
public function bookClassPaymentComplete(BookClassPaymentRequest $request) { $user = Auth::user(); $class = Classe::findOrFail($request->classe_id); $payment_method = Payment_Method::findOrFail($request->payment_method_id); $transaction = new Transaction(); $transaction->payment_method_id = $payment_method->id; $transaction->name = "Class Payment"; $transaction->description = $class->title . " on " . $class->date; if ($payment_method->has_cost) { if ($user->member || $user->admin) { $transaction->amount = $class->cost_member; } else { $transaction->amount = $class->cost; } } else { $transaction->amount = 0; } $user->transactions()->save($transaction); DB::table('classe_user')->insert(['classe_id' => $class->id, 'user_id' => $user->id, 'created_at' => Carbon::now(), 'updated_at' => Carbon::now(), 'used_free_space' => 0, 'transaction_id' => $transaction->id, 'rejected' => 0]); $tags = ["payment_method" => $payment_method->name, "cost" => sprintf('£%01.2f', $transaction->amount)]; $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."); }