Bestandskorrekturen nur noch über eine Aktion mit Journaleintrag #11

Open
thiel wants to merge 1 commit from fix/bestandsjournal into feature/ausgabe-regeln
Owner

Behebt Befund 6 des externen Checks.

Das Mengenfeld im Bearbeiten-Formular schrieb direkt auf quantity. Beim Zubehör ließ sich der Gesamtbestand damit unter die bereits verliehene Menge setzen, beim Verbrauchsmaterial entstanden Änderungen ohne Eintrag im Bewegungsjournal — ConsumableService mit withdraw/restock war da, das Formular ging daran vorbei.

Das Feld ist beim Bearbeiten jetzt gesperrt (disabled + dehydrated(false), also auch nicht per manipuliertem Request schreibbar). Korrekturen laufen über „Bestand korrigieren" mit Pflichtbegründung:

  • AccessoryService::adjust() prüft gegen die verliehene Menge und protokolliert Alt → Neu mit Grund im Audit-Log.
  • ConsumableService::adjust() legt die Differenz als Bewegung im Journal an.

Dazu: availableQuantity() kappt mit max(0, …) auf null und versteckte damit eine Fehlmenge aus Altbeständen. shortfall() macht sie sichtbar, die Liste zeigt „Unterdeckung: n".

7 neue Tests. Volle Suite grün (185 Tests), Pint sauber.

Setzt auf #10 auf — Reihenfolge #8, #9, #10, dieser.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QKiq6LV8Lk1vst5CQW15ar

Behebt Befund 6 des externen Checks. Das Mengenfeld im Bearbeiten-Formular schrieb direkt auf `quantity`. Beim Zubehör ließ sich der Gesamtbestand damit unter die bereits verliehene Menge setzen, beim Verbrauchsmaterial entstanden Änderungen ohne Eintrag im Bewegungsjournal — `ConsumableService` mit `withdraw`/`restock` war da, das Formular ging daran vorbei. Das Feld ist beim Bearbeiten jetzt gesperrt (`disabled` + `dehydrated(false)`, also auch nicht per manipuliertem Request schreibbar). Korrekturen laufen über **„Bestand korrigieren"** mit Pflichtbegründung: - `AccessoryService::adjust()` prüft gegen die verliehene Menge und protokolliert Alt → Neu mit Grund im Audit-Log. - `ConsumableService::adjust()` legt die Differenz als Bewegung im Journal an. Dazu: `availableQuantity()` kappt mit `max(0, …)` auf null und versteckte damit eine Fehlmenge aus Altbeständen. `shortfall()` macht sie sichtbar, die Liste zeigt „Unterdeckung: n". 7 neue Tests. Volle Suite grün (185 Tests), Pint sauber. **Setzt auf #10 auf** — Reihenfolge #8, #9, #10, dieser. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01QKiq6LV8Lk1vst5CQW15ar
Bestandskorrekturen nur noch über eine Aktion mit Journaleintrag
All checks were successful
Tests / phpunit (pull_request) Successful in 1m22s
bfa5dd72ad
Das Mengenfeld im Bearbeiten-Formular schrieb direkt auf quantity: Beim
Zubehör ließ sich der Gesamtbestand unter die bereits verliehene Menge
setzen, beim Verbrauchsmaterial entstanden Änderungen ohne Eintrag im
Bewegungsjournal.

Das Feld ist beim Bearbeiten jetzt gesperrt und wird nicht mehr
geschrieben. Korrekturen laufen über "Bestand korrigieren" mit
Pflichtbegründung: AccessoryService::adjust prüft gegen die verliehene
Menge und protokolliert mit Grund im Audit-Log, ConsumableService::adjust
legt die Differenz als Bewegung an.

availableQuantity() kappt mit max(0, ...) auf null und versteckte damit
eine Fehlmenge aus Altbeständen; shortfall() macht sie sichtbar, die
Liste zeigt sie an.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QKiq6LV8Lk1vst5CQW15ar
All checks were successful
Tests / phpunit (pull_request) Successful in 1m22s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/bestandsjournal:fix/bestandsjournal
git switch fix/bestandsjournal

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.

git switch feature/ausgabe-regeln
git merge --no-ff fix/bestandsjournal
git switch fix/bestandsjournal
git rebase feature/ausgabe-regeln
git switch feature/ausgabe-regeln
git merge --ff-only fix/bestandsjournal
git switch fix/bestandsjournal
git rebase feature/ausgabe-regeln
git switch feature/ausgabe-regeln
git merge --no-ff fix/bestandsjournal
git switch feature/ausgabe-regeln
git merge --squash fix/bestandsjournal
git switch feature/ausgabe-regeln
git merge --ff-only fix/bestandsjournal
git switch feature/ausgabe-regeln
git merge fix/bestandsjournal
git push origin feature/ausgabe-regeln
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thiel/natec-inventar!11
No description provided.