Backend: Chargenliste - Art (food/object) + nur Charge-Artikel

/lots/rows liefert jetzt die Art (Lebensmittel/Gegenstand) mit und listet nur
Charge-Artikel (Lebensmittel + Verbrauchsgegenstand). Lots von "Menge je
Lagerort" (und etwaige Einzelstueck-Altlasten) fallen raus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-29 14:12:35 +02:00
parent 5550897319
commit 012e3461ae
3 changed files with 34 additions and 4 deletions

View File

@@ -114,6 +114,27 @@ def test_bulk_liste_zaehlt_bestand_wie_einzeln(db):
assert gebuendelt[powerbank.id] == 2
def test_chargenliste_nur_charge_artikel(db):
# Die Chargenliste zeigt nur Lebensmittel + Verbrauchsgegenstände nicht die
# Lots von „Menge je Lagerort".
from app.routers.stock import list_all_lots
a = _loc(db, "Regal")
food = Product(name="Reis", base_unit=BaseUnit.gram)
db.add(food)
db.flush()
object_add(db, food, 500, a.id, None)
unterhose, _ = _object_product(db, name="Unterhose") # Menge je Lagerort
object_add(db, unterhose, 5, a.id, None)
creme = _bulk_product(db, name="Sonnencreme") # Verbrauchsgegenstand
object_add(db, creme, 200, a.id, None)
db.commit()
namen = {r.product_name for r in list_all_lots(db=db, _=None)}
assert "Reis" in namen
assert "Sonnencreme" in namen
assert "Unterhose" not in namen
def test_neue_oberkategorie_ist_gegenstand(db):
out = create_category(CategoryCreate(name="Werkzeug"), db, None)
assert out.tracking == CategoryTracking.object