Merge pull request #111 from Deutscher-Tischfussballbund/fix/issue45-duplicate-license-on-ranking-duplication

Fix: duplicate Ranglisten should also duplicate license checkbox values of the duplicate source rangliste
This commit is contained in:
MarvinF
2025-08-01 01:31:39 +02:00
committed by GitHub
@@ -5707,8 +5707,8 @@ function adminEditRangliste(): void
if (count($rows) < 1) die("Wrong id!"); if (count($rows) < 1) die("Wrong id!");
$rangliste = $rows[0]; $rangliste = $rows[0];
$query = "INSERT INTO #__sportsmanager_rangliste (saison_id, system_id, streichergebnisse, geschlecht, minalter, maxalter, ohnealter, bezeichnung, erster_tag, letzter_tag, status, reihenfolge, kategorie)" $query = "INSERT INTO #__sportsmanager_rangliste (saison_id, system_id, streichergebnisse, geschlecht, lizenzen, minalter, maxalter, ohnealter, bezeichnung, erster_tag, letzter_tag, status, reihenfolge, kategorie)"
. "\n VALUES ('$rangliste->saison_id', " . ($rangliste->system_id == null ? "null" : "'$rangliste->system_id'") . ", '" . $db->escape($rangliste->streichergebnisse) . "', " . ($rangliste->geschlecht == null ? "null" : "'$rangliste->geschlecht'") . ", " . ($rangliste->minalter == null ? "null" : "'$rangliste->minalter'") . ", " . ($rangliste->maxalter == null ? "null" : "'$rangliste->maxalter'") . ", '$rangliste->ohnealter', '" . $db->escape($rangliste->bezeichnung . " (Kopie)") . "', '" . $db->escape($rangliste->erster_tag) . "', '" . $db->escape($rangliste->letzter_tag) . "', '0', '" . $db->escape($rangliste->reihenfolge) . "', '" . $db->escape($rangliste->kategorie) . "');"; . "\n VALUES ('$rangliste->saison_id', " . ($rangliste->system_id == null ? "null" : "'$rangliste->system_id'") . ", '" . $db->escape($rangliste->streichergebnisse) . "', " . ($rangliste->geschlecht == null ? "null" : "'$rangliste->geschlecht'") . ", " . ($rangliste->lizenzen == null ? "null" : "'$rangliste->lizenzen'") . "," . ($rangliste->minalter == null ? "null" : "'$rangliste->minalter'") . ", " . ($rangliste->maxalter == null ? "null" : "'$rangliste->maxalter'") . ", '$rangliste->ohnealter', '" . $db->escape($rangliste->bezeichnung . " (Kopie)") . "', '" . $db->escape($rangliste->erster_tag) . "', '" . $db->escape($rangliste->letzter_tag) . "', '0', '" . $db->escape($rangliste->reihenfolge) . "', '" . $db->escape($rangliste->kategorie) . "');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -8885,9 +8885,9 @@ function adminBegegnungen(): void
$query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz," $query = "SELECT t1.*, t2.teamname AS heim_name, t3.teamname AS gast_name, t4.unbestaetigtes_ergebnis_id, t4.zwischenergebnis, t2.nichtraucherschutz AS heim_nichtraucherschutz, t3.nichtraucherschutz AS gast_nichtraucherschutz,"
. "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt," . "\n EXISTS(SELECT * FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id AND aktion IN (1, 5)) AS verlegt,"
. "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(#__sportsmanager_begegnung_historie.aktion NOT IN (0, 3, 4), NULL, #__sportsmanager_begegnung_historie.eingetragen) AS eingetragen FROM #__sportsmanager_begegnung_historie USE INDEX (begegnung_id) WHERE #__sportsmanager_begegnung_historie.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n UNIX_TIMESTAMP(t1.zeitpunkt) AS termin_spiel," . "\n UNIX_TIMESTAMP(t1.zeitpunkt) AS termin_spiel,"
. "\n (" . "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)" . "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie" . "\n FROM #__sportsmanager_begegnung_historie"
@@ -8895,7 +8895,7 @@ function adminBegegnungen(): void
. "\n ORDER BY begegnung_historie_id ASC" . "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1" . "\n LIMIT 1"
. "\n ) AS termin_original," . "\n ) AS termin_original,"
. "\n (" . "\n ("
. "\n SELECT team_id" . "\n SELECT team_id"
. "\n FROM #__sportsmanager_begegnung_historie" . "\n FROM #__sportsmanager_begegnung_historie"
@@ -8903,7 +8903,7 @@ function adminBegegnungen(): void
. "\n ORDER BY begegnung_historie_id ASC" . "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1" . "\n LIMIT 1"
. "\n ) AS verantwortliches_team," . "\n ) AS verantwortliches_team,"
. "\n (" . "\n ("
. "\n SELECT UNIX_TIMESTAMP(zeitpunkt)" . "\n SELECT UNIX_TIMESTAMP(zeitpunkt)"
. "\n FROM #__sportsmanager_begegnung_historie" . "\n FROM #__sportsmanager_begegnung_historie"
@@ -8911,7 +8911,7 @@ function adminBegegnungen(): void
. "\n ORDER BY begegnung_historie_id ASC" . "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1" . "\n LIMIT 1"
. "\n ) AS termin_akzeptiert," . "\n ) AS termin_akzeptiert,"
. "\n (" . "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)" . "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie" . "\n FROM #__sportsmanager_begegnung_historie"
@@ -8919,7 +8919,7 @@ function adminBegegnungen(): void
. "\n ORDER BY begegnung_historie_id ASC" . "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1" . "\n LIMIT 1"
. "\n ) AS ergebnis_vorgeschlagen," . "\n ) AS ergebnis_vorgeschlagen,"
. "\n (" . "\n ("
. "\n SELECT UNIX_TIMESTAMP(eingetragen)" . "\n SELECT UNIX_TIMESTAMP(eingetragen)"
. "\n FROM #__sportsmanager_begegnung_historie" . "\n FROM #__sportsmanager_begegnung_historie"
@@ -8927,13 +8927,13 @@ function adminBegegnungen(): void
. "\n ORDER BY begegnung_historie_id ASC" . "\n ORDER BY begegnung_historie_id ASC"
. "\n LIMIT 1" . "\n LIMIT 1"
. "\n ) AS ergebnis_akzeptiert," . "\n ) AS ergebnis_akzeptiert,"
. "\n (" . "\n ("
. "\n SELECT COUNT(*) FROM #__sportsmanager_teamspiel" . "\n SELECT COUNT(*) FROM #__sportsmanager_teamspiel"
. "\n WHERE begegnung_id = t1.begegnung_id" . "\n WHERE begegnung_id = t1.begegnung_id"
. "\n AND (heim_spieler_1_id = 0 OR heim_spieler_2_id = 0 OR gast_spieler_1_id = 0 OR gast_spieler_2_id = 0)" . "\n AND (heim_spieler_1_id = 0 OR heim_spieler_2_id = 0 OR gast_spieler_1_id = 0 OR gast_spieler_2_id = 0)"
. "\n ) AS fehlende_spieler" . "\n ) AS fehlende_spieler"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -16334,9 +16334,9 @@ function termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten = false)
$terminaktion->url = adminCheckRelativerPfad($terminaktion->url); $terminaktion->url = adminCheckRelativerPfad($terminaktion->url);
if (!str_contains($terminaktion->url, "://")) { if (!str_contains($terminaktion->url, "://")) {
$termin_url_anzeige = $terminaktion->url; $termin_url_anzeige = $terminaktion->url;
$termin_url = "http://" . $terminaktion->url; $termin_url = "https://" . $terminaktion->url;
} else { } else {
$termin_url_anzeige = str_starts_with($terminaktion->url, "http://") ? substr($terminaktion->url, 7) : $terminaktion->url; $termin_url_anzeige = str_starts_with($terminaktion->url, "https://") ? substr($terminaktion->url, 8) : $terminaktion->url;
$termin_url = $terminaktion->url; $termin_url = $terminaktion->url;
} }
$termin_beschreibung .= "<tr>\r\n" $termin_beschreibung .= "<tr>\r\n"
@@ -16365,9 +16365,9 @@ function termineEmailBenachrichtigung($termin_aktion_id, $ueberarbeiten = false)
$terminaktion->ergebnisse_url = adminCheckRelativerPfad($terminaktion->ergebnisse_url); $terminaktion->ergebnisse_url = adminCheckRelativerPfad($terminaktion->ergebnisse_url);
if (!str_contains($terminaktion->ergebnisse_url, "://")) { if (!str_contains($terminaktion->ergebnisse_url, "://")) {
$termin_url_anzeige = $terminaktion->ergebnisse_url; $termin_url_anzeige = $terminaktion->ergebnisse_url;
$termin_url = "http://" . $terminaktion->ergebnisse_url; $termin_url = "https://" . $terminaktion->ergebnisse_url;
} else { } else {
$termin_url_anzeige = str_starts_with($terminaktion->ergebnisse_url, "http://") ? substr($terminaktion->ergebnisse_url, 7) : $terminaktion->ergebnisse_url; $termin_url_anzeige = str_starts_with($terminaktion->ergebnisse_url, "https://") ? substr($terminaktion->ergebnisse_url, 8) : $terminaktion->ergebnisse_url;
$termin_url = $terminaktion->ergebnisse_url; $termin_url = $terminaktion->ergebnisse_url;
} }
$termin_beschreibung .= "<tr>\r\n" $termin_beschreibung .= "<tr>\r\n"