'None', * 'league' => 'League', * 'all' => 'All Database', */ $handicap_range = 0; $total_range = 0; if ($similar_past_matches != 'none') { $res = StatisticFixtures::where('id', (int) $match_id)->first(); $exp_handicap = $res->exp_away - $res->exp_home; $exp_total = $res->exp_away + $res->exp_home; $handicap_range = [$exp_handicap - $accuracy, $exp_handicap + $accuracy]; $total_range = [$exp_total - $accuracy, $exp_total + $accuracy]; } /** * IF WITH PLAYER */ $matches_played = 0; $description = ''; if ($tm_player_id) { $matches_played = StatistikoPlayer::where('tm_player_id', (int) $tm_player_id) ->when($player_on_field, function ($query) use ($player_on_field) { switch ($player_on_field) { case 'lineup': return $query->where('lineup', 'T'); case 'substituted': return $query->where('lineup', 'P'); } }) ->pluck('match_id')->toArray(); if (! $matches_played) { return []; } $description = ' (with '.StatistikoDetail::where('tm_player_id', (int) $tm_player_id)->value('name').')'; } /** * STATTISTIC DATA */ $res = StatistikoEvent::with('home')->with('away') ->where(function ($query) use ($league_id, $similar_past_matches) { switch ($similar_past_matches) { case 'none': case 'league': return $query->where('league_id', $league_id); } }) ->where(function ($query) use ($team_id, $team_position, $similar_past_matches) { if ($similar_past_matches == 'none') { switch ($team_position) { case 'home': return $query->where('home_id', '=', $team_id); case 'away': return $query->where('away_id', '=', $team_id); default: return $query->where('home_id', '=', $team_id) ->orWhere('away_id', '=', $team_id); } } })->when($matches_played, function ($query) use ($matches_played) { return $query->whereIn('match_id', $matches_played); })->when($handicap_range, function ($query) use ($handicap_range) { return $query->whereBetween('exp_handicap', $handicap_range); })->when($total_range, function ($query) use ($total_range) { return $query->whereBetween('exp_total', $total_range); })->when($start, function ($query) use ($start) { return $query->where('starttime', '>=', $start); })->when($end, function ($query) use ($end) { return $query->where('starttime', '<=', $end); }) ->orderBy('starttime', 'ASC') ->get(); if ($res == null) { return []; } $dataset_home = []; $dataset_away = []; $results_per_event = []; $labels = []; $events = []; $labels_since = []; $results = ['w' => 0, 'd' => 0, 'l' => 0, 'w2' => 0, 'l2' => 0]; foreach ($res as $value) { // $labels[] = $value['starttime']->format('d.M.Y H:i'); $labels[] = round($value['starttime']->diffInDays(Carbon::now())).''; $results_per_event[] = $value['gls_h'].' : '.$value['gls_a']; if ($team_position == 'home') { switch ($value['result_code']) { case '1': $results['w']++; $results['l2']++; break; case 'X': $results['d']++; break; case '2': $results['l']++; $results['w2']++; break; } switch ($statistic_type) { case 'gls': $val_home = (int) $value['gls_h']; $val_away = (int) $value['gls_a']; break; case 'crn': $val_home = (int) $value['crn_h']; $val_away = (int) $value['crn_a']; break; case 'fls': $val_home = (int) $value['fls_h']; $val_away = (int) $value['fls_a']; break; case 'ofs': $val_home = (int) $value['ofs_h']; $val_away = (int) $value['ofs_a']; break; case 'crd': $val_home = (int) $value['crd_h']; $val_away = (int) $value['crd_a']; break; case 'snt': $val_home = (int) $value['snt_h']; $val_away = (int) $value['snt_a']; break; case 'tsh': $val_home = (int) $value['tsh_h']; $val_away = (int) $value['tsh_a']; break; } } elseif ($team_position == 'away') { switch ($value['result_code']) { case '1': $results['l']++; $results['w2']++; break; case 'X': $results['d']++; break; case '2': $results['w']++; $results['l2']++; break; } switch ($statistic_type) { case 'gls': $val_home = (int) $value['gls_a']; $val_away = (int) $value['gls_h']; break; case 'crn': $val_home = (int) $value['crn_a']; $val_away = (int) $value['crn_h']; break; case 'fls': $val_home = (int) $value['fls_a']; $val_away = (int) $value['fls_h']; break; case 'ofs': $val_home = (int) $value['ofs_a']; $val_away = (int) $value['ofs_h']; break; case 'crd': $val_home = (int) $value['crd_a']; $val_away = (int) $value['crds_h']; break; case 'snt': $val_home = (int) $value['snt_a']; $val_away = (int) $value['snt_h']; break; case 'tsh': $val_home = (int) $value['tsh_a']; $val_away = (int) $value['tsh_h']; break; } } else { switch ($value['result_code']) { case '1': if ($team_id == $value['home_id']) { $results['l2']++; $results['w']++; } else { $results['w2']++; $results['l']++; } break; case 'X': $results['d']++; break; case '2': if ($team_id == $value['home_id']) { $results['l']++; $results['w2']++; } else { $results['l2']++; $results['w']++; } break; } switch ($statistic_type) { case 'gls': if ($team_id == $value['home_id']) { $val_home = (int) $value['gls_h']; $val_away = (int) $value['gls_a']; } else { $val_home = (int) $value['gls_a']; $val_away = (int) $value['gls_h']; } break; case 'crn': if ($team_id == $value['home_id']) { $val_home = (int) $value['crn_h']; $val_away = (int) $value['crn_a']; } else { $val_home = (int) $value['crn_a']; $val_away = (int) $value['crn_h']; } break; case 'fls': if ($team_id == $value['home_id']) { $val_home = (int) $value['fls_h']; $val_away = (int) $value['fls_a']; } else { $val_home = (int) $value['fls_a']; $val_away = (int) $value['fls_h']; } break; case 'ofs': if ($team_id == $value['home_id']) { $val_home = (int) $value['ofs_h']; $val_away = (int) $value['ofs_a']; } else { $val_home = (int) $value['ofs_a']; $val_away = (int) $value['ofs_h']; } break; case 'crd': if ($team_id == $value['home_id']) { $val_home = (int) $value['crd_h']; $val_away = (int) $value['crd_a']; } else { $val_home = (int) $value['crd_a']; $val_away = (int) $value['crd_h']; } break; case 'snt': if ($team_id == $value['home_id']) { $val_home = (int) $value['snt_h']; $val_away = (int) $value['snt_a']; } else { $val_home = (int) $value['snt_a']; $val_away = (int) $value['snt_h']; } break; case 'tsh': if ($team_id == $value['home_id']) { $val_home = (int) $value['tsh_h']; $val_away = (int) $value['tsh_a']; } else { $val_home = (int) $value['tsh_a']; $val_away = (int) $value['tsh_h']; } break; } } if (isset($val_home) && isset($val_away)) { $events[] = $value->home->name.' vs '.$value->away->name; $dataset_home[] = $val_home; $dataset_away[] = $val_away; } } if ($similar_past_matches != 'none') { $label1 = 'Home'; $label2 = 'Away'; } else { $label1 = 'In Favour'; $label2 = 'Against'; } $data = [ 'datasets' => [ [ 'label' => $label2, 'events' => $events, 'results_per_event' => $results_per_event, 'data' => $dataset_home, 'tension' => 0.5, 'borderColor' => '#fb2c36', 'fill' => [ 'target' => 1, 'above' => '#fb2c3680', 'below' => '#fdc70080', ], ], [ 'label' => $label1, 'events' => $events, 'results_per_event' => $results_per_event, 'data' => $dataset_away, 'tension' => 0.5, 'borderColor' => '#fdc700', 'fill' => false, ], ], 'labels' => $labels, 'description' => $description ?? '', 'results' => $results, ]; self::$last_query = $data; // dd($data); return $data; } }