Fix 404 status update error with flexible SQL matching and add ALKIS layer loading error diagnostics
Deploy Bürgerwind / deploy (push) Successful in 17s Details

This commit is contained in:
Johannes Baumeister 2026-05-01 10:46:15 +02:00
parent dd6e875e2c
commit 29fe0b1352
2 changed files with 18 additions and 21 deletions

11
app.js
View File

@ -1240,10 +1240,19 @@ document.addEventListener('DOMContentLoaded', async () => {
// ALKIS aus Datenbank IMMER laden
console.log("Lade ALKIS-Layer aus Datenbank...");
const resp = await fetch('/api/layers/alkis').catch(() => null);
const resp = await fetch('/api/layers/alkis').catch(err => {
console.error("Netzwerkfehler beim Laden des ALKIS-Layers:", err);
return null;
});
if (resp && resp.ok) {
const data = await resp.json();
await processALKISData(data, "Eigentümer (ALKIS DB)");
} else {
const errorText = resp ? await resp.text() : "Server nicht erreichbar";
console.warn("ALKIS-Layer konnte nicht geladen werden:", errorText);
// Optional: Kurzer Hinweis für den User
document.getElementById('statusInfo').innerHTML += ` | <span style="color: #ff8800;">ALKIS-Layer Fehler</span>`;
}
statusEl.innerText = "Layer geladen (ALKIS DB integriert).";

View File

@ -147,34 +147,22 @@ app.post('/api/sicherung', async (req, res) => {
const searchNachname = (nachname || '').trim();
const searchVorname = (vorname || '').trim();
// Wir aktualisieren alle Einträge, die auf diesen Namen passen
// Normalisierte Suche (TRIM und COALESCE für ALKIS-Daten)
const updateRes = await client.query(
`UPDATE ${schema}.flaecheneigentuemer_alkis
SET status = $1, notiz = $2
WHERE
("GNA" = $3 AND "VNA" = $4) OR
("VNA" = $5 AND "GNA" IS NULL) OR
("GNA" = $5 AND "VNA" IS NULL)`,
(TRIM(COALESCE("GNA", '')) = TRIM(COALESCE($3, '')) AND TRIM(COALESCE("VNA", '')) = TRIM(COALESCE($4, ''))) OR
(TRIM(COALESCE("VNA", '')) = TRIM(COALESCE($5, '')) AND TRIM(COALESCE("GNA", '')) = '') OR
(TRIM(COALESCE("GNA", '')) = TRIM(COALESCE($5, '')) AND TRIM(COALESCE("VNA", '')) = '') OR
(LOWER(TRIM(COALESCE("GNA", ''))) = LOWER(TRIM(COALESCE($3, ''))) AND LOWER(TRIM(COALESCE("VNA", ''))) = LOWER(TRIM(COALESCE($4, ''))))`,
[targetStatus, notiz, searchNachname, searchVorname, `${searchVorname} ${searchNachname}`.trim()]
);
if (updateRes.rowCount === 0) {
log(`Kein Eigentümer für ${vorname} ${nachname} zum Aktualisieren gefunden.`);
// Optional: Fallback Suche mit LOWER
const updateResLower = await client.query(
`UPDATE ${schema}.flaecheneigentuemer_alkis
SET status = $1, notiz = $2
WHERE
(LOWER("GNA") = LOWER($3) AND LOWER("VNA") = LOWER($4)) OR
(LOWER("VNA") = LOWER($5) AND "GNA" IS NULL) OR
(LOWER("GNA") = LOWER($5) AND "VNA" IS NULL)`,
[targetStatus, notiz, searchNachname, searchVorname, `${searchVorname} ${searchNachname}`.trim()]
);
if (updateResLower.rowCount === 0) {
log(`Kein Eigentümer für ${vorname} ${nachname} gefunden.`);
await client.query('ROLLBACK');
return res.status(404).json({ error: 'Eigentümer nicht in der Datenbank gefunden.' });
}
return res.status(404).json({ error: `Eigentümer '${vorname} ${nachname}' nicht in der ALKIS-Tabelle gefunden.` });
}
await client.query('COMMIT');