Проект: econom-calculator Стек: Laravel 13, PHP 8.3, Inertia.js v3, Vue 3, Wayfinder, Pest, Tailwind v4. Цель проекта: Перенести Excel-логику в веб-приложение. Конечный целевой отчет — лист `АНАЛИЗ`. Что выяснили по Excel: - Итог книги — лист `АНАЛИЗ`. - `Расход-2026` — отдельный ручной ввод расхода медикаментов. - `2026` не является прямым автогенератором `Расход-2026`. - Более вероятная логика листа `2026`: - службы/отделения вводят, сколько услуг они оказали другим отделениям, - у услуги есть стоимость, - затем по получателям считаются затраты, - эти затраты попадают в `АНАЛИЗ`. - То есть правильная модель для аналога `2026`: - отделение-исполнитель - отделение-получатель - услуга - количество - цена - сумма Что уже реализовано: - Раздел `Справочники -> Отделения` - Раздел `Отчеты -> Периоды` - Раздел `Отчеты -> Объемные показатели` - Раздел `Отчеты -> Расход медикаментов` - Раздел `Отчеты -> Анализ` Как сейчас устроена бизнес-модель: 1. `report_periods` - период по команде (`team_id`, `year`, `month`, `status`) - статус: `draft` / `approved` 2. `service_catalogs` - каталог услуг - поля: - `code` - `name` - `unit` - `default_price` - `sort_order` - `is_active` 3. `service_entries` - журнал оказанных услуг - поля: - `report_period_id` - `service_catalog_id` - `provider_department_id` - `recipient_department_id` - `quantity` - `unit_price` 4. `medication_expense_rows` - строка расхода медикаментов на `период + отделение` 5. `medication_expense_values` - детализация расхода по: - источнику финансирования - категории расхода Справочники расхода медикаментов: - funding_source: - `oms` - `budget` - `paid` - `vmp_oms` - `vmp_budget` - expense_category: - `alcohol` - `narcotic` - `solutions` - `medicines` - `dressing` Как сейчас должен работать пользовательский поток: 1. Создать отделения и профили отделений. 2. Создать период, например `Февраль 2026`. 3. В `Объемные показатели`: - выбрать период - выбрать отделение-исполнитель - выбрать услугу - ввести по каждому отделению-получателю: - количество - цену - система считает сумму как `количество × цена` 4. В `Расход медикаментов`: - выбрать период - выбрать отделение - ввести первичные суммы по сетке: - источник финансирования - категория расхода 5. В `Анализ`: - выбрать период - получить по каждому отделению: - услуги и затраты по ним - общий итог по услугам - расход медикаментов - итоговые расчетные поля Что сейчас считает `Анализ`: - входящие услуги по отделению-получателю - затраты по каждой услуге - общий итог по услугам - расход без перевязки - перевязка / ИМН - общий расход медикаментов - расход медикаментов без бюджета Что НЕ сделано: - `Приемник` не подключен - `зарплата` не подключена - нет полной копии всех строк и служебных блоков Excel - нет полной сверки с реальным месяцем Excel - нет импорта из Excel - нет итоговых служебных групп, как в Excel Что важно технически: - Новая схема уже переосмыслена под `service_catalogs + service_entries` - Старую упрощенную схему `operational_metric_catalogs + operational_values` лучше не возвращать - `Анализ` должен дальше развиваться именно от модели услуг, а не от абстрактных показателей Проблемы/ограничения окружения: - Feature-тесты не запускаются, потому что в окружении нет `pdo_sqlite` - Unit-тесты проходили - Если миграции уже применялись на старой версии схемы, может потребоваться `php artisan migrate:fresh` Что стоит проверить первым делом в новом чате: 1. Текущее состояние миграций и моделей реально соответствует `service_catalogs/service_entries` 2. Маршруты и Inertia-страницы не остались на старых `operational_*` сущностях 3. `Анализ` действительно читает услуги как затраты по получателям 4. Нужно ли сразу добавлять сверку с конкретным кейсом: - КДЛ - Гематологическое - февраль - 2471 услуг Следующий логичный шаг: - пройти по текущему коду и проверить, что весь проект консистентно переведен на модель услуг, - потом взять 1 реальный кейс из Excel и вручную сверить расчет в UI и в `Анализе`.