From 8b7ca05fc1b1f05467868e693be6e3315c419017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Fri, 2 Jan 2026 23:12:45 +0100 Subject: [PATCH] Mailen von Spielverlegung und Export von Spielverlegungen --- .../components/com_sportsmanager/admin.php | 306 +++++++++++++++++- .../com_sportsmanager/sportsmanager.php | 14 +- .../views/sportsmanager/view_admin.php | 14 +- 3 files changed, 326 insertions(+), 8 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 090a1e7..7b7efba 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -112,6 +112,30 @@ function renderTemplate($template, $vars = []): string ); } +function CSVfromArray($rows,$dateiname) +{ + $dateiname = bereinigterDateiname($dateiname); + ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind + Header("Content-Type: text/x-csv"); + Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + Header('Content-Disposition: attachment; filename="' . $dateiname . '"'); + Header("Pragma: no-cache"); + + $data = ""; + $trennzeichen = ";"; + $spalte = 0; + $header = ""; + + $header .= implode(';', array_keys($rows[0])); + foreach ($rows as $row) { + $data .= implode(';', $row)."\n"; + } + + echo $header . "\n" . utf8_decode(trim($data)); + + die(); +} + function adminUebersicht(): void { $db = getDatabase(); @@ -4898,6 +4922,285 @@ function adminEditSpielverlegung(): void redirectSportsManagerURL('&task=admin_spielverlegungen'); } +#[NoReturn] function adminExportSpielverlegungen(): void +{ + $db = getDatabase(); + global $params; + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + if (!benutzerZugriff("verschieberegeln_aendern")) + keinZugriff(true); + + $filter_status = $jInput->get('filter_status', '', 'RAW'); + $filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) + $filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); + + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC"; + $saisons = loadObjectList($db, $query); + + if (empty($filter_saison_id)) + $filter_saison_id = $saisons[0]->saison_id; + + if (empty($filter_status)) + $filter_status = "offen,genehmigt,abgelehnt"; + + $query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id," + . "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt," + . "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga, t2.spieltag AS Spieltag_Nr," + . "\n t3.teamname AS Heim, t4.teamname AS Gast, t6.teamname AS beantragt_von, 'offen' AS status" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id" + . "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id" + . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id" + . "\n WHERE t1.aktion = 2" + . "\n AND t5.saison_id = '$filter_saison_id'" + . "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;"; + $spielverlegungen = loadObjectList($db, $query); + + $last_id = ""; + foreach ($spielverlegungen as $key => $spielverlegung) { + if ($spielverlegung->begegnung_id == $last_id) { + unset($spielverlegungen[$key]); + } else { + $last_id = $spielverlegung->begegnung_id; + + $query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt," + . "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" + . "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id" + . "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;"; + + $genehmigt = loadObjectList($db, $query); + + if (!empty($genehmigt)) { + $spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id; + $spielverlegung->genehmigt = $genehmigt[0]->genehmigt; + $spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu; + $spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von; + $spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein; + $spielverlegung->status = "genehmigt"; + } else { + $spielverlegung->genehmigt_id = ""; + $spielverlegung->genehmigt = ""; + $spielverlegung->Termin_neu = ""; + $spielverlegung->genehmigt_von = ""; + $spielverlegung->genehmigt_verein = ""; + } + + $query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt," + . "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein," + . "\n t1.kommentar AS Begruendung_abgelehnt" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" + . "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id" + . "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;"; + + $abgelehnt = loadObjectList($db, $query); + + if (!empty($abgelehnt)) { + $spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id; + $spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt; + $spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von; + $spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein; + $spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt; + $spielverlegung->status = "abgelehnt"; + } else { + $spielverlegung->abgelehnt_id = ""; + $spielverlegung->abgelehnt = ""; + $spielverlegung->abgelehnt_von = ""; + $spielverlegung->abgelehnt_verein = ""; + $spielverlegung->Begruendung_abgelehnt = ""; + } + } + } + + $rows = []; + $zeile = 0; + foreach ($spielverlegungen AS $spielverlegung) + { + $rows[$zeile]['begegnung_id'] = $spielverlegung->begegnung_id; + $rows[$zeile]['Liga'] = $spielverlegung->Liga; + $rows[$zeile]['Spieltag_Nr'] = $spielverlegung->Spieltag_Nr; + $rows[$zeile]['Termin_alt'] = $spielverlegung->Termin_alt; + $rows[$zeile]['Termin_neu'] = $spielverlegung->Termin_neu; + $rows[$zeile]['Heim'] = $spielverlegung->Heim; + $rows[$zeile]['Gast'] = $spielverlegung->Gast; + $rows[$zeile]['Begruendung'] = $spielverlegung->Begruendung_beantragt; + $rows[$zeile]['beantragt_von'] = $spielverlegung->beantragt_von; + $zeile++; + } + + CSVfromArray($rows,"Spielverlegungen.csv"); +} + +function adminSpielverlegungMailen(): void +{ + $db = getDatabase(); + $app = Factory::getContainer()->get(SiteApplication::class); + $jInput = $app->input; + + if (!benutzerZugriff("verschieberegeln_aendern")) + keinZugriff(true); + + $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : $app->getIdentity()->id); + $query = "SELECT name, email FROM #__users WHERE id = '$user_id';"; + $Benutzer = loadObjectList($db, $query); + + $begegnung_id = $jInput->get('id', 0, 'INT'); + $beantragt_id = 0; + $genehmigt_id = 0; + + if (empty($begegnung_id)) + redirectSportsManagerURL('&task=admin_spielverlegungen', 'Missing id'); + + if ($jInput->get('cancel', false, 'BOOL')) + redirectSportsManagerURL('&task=admin_spielverlegungen'); + + $query = "SELECT *" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '2'" + . "\n ORDER BY eingetragen ASC LIMIT 1;"; + $ergebnis = loadObjectList($db, $query); + if (!empty($ergebnis)) + $beantragt_id = $ergebnis[0]->begegnung_historie_id; + + $query = "SELECT *" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '1'" + . "\n ORDER BY eingetragen DESC LIMIT 1;"; + $ergebnis = loadObjectList($db, $query); + if (!empty($ergebnis)) + $genehmigt_id = $ergebnis[0]->begegnung_historie_id; + + $beantragt = []; + if (!empty($beantragt_id)){ + $query = "SELECT" + . "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung," + . "\n t2.heim_team_id, t2.gast_team_id, t7.verein_id AS heim_verein_id, t8.verein_id AS gast_verein_id," + . "\n IF (ISNULL(t1.verantwortlich_team_id), 0, verantwortlich_team_id) AS beantragt_von_id," + . "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim, t4.teamname AS Gast," + . "\n t1.zeitpunkt AS Termin_alt, t1.begegnung_historie_id AS beantragt_id, t6.teamname AS beantragt_von," + . "\n t1.eingetragen AS beantragt_am, t1.kommentar AS Begruendung_beantragt," + . "\n t1.team_id AS beantragt_verein, 'offen' AS status," + . "\n if (t2.spieltag_titel = '', CONCAT(t2.spieltag, '. Spieltag'), t2.spieltag_titel) AS Spieltag " + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id" + . "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id" + . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id" + . "\n LEFT JOIN #__sportsmanager_verein AS t7 ON t7.verein_id = t3.verein_id" + . "\n LEFT JOIN #__sportsmanager_verein AS t8 ON t8.verein_id = t4.verein_id" + . "\n WHERE t1.aktion = 2" + . "\n AND t1.begegnung_historie_id = '$beantragt_id'"; + $beantragt = loadObjectList($db, $query); + $spielverlegung = $beantragt[0]; + } else + if ($begegnung_id != 0){ + $query = "SELECT" + . "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung," + . "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim," + . "\n t4.teamname AS Gast, t2.zeitpunkt AS Termin_alt," + . "\n t2.heim_team_id, t2.gast_team_id" + . "\n FROM #__sportsmanager_begegnung AS t2" + . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id" + . "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id" + . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id" + . "\n WHERE t2.begegnung_id = '$begegnung_id'"; + $beantragt = loadObjectList($db, $query); + $spielverlegung = $beantragt[0]; + $spielverlegung->beantragt_id = ""; + $spielverlegung->beantragt_von = ""; + $spielverlegung->beantragt_von_id = 0; + $spielverlegung->beantragt_am = ""; + $spielverlegung->Begruendung_beantragt = ""; + $spielverlegung->beantragt_verein = ""; + $spielverlegung->status = "offen"; + } + + if (empty($spielverlegung)) + redirectSportsManagerURL('&task=admin_spielverlegungen', 'Wrong id'); + + $genehmigt = []; + if (!empty($genehmigt_id)){ + $query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt_am," + . "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu" + . "\n FROM #__sportsmanager_begegnung_historie AS t1" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" + . "\n WHERE t1.begegnung_historie_id = '$genehmigt_id'"; + $genehmigt = loadObjectList($db, $query); + } + if (!empty($genehmigt)) { + $spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id; + $spielverlegung->genehmigt_am = $genehmigt[0]->genehmigt_am; + $spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu; + $spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von; + $spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein; + $spielverlegung->status = "genehmigt"; + } else { + $spielverlegung->genehmigt_id = ""; + $spielverlegung->genehmigt_am = ""; + $spielverlegung->Termin_neu = ""; + $spielverlegung->genehmigt_verein = ""; + $spielverlegung->genehmigt_von = ""; + } + + + $query = "SELECT nachname, vorname, email" + . "\n FROM #__sportsmanager_vereinsansprechpartner" + . "\n WHERE verein_id IN ('$spielverlegung->heim_verein_id', '$spielverlegung->gast_verein_id')" + . "\n GROUP BY email" + . "\n ORDER BY nachname, vorname;"; + $vereinsansprechpartner = loadObjectList($db, $query); + + $var["Ansprechpartner"] = ""; + $to = ""; + + foreach ($vereinsansprechpartner AS $ansprechpartner){ + if ($var["Ansprechpartner"] == "") + $var["Ansprechpartner"] = $ansprechpartner->vorname . " " . $ansprechpartner->nachname; + else + $var["Ansprechpartner"] .= ", " . $ansprechpartner->vorname . " " . $ansprechpartner->nachname; + if ($to == "") + $to = $ansprechpartner->email; + else + $to .= ";" . $ansprechpartner->email; + } + + $var['Heim'] = $spielverlegung->Heim; + $var['Gast'] = $spielverlegung->Gast; + $var['Liga'] = $spielverlegung->Liga; + $var['Spieltag'] = $spielverlegung->Spieltag; + $var['Antragsteller'] = $spielverlegung->beantragt_von; + $var['Alter_Termin'] = (new DateTime($spielverlegung->Termin_alt))->format("d.m.Y H:i"); + $var['Neuer_Termin'] = $spielverlegung->Termin_neu ? (new DateTime($spielverlegung->Termin_neu))->format("d.m.Y H:i") : 'offen'; + $var['Begruendung'] = $spielverlegung->Begruendung_beantragt; + $var['Absender'] = $Benutzer[0]->name; + + $query = "SELECT * FROM #__sportsmanager_email_vorlagen WHERE vorlage = 'Spielverlegung';"; + $vorlagen = loadObjectList($db, $query); + $template = $vorlagen[0]->email_text; + + $cc = $vorlagen[0]->cc; + $bcc = $vorlagen[0]->bcc; + $subject = "Spielverlegung " . $spielverlegung->Heim . " gegen " . $spielverlegung->Gast; + $message = renderTemplate($template, $var); + $backtomail = "admin_spielverlegungen_mailen&id=" . $spielverlegung->begegnung_id; + $backtosender = "admin_spielverlegungen"; + + $vorlage = new stdClass(); + $vorlage->id = $spielverlegung->spielverlegung_id; + $vorlage->name = 'Spielverlegung'; + + HTML_sportsmanager_admin::adminMailto($to,$cc,$bcc,$subject,$message,$backtomail,$backtosender,$vorlage); +} + function adminVerschiebenModi(): void { $db = getDatabase(); @@ -7211,7 +7514,8 @@ function adminEditEmailVorlage($vorlage): void $back = 'admin_ordnungsstrafen'; } if ($vorlage == 'Spielverlegung'){ - $vars = "Alter_Termin, Neuer_Termin"; + $vars = "Ansprechpartner, Heim, Gast, Liga, Spieltag, Antragsteller, +
Alter_Termin, Neuer_Termin, Begruendung, Absender"; $back = 'admin_spielverlegungen'; } HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars,$back); diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 25bb641..05de63e 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -227,6 +227,12 @@ if ($task == "spielerbild") { case 'admin_spielverlegung_remove'; adminRemoveSpielverlegung(); break; + case 'admin_spielverlegungen_export': + adminExportSpielverlegungen(); + break; + case 'admin_spielverlegung_mailen'; + adminSpielverlegungMailen(); + break; case 'admin_kategorien': adminKategorien(); break; @@ -2496,7 +2502,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," - . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" + . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n FROM #__sportsmanager_begegnung AS t1" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" @@ -2516,7 +2522,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," - . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" + . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n FROM #__sportsmanager_begegnung AS t1" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" @@ -2537,7 +2543,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," - . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" + . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\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 t3 ON t1.gast_team_id = t3.team_id" @@ -2564,7 +2570,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," // - . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" + . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\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 t3 ON t1.gast_team_id = t3.team_id" diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 7bab22d..23059c6 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -6991,7 +6991,7 @@ class HTML_sportsmanager_admin echo ""; ?> - + "> + if (benutzerZugriff("verschieberegeln_aendern")){ ?> @@ -7274,9 +7274,17 @@ class HTML_sportsmanager_admin ?> + + + + + + -