Web: Einzelstuecke verleihen, auch direkt nach dem Scannen

Verleihen und Zuruecknehmen in der Einzelstueck-Tabelle eines Artikels und
in der Liste aller Einzelstuecke, dort als Spalten "Verliehen an" und
"Zurueck bis" (filter- und sortierbar). Ueberfaellig ist rot, demnaechst
faellig gelb - dieselben Zustandsfarben wie beim MHD.

Die Scan-Zielseite /i/<uid> leitete vorher nur zum Artikel weiter. Fuer
"scannen und verleihen" braucht die Aktion aber genau dort ihren Platz:
Die Seite zeigt jetzt, was man in der Hand haelt - Stueck, Artikel,
Lagerort, Verleihzustand - und bietet Verleihen bzw. Zuruecknehmen an.
Gegenstueck zur Lagerort-Seite /l/<code>, die es fuers Einlagern genauso
macht.

Anzeige und Aktionen liegen einmal in components/Verleih.jsx, weil alle
drei Stellen dasselbe brauchen. Der Knopf haengt nicht an isAdmin:
Verleihen ist eine Buchung wie Ein- und Auslagern.

Dazu zwei Dashboard-Karten: alles Verliehene und, getrennt, nur das
Ueberfaellige. Stuecke ohne Rueckgabedatum sind nie faellig und tauchen in
der zweiten Karte nicht auf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-17 09:30:14 +02:00
co-authored by Claude Opus 5
parent 467ef3c804
commit 1332dd86fa
9 changed files with 472 additions and 36 deletions
+10 -1
View File
@@ -113,7 +113,16 @@ Selfhostbare Lebensmittel-Lagerverwaltung. Aufbau in mehreren Schritten.
- **Bewusst keine `Movement`-Bewegung je Verleih:** Der Verlauf rechnet den
Bestand rückwärts aus vorzeichenbehafteten Bewegungen – ein Abgang ohne
Gegenbuchung würde diese Kurve verfälschen.
- Noch offen: Oberfläche in Web und App sowie die **Rückgabe-Erinnerung**. Sie
- **Web-Oberfläche:** Verleihen und Zurücknehmen in der Einzelstück-Tabelle
eines Artikels und in der Liste aller Einzelstücke (Spalten „Verliehen an" und
„Zurück bis", filter- und sortierbar), zwei Dashboard-Karten („Verliehen",
„Überfällige Verleihe") und der Verleih-Verlauf je Stück. Überfällig ist rot,
demnächst fällig gelb – dieselben Zustandsfarben wie beim MHD.
- **Nach dem Scannen direkt verleihen:** Das Ziel eines Einzelstück-QR bzw.
NFC-Tags (`/i/<uid>`) leitete vorher nur zum Artikel weiter. Jetzt zeigt es,
was man in der Hand hält, und bietet Verleihen bzw. Zurücknehmen an der Stelle
an – Gegenstück zur Lagerort-Seite (`/l/<code>`).
- Noch offen: Oberfläche in der iOS-App sowie die **Rückgabe-Erinnerung**. Sie
kann nur den Weg der Ablauf-Meldungen gehen (lokale Benachrichtigung der App
aus einem Server-Snapshot, `GET /loans?due_in=…` ist dafür schon die
Datenquelle) – echtes Push fehlt weiterhin, siehe Schritt 3.