diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index d6fad97..9c46a5e 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -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 diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 05de63e..367e16a 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -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 " 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 95f2e51..3366c06 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -4536,9 +4536,9 @@ if ($bild != null) { :