mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-09-11 18:41:50 +00:00
Spielerstatistik im Je-Satz-Modus: jeder Satz zaehlt wie ein Spiel
Der STFV will in der Spielerstatistik jeden Satz als Spiel gezaehlt sehen. spielerstatistikAktualisieren() holt dafuer im Veranstaltungs-Zweig zusaetzlich ergebnis_detailliert und die beiden Wertungs-Spalten (der Join auf teamspiel_modus existiert schon), bestimmt je Zeile Einzel oder Doppel wie begegnungenAktualisieren ueber ISNULL(spieler_2_id) und zaehlt bei Wertung 4 Siege/Unentschieden/Niederlagen und die Satz-Spalten je SATZ aus runden_detailliert_auswertung — die angezeigte Spielezahl ist s+u+n und wird damit von selbst zur Satzzahl. spg/spv bleiben die (im 4er-Modus bereits satzbasierten) Spielpunkte; pg/pv bleiben die Punktesummen, also Saetze — ihre Einheiten-Beschriftung haengt an punktetyp und bliebe bei einer Tore-Umwidmung falsch. Ohne gespeicherte Satzergebnisse (App-Meldung nur mit Satzstand) zaehlt das Spiel wie bisher als EIN Spiel aus dem Punktevergleich — deterministisch, keine erfundenen Saetze. Die S/U/N-Zaehlung und die Satz-Spalten laufen jetzt ueber dieselben drei Zaehler (heim/unentschieden/gast je Zeile): fuer jede Wertung ausser 4 tragen sie exakt die alten 1-aus-3-Werte, das Ergebnis ist wertgleich zum bisherigen if/else — bewiesen ueber die Messlatte, nicht nur hergeleitet: 11 Modi + 11 Begegnungen unveraendert gespeichert, voller Datenbank-Dump (784 Zeilen) und Frontend-Dump (26987 Zeilen) vor/nach dem Wechsel — die EINZIGEN Unterschiede sind die 7 bestenliste_punkte-Zeilen der Je-Satz-Prueflige G, und dort nur s/u/n und sg/su/sv; spg/spv und pg/pv jeder Zeile sind unveraendert. Alle sieben Bestands-Bestenlisten (einschliesslich der Liga 'Mehrere mit Ergebnis je Satz' bei Wertung Sieg 2/Remis 1, die weiter je SPIEL zaehlt) sind identisch. Handrechnung dokumentiert an Spieler 115 der Prueflige G: Einzel '6:4 4:4 2:6 6:3' (2/1/1), Doppel '4:4 4:4 6:2 2:6' (1/2/1), Doppel '6:4 6:4 0:6 4:6' als Gast (2/0/2), dazu die Fallback-Begegnung ohne Satzdetails als eine Niederlage (0/0/1): zusammen 5 Siege, 3 Unentschieden, 5 Niederlagen = 13 'Spiele' (Saetze), Spielpunkte 15:15, Punkte 6:6 — exakt die gespeicherte Zeile.
This commit is contained in:
@@ -6298,7 +6298,8 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea
|
|||||||
|
|
||||||
foreach ($veranstaltungen as $veranstaltung) {
|
foreach ($veranstaltungen as $veranstaltung) {
|
||||||
$query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, heim_team_id, gast_team_id,"
|
$query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, heim_team_id, gast_team_id,"
|
||||||
. "\n teamspiel_heim_punkte, teamspiel_gast_punkte, teamspiel_heim_spielpunkte, teamspiel_gast_spielpunkte"
|
. "\n teamspiel_heim_punkte, teamspiel_gast_punkte, teamspiel_heim_spielpunkte, teamspiel_gast_spielpunkte, ergebnis_detailliert,"
|
||||||
|
. "\n spielpunkte_wertung_einzel, spielpunkte_wertung_doppel"
|
||||||
. "\n FROM #__sportsmanager_begegnung"
|
. "\n FROM #__sportsmanager_begegnung"
|
||||||
. "\n LEFT JOIN #__sportsmanager_team ON heim_team_id = #__sportsmanager_team.team_id"
|
. "\n LEFT JOIN #__sportsmanager_team ON heim_team_id = #__sportsmanager_team.team_id"
|
||||||
. "\n LEFT JOIN #__sportsmanager_teamspiel ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_teamspiel.begegnung_id"
|
. "\n LEFT JOIN #__sportsmanager_teamspiel ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_teamspiel.begegnung_id"
|
||||||
@@ -6349,9 +6350,18 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea
|
|||||||
$heim_team_id = $begegnung->heim_team_id;
|
$heim_team_id = $begegnung->heim_team_id;
|
||||||
$gast_team_id = $begegnung->gast_team_id;
|
$gast_team_id = $begegnung->gast_team_id;
|
||||||
$ergebnis = $heim_punkte > $gast_punkte ? 1 : ($heim_punkte < $gast_punkte ? 2 : 0);
|
$ergebnis = $heim_punkte > $gast_punkte ? 1 : ($heim_punkte < $gast_punkte ? 2 : 0);
|
||||||
$heim_saetze = $ergebnis == 1 ? 1 : 0;
|
$wertung = $begegnung->heim_spieler_2_id === NULL && $begegnung->gast_spieler_2_id === NULL
|
||||||
$unentschieden_saetze = $ergebnis == 0 ? 1 : 0;
|
? $begegnung->spielpunkte_wertung_einzel : $begegnung->spielpunkte_wertung_doppel;
|
||||||
$gast_saetze = $ergebnis == 2 ? 1 : 0;
|
if ($wertung == 4 && !empty($begegnung->ergebnis_detailliert)) {
|
||||||
|
$auswertung = runden_detailliert_auswertung($begegnung->ergebnis_detailliert);
|
||||||
|
$heim_saetze = $auswertung[1];
|
||||||
|
$unentschieden_saetze = $auswertung[2];
|
||||||
|
$gast_saetze = $auswertung[3];
|
||||||
|
} else {
|
||||||
|
$heim_saetze = $ergebnis == 1 ? 1 : 0;
|
||||||
|
$unentschieden_saetze = $ergebnis == 0 ? 1 : 0;
|
||||||
|
$gast_saetze = $ergebnis == 2 ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($beteiligte as $beteiligter) {
|
foreach ($beteiligte as $beteiligter) {
|
||||||
$spieler_id = $beteiligter[0];
|
$spieler_id = $beteiligter[0];
|
||||||
@@ -6373,12 +6383,9 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea
|
|||||||
else
|
else
|
||||||
$punkte[$spieler_id]["team_id"] = $gast_team_id;
|
$punkte[$spieler_id]["team_id"] = $gast_team_id;
|
||||||
}
|
}
|
||||||
if (($ergebnis == 1 && $typ == "H") || ($ergebnis == 2 && $typ != "H"))
|
$punkte[$spieler_id]["s"] += $typ == "H" ? $heim_saetze : $gast_saetze;
|
||||||
$punkte[$spieler_id]["s"] += 1;
|
$punkte[$spieler_id]["u"] += $unentschieden_saetze;
|
||||||
else if ($ergebnis != 0)
|
$punkte[$spieler_id]["n"] += $typ != "H" ? $heim_saetze : $gast_saetze;
|
||||||
$punkte[$spieler_id]["n"] += 1;
|
|
||||||
else
|
|
||||||
$punkte[$spieler_id]["u"] += 1;
|
|
||||||
$punkte[$spieler_id]["spg"] += $typ == "H" ? $heim_spielpunkte : $gast_spielpunkte;
|
$punkte[$spieler_id]["spg"] += $typ == "H" ? $heim_spielpunkte : $gast_spielpunkte;
|
||||||
$punkte[$spieler_id]["spv"] += $typ != "H" ? $heim_spielpunkte : $gast_spielpunkte;
|
$punkte[$spieler_id]["spv"] += $typ != "H" ? $heim_spielpunkte : $gast_spielpunkte;
|
||||||
$punkte[$spieler_id]["sg"] += $typ == "H" ? $heim_saetze : $gast_saetze;
|
$punkte[$spieler_id]["sg"] += $typ == "H" ? $heim_saetze : $gast_saetze;
|
||||||
|
|||||||
Reference in New Issue
Block a user