diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index b841c72..2207294 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -4544,6 +4544,94 @@ function adminEditTeamspielmodus(): void redirectSportsManagerURL('&task=admin_teamspiel_modi'); } +function adminSpielverlegungen(): void +{ + $db = getDatabase(); + global $params; + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + $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" + . "\n t1.begegnung_id, t1.beantragt, t1.Begruendung AS Begruendung_beantragt, t1.Termin_alt," + . "\n t2.genehmigt, t2.Termin_neu, t2.Begruendung AS Begruendung_genehmigt," + . "\n t3.abgelehnt, t3.Begruendung AS Begruendung_abgelehnt," + . "\n t5.teamname AS Heim, t6.teamname AS Gast, t7.bezeichnung AS Liga, t8.teamname AS beantragt_von," + + // Ermittlung Status + . "\n CASE" + . "\n WHEN t3.abgelehnt IS NOT NULL AND (t2.genehmigt IS NULL OR t3.abgelehnt > t2.genehmigt)" + . "\n THEN 'abgelehnt'" + . "\n WHEN t2.genehmigt IS NOT NULL" + . "\n THEN 'genehmigt'" + . "\n ELSE 'offen'" + . "\n END AS status" + + // Beantragt + . "\n FROM (" + . "\n SELECT begegnung_id," + . "\n MIN(eingetragen) AS beantragt," + . "\n MIN(zeitpunkt) AS Termin_alt," + . "\n MAX(kommentar) AS Begruendung," + . "\n MAX(team_id) AS team_id" + . "\n FROM #__sportsmanager_begegnung_historie" + . "\n WHERE aktion IN (2,3)" + . "\n GROUP BY begegnung_id" + . "\n ) AS t1" + + // Genehmigt + . "\n LEFT JOIN (" + . "\n SELECT begegnung_id," + . "\n MAX(eingetragen) AS genehmigt," + . "\n MAX(zeitpunkt) AS Termin_neu," + . "\n MAX(kommentar) AS Begruendung" + . "\n FROM #__sportsmanager_begegnung_historie" + . "\n WHERE aktion = 1" + . "\n GROUP BY begegnung_id" + . "\n ) AS t2 ON t2.begegnung_id = t1.begegnung_id" + + // Abgelehnt + . "\n LEFT JOIN (" + . "\n SELECT begegnung_id," + . "\n MAX(eingetragen) AS abgelehnt," + . "\n MAX(kommentar) AS Begruendung" + . "\n FROM #__sportsmanager_begegnung_historie" + . "\n WHERE aktion = 10" + . "\n GROUP BY begegnung_id" + . "\n ) AS t3 ON t3.begegnung_id = t1.begegnung_id" + + // Sonstige Infos + . "\n LEFT JOIN #__sportsmanager_begegnung AS t4 ON t4.begegnung_id = t1.begegnung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t5 ON t5.team_id = t4.heim_team_id" + . "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t4.gast_team_id" + . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t7 ON t7.veranstaltung_id = t5.veranstaltung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t8 ON t8.team_id = t1.team_id" + + // Filter + . "\n WHERE t7.saison_id = '$filter_saison_id'" + . "\n " . kategorieFilter("AND t7.kategorie IN") + . "\n HAVING status in ('" . str_replace(",", "','", $filter_status) . "')" + . "\n ORDER BY t1.beantragt DESC;"; + + $spielverlegungen = loadObjectList($db, $query); + + HTML_sportsmanager_admin::adminSpielverlegungen($spielverlegungen,$saisons,$filter_saison_id); +} + function adminVerschiebenModi(): void { $db = getDatabase(); @@ -6851,9 +6939,16 @@ function adminEditEmailVorlage($vorlage): void $rows = loadObjectList($db, $query); $row = $rows[0]; - $vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag, -
Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller"; - HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars); + if ($vorlage == 'Ordnungsstrafe'){ + $vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag, +
Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller"; + $back = 'admin_ordnungsstrafen'; + } + if ($vorlage == 'Spielverlegung'){ + $vars = "Alter_Termin, Neuer_Termin"; + $back = 'admin_spielverlegungen'; + } + HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars,$back); } function adminSaveEmailVorlage(): void @@ -6863,8 +6958,10 @@ function adminSaveEmailVorlage(): void if (!benutzerZugriff("benutzerVeranstalterModerator")) keinZugriff(); + $back = $db->escape(trim($jInput->get('back', '', 'RAW'))); + if ($jInput->get('cancel', false, 'BOOL')) { - redirectSportsManagerURL('&task=admin_ordnungsstrafen'); + redirectSportsManagerURL('&task=' . $back); } $vorlage = $db->escape(trim($jInput->get('vorlage', '', 'RAW'))); @@ -6884,7 +6981,7 @@ function adminSaveEmailVorlage(): void die($db->stderr(true)); } - redirectSportsManagerURL('&task=admin_ordnungsstrafen'); + redirectSportsManagerURL('&task=' . $back); } function adminEditVeranstaltung(): void @@ -11342,20 +11439,66 @@ function adminBegegnungenExportForm(): void foreach ($rows as $value) { - // letze Änderung + $Bestaetigt = []; + $Bestaetigt = []; + $Moderator = []; + + // Endergebnis vorgeschlagen $query = " SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von FROM #__sportsmanager_begegnung_historie AS t1 LEFT JOIN #__users AS t2 ON t1.user_id = t2.id WHERE begegnung_id = " . $value->ID . " - AND aktion IN (5,6,7,8,9) + AND aktion IN (6) ORDER BY eingetragen DESC LIMIT 1; "; + $Bestaetigt = loadObjectList($db, $query); + if (!empty($Bestaetigt)) { + $value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um; + $value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von; + } else { + $value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um; + $value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von; + } - $letzterEintrag = loadObjectList($db, $query); - $value->gespeichert_um = $letzterEintrag[0]->gespeichert_um; - $value->gespeichert_von = $letzterEintrag[0]->gespeichert_von; + // Endergebnis bestätigen Gegner + $query = " + SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von + FROM #__sportsmanager_begegnung_historie AS t1 + LEFT JOIN #__users AS t2 ON t1.user_id = t2.id + WHERE begegnung_id = " . $value->ID . " + AND aktion IN (7) + ORDER BY eingetragen DESC + LIMIT 1; + "; + $Bestaetigt = loadObjectList($db, $query); + if (!empty($Bestaetigt)) { + $value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um; + $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von; + } else { + $value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um; + $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von; + } + + // Endergebnis bestätigen Moderator + $query = " + SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von + FROM #__sportsmanager_begegnung_historie AS t1 + LEFT JOIN #__users AS t2 ON t1.user_id = t2.id + WHERE begegnung_id = " . $value->ID . " + AND aktion IN (8) + ORDER BY eingetragen DESC + LIMIT 1; + "; + $Moderator = loadObjectList($db, $query); + if (!empty($Moderator)) { + $value->moderator_um = $Moderator[0]->gespeichert_um; + $value->moderator_von = $Moderator[0]->gespeichert_von; + } else { + $value->moderator_um = $Moderator[0]->gespeichert_um; + $value->moderator_von = $Moderator[0]->gespeichert_von; + } // Spielbericht $query = " diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 35540a5..642c5d7 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -215,6 +215,9 @@ if ($task == "spielerbild") { case 'admin_verschieben_modus_remove': adminRemoveVerschiebenModus(); break; + case 'admin_spielverlegungen'; + adminSpielverlegungen(); + break; case 'admin_kategorien': adminKategorien(); break; @@ -398,6 +401,9 @@ if ($task == "spielerbild") { case 'admin_ordnungsstrafen_vorlage': adminEditEmailVorlage('Ordnungsstrafe'); break; + case 'admin_spielverlegung_vorlage'; + adminEditEmailVorlage('Spielverlegung'); + break; case 'admin_email_vorlage_save': adminSaveEmailVorlage(); break; @@ -4104,9 +4110,15 @@ function spielverlegungen(): void $filter_status = $jInput->get('filter_status', '', 'RAW'); if (empty($filter_status)) - $filter_status = "offen,genehmigt,abgelehnt"; + $filter_status = "offen,genehmigt"; -$query = "SELECT" + $query = "SELECT saison_id, saisonbezeichnung" + . "\n FROM #__sportsmanager_saison" + . "\n ORDER BY saisonbezeichnung DESC LIMIT 1"; + $saisons = loadObjectList($db, $query); + $filter_saison_id = $saisons[0]->saison_id; + + $query = "SELECT" . "\n t1.begegnung_id, t1.beantragt, t1.Begruendung AS Begruendung_beantragt, t1.Termin_alt," . "\n t2.genehmigt, t2.Termin_neu, t2.Begruendung AS Begruendung_genehmigt," . "\n t3.abgelehnt, t3.Begruendung AS Begruendung_abgelehnt," @@ -4162,7 +4174,8 @@ $query = "SELECT" . "\n LEFT JOIN #__sportsmanager_team AS t8 ON t8.team_id = t1.team_id" // Filter - . "\n " . kategorieFilter("WHERE t7.kategorie IN") + . "\n WHERE t7.saison_id = '$filter_saison_id'" + . "\n " . kategorieFilter("AND t7.kategorie IN") . "\n HAVING status in ('" . str_replace(",", "','", $filter_status) . "')" . "\n ORDER BY t1.beantragt DESC;"; diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php index d8becf5..bc8016c 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -3965,7 +3965,7 @@ static function spielverlegungen($titel, $beschreibung, $rows): void - ", $row->Termin_alt); ?> + ", date('d.m.Y h:i', strtotime($row->Termin_alt))); ?> Liga); ?> @@ -3984,7 +3984,7 @@ static function spielverlegungen($titel, $beschreibung, $rows): void ?> - ", $row->Termin_neu); ?> + ", date('d.m.Y h:i', strtotime($row->Termin_neu))); ?> Begruendung_beantragt); ?> 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 bfad356..077eca6 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -191,7 +191,7 @@ class HTML_sportsmanager_admin if (benutzerZugriff("verschieberegeln_aendern")) { ?> - + + href=""> @@ -7237,6 +7237,104 @@ class HTML_sportsmanager_admin + +
+ :
+ + + + + + + + + + + +
+
+ +
+
+ + + + +
+ + +
+ +
+
+ + + + + + + + + 0) { + $k = 0; + foreach ($rows as $row) { + ?> + + + + + + + + +
+ ", date('d.m.Y h:i', strtotime($row->Termin_alt))); ?> + + Liga); ?> + + Heim == $row->beantragt_von) + echo "" . htmlentities_utf8($row->Heim) . ""; + else + echo htmlentities_utf8($row->Heim); + echo "
"; + if ($row->Gast == $row->beantragt_von) + echo "" . htmlentities_utf8($row->Gast) . ""; + else + echo htmlentities_utf8($row->Gast); + ?> +
+ ", date('d.m.Y h:i', strtotime($row->Termin_neu))); ?> + + Begruendung_beantragt); ?> +
+   + @@ -7622,6 +7720,7 @@ class HTML_sportsmanager_admin +