|
|
|
@@ -1608,6 +1608,20 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
|
|
|
|
|
$modus = $rows[0];
|
|
|
|
|
|
|
|
|
|
if ($veranstaltung->tabellenwertung > 0) {
|
|
|
|
|
|
|
|
|
|
// Alle Spieltage ermitteln
|
|
|
|
|
$query = "SELECT DISTINCT spieltag"
|
|
|
|
|
. "\n FROM #__sportsmanager_begegnung"
|
|
|
|
|
. "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
|
|
|
|
|
. "\n ORDER BY spieltag";
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$spieltage = $db->loadObjectList();
|
|
|
|
|
$anzahl_spieltage_komplett = count($spieltage);
|
|
|
|
|
|
|
|
|
|
// Spieltage ermitteln, an denen schon eine Begegnung ausgetragen wurde
|
|
|
|
|
$query = "SELECT DISTINCT spieltag"
|
|
|
|
|
. "\n FROM #__sportsmanager_begegnung"
|
|
|
|
@@ -1620,54 +1634,52 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$spieltage = $db->loadObjectList();
|
|
|
|
|
$anzahl_spieltage_gespielt = count($spieltage);
|
|
|
|
|
|
|
|
|
|
$aktueller_spieltag = count($spieltage) > 0 ? $spieltage[0]->spieltag : 0;
|
|
|
|
|
if ($spieltag == 0 || $veranstaltung->tabellenwertung >= 21)
|
|
|
|
|
$spieltag = $aktueller_spieltag;
|
|
|
|
|
|
|
|
|
|
if ($spieltag == $aktueller_spieltag) {
|
|
|
|
|
$query = "SELECT *"
|
|
|
|
|
. "\n FROM #__sportsmanager_team"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
|
|
|
|
|
. "\n ORDER BY platz, teamname";
|
|
|
|
|
$teams = getTabelleAktuellerSpieltag($veranstaltung);
|
|
|
|
|
} else {
|
|
|
|
|
$query = "SELECT verein_id, teamname, zusatzpunkte,"
|
|
|
|
|
. "\n werte.*,"
|
|
|
|
|
. "\n werte.siege * " . ($veranstaltung->tabellenwertung <= 3 ? "2" : ($veranstaltung->tabellenwertung <= 6 ? "3" : "1")) . ($veranstaltung->tabellenwertung <= 6 ? " + werte.unentschieden" : "") . " + COALESCE(zusatzpunkte, 0) AS gesamtpunkte,"
|
|
|
|
|
. "\n werte.siege * " . ($veranstaltung->tabellenwertung <= 3 ? "2" : ($veranstaltung->tabellenwertung <= 6 ? "3" : "1")) . ($veranstaltung->tabellenwertung <= 6 ? " + werte.unentschieden" : "") . " AS begegnungspunkte,"
|
|
|
|
|
. "\n werte.punkte_gewonnen - werte.punkte_verloren AS punkte_differenz,"
|
|
|
|
|
. "\n IF(werte.punkte_verloren = 0, -1, werte.punkte_gewonnen / werte.punkte_verloren) AS punkte_quotient,"
|
|
|
|
|
. "\n werte.spielpunkte_gewonnen - werte.spielpunkte_verloren AS spielpunkte_differenz,"
|
|
|
|
|
. "\n IF(werte.spielpunkte_verloren = 0, -1, werte.spielpunkte_gewonnen / werte.spielpunkte_verloren) AS spielpunkte_quotient"
|
|
|
|
|
. "\n FROM #__sportsmanager_team"
|
|
|
|
|
. "\n LEFT JOIN"
|
|
|
|
|
. "\n (SELECT t1.team_id,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND ((tt1.heim_team_id = t1.team_id AND tt1.heim_spielpunkte > tt1.gast_spielpunkte) OR (tt1.gast_team_id = t1.team_id AND tt1.gast_spielpunkte > tt1.heim_spielpunkte)) AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS siege,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND (tt1.heim_team_id = t1.team_id OR tt1.gast_team_id = t1.team_id) AND tt1.heim_spielpunkte = tt1.gast_spielpunkte AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS unentschieden,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND ((tt1.heim_team_id = t1.team_id AND tt1.heim_spielpunkte < tt1.gast_spielpunkte) OR (tt1.gast_team_id = t1.team_id AND tt1.gast_spielpunkte < tt1.heim_spielpunkte)) AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS niederlagen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + (COALESCE((SELECT SUM(gast_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS punkte_gewonnen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + (COALESCE((SELECT SUM(heim_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS punkte_verloren,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + (COALESCE((SELECT SUM(gast_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS spielpunkte_gewonnen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + (COALESCE((SELECT SUM(heim_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS spielpunkte_verloren"
|
|
|
|
|
. "\n FROM #__sportsmanager_team AS t1 WHERE veranstaltung_id = $veranstaltung->veranstaltung_id)"
|
|
|
|
|
. "\n AS werte USING (team_id)"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id";
|
|
|
|
|
if ($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 10)
|
|
|
|
|
$query .= "\n ORDER BY spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 11)
|
|
|
|
|
$query .= "\n ORDER BY spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
else
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, teamname";
|
|
|
|
|
$teams = getTabelleSpieltag($veranstaltung,$spieltag);
|
|
|
|
|
}
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$teams = $db->loadObjectList();
|
|
|
|
|
|
|
|
|
|
if ($veranstaltung->direktervergleich AND $spieltag >= $anzahl_spieltage_komplett/2){
|
|
|
|
|
$Gesamtpunkte = 1000;
|
|
|
|
|
$Anzahl_Spiele = 1000;
|
|
|
|
|
$Platz = 0;
|
|
|
|
|
foreach($teams AS $key => $value){
|
|
|
|
|
if (($Gesamtpunkte != $value->gesamtpunkte) OR ($Anzahl_Spiele != $value->anzahl_spiele)){
|
|
|
|
|
$Gesamtpunkte = $value->gesamtpunkte;
|
|
|
|
|
$Anzahl_Spiele = $value->anzahl_spiele;
|
|
|
|
|
$Platz = $value->platz;
|
|
|
|
|
@$Punktgleiche_Mannschaften[$Platz] = $value->team_id;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
@$Punktgleiche_Mannschaften[$Platz] .= ",".$value->team_id;
|
|
|
|
|
@$Korrektur[$Platz] = $Punktgleiche_Mannschaften[$Platz];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach($Korrektur AS $key => $value){
|
|
|
|
|
$teams_korrektur = getTabelleSpieltag($veranstaltung,$spieltag,$value,$key-1);
|
|
|
|
|
foreach($teams_korrektur AS $key1 => $value1){
|
|
|
|
|
foreach($teams AS $key2 => $value2){
|
|
|
|
|
if ($value2->team_id == $value1->team_id){
|
|
|
|
|
$value2->platz = $value1->platz;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Tabelle neu sortieren
|
|
|
|
|
usort($teams, function($a, $b) {
|
|
|
|
|
return $a->platz <=> $b->platz;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isJson()) {
|
|
|
|
|
return JSON_sportsmanager::tabelleAnzeigen($modus, $teams);
|
|
|
|
@@ -1693,6 +1705,86 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getTabelleAktuellerSpieltag($veranstaltung)
|
|
|
|
|
{
|
|
|
|
|
$db = getDatabase();
|
|
|
|
|
|
|
|
|
|
$query = "SELECT *,"
|
|
|
|
|
. "\n siege + unentschieden + niederlagen AS anzahl_spiele"
|
|
|
|
|
. "\n FROM #__sportsmanager_team"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
|
|
|
|
|
. "\n ORDER BY platz, teamname";
|
|
|
|
|
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$teams = $db->loadObjectList();
|
|
|
|
|
return $teams;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getTabelleSpieltag($veranstaltung,$spieltag,$mannschaften = "",$offset_platz = 0)
|
|
|
|
|
{
|
|
|
|
|
$db = getDatabase();
|
|
|
|
|
if ($mannschaften){
|
|
|
|
|
$filter_mannschaften_begegnung = "tt1.heim_team_id IN (" . $mannschaften . ") AND tt1.gast_team_id IN (" . $mannschaften . ") AND";
|
|
|
|
|
$filter_mannschaften_teams = "AND team_id IN (" . $mannschaften . ") ";
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
$filter_mannschaften_begegnung = "";
|
|
|
|
|
$filter_mannschaften_teams = "";
|
|
|
|
|
}
|
|
|
|
|
$query = "SELECT verein_id, teamname, zusatzpunkte,"
|
|
|
|
|
. "\n werte.*,"
|
|
|
|
|
. "\n werte.siege * " . ($veranstaltung->tabellenwertung <= 3 ? "2" : ($veranstaltung->tabellenwertung <= 6 ? "3" : "1")) . ($veranstaltung->tabellenwertung <= 6 ? " + werte.unentschieden" : "") . " + COALESCE(zusatzpunkte, 0) AS gesamtpunkte,"
|
|
|
|
|
. "\n werte.siege * " . ($veranstaltung->tabellenwertung <= 3 ? "2" : ($veranstaltung->tabellenwertung <= 6 ? "3" : "1")) . ($veranstaltung->tabellenwertung <= 6 ? " + werte.unentschieden" : "") . " AS begegnungspunkte,"
|
|
|
|
|
. "\n werte.punkte_gewonnen - werte.punkte_verloren AS punkte_differenz,"
|
|
|
|
|
. "\n IF(werte.punkte_verloren = 0, -1, werte.punkte_gewonnen / werte.punkte_verloren) AS punkte_quotient,"
|
|
|
|
|
. "\n werte.spielpunkte_gewonnen - werte.spielpunkte_verloren AS spielpunkte_differenz,"
|
|
|
|
|
. "\n IF(werte.spielpunkte_verloren = 0, -1, werte.spielpunkte_gewonnen / werte.spielpunkte_verloren) AS spielpunkte_quotient, "
|
|
|
|
|
. "\n werte.siege + werte.unentschieden + werte.niederlagen AS anzahl_spiele"
|
|
|
|
|
. "\n FROM #__sportsmanager_team"
|
|
|
|
|
. "\n LEFT JOIN"
|
|
|
|
|
. "\n (SELECT t1.team_id,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND ((tt1.heim_team_id = t1.team_id AND tt1.heim_spielpunkte > tt1.gast_spielpunkte) OR (tt1.gast_team_id = t1.team_id AND tt1.gast_spielpunkte > tt1.heim_spielpunkte)) AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS siege,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND (tt1.heim_team_id = t1.team_id OR tt1.gast_team_id = t1.team_id) AND tt1.heim_spielpunkte = tt1.gast_spielpunkte AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS unentschieden,"
|
|
|
|
|
. "\n (SELECT COUNT(*) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND ((tt1.heim_team_id = t1.team_id AND tt1.heim_spielpunkte < tt1.gast_spielpunkte) OR (tt1.gast_team_id = t1.team_id AND tt1.gast_spielpunkte < tt1.heim_spielpunkte)) AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)) AS niederlagen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + "
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS punkte_gewonnen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + "
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_punkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS punkte_verloren,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + "
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS spielpunkte_gewonnen,"
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(gast_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.heim_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) + "
|
|
|
|
|
. "\n (COALESCE((SELECT SUM(heim_spielpunkte) FROM #__sportsmanager_begegnung AS tt1 LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS tt2 ON tt1.begegnung_id = tt2.begegnung_id WHERE " . $filter_mannschaften_begegnung . " ISNULL(tt2.unbestaetigtes_ergebnis_id)" . ($spieltag > 0 ? " AND tt1.spieltag <= $spieltag" : "") . " AND tt1.gast_team_id = t1.team_id AND (tt1.heim_punkte != 0 OR tt1.gast_punkte != 0)), 0)) AS spielpunkte_verloren"
|
|
|
|
|
. "\n FROM #__sportsmanager_team AS t1"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id)"
|
|
|
|
|
. "\n AS werte USING (team_id)"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id " . $filter_mannschaften_teams;
|
|
|
|
|
if ($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 10)
|
|
|
|
|
$query .= "\n ORDER BY spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 11)
|
|
|
|
|
$query .= "\n ORDER BY spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
else
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, teamname";
|
|
|
|
|
//echo $query;
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$teams = $db->loadObjectList();
|
|
|
|
|
$platz = $offset_platz;
|
|
|
|
|
foreach($teams AS $key => $value)
|
|
|
|
|
{
|
|
|
|
|
$value->platz = ++$platz;
|
|
|
|
|
}
|
|
|
|
|
return $teams;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[NoReturn] function veranstaltungenTicker($aktuelle_saison_anzeigen = false): void
|
|
|
|
|
{
|
|
|
|
|
$db = getDatabase();
|
|
|
|
@@ -4841,12 +4933,12 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$query = "SELECT * FROM #__sportsmanager_team"
|
|
|
|
|
$query = "SELECT *, siege + unentschieden + niederlagen AS anzahl_spiele FROM #__sportsmanager_team"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id";
|
|
|
|
|
if ($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, spielpunkte_quotient DESC, punkte_quotient DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 21 || $veranstaltung->tabellenwertung == 24 || $veranstaltung->tabellenwertung == 27)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, buchholz1 DESC, buchholz2 DESC, spielpunkte_differenz DESC, punkte_differenz DESC, teamname";
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 22 || $veranstaltung->tabellenwertung == 25 || $veranstaltung->tabellenwertung == 28)
|
|
|
|
@@ -4858,13 +4950,75 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
|
|
|
|
|
else if ($veranstaltung->tabellenwertung == 23 || $veranstaltung->tabellenwertung == 26 || $veranstaltung->tabellenwertung == 29)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, buchholz1 DESC, buchholz2 DESC, teamname";
|
|
|
|
|
else // ($veranstaltung->tabellenwertung == 3, 6, 9)
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, teamname";
|
|
|
|
|
$query .= "\n ORDER BY gesamtpunkte DESC, anzahl_spiele ASC, teamname";
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$teams = $db->loadObjectList();
|
|
|
|
|
|
|
|
|
|
// Alle Spieltage ermitteln
|
|
|
|
|
$query = "SELECT DISTINCT spieltag"
|
|
|
|
|
. "\n FROM #__sportsmanager_begegnung"
|
|
|
|
|
. "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
|
|
|
|
|
. "\n ORDER BY spieltag";
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$spieltage = $db->loadObjectList();
|
|
|
|
|
$anzahl_spieltage_komplett = count($spieltage);
|
|
|
|
|
|
|
|
|
|
// Spieltage ermitteln, an denen schon eine Begegnung ausgetragen wurde
|
|
|
|
|
$query = "SELECT DISTINCT spieltag"
|
|
|
|
|
. "\n FROM #__sportsmanager_begegnung"
|
|
|
|
|
. "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis USING (begegnung_id)"
|
|
|
|
|
. "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
|
|
|
|
|
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id AND (heim_spielpunkte != 0 OR gast_spielpunkte != 0) AND ISNULL(#__sportsmanager_unbestaetigtes_ergebnis.begegnung_id)"
|
|
|
|
|
. "\n ORDER BY spieltag DESC";
|
|
|
|
|
$db->setQuery($query);
|
|
|
|
|
if (!$db->execute()) {
|
|
|
|
|
die($db->stderr(true));
|
|
|
|
|
}
|
|
|
|
|
$spieltage = $db->loadObjectList();
|
|
|
|
|
$anzahl_spieltage_gespielt = count($spieltage);
|
|
|
|
|
|
|
|
|
|
// Direkter Vergleich, wenn mindestens die Hälfte der Spieltage gespielt sind.
|
|
|
|
|
if ($veranstaltung->direktervergleich AND $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2){
|
|
|
|
|
$Gesamtpunkte = 1000;
|
|
|
|
|
$Anzahl_Spiele = 1000;
|
|
|
|
|
$Platz = 0;
|
|
|
|
|
foreach($teams AS $key => $value){
|
|
|
|
|
if (($Gesamtpunkte != $value->gesamtpunkte) OR ($Anzahl_Spiele != $value->anzahl_spiele)){
|
|
|
|
|
$Gesamtpunkte = $value->gesamtpunkte;
|
|
|
|
|
$Anzahl_Spiele = $value->anzahl_spiele;
|
|
|
|
|
$Platz = $value->platz;
|
|
|
|
|
@$Punktgleiche_Mannschaften[$Platz] = $value->team_id;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
@$Punktgleiche_Mannschaften[$Platz] .= ",".$value->team_id;
|
|
|
|
|
@$Korrektur[$Platz] = $Punktgleiche_Mannschaften[$Platz];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach($Korrektur AS $key => $value){
|
|
|
|
|
$teams_korrektur = getTabelleSpieltag($veranstaltung,999,$value,$key-1);
|
|
|
|
|
foreach($teams_korrektur AS $key1 => $value1){
|
|
|
|
|
foreach($teams AS $key2 => $value2){
|
|
|
|
|
if ($value2->team_id == $value1->team_id){
|
|
|
|
|
$value2->platz = $value1->platz;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Tabelle neu sortieren
|
|
|
|
|
usort($teams, function($a, $b) {
|
|
|
|
|
return $a->platz <=> $b->platz;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$platz = 1;
|
|
|
|
|
$tatsaechlicher_platz = 0;
|
|
|
|
|
$gesamtpunkte = 0;
|
|
|
|
|