/** * Run the database seeds. * * @return void */ public function run() { $membership = new Membership(); $membership->member_id = 1; $membership->reason = 'Bought SSE Gold'; $membership->term_id = 1; $membership->save(); }
public function membership_update(Request $request) { /*dd($request->id);*/ $customer = customer::find($request->id); $customer->membership_ind = 1; $customer->save(); $membership = new Membership(); $membership->customer_id = $request->id; $membership->activation_date = Carbon::today(); $membership->expiration_date = Carbon::today()->addYear()->subDay(); $membership->active_ind = 1; $membership->save(); return redirect('dashboard'); }
/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request) { $group = new group(); $group->name = $request->input('name'); $group->body = $request->input('body'); $group->group_type = $request->input('group_type'); if ($request->get('address')) { $group->address = $request->input('address'); if (!$group->geocode()) { flash()->error(trans('messages.address_cannot_be_geocoded')); } else { flash()->info(trans('messages.ressource_geocoded_successfully')); } } if ($group->isInvalid()) { // Oops. return redirect()->action('GroupController@create')->withErrors($group->getErrors())->withInput(); } $group->save(); // handle cover if ($request->hasFile('cover')) { Storage::disk('local')->makeDirectory('groups/' . $group->id); Image::make($request->file('cover'))->widen(800)->save(storage_path() . '/app/groups/' . $group->id . '/cover.jpg'); Image::make($request->file('cover'))->fit(300, 200)->save(storage_path() . '/app/groups/' . $group->id . '/thumbnail.jpg'); } // make the current user a member of the group $membership = \App\Membership::firstOrNew(['user_id' => $request->user()->id, 'group_id' => $group->id]); $membership->notification_interval = 60 * 24; // default to daily interval $membership->membership = \App\Membership::MEMBER; $membership->save(); return redirect()->action('MembershipController@settings', [$group->id]); }
public function sendNotificationEmail(Group $group, User $user) { if ($user->verified == 1) { // Establish timestamp for notifications from membership data (when was an email sent for the last time?) $membership = \App\Membership::where('user_id', '=', $user->id)->where('group_id', "=", $group->id)->firstOrFail(); $last_notification = $membership->notified_at; // find unread discussions since timestamp $discussions = QueryHelper::getUnreadDiscussionsSince($user->id, $group->id, $membership->notified_at); // find new files since timestamp $files = \App\File::where('updated_at', '>', $membership->notified_at)->where('group_id', "=", $group->id)->get(); // find new members since timestamp $users = QueryHelper::getNewMembersSince($user->id, $group->id, $membership->notified_at); // find future actions until next 2 weeks, this is curently hardcoded... TODO use the mail sending interval to determine stop date $actions = \App\Action::where('start', '>', Carbon::now())->where('stop', '<', Carbon::now()->addWeek()->addWeek())->where('group_id', "=", $group->id)->orderBy('start')->get(); // we only trigger mail sending if a new action has been **created** since last notfication email. // BUT we will send actions for the next two weeks in all cases, IF a mail must be sent $actions_count = \App\Action::where('created_at', '>', $membership->notified_at)->where('group_id', "=", $group->id)->count(); // in all cases update timestamp $membership->notified_at = Carbon::now(); $membership->save(); // if we have anything, build the message and send // removed that : or count($users) > 0 // because we don't want to be notified just because there is a new member if (count($discussions) > 0 or count($files) > 0 or $actions_count > 0) { Mail::send('emails.notification', ['user' => $user, 'group' => $group, 'membership' => $membership, 'discussions' => $discussions, 'files' => $files, 'users' => $users, 'actions' => $actions, 'last_notification' => $last_notification], function ($message) use($user, $group) { $message->from(env('MAIL_NOREPLY', '*****@*****.**'), env('APP_NAME', 'Laravel'))->to($user->email)->subject('[' . env('APP_NAME') . '] ' . trans('messages.news_from_group_email_subject') . ' "' . $group->name . '"'); }); return true; } return false; } }
/** * Returns true if the user is member of $group */ public function isMemberOf(Group $group) { $membership = \App\Membership::where('user_id', '=', $this->id)->where('group_id', '=', $group->id)->first(); if ($membership && $membership->membership == \App\Membership::MEMBER) { return true; } return false; }
/** * Handle a member sign-up received through Typeform * * @param $data */ protected function handleSignup($data) { $user = new User(); $membership = null; foreach ($data->form_response->answers as $answer) { switch ($answer->field->id) { case 34684524: // "Hva heter du?" $user->name = $answer->text; break; case 34684651: // "Hva er mobilnummeret ditt?" $user->phone = $answer->text; break; case 34684952: // "Hva er e-postadressen din?" $user->email = $answer->email; break; case 34688420: // "Når ble du født?" $user->birth_date = $answer->date; break; case 35451671: // "Hva er postnummeret ditt?" $user->postal_code = $answer->text; break; case 34686331: // "Hvordan ble du kjent med Alternativet?" break; case 34688877: // "Vil du være med på dugnad?" break; case 34685729: // "Ønsker du medlemskap i Alternativet?" $membership = new Membership(); $membership->valid_from = Carbon::now(); $membership->valid_to = Carbon::now()->addYear(); break; case 34685206: // "Vil du bidra med penger til Alternativets aktiviteter?" break; case 34688977: // break; } } // Check if there's a already a registered user with the same email address and/or phone number if (User::where('email', $user->email)->count() > 0) { // User already exists, so we'll send an email instead of overwriting the existing record // @todo return; } $user->save(); if (isset($membership)) { $membership->user()->associate($user); $membership->save(); } }
public function run() { Membership::truncate(); Membership::create(['name' => 'DELL', 'subscription_price_per_month' => '40000']); Membership::create(['name' => 'HCL', 'subscription_price_per_month' => '25000']); Membership::create(['name' => 'IBM', 'subscription_price_per_month' => '34000']); Membership::create(['name' => 'HP', 'subscription_price_per_month' => '90000']); Membership::create(['name' => 'ATI', 'subscription_price_per_month' => '150000']); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(AffiliationCreateRequest $request) { //dd($request); /*"_token" => "8s9rQffPRk7lOCtbGidK1Wzvp4fmMQ00GLTvNFQv" "member_id" => "1" "membership_id" => "1" "initiation" => "2016-02-11" "type" => "payment" 0 => "initiation" 1 => "finalization" 2 => "price" 3 => "payout" 4 => "type" 5 => "active" 6 => "member_id" 7 => "membership_id"*/ $membership = Membership::find($request->membership_id); $affiliation = new Affiliation($request->all()); $payment = new Payment(); $end = new Carbon($request->initiation); if ($membership->month > 0) { $end->addMonths($membership->month); } if ($membership->day > 0) { $end->addDays($membership->day - 1); } $payment->member_id = $request->member_id; $affiliation->finalization = $end; $affiliation->price = $membership->price; if ($request->type == "credit") { $payment->amount = $request->payout; $payment->type = "payout"; } else { $payment->amount = $membership->price; $payment->type = "payment"; } $affiliation->save(); if ($payment->amount > 0) { $payment->save(); } Flash::success("¡Se ha registrado la afiliacion del miembro de manera exitosa!"); return redirect()->route('admin.member.show', [$request->member_id, '#membership-member']); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { // if current user is not a member of the passed in group // TODO probably could be refactored if ($this->auth->guest()) { return redirect()->back()->with('message', trans('messages.not_logged_in')); } // we expect a url in the form /groups/{group_id} if ($request->segment(1) == 'groups') { $membership = \App\Membership::where('user_id', '=', $request->user()->id)->where('group_id', $request->segment(2))->first(); if ($membership && ($membership->membership = \App\Membership::MEMBER)) { return $next($request); } else { return redirect()->back()->with('message', trans('messages.not_a_member')); } } else { return redirect()->back()->with('message', 'Are you in a group at all !? (url doesnt start with group/something). This is a bug'); } }
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."); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $membership = Membership::find($id); $membership->delete(); Flash::info("¡La membresia " . $membership->description . " fue eliminada de manera exitosa!"); return redirect()->route('membership.index'); }
/** * Store new settings from the settingsForm */ public function settings(Request $request, Group $group) { // load or create membership for this group and user combination $membership = \App\Membership::firstOrNew(['user_id' => $request->user()->id, 'group_id' => $group->id]); $membership->membership = \App\Membership::MEMBER; $membership->notification_interval = $this->intervalToMinutes($request->get('notifications')); $membership->save(); return redirect()->action('GroupController@show', [$group->id])->with('message', trans('membership.settings_updated')); }
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."); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { Membership::destroy($id); return response('', Response::HTTP_NO_CONTENT); }
public function membershipsRetired() { $memberships = Membership::Retired()->orderBy('created_at', 'desc')->get(); $subtitle = "Showing Retired Memberships"; return view('memberships.admin', compact('memberships', 'subtitle')); }
/** * Run the database seeds. * * @return void */ public function run() { DB::table('memberships')->delete(); Membership::create(['type' => 'institutional']); Membership::create(['type' => 'individual']); }
/** * Activate the user's membership */ public function activateMembership() { $user = JWTAuth::parseToken()->authenticate(); if (!$user->membership->isEmpty()) { throw new \Dingo\Api\Exception\StoreResourceFailedException('Membership already exists.'); } $membership = new Membership(); $membership->user()->associate($user); $membership->save(); // Mail::to($user->email)->send(new ResetPassword($user, $token)); }
/** * Process the account creation from the form of inviteConfirm() */ public function inviteRegister(Request $request, Group $group, $token) { $this->validate($request, ['name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6']); $invite = \App\Invite::whereToken($token)->firstOrFail(); $invite->claimed_at = Carbon::now(); $user = new \App\User(); $user->name = $request->get('name'); $user->email = $request->get('email'); $user->password = bcrypt($request->get('password')); // in the strange event the user changes the email on the registration form, we cannot consider it is verified using the invite. if ($invite->email == $request->get('email')) { $user->verified = 1; } $user->save(); $membership = \App\Membership::firstOrNew(['user_id' => $user->id, 'group_id' => $group->id]); $membership->membership = \App\Membership::MEMBER; $membership->save(); Auth::login($user); flash()->info(trans('messages.you_are_now_a_member_of_this_group')); return redirect()->action('GroupController@show', $group->id); }
public function reactivate($id) { $membership = Membership::findOrFail($id); $membership->reactivate(); return Redirect::back()->with("good", "Successfully reactivated membership."); }