Migrationen 003–009, Kundaufträge mit Lieferschein, Abräumen mit Urteil, ntfy/Backup/Zeitfenster, Live-Stream und Mobile-Mehr-Menü.
34 lines
1003 B
Python
34 lines
1003 B
Python
"""Urteil und Ausschuss-Gründe beim Abräumen."""
|
|
|
|
VERDICT_REASONS = frozenset({
|
|
"haftung",
|
|
"warping",
|
|
"spaghetti",
|
|
"layer_shift",
|
|
"verstopfung",
|
|
"farbe",
|
|
"sonstiges",
|
|
})
|
|
|
|
|
|
def normalize_abraeumen_verdict(verdict, verdict_reason, pieces_ok, pieces_bad):
|
|
v = (verdict or "").strip().lower()
|
|
if not v:
|
|
v = "gut"
|
|
if v not in ("gut", "ausschuss"):
|
|
raise ValueError("Urteil muss gut oder ausschuss sein.")
|
|
reason = (verdict_reason or "").strip().lower()
|
|
if v == "gut":
|
|
reason = ""
|
|
pieces_bad = 0
|
|
elif reason and reason not in VERDICT_REASONS:
|
|
raise ValueError("Unbekannter Ausschuss-Grund.")
|
|
try:
|
|
ok_n = max(0, int(pieces_ok or 0))
|
|
bad_n = max(0, int(pieces_bad or 0))
|
|
except (TypeError, ValueError) as exc:
|
|
raise ValueError("Stückzahlen müssen ganze Zahlen sein.") from exc
|
|
if v == "ausschuss" and bad_n <= 0 and ok_n <= 0:
|
|
bad_n = 1
|
|
return v, reason, ok_n, bad_n
|