Example #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $period = Competition::find(1)->current_period;
     $winners = Winner::where('period', $period)->get();
     $data = ['title' => 'Winners of period' . $period, 'content' => '', 'winners' => $winners];
     Mail::send('emails.welcome', $data, function ($message) {
         $message->to('*****@*****.**', 'Oscar');
         $message->subject('hello world');
     });
 }
 /**
  * Updates the competition
  *
  * @param $id
  * @param Request $request
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function update($id, CompetitionFormRequest $request)
 {
     //get the event
     $competition = Competition::findOrFail($id);
     //update the event
     $competition->update($request->all());
     //redirect
     //return redirect(action('EventsController@admin', $request->input('event')));
     return Redirect::back()->with(['tabName' => 'competitions']);
 }
 public function competition_select($id, $subid)
 {
     $competition = Competition::whereId($id)->first();
     $competitiongroups = Competitiongroup::where('competition_id', '=', $competition->id)->orderBy('date', 'desc')->get();
     if (!$competitiongroups->isEmpty()) {
         $competitiongroup = Competitiongroup::whereId($subid)->firstOrFail();
         $results = Result::where('competitiongroup_id', '=', $competitiongroup->id)->where('dsq_status', 0)->orderBy('total_points', 'desc')->get();
         $results_dsq = Result::where('competitiongroup_id', '=', $competitiongroup->id)->where('dsq_status', 1)->get();
         $teams = Results_team::where('competitiongroup_id', '=', $competitiongroup->id)->orderBy('total_points', 'desc')->get();
     }
     return view('home', compact('competition', 'competitiongroups', 'competitiongroup', 'results', 'results_dsq', 'teams'));
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     Blade::directive('datetime', function ($expression) {
         return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
     });
     View::composer('header', function ($view) {
         $view->with(['user' => Auth::user()]);
     });
     Validator::extend('valid_category', function ($attribute, $value, $parameters, $validator) {
         $competition = Competition::findOrFail($parameters[0]);
         $category = $competition->categories()->where('id', '=', $value)->firstOrFail();
         return !is_null($competition) && !is_null($category);
     });
 }
 public function update(CompetitiongroupFormRequest $request, $id)
 {
     $competitiongroup = Competitiongroup::findOrFail($id);
     $in_competition = $request->competition_id;
     $competitiongroup->competition_id = $request->competition_id;
     $competitiongroup->date = $request->date;
     $competitiongroup->type = $request->type;
     $competitiongroup->sex = $request->sex;
     $competitiongroup->age_group = $request->age_group;
     $competitiongroup->name = $request->age_group . ' ' . $request->sex . ' ' . $request->type;
     $competitiongroup->save();
     $competition = Competition::where('id', '=', $in_competition)->firstOrFail();
     $competition->in_competition = 1;
     $competition->save();
     return redirect('/admin/competitiongroups')->with('status', 'Csoport adatai módosítva');
 }
 public function destroy($id)
 {
     Competition::findOrFail($id)->delete();
     return redirect('/admin/competitions')->with('status', 'Verseny törölve');
 }
Example #7
0
 /**
  * Formats a messy form and presents the user with a confirmation page (form) before
  * proceeding to payment.
  */
 public function confirmEntry(Request $request)
 {
     // returns a confirm view which then sends the user to the store function above.
     $data = $request->all();
     $user = Auth::user();
     $event = Event::findOrFail($data['event_id']);
     $compSubTotal = 0;
     $extraSubTotal = 0;
     //Format the competitions for display in the confirmation form
     $entries = array();
     //$competitions[$id] = array('detail' => $detail, 'competition' => $competition)
     foreach ($data['competitions'] as $competition_id => $detail_id) {
         if ($detail_id != "noEntry") {
             $competition = Competition::findOrFail($competition_id);
             $detail = Detail::findOrFail($detail_id);
             $entries[$competition_id] = array('competition' => $competition, 'detail' => $detail);
             $compSubTotal += $competition->fee;
         }
     }
     //if for some reason the competitor has forgotten to select a competition, bump them back.
     if (empty($entries)) {
         \Flash::error('You need to select a competition to enter before you can proceed.');
         return redirect(action('EventsController@show', $event->slug));
     }
     //Format the extras for display in the confirmation form
     $extras = array();
     if (key_exists('extras', $data)) {
         foreach ($data['extras'] as $extra_id => $extraOrder) {
             $multiple = 1;
             $infoRequired = NULL;
             if (is_string($extraOrder) == False) {
                 //This is an extra order with an array of info
                 if (array_key_exists('multiple', $extraOrder)) {
                     $multiple = $extraOrder['multiple'];
                 }
                 if (array_key_exists('infoRequired', $extraOrder)) {
                     $infoRequired = $extraOrder['infoRequired'];
                 }
             }
             $extra = Extra::findOrFail($extra_id);
             $thisExtraTotal = $extra->cost * $multiple;
             $extraSubTotal += $thisExtraTotal;
             $extras[$extra_id] = array('id' => $extra_id, 'multiple' => $multiple, 'infoRequired' => $infoRequired, 'extra' => $extra, 'thisExtraCost' => $thisExtraTotal);
         }
     }
     //Format the discounts so that the fixed and percentage discounts
     //can be applied separately, fixed first.
     $discounts = array();
     $fixedDiscounts = array();
     $percentageDiscounts = array();
     $discounts_applied = "";
     if (key_exists('discounts', $data)) {
         foreach ($data['discounts'] as $discount_id => $discountApply) {
             if ($discountApply == 1) {
                 $discount = Discount::findOrFail($discount_id);
                 $discounts[] = $discount;
                 $discounts_applied = $discounts_applied . $discount_id . "-";
             }
         }
         $discounts = collect($discounts);
         $fixedDiscounts = $discounts->where('type', 'fixed');
         $percentageDiscounts = $discounts->where('type', 'percentage');
     }
     //total (just competitions and extras)
     $compExtraSubtotal = $compSubTotal + $extraSubTotal;
     //Apply any discounts to the compextrasubtotal & registration fee
     //fixed fees first, then %.
     $discountedSubtotal = $compExtraSubtotal;
     $discountedRegistrationFee = $event->registrationFee;
     $percentageDiscountValues = array();
     foreach ($fixedDiscounts as $fd) {
         $discountedSubtotal = $discountedSubtotal - $fd->value;
     }
     foreach ($percentageDiscounts as $pd) {
         $percentage = $pd->value / 100;
         $discount = $discountedSubtotal * $percentage;
         $percentageDiscountValues[$pd->id] = $discount;
         $discountedSubtotal = $discount;
         $discountedRegistrationFee = $discountedRegistrationFee * $percentage;
     }
     //Charge a late entry fee? //if it's past the closing date
     $lateEntryFee = 0;
     if (Carbon::now()->gt($event->closingDate)) {
         $lateEntryFee = $event->lateEntriesFee;
     }
     //FORESIGHT FEE
     $foresightFee = 2.99;
     $finalsubtotal = $discountedSubtotal + $discountedRegistrationFee + $lateEntryFee + $foresightFee;
     //paypal fees (3.4% + 20p)
     $paypalFees = $finalsubtotal * 0.034 + 0.2;
     $feesTotal = $discountedRegistrationFee + $lateEntryFee + $foresightFee + $paypalFees;
     $grandTotal = $finalsubtotal + $paypalFees;
     $format = "%4.2f";
     $variables = array('entrydata' => $data, 'event' => $event, 'user' => $user, 'entries' => $entries, 'extras' => $extras, 'fixedDiscounts' => $fixedDiscounts, 'percentageDiscounts' => $percentageDiscounts, 'percentageDiscountValues' => $percentageDiscountValues, 'compSubTotal' => sprintf($format, $compSubTotal), 'extraSubTotal' => sprintf($format, $extraSubTotal), 'compExtraSubtotal' => sprintf($format, $compExtraSubtotal), 'discountedSubtotal' => sprintf($format, $discountedSubtotal), 'discountedRegistrationFee' => sprintf($format, $discountedRegistrationFee), 'lateEntryFee' => sprintf($format, $lateEntryFee), 'paypalFees' => sprintf($format, $paypalFees), 'feesTotal' => sprintf($format, $feesTotal), 'grandTotal' => sprintf($format, $grandTotal), 'discounts_applied' => $discounts_applied, 'foresightFee' => sprintf($format, $foresightFee));
     //dd($variables);
     return view('events.entryconfirm')->with($variables);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy(Competition $competition)
 {
     $competition->delete();
 }
 /**
  * Export list of competitors and competitions
  */
 public function export($type, $id)
 {
     $header = array('Competitor name', 'ID', 'Email', 'Club', 'Home Country');
     if ($type == 'competitors') {
         $event = Event::findOrFail($id);
         $entries = $event->entries()->get()->sortBy('user_lastname');
         $competitor_ids = $entries->pluck('user_id')->unique();
         $competitions = $event->competitions()->get();
         $header = array();
         foreach ($competitions as $competition) {
             $header[] = $competition->name;
         }
         $sheetdata = array($header);
         foreach ($competitor_ids as $competitor_id) {
             $competitorEntries = $event->entries()->get()->where('user_id', $competitor_id);
             $thisCompetitor = User::findOrFail($competitor_id);
             $name = $thisCompetitor->lastname . ", " . $thisCompetitor->firstname;
             $row = array($name);
             foreach ($competitions as $competition) {
                 $entered_competition_ids = array();
                 foreach ($competitorEntries as $entry) {
                     $entered_competition_ids[] = $entry->competition_id;
                 }
                 if (in_array($competition->id, $entered_competition_ids)) {
                     $row[] = "Entered";
                 } else {
                     $row[] = "";
                 }
             }
             $sheetdata[] = $row;
         }
         Excel::create('competitors', function ($excel) use($sheetdata) {
             $excel->setTitle('Competitors List');
             $excel->setCreator('Foresight Entries');
             $excel->setCompany('Foresightentries.com');
             $excel->setDescription('Competitors list');
             // Create the sheet
             $excel->sheet('Competitors', function ($sheet) use($sheetdata) {
                 $sheet->fromArray($sheetdata);
             });
         })->export('xlsx');
         return redirect()->back();
     }
     // Download ALL the data in one mega spreadsheet (for the overview tab)
     if ($type == 'event') {
         $event = Event::findOrFail($id);
         $competitions = $event->competitions()->get();
         $megaheader = $header;
         $sheets = array();
         //Sheet showing all competitors, their entries, their answers, extras and how much paid
         // -- HEADERS --
         // ---- competitions --
         foreach ($event->competitions()->get() as $competition) {
             $megaheader[] = $competition->name;
         }
         // ---- questions --
         foreach ($event->questions()->get() as $question) {
             $megaheader[] = $question->question;
         }
         // ---- extras --
         foreach ($event->extras()->get() as $extra) {
             //fill in once extras is worked out
         }
         // ---- financial --
         $megaheader[] = "Entry fees (total)";
         //MEGASHEET INITIALISE
         $megasheet = array($megaheader);
         // DATA ENTRY TO MEGASHEET
         $entries = $event->entries()->get()->sortBy('user_lastname');
         $competitor_ids = $entries->pluck('user_id')->unique();
         foreach ($competitor_ids as $competitor_id) {
             $thisCompetitor = User::findOrFail($competitor_id);
             $row = array($thisCompetitor->firstname . " " . $thisCompetitor->lastname, $thisCompetitor->id + 1000, $thisCompetitor->email, $thisCompetitor->club, $thisCompetitor->homeCountry);
             // -- ENTRIES --
             $competitorEntries = $event->entries()->get()->where('user_id', $competitor_id);
             $competitorEntriesCompetitionIDs = array();
             foreach ($competitorEntries as $entry) {
                 $competitorEntriesCompetitionIDs[$entry->competition_id] = $entry->competition_id;
             }
             foreach ($event->competitions()->get() as $competition) {
                 // if entry->competition_id exists in $competitorEntries then entered row, else empty row.
                 if (key_exists($competition->id, $competitorEntriesCompetitionIDs)) {
                     $row[] = "x";
                 } else {
                     $row[] = " ";
                 }
             }
             // -- ANSWERS --
             $competitorAnswers = $event->answers()->get()->where('competitor_id', $competitor_id);
             $competitorAnsweredQuestionIDs = array();
             foreach ($competitorAnswers as $answer) {
                 $competitorAnsweredQuestionIDs[$answer->question_id] = $answer->question_id;
             }
             //@TODO: this needs to be tested with a user who has answered questions. 5/7/16
             foreach ($competitorAnswers as $competitorAnswer) {
                 if (key_exists($competitorAnswer->question_id, $competitorAnsweredQuestionIDs)) {
                     $row[] = $competitorAnswer->answer;
                 } else {
                     $row[] = "N/A";
                 }
             }
             // -- EXTRAS --
             //@TODO: fill in once extras is worked out
             // -- ENTRY FEES TOTAL --
             $row[] = "subtotal here (£)";
             // Add the row to the megasheet
             $megasheet[] = $row;
         }
         //Add the megasheet to sheets
         $sheets["Competitors"] = $megasheet;
         //Sheet for each competition and detail with the entries
         foreach ($competitions as $competition) {
             $details = $competition->details()->get();
             foreach ($details as $detail) {
                 $entries = $detail->entries()->get()->sortBy('user_lastname');
                 $sheetdata = array($header);
                 $competitor_ids = $entries->pluck('user_id')->unique();
                 foreach ($competitor_ids as $competitor_id) {
                     $competitor = User::findOrFail($competitor_id);
                     $row = array($competitor->firstname . " " . $competitor->lastname, $competitor->id + 1000, $competitor->email, $competitor->club, $competitor->homeCountry);
                     $sheetdata[] = $row;
                 }
                 $sheets[$competition->name . "-" . $detail->name] = $sheetdata;
             }
         }
         Excel::create($event->name, function ($excel) use($sheets, $competitions) {
             $excel->setTitle('Competitors');
             $excel->setCreator('Foresight Entries');
             $excel->setCompany('ForesightEntries.com');
             $excel->setDescription('Competitors List');
             $infosheet = $sheets["Competitors"];
             $excel->sheet('Competitors', function ($sheet) use($infosheet) {
                 $sheet->fromArray($infosheet);
             });
             foreach ($competitions as $competition) {
                 $details = $competition->details()->get();
                 foreach ($details as $detail) {
                     $sheet = $sheets[$competition->name . '-' . $detail->name];
                     $excel->sheet($competition->name . '-' . $detail->name, function ($thissheet) use($sheet) {
                         $thissheet->fromArray($sheet);
                     });
                 }
             }
         })->export('xlsx');
         return redirect()->back();
     }
     if ($type == 'competition') {
         $competition = Competition::findOrFail($id);
         $details = $competition->details()->get();
         $sheets = array();
         foreach ($details as $detail) {
             $entries = $detail->entries()->get()->sortBy('user_lastname');
             $sheetdata = array($header);
             $competitor_ids = $entries->pluck('user_id')->unique();
             foreach ($competitor_ids as $competitor_id) {
                 $competitor = User::findOrFail($competitor_id);
                 $row = array($competitor->firstname . " " . $competitor->lastname, $competitor->id + 1000, $competitor->email, $competitor->club, $competitor->homeCountry);
                 $sheetdata[] = $row;
             }
             $sheets[$detail->name] = $sheetdata;
         }
         Excel::create($competition->name, function ($excel) use($sheets, $details) {
             $excel->setTitle('Competitors');
             $excel->setCreator('Foresight Entries');
             $excel->setCompany('ForesightEntries.com');
             $excel->setDescription('Competitors List');
             foreach ($details as $detail) {
                 $sheet = $sheets[$detail->name];
                 $excel->sheet($detail->name, function ($thissheet) use($sheet) {
                     $thissheet->fromArray($sheet);
                 });
             }
         })->export('xlsx');
         return redirect()->back();
     }
     if ($type == 'detail') {
         $detail = Detail::findOrFail($id);
         $entries = $detail->entries()->get()->sortBy('user_lastname');
         $sheetdata = array($header);
         $competitor_ids = $entries->pluck('user_id')->unique();
         foreach ($competitor_ids as $competitor_id) {
             $competitor = User::findOrFail($competitor_id);
             $row = array($competitor->firstname . " " . $competitor->lastname, $competitor->id + 1000, $competitor->email, $competitor->club, $competitor->homeCountry);
             $sheetdata[] = $row;
         }
         Excel::create($detail->competition()->first()->name . "-" . $detail->name, function ($excel) use($sheetdata) {
             $excel->setTitle('Competitors');
             $excel->setCreator("Foresight Entries");
             $excel->setCompany("ForesightEntries.com");
             $excel->setDescription("Competitors List");
             $excel->sheet('Competitors', function ($sheet) use($sheetdata) {
                 $sheet->fromArray($sheetdata);
             });
         })->export('xlsx');
         return redirect()->back();
     }
     if ($type == 'competitor_entries') {
         $event = Event::findOrFail($id);
         $entries = $event->entries()->get()->sortBy('user_lastname');
         $competitor_ids = $entries->pluck('user_id')->unique();
         //Add competition names to the header
         foreach ($event->competitions()->get() as $competition) {
             $header[] = $competition->name;
         }
         $sheetdata = array($header);
         foreach ($competitor_ids as $competitor_id) {
             $competitorEntries = $event->entries()->get()->where('user_id', $competitor_id);
             $competitorEntriesCompetitionIDs = array();
             foreach ($competitorEntries as $entry) {
                 $competitorEntriesCompetitionIDs[$entry->competition_id] = $entry->competition_id;
             }
             $thisCompetitor = User::findOrFail($competitor_id);
             $row = array($thisCompetitor->firstname . " " . $thisCompetitor->lastname, $thisCompetitor->id + 1000, $thisCompetitor->email, $thisCompetitor->club, $thisCompetitor->homeCountry);
             foreach ($event->competitions()->get() as $competition) {
                 // if entry->competition_id exists in $competitorEntries then entered row, else empty row.
                 if (key_exists($competition->id, $competitorEntriesCompetitionIDs)) {
                     $row[] = "x";
                 } else {
                     $row[] = " ";
                 }
             }
             $sheetdata[] = $row;
         }
         Excel::create("Competitor entries", function ($excel) use($sheetdata) {
             $excel->setTitle('Competitor_entries');
             $excel->setCreator("Foresight Entries");
             $excel->setCompany("ForesightEntries.com");
             $excel->setDescription("Competitors List");
             $excel->sheet('Competitor_entries', function ($sheet) use($sheetdata) {
                 $sheet->fromArray($sheetdata);
             });
         })->export('xlsx');
         return redirect()->back();
     }
     if ($type == 'competitor_answers') {
         $event = Event::findOrFail($id);
         $entries = $event->entries()->get()->sortBy('user_lastname');
         $competitors = $entries->pluck('user_id')->unique();
         //Add the questions to the header
         foreach ($event->questions()->get() as $question) {
             $header[] = $question->question;
         }
         $sheetdata = array($header);
         foreach ($competitors as $competitor) {
             $competitorAnswers = $event->answers()->get()->where('competitor_id', $competitor);
             $competitorAnsweredQuestionIDs = array();
             foreach ($competitorAnswers as $answer) {
                 $competitorAnsweredQuestionIDs[$answer->question_id] = $answer->question_id;
             }
             $thisCompetitor = User::findOrFail($competitor);
             $row = array($thisCompetitor->firstname . " " . $thisCompetitor->lastname, $thisCompetitor->id + 1000, $thisCompetitor->email, $thisCompetitor->club, $thisCompetitor->homeCountry);
             //@TODO: this needs to be tested with a user who has answered questions. 5/7/16
             foreach ($competitorAnswers as $competitorAnswer) {
                 if (key_exists($competitorAnswer->question_id, $competitorAnsweredQuestionIDs)) {
                     $row[] = $competitorAnswer->answer;
                 } else {
                     $row[] = "N/A";
                 }
             }
             $sheetdata[] = $row;
         }
         Excel::create("Competitor answers", function ($excel) use($sheetdata) {
             $excel->setTitle('Competitor_answers');
             $excel->setCreator("Foresight Entries");
             $excel->setCompany("ForesightEntries.com");
             $excel->setDescription("Competitor answers");
             $excel->sheet('Competitor_answers', function ($sheet) use($sheetdata) {
                 $sheet->fromArray($sheetdata);
             });
         })->export('xlsx');
         return redirect()->back();
     }
 }
 /**
  * 
  * @return \Illuminate\Http\Response
  */
 public function indexAll()
 {
     $competitions = Competition::all();
     return view('competitions/indexAll')->with(['competitions' => $competitions]);
 }