Клиент — сеть из 8 розничных точек. Ежедневно менеджеры присылают CSV выручки и остатков из разных учётных систем — форматы и названия колонок различаются. Бухгалтер вручную сводил в Excel 1–2 часа каждое утро.
Задача: Python-скрипт — папка с CSV/XLSX → mapping колонок из config → агрегация по точкам и датам → итоговый Excel + PDF по шаблону. Запуск по cron или вручную из консоли.
Реализация:
• config.yaml: пути, mapping полей (date, store_id, revenue, qty), фильтры;
• pandas: чтение csv/xlsx, приведение типов, валидация обязательных колонок;
• агрегация: сумма по точке/дню, pivot «точка × дата», топ-10 SKU;
• export: Excel с листами Summary / Detail / Errors; PDF через reportlab или xlsx→pdf;
• отчёт об ошибках: файл с неверной кодировкой или пропущенными полями;
• лог в файл + exit code для cron.
Стек: Python 3.11, pandas, openpyxl, PyYAML, reportlab. Приёмка: 30 дней исторических файлов — сверка с ручным отчётом бухгалтера.
Итог: утренний отчёт за 2–3 минуты вместо 1–2 часов. NDA: сеть не публикуется.