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
| + | +|
| + | ++ | +
| + | + | + | + | + |
|---|---|---|---|---|
| + ", 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); ?> + | +