Fehlerkorrektur Direkter Vergleich

This commit is contained in:
Jürgen Meyer
2026-03-17 12:47:43 +01:00
parent c8f419e00a
commit f70048f90f
2 changed files with 49 additions and 4 deletions
@@ -1832,14 +1832,15 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
function getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag)
{
$gesamtpunkte = 1000;
$anzahlSpiele = 1000;
$platz = 0;
$punktgleicheMannschaften = [];
$korrekturen = [];
$bufferplatz = [];
foreach($teams AS $team){
$bufferplatz[$team->team_id]['platz'] = $team->platz;
if (($gesamtpunkte != $team->gesamtpunkte) OR ($anzahlSpiele != $team->anzahl_spiele)){
$gesamtpunkte = $team->gesamtpunkte;
$anzahlSpiele = $team->anzahl_spiele;
@@ -1851,10 +1852,54 @@ function getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag)
$korrekturen[$platz] = $punktgleicheMannschaften[$platz];
}
}
if (!empty($korrekturen)){
foreach($korrekturen AS $key => $korrektur){
$teamsKorrektur = getTabelleSpieltag($veranstaltung,$spieltag,$korrektur,$key-1);
foreach($teamsKorrektur AS $teamKorrektur){
$teamKorrektur->platz_alt = $bufferplatz[$teamKorrektur->team_id]['platz'];
}
if ($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7){
usort($teamsKorrektur, fn($a, $b) =>
[$b->begegnungspunkte, $a->anzahl_spiele, (int)$b->spielpunkte_differenz, (int)$b->punkte_differenz, $a->platz_alt]
<=>
[$a->begegnungspunkte, $b->anzahl_spiele, (int)$a->spielpunkte_differenz, (int)$a->punkte_differenz, $b->platz_alt]
);
}
else if ($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8){
usort($teamsKorrektur, fn($a, $b) =>
[$b->begegnungspunkte, $a->anzahl_spiele, (float)$b->spielpunkte_quotient, (float)$b->punkte_quotient, $a->platz_alt]
<=>
[$a->begegnungspunkte, $b->anzahl_spiele, (float)$a->spielpunkte_quotient, (float)$a->punkte_quotient, $b->platz_alt]
);
}
else if ($veranstaltung->tabellenwertung == 10){
usort($teamsKorrektur, fn($a, $b) =>
[(int)$b->spielpunkte_differenz, (int)$b->punkte_differenz, $a->platz_alt]
<=>
[(int)$a->spielpunkte_differenz, (int)$a->punkte_differenz, $b->platz_alt]
);
}
else if ($veranstaltung->tabellenwertung == 11){
usort($teamsKorrektur, fn($a, $b) =>
[(float)$b->spielpunkte_quotient, (float)$b->punkte_quotient, $a->platz_alt]
<=>
[(float)$a->spielpunkte_quotient, (float)$a->punkte_quotient, $b->platz_alt]
);
}
else {
usort($teamsKorrektur, fn($a, $b) =>
[$b->begegnungspunkte, $a->anzahl_spiele, $a->platz_alt]
<=>
[$a->begegnungspunkte, $b->anzahl_spiele, $b->platz_alt]
);
}
$neuerPlatz = $key;
foreach ($teamsKorrektur as $teamKorrektur) {
$teamKorrektur->platz = $neuerPlatz++;
}
foreach($teamsKorrektur AS $teamKorrektur){
foreach($teams AS $team){
if ($team->team_id == $teamKorrektur->team_id){
@@ -1709,7 +1709,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_MATCHDAY_SELECT'); ?>"
class="uk-select uk-form-width-medium" name="spieltag" size="1"
onChange="document.adminForm.submit();">
onChange="this.form.submit();">
<?php
foreach ($spieltage as $s) {
echo "<option value=\"" . $s->spieltag . "\"" . ($s->spieltag == $spieltag ? " selected" : "") . ">" . htmlentities_utf8(Rundenbezeichnung($s->spieltag, $veranstaltung->unterteilung == 0)) . "</option>";