예제 #1
0
 public function start($id)
 {
     $tournament = Tournament::find($id);
     $participants = $tournament->participants;
     if ($tournament->started == false) {
         // $registrations =$tournament->registrations()->get();
         //  echo $registrations[0]->user()->get();
         // Von der Registrierung zum User
         $registrations = $tournament->registrations()->get();
         for ($i = 0; $i <= $participants / 2; $i = $i + 2) {
             echo "test" . $i;
             $player1 = $registrations[$i]->user()->get();
             $player2 = $registrations[$i + 1]->user()->get();
             $post = new Result();
             $post->user1()->associate($player1[0]);
             $post->user2()->associate($player2[0]);
             $post->tournament()->associate($tournament);
             $post->round = 0;
             $post->save();
         }
         $tournament->started = 1;
         $tournament->round = 0;
         //     $tournament->round++;
         $tournament->save();
     } else {
         $tournament_already_started_message = "Tournament already started";
     }
     //  echo count($registrations);
     return view('results.index', array("tournament_already_started_message" => $tournament_already_started_message, "started" => $tournament->started, 'tournament' => $tournament));
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param Request $request
  * @return Response
  */
 public function store(Request $request)
 {
     $quiz = Quiz::findOrFail($request->get('quiz_id'));
     //calculamos la nota
     $value_evaluation = $quiz->evaluation->value;
     $max_question = $quiz->evaluation->max_question;
     $min_value = $quiz->evaluation->min_value;
     $answers = $quiz->answers;
     /*
      * Respuestas Correctas
      */
     $correct_answers = 0;
     foreach ($answers as $answer) {
         if ($answer->correct == 1) {
             $correct_answers++;
         }
     }
     $quiz_result = $value_evaluation / $max_question * $correct_answers;
     $quiz_approval = $quiz_result * 100 / $value_evaluation;
     if ($quiz_approval < $min_value) {
         $quiz->status = 'rejected';
     } else {
         $quiz->status = 'approved';
     }
     $quiz->save();
     $result = new Result();
     $result->fill($request->all());
     $result->correct_answers = $correct_answers;
     $result->quiz_result = $quiz_result;
     $result->quiz_approval = $quiz_approval;
     $result->user_id = Auth::id();
     $result->save();
     return redirect()->route('results.show', $result);
 }
예제 #3
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     DB::statement('SET FOREIGN_KEY_CHECKS=0;');
     DB::table('results')->truncate();
     $res = new Result();
     $res->quiz_id = 1;
     $res->type = 1;
     $res->title = 'Seeded result';
     $res->content = 'lorem ipsum';
     $res->save();
     $res = new Result();
     $res->quiz_id = 1;
     $res->type = 2;
     $res->title = 'Seeded result';
     $res->content = 'lorem ipsum';
     $res->save();
     $res = new Result();
     $res->quiz_id = 1;
     $res->type = 3;
     $res->title = 'Seeded result';
     $res->content = 'lorem ipsum';
     $res->save();
     $res = new Result();
     $res->quiz_id = 1;
     $res->type = 4;
     $res->title = 'Seeded result';
     $res->content = 'lorem ipsum';
     $res->save();
     DB::statement('SET FOREIGN_KEY_CHECKS=1;');
 }
예제 #4
0
 public function store()
 {
     //return $request->all();
     $newResult = input::json();
     //$slug = uniqid();
     $result = new Result(array('vote' => $newResult->get('vote'), 'idUser' => $newResult->get('idUser'), 'slug' => $newResult->get('slug')));
     $result->save();
     return Response::json(['message' => 'Thanks for your vote!']);
 }
 /**
  * Display the specified resource.
  *
  * @param  int $id
  * @return Response
  */
 public function show($id)
 {
     $quiz = Quiz::findOrFail($id);
     $result = Result::where('quiz_id', $quiz->id)->first();
     if (!$result) {
         $quiz->status = 'rejected';
         $quiz->save();
         $result = new Result();
         $result->quiz_id = $quiz->id;
         $result->user_id = $quiz->user_id;
         $result->save();
     }
     return view('teacher.results.show')->with('result', $result)->with('title', trans('titles.results'));
 }
 /**
  * Store a newly created booking. If the booking is for a ladder match
  * store a record for each player in the results table, to enter their results once
  * they have completed their match. Refer to Ladder controller.
  *
  * @return Response
  */
 public function store_booking(StoreBookingRequest $request)
 {
     $booking = Booking::create($request->all());
     if ($booking->booking_cat_id == 3) {
         $player1 = new Result();
         $player1->match_id = $booking->id;
         $player1->player_id = $booking->player1_id;
         $player1->save();
         $player2 = new Result();
         $player2->match_id = $booking->id;
         $player2->player_id = $booking->player2_id;
         $player2->save();
     }
     $booking_data = Booking::find($booking->id);
     session()->flash('booking_data', $booking_data);
     //with array of emails dates and booking info - go to a get request - create session with cancellation data.
     return redirect('email/booking-confirmation');
     //session()->flash('flash_message', 'Your booking was successful');
     //return redirect('bookings/my-bookings');
 }
예제 #7
0
 public function evaluate($id)
 {
     if (Gate::denies('managerOnly')) {
         abort(403);
     }
     $result = DB::transaction(function ($id) use($id) {
         $report = Report::find($id);
         if ($report) {
             if ($report->evaluated_at) {
                 Result::whereHas('report', function ($report) use($id) {
                     $report->where('id', $id);
                 })->delete();
                 $report->evaluated_at = null;
             }
             $coefficients = array();
             $organizationIndicators = $report->owner->organization->indicators;
             foreach ($organizationIndicators as $organizationIndicator) {
                 $coefficients[$organizationIndicator->id] = $organizationIndicator->pivot->coefficient;
             }
             $faker = Faker::create();
             foreach ($report->users as $user) {
                 foreach ($report->indicators as $indicator) {
                     $value = $indicator->type == 'value' ? $faker->randomNumber(2) : $faker->randomNumber(3, 0, 1);
                     $points = $value * $coefficients[$indicator->id];
                     $result = new Result();
                     $result->report_id = $report->id;
                     $result->user_id = $user->id;
                     $result->indicator_id = $indicator->id;
                     $result->value = $value;
                     $result->points = $points;
                     $result->save();
                 }
             }
             $report->evaluated_at = Carbon::now();
             $report->save();
         }
         return $report;
     });
     return $result;
 }
예제 #8
0
 /** Главный метод: гененрирует полотно вопросов на странице тестов */
 public function showViews($id_test)
 {
     $test = new Test();
     $result = new Result();
     $user = new User();
     $widgets = [];
     $saved_test = [];
     $current_date = date('U');
     $query = $test->whereId_test($id_test)->select('amount', 'test_name', 'test_time', 'start', 'end', 'test_type')->first();
     if ($current_date < strtotime($query->start) || $current_date > strtotime($query->end)) {
         //проверка открыт ли тест
         return view('no_access');
     }
     $amount = $query->amount;
     //кол-во вопрососв в тесте
     $result->test_name = $query->test_name;
     $test_time = $query->test_time;
     $test_type = $query->test_type;
     if (!Session::has('test')) {
         //если в тест зайдено первый раз
         $test = new Test();
         $test_controller = new TestController($test);
         $ser_array = $this->prepareTest($id_test);
         for ($i = 0; $i < $amount; $i++) {
             $id = $this->chooseQuestion($ser_array);
             if (!$test_controller->rybaTest($id)) {
                 //проверка на вопрос по рыбе
                 return view('no_access');
             }
             $data = $this->showTest($id, $i + 1);
             //должны получать название view и необходимые параметры
             $saved_test[] = $data;
             $widgets[] = View::make($data['view'], $data['arguments']);
         }
         $start_time = date_create();
         //время начала
         $int_end_time = date_format($start_time, 'U') + 60 * $test_time;
         //время конца
         Session::put('end_time', $int_end_time);
         $query = Result::max('id_result');
         //пример использования агрегатных функций!!!
         $current_result = $query + 1;
         //создаем строку в таблице пройденных тестов
         $query2 = $user->whereEmail(Auth::user()['email'])->select('id')->first();
         $result->id_result = $current_result;
         $result->id_user = $query2->id;
         $result->id_test = $id_test;
         $result->amount = $amount;
         $result->save();
         $saved_test = serialize($saved_test);
         Result::where('id_result', '=', $current_result)->update(['saved_test' => $saved_test]);
         Session::put('test', $current_result);
     } else {
         //если была перезагружена страница теста или тест был покинут
         $current_test = Session::get('test');
         $query = $result->whereId_result($current_test)->first();
         $int_end_time = Session::get('end_time');
         //время окончания теста
         $saved_test = $query->saved_test;
         $saved_test = unserialize($saved_test);
         for ($i = 0; $i < $amount; $i++) {
             $widgets[] = View::make($saved_test[$i]['view'], $saved_test[$i]['arguments']);
         }
     }
     $current_time = date_create();
     //текущее время
     $int_left_time = $int_end_time - date_format($current_time, 'U');
     //оставшееся время
     $left_min = floor($int_left_time / 60);
     //осталось минут
     $left_sec = $int_left_time % 60;
     //осталось секунд
     $widgetListView = View::make('questions.student.widget_list', compact('amount', 'id_test', 'left_min', 'left_sec', 'test_type'))->with('widgets', $widgets);
     $response = new Response($widgetListView);
     return $response;
 }
예제 #9
0
 public function store_winning(Request $request)
 {
     //save winning numbers for $lottery_id for current date
     $input = Input::all();
     $date = date('Y-m-d');
     $lottery_id = (int) $input['lottery_id'];
     // dd(count($results));
     $series = $input['series'];
     // dd($series);
     $ctr = 0;
     foreach ($series as $series_id => $win_no) {
         $series_id = (int) $series_id;
         //check if entry already created for this date and lottery id
         $result = Result::where(array('series_id' => $series_id, 'lottery_id' => $lottery_id, 'date' => $date))->get();
         // dd(count($result));
         if (count($result)) {
             $result = $result[0];
             $result->winning_number = $win_no;
         } else {
             $result = new Result(array('date' => $date, 'lottery_id' => $lottery_id, 'series_id' => $series_id, 'winning_number' => $win_no));
         }
         $rsp = $result->save();
         // $rsp ? ($ctr++) : '';
     }
     return Redirect::to('/admin/lotteries/winning');
 }
 protected function insertProjectResult(Request $request, $id)
 {
     $array = Input::all();
     $validator = Validator::make($array, ['content' => 'required']);
     if ($validator->fails()) {
         return Response::json('', 400);
     } else {
         $result = Result::where('Project_FK', '=', $id)->first();
         if (!empty($result)) {
             $result->content = $request->input('content');
             $result->save();
         } else {
             $result = new Result();
             $result->Project_FK = $id;
             $result->content = $request->input('content');
             $result->save();
         }
     }
 }
 public function entry_save(EntrySaveFormRequest $request, $id)
 {
     $competitiongroup = Competitiongroup::whereId($id)->firstOrFail();
     foreach ($request->competitors as $selected_cat) {
         $result = new Result();
         $result->competitor_id = $selected_cat;
         $result->competitiongroup_id = $id;
         $result->sex = $competitiongroup->sex;
         $result->age_group = $competitiongroup->age_group;
         $result->save();
         $competitor = Competitor::where('id', '=', $selected_cat)->firstOrFail();
         $competitor->in_competition = 1;
         $competitor->save();
     }
     return redirect('/admin/competitiongroups/' . $id . '/entry')->with('status', 'Nevezés leadva');
 }