Bei Pokalauslosung werden jetzt die richtigen Sieger erkannt

This commit is contained in:
Jürgen Meyer
2025-12-21 18:35:44 +01:00
parent 5bf3fa3501
commit c8199abee1
2 changed files with 78 additions and 22 deletions
@@ -9923,6 +9923,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$sperren = false;
$Fehlertext = "";
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT');
@@ -9964,7 +9965,14 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
else{
$anzahlmatches = pow(2, $anzahlrunden - $rundenNr);
//Verlierer rausfiltern
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
$query = "SELECT"
. "\n CASE"
. "\n WHEN t1.heim_spielpunkte > t1.gast_spielpunkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte < t1.gast_spielpunkte THEN t2.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte > t1.gast_punkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte < t1.gast_punkte THEN t2.team_id"
. "\n ELSE 0"
. "\n END AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
@@ -9976,6 +9984,11 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$Zeile = 0;
foreach($loosers AS $looser)
{
if ($looser->Verlierer == 0)
{
$Fehlertext = "Mindestens ein Sieger konnte nicht ermittelt werden!!!";
$sperren = true;
}
if ($Zeile > 0) $Verlierer .= ",";
$Verlierer .= $looser->Verlierer;
$Zeile++;
@@ -10035,7 +10048,14 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
if ($spielumplatz3)
{
//Verlierer Halbfinale ermitteln
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
$query = "SELECT"
. "\n CASE"
. "\n WHEN t1.heim_spielpunkte > t1.gast_spielpunkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte < t1.gast_spielpunkte THEN t2.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte > t1.gast_punkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte < t1.gast_punkte THEN t2.team_id"
. "\n ELSE 0"
. "\n END AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
@@ -10049,7 +10069,6 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$matches[2]['rundentitel'] = "Spiel um Platz 3";
}
$Fehlertext = "";
foreach($matches AS $spiel_nr => $match)
{
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
@@ -10086,8 +10105,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
else{
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
$Fehlertext</span>\n";
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId, $Fehlertext);
}
}
@@ -10103,6 +10121,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$matches = [];
$sperren = false;
$Fehlertext = "";
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT');
@@ -10219,7 +10238,9 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
if ($rundenNr >= 2){
$query = "SELECT t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast,
t1.heim_team_id, t1.gast_team_id,
t1.spieltag_titel AS Runde, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
t1.spieltag_titel AS Runde, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr,
t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,
t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
@@ -10227,13 +10248,25 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
WHERE t4.veranstaltung_id = " . $veranstaltungId . " AND t1.spieltag = " . ($rundenNr - 1) . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr;";
$begegnungen = json_decode(json_encode(loadObjectList($db, $query)), true);
foreach($begegnungen AS $begegnung)
{
if ($begegnung['Heim_Satzpunkte'] > $begegnung['Gast_Satzpunkte'])
$sieger = $begegnung['heim_team_id'];
else
if ($begegnung['Gast_Satzpunkte'] > $begegnung['Heim_Satzpunkte'])
$sieger = $begegnung['gast_team_id'];
if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'])
{
if ($begegnung['Heim_Tore'] > $begegnung['Gast_Tore'])
$sieger = $begegnung['heim_team_id'];
else if ($begegnung['Gast_Tore'] > $begegnung['Heim_Tore'])
$sieger = $begegnung['gast_team_id'];
else {
$sieger = 0;
$Fehlertext = "Mindestens ein Sieger konnte nicht ermittelt werden!!!";
$sperren = true;
}
}
if ($begegnung['Spiel_Nr'] % 2)
$matches[round($begegnung['Spiel_Nr']/2)]['heim'] = $sieger;
else
@@ -10244,7 +10277,14 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
if ($spielumplatz3)
{
//Verlierer Halbfinale ermitteln
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
$query = "SELECT"
. "\n CASE"
. "\n WHEN t1.heim_spielpunkte > t1.gast_spielpunkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte < t1.gast_spielpunkte THEN t2.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte > t1.gast_punkte THEN t3.team_id"
. "\n WHEN t1.heim_spielpunkte = t1.gast_spielpunkte AND t1.heim_punkte < t1.gast_punkte THEN t2.team_id"
. "\n ELSE 0"
. "\n END AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
@@ -10269,7 +10309,6 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
}
}
$Fehlertext = "";
foreach($matches AS $spiel_nr => $match)
{
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
@@ -10305,8 +10344,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
else{
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
$Fehlertext</span>\n";
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId, $Fehlertext);
}
}
@@ -2388,6 +2388,24 @@ function turnierbaumAnzeigen($veranstaltung): void
else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']);
}
} else
if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] > $begegnung['Gast_Tore']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 1;
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
if (round($begegnung['Spiel_Nr'] % 2))
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Heim']);
else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Heim']);
}
} else
if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] < $begegnung['Gast_Tore']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2;
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
if (round($begegnung['Spiel_Nr'] % 2))
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Gast']);
else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']);
}
} else {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 0;
}