Merge pull request #221 from Deutscher-Tischfussballbund/sportsmanager2-issue218

MonsterDYP imports throw error
This commit is contained in:
MarvinF
2025-11-13 21:52:06 +01:00
committed by GitHub
@@ -11950,6 +11950,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemVorrunde = $matchingNodes->item(0)->getAttribute("system");
} }
if ($disziplinZusatzrunde != null) { if ($disziplinZusatzrunde != null) {
@@ -11960,6 +11961,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemZusatzrunde = $matchingNodes->item(0)->getAttribute("system");
} }
if ($disziplinZusatzrunde2 != null) { if ($disziplinZusatzrunde2 != null) {
@@ -11970,6 +11972,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemZusatzrunde2 = $matchingNodes->item(0)->getAttribute("system");
} }
$matchingNodes = $disziplin->getElementsByTagName("disziplin"); $matchingNodes = $disziplin->getElementsByTagName("disziplin");
@@ -11979,6 +11982,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemHauptrunde = $matchingNodes->item(0)->getAttribute("system");
// Spieler-Ids über Spielerliste ermitteln // Spieler-Ids über Spielerliste ermitteln
$meldungenSpieler = array(); $meldungenSpieler = array();
@@ -12259,7 +12263,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
// Spiele speichern // Spiele speichern
$totalVorrunde = 0; $totalVorrunde = 0;
if ($disziplinVorrunde != null) { if ($disziplinVorrunde != null && $turniersystemVorrunde != "Monster-DYP") {
$matchingNodes = $disziplinVorrunde->getElementsByTagName("runde"); $matchingNodes = $disziplinVorrunde->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalVorrunde = $matchingNodes->length; $totalVorrunde = $matchingNodes->length;
@@ -12307,7 +12311,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
$query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)" $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
. "\n VALUES ('$id', '$spielNr', '$rundenNr', '10', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");"; . "\n VALUES ('$id', '$spielNr', '$rundenNr', '10', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
@@ -12334,7 +12338,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
// Spiele speichern // Spiele speichern
if ($disziplinZusatzrunde != null) { if ($disziplinZusatzrunde != null && $turniersystemZusatzrunde != "Monster-DYP") {
$matchingNodes = $disziplinZusatzrunde->getElementsByTagName("runde"); $matchingNodes = $disziplinZusatzrunde->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalZusatzrunde = $matchingNodes->length; $totalZusatzrunde = $matchingNodes->length;
@@ -12408,7 +12412,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
// Spiele speichern // Spiele speichern
if ($disziplinZusatzrunde2 != null) { if ($disziplinZusatzrunde2 != null && $turniersystemZusatzrunde2 != "Monster-DYP") {
$matchingNodes = $disziplinZusatzrunde2->getElementsByTagName("runde"); $matchingNodes = $disziplinZusatzrunde2->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalZusatzrunde2 = $matchingNodes->length; $totalZusatzrunde2 = $matchingNodes->length;
@@ -12480,77 +12484,79 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
} }
} }
if ($turniersystemHauptrunde != "Monster-DYP") {
$matchingNodes = $disziplin->getElementsByTagName("runde");
if ($matchingNodes != null) {
$total = $matchingNodes->length;
$ergebnis_saetze_maximum = 0;
for ($i = 0; $i < $total; $i++) {
$currNode = $matchingNodes->item($i);
$rundenNr = $currNode->getAttribute("no");
$matchingNodes = $disziplin->getElementsByTagName("runde"); $spielNodes = $currNode->getElementsByTagName("spiel");
if ($matchingNodes != null) { foreach ($spielNodes as $spiel) {
$total = $matchingNodes->length; $heim = $spiel->getAttribute("heim");
$ergebnis_saetze_maximum = 0; $gast = $spiel->getAttribute("gast");
for ($i = 0; $i < $total; $i++) {
$currNode = $matchingNodes->item($i);
$rundenNr = $currNode->getAttribute("no");
$spielNodes = $currNode->getElementsByTagName("spiel"); $heimGewonneneSaetze = 0;
foreach ($spielNodes as $spiel) { $gastGewonneneSaetze = 0;
$heim = $spiel->getAttribute("heim"); $ergebnis_detailliert = "";
$gast = $spiel->getAttribute("gast"); $ergebnis_saetze = 0;
$satzNodes = $spiel->getElementsByTagName("satz");
foreach ($satzNodes as $satz) {
$heimPunkte = $satz->getAttribute("heim");
$gastPunkte = $satz->getAttribute("gast");
if ($heimPunkte > $gastPunkte)
$heimGewonneneSaetze++;
else if ($heimPunkte < $gastPunkte)
$gastGewonneneSaetze++;
if ($heimPunkte > 1 || $gastPunkte > 1) {
if (!empty($ergebnis_detailliert))
$ergebnis_detailliert .= " ";
$ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
$ergebnis_saetze++;
}
}
if ($ergebnis_saetze > $ergebnis_saetze_maximum)
$ergebnis_saetze_maximum = $ergebnis_saetze;
$heimGewonneneSaetze = 0; $heimId = $meldungenIds[$heim];
$gastGewonneneSaetze = 0; $gastId = $meldungenIds[$gast];
$ergebnis_detailliert = ""; $spielNr = $totalVorrunde + $i + 1;
$ergebnis_saetze = 0; if ($heimGewonneneSaetze > $gastGewonneneSaetze)
$satzNodes = $spiel->getElementsByTagName("satz"); $ergebnis = 1;
foreach ($satzNodes as $satz) { else if ($heimGewonneneSaetze < $gastGewonneneSaetze)
$heimPunkte = $satz->getAttribute("heim"); $ergebnis = 2;
$gastPunkte = $satz->getAttribute("gast"); else
if ($heimPunkte > $gastPunkte) $ergebnis = 0;
$heimGewonneneSaetze++;
else if ($heimPunkte < $gastPunkte)
$gastGewonneneSaetze++;
if ($heimPunkte > 1 || $gastPunkte > 1) {
if (!empty($ergebnis_detailliert))
$ergebnis_detailliert .= " ";
$ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte;
$ergebnis_saetze++;
}
}
if ($ergebnis_saetze > $ergebnis_saetze_maximum)
$ergebnis_saetze_maximum = $ergebnis_saetze;
$heimId = $meldungenIds[$heim]; $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)"
$gastId = $meldungenIds[$gast]; . "\n VALUES ('$id', '$spielNr', '$rundenNr', '1', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");";
$spielNr = $totalVorrunde + $i + 1; $db->setQuery($query);
if ($heimGewonneneSaetze > $gastGewonneneSaetze) if (!$db->execute()) {
$ergebnis = 1; die($db->stderr(true));
else if ($heimGewonneneSaetze < $gastGewonneneSaetze) }
$ergebnis = 2; }
else }
$ergebnis = 0; if ($ergebnis_saetze_maximum > 0) {
$query = "INSERT #__sportsmanager_turnier_rundenstufe"
$query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)" . "\n SET bezeichnung = '',"
. "\n VALUES ('$id', '$spielNr', '$rundenNr', '1', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");"; . "\n typ = null,"
$db->setQuery($query); . "\n runden = null,"
if (!$db->execute()) { . "\n tabellenwertung = null,"
die($db->stderr(true)); . "\n saetze = " . "'$ergebnis_saetze_maximum'" . ","
} . "\n tore = null,"
} . "\n spielfelder = null,"
} . "\n turnierdisziplin_id = '$id',"
if ($ergebnis_saetze_maximum > 0) { . "\n rundenstufe = '1'";
$query = "INSERT #__sportsmanager_turnier_rundenstufe" $db->setQuery($query);
. "\n SET bezeichnung = ''," if (!$db->execute()) {
. "\n typ = null," die($db->stderr(true));
. "\n runden = null," }
. "\n tabellenwertung = null," }
. "\n saetze = " . "'$ergebnis_saetze_maximum'" . "," }
. "\n tore = null," }
. "\n spielfelder = null,"
. "\n turnierdisziplin_id = '$id',"
. "\n rundenstufe = '1'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
}
} }
} }
} }