Mailen von Spielverlegung und Export von Spielverlegungen

This commit is contained in:
Jürgen Meyer
2026-01-02 23:12:45 +01:00
parent 76f0ef5f55
commit 8b7ca05fc1
3 changed files with 326 additions and 8 deletions
@@ -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 function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4898,6 +4922,285 @@ function adminEditSpielverlegung(): void
redirectSportsManagerURL('&task=admin_spielverlegungen'); 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 function adminVerschiebenModi(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -7211,7 +7514,8 @@ function adminEditEmailVorlage($vorlage): void
$back = 'admin_ordnungsstrafen'; $back = 'admin_ordnungsstrafen';
} }
if ($vorlage == 'Spielverlegung'){ if ($vorlage == 'Spielverlegung'){
$vars = "Alter_Termin, Neuer_Termin"; $vars = "Ansprechpartner, Heim, Gast, Liga, Spieltag, Antragsteller,
<br>Alter_Termin, Neuer_Termin, Begruendung, Absender";
$back = 'admin_spielverlegungen'; $back = 'admin_spielverlegungen';
} }
HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars,$back); HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars,$back);
@@ -227,6 +227,12 @@ if ($task == "spielerbild") {
case 'admin_spielverlegung_remove'; case 'admin_spielverlegung_remove';
adminRemoveSpielverlegung(); adminRemoveSpielverlegung();
break; break;
case 'admin_spielverlegungen_export':
adminExportSpielverlegungen();
break;
case 'admin_spielverlegung_mailen';
adminSpielverlegungMailen();
break;
case 'admin_kategorien': case 'admin_kategorien':
adminKategorien(); adminKategorien();
break; 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 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 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 (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 FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\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" . "\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 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 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 (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 FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\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" . "\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 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 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 (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 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"
@@ -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 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 (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 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"
@@ -6991,7 +6991,7 @@ class HTML_sportsmanager_admin
echo "<option value=\"" . $aussteller->id . "\" " . ($filter['aussteller'] == $aussteller->id ? "selected" : "") . ">" . htmlentities_utf8($aussteller->name) . "</option>"; echo "<option value=\"" . $aussteller->id . "\" " . ($filter['aussteller'] == $aussteller->id ? "selected" : "") . ">" . htmlentities_utf8($aussteller->name) . "</option>";
?> ?>
</select> </select>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?> <?php if (benutzerZugriff("benutzerVeranstalterModerator") && !empty($rows)){ ?>
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button" <input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task; onclick="const t = this.form.task;
t.value = 'admin_ordnungsstrafen_export'; t.value = 'admin_ordnungsstrafen_export';
@@ -7254,7 +7254,7 @@ class HTML_sportsmanager_admin
href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a> href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
</td> </td>
<?php } <?php }
if (benutzerZugriff("benutzerVeranstalterModerator")){ ?> if (benutzerZugriff("verschieberegeln_aendern")){ ?>
<td nowrap><a <td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_spielverlegung_vorlage'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?></a> href="<?php echo SportsManagerURL('&task=admin_spielverlegung_vorlage'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?></a>
</td> </td>
@@ -7274,9 +7274,17 @@ class HTML_sportsmanager_admin
?> ?>
</select> </select>
</td> </td>
<td>
<?php if (!empty($rows)){ ?>
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task;
t.value = 'admin_spielverlegungen_export';
setTimeout(() => { t.value = 'admin_spielverlegungen'; }, 100);"/>
<?php } ?>
<input type="hidden" name="task" value="admin_spielverlegungen"/>
</td>
</tr> </tr>
</table> </table>
<input type="hidden" name="task" value="admin_spielverlegungen"/>
</form> </form>
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table-shrink contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 960px;'> <table class="uk-table-shrink contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 960px;'>