fix(generator): исправлен расчёт скидки после складской дельты

- Зачем:
  - слепок D7 содержал отрицательный итог заказа и попадал в брак ODS.
- Что:
  - скидка пересчитана от корзины после удаления отсутствующей позиции.
  - сериализатор отклоняет отрицательные деньги через ValueError.
  - добавлены проверки восьми стартовых дней и обновлена опись мира.
- Проверка:
  - make lint, make typecheck и make test в generator/.
  - живой world_next_day: 1694 строки приняты, таблица ошибок пуста.
This commit is contained in:
ddadmin committed 2026-08-20 13:13:14 +03:00
1 parent 7b89ccb529
commit 64bcd3d596
8 files changed
+123 -72

No files matched your search

@@ -126,7 +126,9 @@ def orders(window: Sequence[Orders], day: int) -> list[bytes]:
def _money(kopecks: int) -> str:
"""Копейки — строкой с ровно двумя знаками: `129990` → `1299.90`."""
"""Неотрицательные копейки — строкой с двумя знаками: `129990` → `1299.90`."""
if kopecks < 0:
raise ValueError(f"деньги не могут быть отрицательными: {kopecks}")
return f"{kopecks // 100}.{kopecks % 100:02d}"