Merge pull request #249 from Deutscher-Tischfussballbund/sportsmanager2-issue244

Sportsmanager2 issue244
This commit is contained in:
MarvinF
2026-02-03 19:02:44 +01:00
committed by GitHub
6 changed files with 166 additions and 143 deletions
@@ -2350,7 +2350,7 @@ function adminImportSpielerDetailsForm(): void
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
return;
}
@@ -2606,7 +2606,7 @@ function adminImportSpielerVorschau(): void
if ($import_verweigern) {
adminDeleteSpielerImport($session_id);
}
HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jInput->get('persoenliche_daten', 0, 'INT'), $jInput->get('lizenznr_beibehalten', 0, 'INT'), $jInput->get('spalten', '', 'RAW'));
HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jInput->get('persoenliche_daten', 0, 'INT'), $jInput->get('spalten', '', 'RAW'));
}
function adminImportSpieler(): void
@@ -2636,7 +2636,6 @@ function adminImportSpieler(): void
$persoenliche_daten = $jInput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
else
$persoenliche_daten = 0;
$lizenznr_beibehalten = $jInput->get('lizenznr_beibehalten', 0, 'INT');
$session_id = $jInput->get('session_id', '', 'RAW');
$query = "SELECT DISTINCT veranstalterbezeichnung"
@@ -2788,6 +2787,8 @@ function adminImportSpieler(): void
}
$aktualisierungen = 0;
$index_nicht_akt_unt = 0;
$nichtAktualisierteUnterschiede = array();
$spielerHinzugefuegt = array();
$vereineHinzugefuegt = 0;
$vereineManuell = array();
@@ -2837,17 +2838,20 @@ function adminImportSpieler(): void
// Spieler aktualisieren bzw. ergänzen
if ($spieler_id != null) { // Spieler aktualisieren
$query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_id";
$spieler_buffer = loadObjectList($db, $query);
$query = "UPDATE #__sportsmanager_spieler"
. "\n SET vorname = '" . $db->escape($vorname) . "',"
. "\n nachname = '" . $db->escape($nachname) . "'";
//. "\n spielernr = '" . $db->escape($spielernr) . "'";
if (isset($spalten["lizenznr"]) && ($lizenznr_beibehalten == 0 || !empty($lizenznr)))
if (isset($spalten["lizenznr"]) && !empty($lizenznr) && empty($spieler_buffer[0]->lizenznr))
$query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'";
if (isset($spalten["pseudonym"]))
$query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'";
if (isset($spalten["geschlecht"]))
$query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'";
if ((isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"])) && $geburtsjahr != null)
if ((isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"])) && empty($spieler_buffer[0]->lizenznr) && $geburtsjahr != null)
$query .= ",\n geburtsjahr = " . ("'" . $db->escape($geburtsjahr) . "'");
if ($persoenliche_daten == 2) {
if (isset($spalten["strasse"]))
@@ -2870,7 +2874,24 @@ function adminImportSpieler(): void
if (!$db->execute()) {
die($db->stderr(true));
}
if (!empty($spieler_buffer[0]->lizenznr)){
if (isset($spalten["lizenznr"]) && !empty($lizenznr) && $lizenznr != $spieler_buffer[0]->lizenznr){
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt] = new stdClass();
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->spieler = $spieler_buffer[0]->nachname . " " . $spieler_buffer[0]->vorname;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->feld = "Linzenznr";
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->db = $spieler_buffer[0]->lizenznr;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->csv = $lizenznr;
$index_nicht_akt_unt++;
}
if (isset($spalten["geburtsjahr"]) && !empty($geburtsjahr) && $geburtsjahr != $spieler_buffer[0]->geburtsjahr){
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt] = new stdClass();
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->spieler = $spieler_buffer[0]->nachname . " " . $spieler_buffer[0]->vorname;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->feld = "Geburtsjahr";
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->db = $spieler_buffer[0]->geburtsjahr;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->csv = $geburtsjahr;
$index_nicht_akt_unt++;
}
}
$aktualisierungen++;
} else { // Spieler ergänzen
// Neuen Spieler anlegen
@@ -3092,7 +3113,7 @@ function adminImportSpieler(): void
einstufungAktualisieren();
}
HTML_sportsmanager_admin::adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
HTML_sportsmanager_admin::adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $nichtAktualisierteUnterschiede, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
}
function adminExportSpielerInternationalForm(): void
@@ -3103,7 +3103,9 @@ function spielerDetails(): void
$spieler = $rows[0];
// Aktive Vereinsmitgliedschaften ermitteln
$query = "SELECT vereinsname"
$query = "SELECT vereinsname,"
. "\n CASE #__sportsmanager_mitglied_von_verein.mitgliedsstatus"
. "\n WHEN 1 THEN 'Aktiv' WHEN 2 THEN 'Eingeschränkt' END AS status"
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id "
@@ -4538,7 +4538,7 @@ if ($bild != null) {
<td nowrap style="text-align: right">
<?php
foreach ($vereine as $verein)
echo htmlentities_utf8($verein->vereinsname) . "<br />";
echo htmlentities_utf8($verein->vereinsname) . " (" . htmlentities_utf8($verein->status) . ")<br />";
?>
</td>
</tr>
@@ -2268,11 +2268,7 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<table style="width: 60%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?>:
@@ -2288,10 +2284,6 @@ class HTML_sportsmanager_admin
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_IMPORT'); ?>"
class="button"/>
@@ -2340,11 +2332,8 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<br>
<table style="width: 100%">
<?php
if (!$beschraenkter_zugriff || $ansprechpartner_importieren != 1) {
?>
@@ -2355,9 +2344,8 @@ class HTML_sportsmanager_admin
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="persoenliche_daten"
id="personal_data"
size="1">
<select class="uk-select uk-form-width-large" name="persoenliche_daten"
style="width: 700px;" id="personal_data" size="1">
<?php
$status = array("0" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "1" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "2" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_PSEUDONYM'));
foreach ($status as $wert => $bezeichnung) {
@@ -2369,18 +2357,6 @@ class HTML_sportsmanager_admin
</tr>
<?php
}
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
</td>
<td nowrap>
<label>
<input type="checkbox" name="lizenznr_beibehalten" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_INTERNATIONAL_PLATYERS_OVERWRITE'); ?>
</label>
</td>
</tr>
<?php
$n = 1;
foreach ($veranstalter_import as $v) {
?>
@@ -2393,7 +2369,7 @@ class HTML_sportsmanager_admin
<td nowrap>
<select class="uk-select uk-form-width-medium"
name="veranstalter_<?php echo $n; ?>_id"
id="organizer_<?php echo $n; ?>" size="1">
id="organizer_<?php echo $n; ?>" style="width: 700px;" size="1">
<option
value=""><?php echo Text::_('COM_SPORTSMANAGER_NO_IMPORT'); ?></option>
<optgroup
@@ -2441,10 +2417,6 @@ class HTML_sportsmanager_admin
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_CHECK'); ?>" class="button"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>"
@@ -2526,7 +2498,7 @@ class HTML_sportsmanager_admin
<?php
}
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $lizenznr_beibehalten, $spalten): void
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $spalten): void
{
global $params;
$spieler_anzahl = count($spieler);
@@ -2663,17 +2635,14 @@ class HTML_sportsmanager_admin
}
?>
<input type="hidden" name="session_id" value="<?php echo htmlentities_utf8($session_id); ?>"/>
<input type="hidden" name="persoenliche_daten"
value="<?php echo htmlentities_utf8($persoenliche_daten); ?>"/>
<input type="hidden" name="lizenznr_beibehalten"
value="<?php echo htmlentities_utf8($lizenznr_beibehalten); ?>"/>
<input type="hidden" name="persoenliche_daten" value="<?php echo htmlentities_utf8($persoenliche_daten); ?>"/>
<input type="hidden" name="spalten" value="<?php echo htmlentities_utf8($spalten); ?>"/>
<input type="hidden" name="task" value="admin_spieler_import"/>
</form>
<?php
}
static function adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, $rsession_id): void
static function adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $nichtAktualisierteUnterschiede, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, $rsession_id): void
{
global $params;
@@ -2905,6 +2874,35 @@ class HTML_sportsmanager_admin
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
if (!empty($nichtAktualisierteUnterschiede)){
?>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<th nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA'); ?></th>
</tr>
</table>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<?php
$k = 0;
foreach ($nichtAktualisierteUnterschiede as $s) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap style="width: 250px;"><?php echo htmlentities_utf8($s->spieler); ?></td>
<td nowrap style="width: 150px;"><?php echo htmlentities_utf8($s->feld); ?></td>
<td nowrap style="width: 120px;"><?php echo htmlentities_utf8($s->db); ?></td>
<td nowrap style="width: 120px;"><?php echo htmlentities_utf8($s->csv); ?></td>
</tr>
<?php
}
?>
</table>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
}
static function adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, $moderator_zugriff): void
@@ -415,7 +415,7 @@ COM_SPORTSMANAGER_EXPORT="Exportieren"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Spieler (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
COM_SPORTSMANAGER_IMPORT="Importieren"
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden."
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden.<br />Bei schon vorhandener Lizenznummer wird die Lizenznummer und das Geburtsjahr nicht &uuml;berschrieben!"
COM_SPORTSMANAGER_CHECK="Pr&uuml;fen"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Fehler oder Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen."
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Versuch, Spielernr. auf eine bereits für einen anderen Spieler vergebene Spielernr. zu ändern"
@@ -1070,3 +1070,4 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Ung&uuml;ltige Uhrzeit"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?"
COM_SPORTSMANAGER_REST_DAYS="Ruhetage"
COM_SPORTSMANAGER_TRAINING_DAYS="Trainingstage"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Nicht aktualisierte Daten"
@@ -415,7 +415,7 @@ COM_SPORTSMANAGER_EXPORT="Export"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Players (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Country code"
COM_SPORTSMANAGER_IMPORT="Import"
COM_SPORTSMANAGER_IMPORT_MESSAGE="In the import there are only player information about club %s present. Shall only the members of that one club be updated, the associated club has to be selected down here. If the import contains all members of the organisation then the organisation must be selected."
COM_SPORTSMANAGER_IMPORT_MESSAGE="In the import there are only player information about club %s present. Shall only the members of that one club be updated, the associated club has to be selected down here. If the import contains all members of the organisation then the organisation must be selected.<br />If a license number already exists, the license number and the year of birth will not be overwritten."
COM_SPORTSMANAGER_CHECK="Check"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are faults or conflicts in the import which have to be fixed manually first."
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Attempt to change player number into one that is already assigned to another player."
@@ -1070,3 +1070,4 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Not valid time"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?"
COM_SPORTSMANAGER_REST_DAYS="Rest days"
COM_SPORTSMANAGER_TRAINING_DAYS="Training days"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Data not updated"