Die Frage "liegt ein Ergebnis vor?" an einer Stelle beantworten

Die Bedingung stand doppelt als Closure in sportsmanager.php und ein drittes
und viertes Mal punktebasiert in den Ansichten, wo eine Begegnung mit
ausschliesslich unentschiedenen Saetzen als "_:_" erschien, obwohl die
Tabelle sie zaehlt.
This commit is contained in:
svennickel
2026-09-10 09:52:25 +02:00
parent 668f917a25
commit 2a0ccfd98f
3 changed files with 27 additions and 6 deletions
@@ -2003,9 +2003,9 @@ function getTabelleSpieltag($veranstaltung,$spieltag,$mannschaften = "",$offset_
. "\n WHERE teamspiel_modus_id = " . (int)($veranstaltung->modus_id ?? 0); . "\n WHERE teamspiel_modus_id = " . (int)($veranstaltung->modus_id ?? 0);
$wertungen = loadObjectList($db, $query); $wertungen = loadObjectList($db, $query);
$je_satz = count($wertungen) > 0 $je_satz = count($wertungen) > 0
&& ($wertungen[0]->spielpunkte_wertung_einzel >= 10 || $wertungen[0]->spielpunkte_wertung_doppel >= 10); && jeSatzWertung($wertungen[0]->spielpunkte_wertung_einzel, $wertungen[0]->spielpunkte_wertung_doppel);
$ausgetragen = function ($alias) use ($je_satz) { $ausgetragen = function ($alias) use ($je_satz) {
return "($alias.heim_punkte != 0 OR $alias.gast_punkte != 0" . ($je_satz ? " OR NOT ISNULL($alias.heim_tore)" : "") . ")"; return ausgetragenBedingung($je_satz, $alias);
}; };
$query = "SELECT verein_id, teamname, zusatzpunkte," $query = "SELECT verein_id, teamname, zusatzpunkte,"
@@ -5630,9 +5630,9 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
. "\n WHERE teamspiel_modus_id = " . (int)($veranstaltung->modus_id ?? 0); . "\n WHERE teamspiel_modus_id = " . (int)($veranstaltung->modus_id ?? 0);
$wertungen = loadObjectList($db, $query); $wertungen = loadObjectList($db, $query);
$je_satz = count($wertungen) > 0 $je_satz = count($wertungen) > 0
&& ($wertungen[0]->spielpunkte_wertung_einzel >= 10 || $wertungen[0]->spielpunkte_wertung_doppel >= 10); && jeSatzWertung($wertungen[0]->spielpunkte_wertung_einzel, $wertungen[0]->spielpunkte_wertung_doppel);
$ausgetragen = function ($alias) use ($je_satz) { $ausgetragen = function ($alias) use ($je_satz) {
return "($alias.heim_punkte != 0 OR $alias.gast_punkte != 0" . ($je_satz ? " OR NOT ISNULL($alias.heim_tore)" : "") . ")"; return ausgetragenBedingung($je_satz, $alias);
}; };
$query = "UPDATE #__sportsmanager_team" $query = "UPDATE #__sportsmanager_team"
@@ -663,6 +663,22 @@ function toreFuerSpiel($punktetyp, $satzergebnisse, $heim_punkte, $gast_punkte,
return array(null, null); return array(null, null);
} }
function jeSatzWertung($wertung_einzel, $wertung_doppel): bool
{
return $wertung_einzel >= 10 || $wertung_doppel >= 10;
}
function ausgetragenBedingung($je_satz, $alias): string
{
return "($alias.heim_punkte != 0 OR $alias.gast_punkte != 0"
. ($je_satz ? " OR NOT ISNULL($alias.heim_tore)" : "") . ")";
}
function ergebnisVorhanden($je_satz, $heim_punkte, $gast_punkte, $heim_tore): bool
{
return $heim_punkte != null || $gast_punkte != null || ($je_satz && $heim_tore !== null);
}
function saetzeRemisFuerSpiel($punktetyp, $satzergebnisse, $ergebnis_detailliert): ?int function saetzeRemisFuerSpiel($punktetyp, $satzergebnisse, $ergebnis_detailliert): ?int
{ {
if ($punktetyp == 0 || empty($satzergebnisse) || empty($ergebnis_detailliert)) if ($punktetyp == 0 || empty($satzergebnisse) || empty($ergebnis_detailliert))
@@ -1091,8 +1091,11 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
$spielort_name = ""; $spielort_name = "";
$Spieltagname = ""; $Spieltagname = "";
$Spieltagname_Buffer = ""; $Spieltagname_Buffer = "";
$je_satz = $modus != null
&& jeSatzWertung($modus->spielpunkte_wertung_einzel, $modus->spielpunkte_wertung_doppel);
foreach ($rows as $row) { foreach ($rows as $row) {
$ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; $ergebnis_vorhanden = ergebnisVorhanden($je_satz, $row->heim_punkte, $row->gast_punkte,
$row->heim_tore ?? null);
if ($zeitfenster == 0 && $veranstaltung != null) { if ($zeitfenster == 0 && $veranstaltung != null) {
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) {
@@ -2922,7 +2925,9 @@ $veranstaltung_id = $row->veranstaltung_id;
</tr> </tr>
<?php <?php
} }
$ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; $ergebnis_vorhanden = ergebnisVorhanden(
jeSatzWertung($row->spielpunkte_wertung_einzel, $row->spielpunkte_wertung_doppel),
$row->heim_punkte, $row->gast_punkte, $row->heim_tore ?? null);
?> ?>
<tr class="sectiontableentry<?php echo $k + 1; <tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>"> $k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">