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 function UhrzeitWandlerDE($Zeitstempel): mixed
{ {
//Jürgen Meyer 07.03.2025
$Temp = explode(' ', $Zeitstempel); $Temp = explode(' ', $Zeitstempel);
$Datum = $Temp[0]; $Datum = $Temp[0];
$Uhrzeit = $Temp[1]; $Uhrzeit = $Temp[1];
@@ -36,7 +34,6 @@ function UhrzeitWandlerDE($Zeitstempel): mixed
function validateDate($date, $format = 'Y-m-d H:i:s'): bool function validateDate($date, $format = 'Y-m-d H:i:s'): bool
{ {
//Jürgen Meyer 07.03.2025
$d = DateTime::createFromFormat($format, $date); $d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date; return $d && $d->format($format) == $date;
} }
@@ -2242,12 +2239,7 @@ function adminImportSpielerDetailsForm(): void
$rows = $db->loadObjectList(); $rows = $db->loadObjectList();
foreach ($rows as $row) { foreach ($rows as $row) {
$query = "DELETE FROM #__sportsmanager_spieler_import" adminDeleteSpielerImport($row->session_id);
. "\n WHERE session_id = '$row->session_id'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
} }
if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) { if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) {
@@ -2507,12 +2499,7 @@ function adminImportSpielerDetailsForm(): void
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "DELETE FROM #__sportsmanager_spieler_import" adminDeleteSpielerImport($session_id);
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen()); 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")); 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 function adminImportSpielerVorschau(): void
{ {
$db = getDatabase(); $db = getDatabase();
global $_FILES; global $_FILES;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
@@ -2680,8 +2678,9 @@ function adminImportSpielerVorschau(): void
//check Passnummer auf gueltiges Format //check Passnummer auf gueltiges Format
$query = "SELECT nachname, vorname, spielernr, spielernr_alt" $query = "SELECT nachname, vorname, spielernr, spielernr_alt"
. "\n FROM #__sportsmanager_spieler_import" . "\n FROM #__sportsmanager_spieler_import"
. "\n WHERE (spielernr NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr <> '')" . "\n WHERE session_id = '" . $db->escape($session_id) . "'"
. "\n OR (spielernr_alt NOT REGEXP '^[0-9]{2}-[0-9]{4,6}$' AND spielernr_alt <> '');"; . "\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); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
@@ -2689,6 +2688,7 @@ function adminImportSpielerVorschau(): void
} }
$spielerfehler = $db->loadObjectList(); $spielerfehler = $db->loadObjectList();
if (count($spielerfehler) > 0) { if (count($spielerfehler) > 0) {
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerFehler($spielerfehler, $fehler="Passnummer"); HTML_sportsmanager_admin::adminImportSpielerFehler($spielerfehler, $fehler="Passnummer");
return; return;
} }
@@ -2749,6 +2749,7 @@ function adminImportSpielerVorschau(): void
$konflikte = $db->loadObjectList(); $konflikte = $db->loadObjectList();
if (count($konflikte) > 0) { if (count($konflikte) > 0) {
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte, $fehler="konflikt"); HTML_sportsmanager_admin::adminImportSpielerFehler($konflikte, $fehler="konflikt");
return; return;
} }
@@ -2810,12 +2811,7 @@ function adminImportSpielerVorschau(): void
} }
if ($import_verweigern) { if ($import_verweigern) {
$query = "DELETE FROM #__sportsmanager_spieler_import" adminDeleteSpielerImport($session_id);
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
} }
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('lizenznr_beibehalten', 0, 'INT'), $jInput->get('spalten', '', 'RAW'));
} }
@@ -3352,12 +3348,7 @@ function adminImportSpieler(): void
} }
} }
$query = "DELETE FROM #__sportsmanager_spieler_import" adminDeleteSpielerImport($session_id);
. "\n WHERE session_id = '" . $db->escape($session_id) . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
sort($vereineManuell); sort($vereineManuell);
sort($ausgetreteneVereineMitAktivenMitgliedern); sort($ausgetreteneVereineMitAktivenMitgliedern);