Example #1
0
 /**
  * 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]);
 }
Example #4
0
 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;
     }
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
 /**
  * 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');
     }
 }
Example #10
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.");
 }
Example #11
0
 /**
  * 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'));
 }
Example #13
0
 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.");
 }
Example #14
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     Membership::destroy($id);
     return response('', Response::HTTP_NO_CONTENT);
 }
Example #15
0
 public function membershipsRetired()
 {
     $memberships = Membership::Retired()->orderBy('created_at', 'desc')->get();
     $subtitle = "Showing Retired Memberships";
     return view('memberships.admin', compact('memberships', 'subtitle'));
 }
Example #16
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::table('memberships')->delete();
     Membership::create(['type' => 'institutional']);
     Membership::create(['type' => 'individual']);
 }
Example #17
0
 /**
  * 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.");
 }