Ausgabe prüft Status und Reservierungen, Rücknahme hängt an der Ausleihe #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/ausgabe-regeln"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Behebt die Befunde 4 und 5 des externen Checks.
Ausgabe (Befund 4): Geprüft wurde bisher nur, ob das Gerät schon weg ist. Ein Status, der nicht „einsatzbereit" ist (defekt, ausgemustert, ausstehend), sperrt die Ausgabe jetzt; eine fremde Reservierung im Ausleihzeitraum ebenso, mit Nennung von Empfänger und Zeitraum. Eine eigene Reservierung gilt mit der Ausgabe als eingelöst. Geräte ohne Status bleiben unverändert ausgebbar — sonst wären Bestände ohne gepflegten Status plötzlich gesperrt.
Rücknahme (Befund 5):
checkIn()nahm „das Gerät" zurück, ohne Bezug zu einer Ausleihe.assets.checkout_activity_idzeigt jetzt auf den Ausgabe-Eintrag der laufenden Ausleihe,asset_activities.checkout_activity_idverbindet die Rücknahme mit ihrer Ausgabe.checkIn()nimmt die erwartete Ausleihe entgegen und bricht ab, wenn das Gerät zwischenzeitlich neu ausgegeben wurde. DaslockForUpdateschützte nur gegen Gleichzeitigkeit, nicht gegen veraltete Vorgänge. Der Rücknahme-Dialog führt die Ausleihe mit, die beim Öffnen lief.Die Migration trägt laufende Ausleihen auf ihren jüngsten Ausgabe-Eintrag nach.
Nebenbei: die Sammelausgabe bricht nicht mehr beim ersten gesperrten Gerät ab, sondern überspringt es mit Grund.
8 neue Tests. Volle Suite grün (178 Tests), Pint sauber.
Setzt auf #9 auf — Reihenfolge #8, #9, dieser.
🤖 Generated with Claude Code
https://claude.ai/code/session_01QKiq6LV8Lk1vst5CQW15ar
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.