fix(kontrolle): Kontrolle bucht Ist-Menge jetzt immer, nicht nur bei Abweichung
Bisher änderte eine Kontrolle Objektposition.istmenge nur indirekt über eine anschließende Nachfüllung bei Abweichung. Zählte eine Kontrolle Ist=Soll (kein Fehlbestand, keine Nachfüllung), blieb der Wert dauerhaft auf 0 stehen - ein frisch angelegtes, aber vollständig bestücktes Objekt zeigte in der Beladung nie den echten Bestand. Kontrolle setzt istmenge jetzt immer auf den gezählten Wert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
@@ -27,11 +27,14 @@ async def erfasse_position(
|
||||
chargennummer: str | None = None,
|
||||
seriennummer: str | None = None,
|
||||
) -> tuple[Kontrollposition, uuid.UUID | None]:
|
||||
"""Prompt 02.3/09 Vier-Kernbegriffe: Kontrolle erfasst nur, ändert nie die
|
||||
persistente Objektposition.istmenge. Bei Ist < Soll entsteht automatisch ein
|
||||
Fehlbestand (nie bei Überbestand, Prompt 02.4). Gibt zusätzlich die
|
||||
Fehlbestand-ID zurück (falls einer aktiv ist), damit die UI direkt eine
|
||||
Sofort-Nachfüllung (Karte 07) anbieten kann, ohne separat nachzufragen.
|
||||
"""Prompt 02.3/09: Kontrolle bucht die gezählte Menge als neuen Ist-Bestand
|
||||
der Objektposition - vorher blieb dieser bei Ist=Soll unverändert (nur
|
||||
Nachfüllung schrieb ihn), wodurch ein frisch angelegtes, aber vollständig
|
||||
bestücktes Objekt dauerhaft auf 0 stehen blieb. Bei Ist < Soll entsteht
|
||||
automatisch ein Fehlbestand (nie bei Überbestand, Prompt 02.4). Gibt
|
||||
zusätzlich die Fehlbestand-ID zurück (falls einer aktiv ist), damit die UI
|
||||
direkt eine Sofort-Nachfüllung (Karte 07) anbieten kann, ohne separat
|
||||
nachzufragen.
|
||||
|
||||
Ablaufdatum/Chargennummer/Seriennummer sind KEINE Kernbegriffe-Verletzung:
|
||||
sie beschreiben das physische Exemplar, nicht die Ist-Menge, und werden
|
||||
@@ -46,6 +49,7 @@ async def erfasse_position(
|
||||
sollmenge = sollmenge_effektiv(objektposition) if objektposition else Decimal(0)
|
||||
|
||||
if objektposition is not None:
|
||||
objektposition.istmenge = istmenge
|
||||
if ablaufdatum is not None:
|
||||
objektposition.ablaufdatum = ablaufdatum
|
||||
if chargennummer is not None:
|
||||
|
||||
Reference in New Issue
Block a user