rework internal order system

This commit is contained in:
Matthias Hochmeister
2026-03-24 13:42:04 +01:00
parent 64663c0fe4
commit 90944ca5f6
2 changed files with 15 additions and 4 deletions

View File

@@ -519,6 +519,16 @@ async function updateRequest(
}
if (data.items) {
// Preserve geliefert state for matching items (by artikel_id + bezeichnung)
const existingPositionen = await client.query(
'SELECT artikel_id, bezeichnung, geliefert FROM ausruestung_anfrage_positionen WHERE anfrage_id = $1',
[id],
);
const geliefertMap = new Map<string, boolean>();
for (const p of existingPositionen.rows) {
geliefertMap.set(`${p.artikel_id ?? 0}:${p.bezeichnung}`, p.geliefert);
}
await client.query('DELETE FROM ausruestung_anfrage_positionen WHERE anfrage_id = $1', [id]);
for (const item of data.items) {
let itemBezeichnung = item.bezeichnung;
@@ -531,10 +541,11 @@ async function updateRequest(
itemBezeichnung = artikelResult.rows[0].bezeichnung;
}
}
const prevGeliefert = geliefertMap.get(`${item.artikel_id ?? 0}:${itemBezeichnung}`) ?? false;
await client.query(
`INSERT INTO ausruestung_anfrage_positionen (anfrage_id, artikel_id, bezeichnung, menge, notizen)
VALUES ($1, $2, $3, $4, $5)`,
[id, item.artikel_id || null, itemBezeichnung, item.menge, item.notizen || null],
`INSERT INTO ausruestung_anfrage_positionen (anfrage_id, artikel_id, bezeichnung, menge, notizen, geliefert)
VALUES ($1, $2, $3, $4, $5, $6)`,
[id, item.artikel_id || null, itemBezeichnung, item.menge, item.notizen || null, prevGeliefert],
);
}
}

View File

@@ -1185,7 +1185,7 @@ function MeineAnfragenTab() {
getOptionLabel={o => o.name}
value={newFuerBenutzer}
onChange={(_, v) => setNewFuerBenutzer(v)}
renderInput={params => <TextField {...params} label="Für wen (optional)" />}
renderInput={params => <TextField {...params} label="Für wen (optional)" InputLabelProps={{ ...params.InputLabelProps, shrink: true }} placeholder="Mitglied auswählen..." />}
/>
)}
<TextField