Summenfelder berechnen: Anwesenheitstage, Pauschale 8,60-Summe, Gesamtpauschale

This commit is contained in:
Rob committed 2026-03-27 15:09:36 +01:00
1 parent ebd67c7be1
commit 4001bb78f5
2 files changed
+47

No files matched your search

+37
View File
@@ -165,6 +165,43 @@ class TestMultiRow:
assert "datum.23" not in fields
# ---------------------------------------------------------------------------
# Summary fields
# ---------------------------------------------------------------------------
class TestSummaryFields:
def test_anwesend_sum_counts_qualifying_days(self, cfg):
"""anwesend_sum = number of days where hours >= plan threshold."""
entries = [_present(1, 6.0), _present(2, 7.0), _present(3, 5.0)]
fields = build_field_dict(_make_attendance(*entries), cfg, date(2026, 2, 1))
# Day 1 (6h) and day 2 (7h) qualify, day 3 (5h) does not
assert fields["anwesend_sum"] == "2"
def test_pauschale_5_sum_euro(self, cfg):
"""pauschale_5_sum = qualifying days * 8,60."""
entries = [_present(1, 6.0), _present(2, 7.0), _present(3, 5.0)]
fields = build_field_dict(_make_attendance(*entries), cfg, date(2026, 2, 1))
assert fields["pauschale_5_sum"] == "17,20" # 2 * 8.60
def test_pauschale_sum_equals_5_sum(self, cfg):
entries = [_present(1, 6.0)]
fields = build_field_dict(_make_attendance(*entries), cfg, date(2026, 2, 1))
assert fields["pauschale_sum"] == "8,60"
assert fields["pauschale_25_sum"] == "0,00"
def test_no_qualifying_days(self, cfg):
entries = [_absent(1, "K"), _present(2, 4.0)]
fields = build_field_dict(_make_attendance(*entries), cfg, date(2026, 2, 1))
assert fields["anwesend_sum"] == "0"
assert fields["pauschale_5_sum"] == "0,00"
assert fields["pauschale_sum"] == "0,00"
def test_empty_attendance(self, cfg):
fields = build_field_dict(_make_attendance(), cfg, date(2026, 2, 1))
assert fields["anwesend_sum"] == "0"
assert fields["pauschale_5_sum"] == "0,00"
# ---------------------------------------------------------------------------
# Hours formatting
# ---------------------------------------------------------------------------