mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 14:37:52 +00:00
QA Edge Case Fixes: enforce spielernr and preserve DTFB fields
- Fix 1: Discard players missing spielernr instead of auto-generating them - Fix 2: Preserve lizenznr, geburtsjahr, and pseudonym fields during player updates - Fix 3: Resolve PHP 8 array offset warning by using !empty() for geschlecht parsing - Fix 4: Leave clubless players handling as-is (skip them) per user request
This commit is contained in:
@@ -440,7 +440,7 @@ function syncReceiveSpielerImport(string $csvData): array
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$geschlecht = isset($spalte["geschlecht"]) && isset($daten[$spalte["geschlecht"]]) ? (($daten[$spalte["geschlecht"]][0] === "M" || $daten[$spalte["geschlecht"]][0] === "m" || $daten[$spalte["geschlecht"]][0] === "H" || $daten[$spalte["geschlecht"]][0] === "h") ? "M" : "W") : "M";
|
$geschlecht = isset($spalte["geschlecht"]) && !empty($daten[$spalte["geschlecht"]]) ? (($daten[$spalte["geschlecht"]][0] === "M" || $daten[$spalte["geschlecht"]][0] === "m" || $daten[$spalte["geschlecht"]][0] === "H" || $daten[$spalte["geschlecht"]][0] === "h") ? "M" : "W") : "M";
|
||||||
$spielernr = isset($daten[$spalte["spielernr"]]) ? trim($daten[$spalte["spielernr"]]) : "";
|
$spielernr = isset($daten[$spalte["spielernr"]]) ? trim($daten[$spalte["spielernr"]]) : "";
|
||||||
if (!empty($spielernr) && !ctype_digit(substr($spielernr, strlen($spielernr) - 1, 1))) {
|
if (!empty($spielernr) && !ctype_digit(substr($spielernr, strlen($spielernr) - 1, 1))) {
|
||||||
$spielernr = "";
|
$spielernr = "";
|
||||||
@@ -561,13 +561,6 @@ function syncReceiveSpielerImport(string $csvData): array
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'basis_spielernr'";
|
|
||||||
$rows_settings = loadObjectList($db, $query);
|
|
||||||
$naechste_spielernr = count($rows_settings) > 0 ? $rows_settings[0]->wert : "1";
|
|
||||||
if (empty($naechste_spielernr)) {
|
|
||||||
$naechste_spielernr = "1";
|
|
||||||
}
|
|
||||||
|
|
||||||
$spieler_updated = 0;
|
$spieler_updated = 0;
|
||||||
$spieler_added = 0;
|
$spieler_added = 0;
|
||||||
$spielerIdsHinzugefuegt = array();
|
$spielerIdsHinzugefuegt = array();
|
||||||
@@ -596,6 +589,10 @@ function syncReceiveSpielerImport(string $csvData): array
|
|||||||
$spieler_id = $spielerIdsHinzugefuegt[$spielernr];
|
$spieler_id = $spielerIdsHinzugefuegt[$spielernr];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($spieler_id === null && empty($spielernr)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ($spieler_id === null && empty($vereinsname)) {
|
if ($spieler_id === null && empty($vereinsname)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -604,17 +601,8 @@ function syncReceiveSpielerImport(string $csvData): array
|
|||||||
$query = "UPDATE #__sportsmanager_spieler"
|
$query = "UPDATE #__sportsmanager_spieler"
|
||||||
. "\n SET vorname = '" . $db->escape($vorname) . "',"
|
. "\n SET vorname = '" . $db->escape($vorname) . "',"
|
||||||
. "\n nachname = '" . $db->escape($nachname) . "',"
|
. "\n nachname = '" . $db->escape($nachname) . "',"
|
||||||
. "\n geschlecht = '" . $db->escape($geschlecht) . "'";
|
. "\n geschlecht = '" . $db->escape($geschlecht) . "'"
|
||||||
if (!empty($lizenznr)) {
|
. "\n WHERE spieler_id = " . intval($spieler_id);
|
||||||
$query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'";
|
|
||||||
}
|
|
||||||
if ($geburtsjahr !== null) {
|
|
||||||
$query .= ",\n geburtsjahr = '" . $db->escape($geburtsjahr) . "'";
|
|
||||||
}
|
|
||||||
if (!empty($pseudonym)) {
|
|
||||||
$query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'";
|
|
||||||
}
|
|
||||||
$query .= "\n WHERE spieler_id = " . intval($spieler_id);
|
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
return [
|
return [
|
||||||
@@ -624,10 +612,6 @@ function syncReceiveSpielerImport(string $csvData): array
|
|||||||
}
|
}
|
||||||
$spieler_updated++;
|
$spieler_updated++;
|
||||||
} else {
|
} else {
|
||||||
if (empty($spielernr)) {
|
|
||||||
$spielernr = $naechste_spielernr;
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = "INSERT INTO #__sportsmanager_spieler"
|
$query = "INSERT INTO #__sportsmanager_spieler"
|
||||||
. "\n SET vorname = '" . $db->escape($vorname) . "',"
|
. "\n SET vorname = '" . $db->escape($vorname) . "',"
|
||||||
. "\n nachname = '" . $db->escape($nachname) . "',"
|
. "\n nachname = '" . $db->escape($nachname) . "',"
|
||||||
|
|||||||
Reference in New Issue
Block a user