Optimierung Ablöschung temporärer Import-Daten

This commit is contained in:
Jürgen Meyer
2025-07-14 17:01:21 +02:00
parent ca4ce6060e
commit 8479691824
@@ -20,8 +20,6 @@ require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
function UhrzeitWandlerDE($Zeitstempel): mixed
{
//Jürgen Meyer 07.03.2025
$Temp = explode(' ', $Zeitstempel);
$Datum = $Temp[0];
$Uhrzeit = $Temp[1];
@@ -36,7 +34,6 @@ function UhrzeitWandlerDE($Zeitstempel): mixed
function validateDate($date, $format = 'Y-m-d H:i:s'): bool
{
//Jürgen Meyer 07.03.2025
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
@@ -2242,14 +2239,9 @@ function adminImportSpielerDetailsForm(): void
$rows = $db->loadObjectList();
foreach ($rows as $row) {
$query = "DELETE FROM #__sportsmanager_spieler_import"
. "\n WHERE session_id = '$row->session_id'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
adminDeleteSpielerImport($row->session_id);
}
if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) {
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED'));
}
@@ -2507,12 +2499,7 @@ function adminImportSpielerDetailsForm(): void
die($db->stderr(true));
}
$query = "DELETE FROM #__sportsmanager_spieler_import"
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
@@ -2629,8 +2616,19 @@ function adminImportSpielerDetailsForm(): void
HTML_sportsmanager_admin::adminImportSpielerDetails($beschraenkter_zugriff, $ansprechpartner_importieren, $veranstalter, $veranstalter_import, $veranstalter_zugehoerigkeit, $session_id, implode(",", $spalten), $verein_import, $vereine, einstellungswert("spielerimport_persoenliche_daten_vorauswahl"));
}
function adminDeleteSpielerImport($session_id){
$db = getDatabase();
$query = "DELETE FROM #__sportsmanager_spieler_import"
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
function adminImportSpielerVorschau(): void
{
$db = getDatabase();
global $_FILES;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
@@ -2680,8 +2678,9 @@ function adminImportSpielerVorschau(): void
//check Passnummer auf gueltiges Format
$query = "SELECT nachname, vorname, spielernr, spielernr_alt"
. "\n FROM #__sportsmanager_spieler_import"
. "\n WHERE (spielernr NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr <> '')"
. "\n OR (spielernr_alt NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr_alt <> '');";
. "\n WHERE session_id = '" . $db->escape($session_id) . "'"
. "\n AND ((spielernr NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr <> '')"
. "\n OR (spielernr_alt NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr_alt <> ''));";
$db->setQuery($query);
if (!$db->execute()) {
@@ -2689,6 +2688,7 @@ function adminImportSpielerVorschau(): void
}
$spielerfehler = $db->loadObjectList();
if (count($spielerfehler) > 0) {
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerFehler($spielerfehler, $fehler="Passnummer");
return;
}
@@ -2749,6 +2749,7 @@ function adminImportSpielerVorschau(): void
$konflikte = $db->loadObjectList();
if (count($konflikte) > 0) {
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte, $fehler="konflikt");
return;
}
@@ -2810,12 +2811,7 @@ function adminImportSpielerVorschau(): void
}
if ($import_verweigern) {
$query = "DELETE FROM #__sportsmanager_spieler_import"
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
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'));
}
@@ -3352,12 +3348,7 @@ function adminImportSpieler(): void
}
}
$query = "DELETE FROM #__sportsmanager_spieler_import"
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
adminDeleteSpielerImport($session_id);
sort($vereineManuell);
sort($ausgetreteneVereineMitAktivenMitgliedern);