diff --git a/src/database/updates.sql b/src/database/updates.sql new file mode 100644 index 0000000..48802df --- /dev/null +++ b/src/database/updates.sql @@ -0,0 +1 @@ +ALTER TABLE `#__sportsmanager_rangliste` ADD COLUMN `lizenzen` varchar(50) NULL DEFAULT ''; diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 3c1d545..45be134 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -6034,6 +6034,11 @@ function adminEditRangliste() { $rows = $db->loadObjectList(); if (count($rows) < 1) die ("Wrong id"); $rangliste = $rows[0]; + + if(isset($rangliste->lizenzen)) + { + $rangliste->lizenzen = explode(',', $rangliste->lizenzen); + } } $query = "SELECT * FROM #__sportsmanager_rangliste_system WHERE status > 0 " . ($id != 0 ? "OR rangliste_system_id = $rangliste->system_id " : "") . "ORDER BY systembezeichnung"; @@ -6094,11 +6099,12 @@ function adminSaveRangliste() { $maxalter = $jinput->get('maxalter', 0, 'INT'); $ohnealter = $jinput->get('ohnealter', 0, 'INT'); $geschlecht = $jinput->get('geschlecht', 0, 'INT'); + $lizenzen = $jinput->get('lizenzen', [], 'ARRAY'); $status = $jinput->get('status', 0, 'INT'); $reihenfolge = $jinput->get('reihenfolge', 0, 'INT'); $kategorie = $jinput->get('kategorie', 0, 'INT'); if ($id == 0) - $query = "INSERT INTO #__sportsmanager_rangliste (bezeichnung, saison_id, erster_tag, " . ($letzter_tag != null ? "letzter_tag, " : "") . "system_id, streichergebnisse, geschlecht, minalter, maxalter, ohnealter, status, reihenfolge, kategorie) VALUES ('$bezeichnung', '$saison_id', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$system_id', '$maximal_gewertet_zahl', " . ($geschlecht == null ? "null" : "'$geschlecht'") . ", " . ($minalter == null ? "null" : "'$minalter'") . ", " . ($maxalter == null ? "null" : "'$maxalter'") . ", '$ohnealter', '$status', '$reihenfolge', '$kategorie');"; + $query = "INSERT INTO #__sportsmanager_rangliste (bezeichnung, saison_id, erster_tag, " . ($letzter_tag != null ? "letzter_tag, " : "") . "system_id, streichergebnisse, geschlecht, lizenzen, minalter, maxalter, ohnealter, status, reihenfolge, kategorie) VALUES ('$bezeichnung', '$saison_id', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$system_id', '$maximal_gewertet_zahl', " . ($geschlecht == null ? "null" : "'$geschlecht'") . ", " . (count((array) $lizenzen) ? implode(',', $lizenzen) : "null") . ", " . ($minalter == null ? "null" : "'$minalter'") . ", " . ($maxalter == null ? "null" : "'$maxalter'") . ", '$ohnealter', '$status', '$reihenfolge', '$kategorie');"; else { $query = "UPDATE #__sportsmanager_rangliste" . "\n SET bezeichnung = '$bezeichnung'," @@ -6108,6 +6114,7 @@ function adminSaveRangliste() { . "\n system_id = '$system_id'," . "\n streichergebnisse = '$maximal_gewertet_zahl'," . "\n geschlecht = " . ($geschlecht != null ? "'$geschlecht'," : "NULL,") + . "\n lizenzen = " . (count((array) $lizenzen) ? "'" . implode(',', $lizenzen) . "',": "NULL,") . "\n minalter = " . ($minalter != null ? "'$minalter'," : "NULL,") . "\n maxalter = " . ($maxalter != null ? "'$maxalter'," : "NULL,") . "\n ohnealter = '$ohnealter'," diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index ff847d8..4f1fa41 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -5512,6 +5512,7 @@ function teamSpielplanXML() { foreach ($ranglisten as $rangliste_index => $rangliste) { $rangliste_id = $rangliste->rangliste_id; + $rangliste->lizenzen = explode(',', $rangliste->lizenzen); $query = "SELECT *" . "\n FROM #__sportsmanager_rangliste_turnierdisziplin" . "\n INNER JOIN #__sportsmanager_turnierdisziplin USING (turnierdisziplin_id)" @@ -5564,7 +5565,7 @@ function teamSpielplanXML() { $system = $systeme[$systemid]; $systempunkte = $systemepunkte[$systemid]; - $query = "SELECT turniermeldung_id, platz, spieler_id, geburtsjahr, geschlecht" + $query = "SELECT turniermeldung_id, platz, spieler_id, geburtsjahr, geschlecht, lizenz" . "\n FROM #__sportsmanager_turniermeldung" . "\n INNER JOIN #__sportsmanager_turniermeldung_spieler USING (turniermeldung_id)" . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" @@ -5614,6 +5615,10 @@ function teamSpielplanXML() { if ($rangliste->geschlecht == 2 && $turnierplatzierung->geschlecht == 'M') continue; } + if (!empty($rangliste->lizenzen) && count($rangliste->lizenzen)) { + if (!in_array($turnierplatzierung->lizenz, $rangliste->lizenzen)) + continue; // TODO @TimWedemann prüfen + } $meldung_einzelner_doppelspieler_gewertet = FALSE; if (!isset($meldungen[$turnierplatzierung->turniermeldung_id])) { @@ -5638,6 +5643,7 @@ function teamSpielplanXML() { if ($rangliste->geschlecht == 2 && $naechste_turnierplatzierung->geschlecht == 'M') $meldung_einzelner_doppelspieler_gewertet = TRUE; } + // TODO @TimWedemann muss hier was beachtet werden bzgl. Lizenzen? } } else $meldung_einzelner_doppelspieler_gewertet = TRUE; 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 1c3d66d..f713bc4 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -5319,6 +5319,21 @@ class HTML_sportsmanager_admin +