Траты и работы
В разделе Траты и работы ведётся журнал покупок и услуг: сумма, дата, категории, комната, магазин (или исполнитель), способ оплаты и вложения. В журнале хозяина и полного доступа — только оплаченные записи. Заявки строителей до оплаты живут в реестре согласования.

Список и фильтры
Над таблицей — карточки сводки: итого, число записей, сумма покупок и сумма работ. Они считаются по текущим фильтрам (поиск, тип, категория, комната, магазин, оплата, период). Без фильтров — по всему проекту.
Список подгружается при прокрутке, без переключения страниц. Внизу видно, сколько записей уже показано из найденных.
На телефоне фильтры свёрнуты. Их открывает строка «Фильтры». Если журнал открыли из графика аналитики или обзора уже с фильтром, блок фильтров сразу развёрнут. Сверху — две крупные кнопки: Покупка (плюс) и Чек (QR). Работа и Excel остаются иконками рядом с фильтрами.
Сортировка идёт на сервере по всему списку (не только по уже подгруженным строкам). На компьютере — клик по заголовку колонки: дата, тип, название, категории, комната, где/кто, чек, сумма. Повторный клик меняет направление, третий возвращает сортировку по дате (сначала новые). На телефоне заголовков нет — в фильтрах список «Дата — сначала новые», «Сумма — по убыванию» и так далее.
Фильтры (без обязательной валидации):
| Фильтр | Назначение |
|---|---|
| Поиск по названию | Подстрока в названии траты |
| Тип | Покупка / работа |
| Категория, комната, магазин | Справочники текущего проекта. «Без категории» — траты без категорий |
| Оплата | Карта, наличные, перевод, другое |
| Период | Начальная и конечная дата |
Фильтры пишутся в адрес страницы. С обзора и аналитики можно перейти сюда кликом по графику, легенде или строке сводки — журнал откроется уже с нужным фильтром.
Доступны выгрузка в Excel и действия «Добавить покупку», «Добавить работу», «Сканировать чек». Заявки от имени строителя хозяин заводит в Заявках строителей, а не в этом журнале.
В таблице у строки только Удалить. Кнопок «Просмотр» и «Изменить» нет.
Карточка просмотра
Открывается кликом по названию или двойным кликом по строке. В шапке справа сверху — Редактировать и иконки загрузки чека/фото и удаления; название записи в заголовке не дублируется. После сохранения карточка открывается снова с обновлёнными данными.
В карточке те же поля, что и в форме. Если значение не задано, показывается «—».
| Поле | Покупка | Работа / услуга |
|---|---|---|
| Тип | Покупка | Работа / услуга |
| Название | Название | Что сделали |
| Исполнитель | — | да |
| Сумма, ₽ | да | да |
| Дата | Дата | Дата выполнения |
| Категории | несколько | несколько |
| Комната | да | да |
| Магазин / из списка | Магазин | Из списка |
| Количество / объём | Количество | Объём |
| Ед. изм. | да | да |
| Оплата | да | да |
| Заметки | да | да |
| Позиция сметы | если привязана | если привязана |
| Электронный чек | ссылка, если есть | ссылка, если есть |
| Вложения | чеки и фото | акты, фото, PDF |
Форма покупки или работы
Открывается кнопками Добавить покупку, Добавить работу или Редактировать в карточке просмотра. Та же форма доступна с Обзора.

Поля
| Поле | Обязательно | Тип | Правила |
|---|---|---|---|
| Тип | да | Покупка / Работа · услуга | Определяет подписи полей и значения по умолчанию |
| Название / Что сделали | да | Текст, до 250 символов | Сообщение: «Укажите название» |
| Исполнитель | да только для работы | Текст, до 200 символов | «Укажите мастера или бригаду» |
| Сумма, ₽ | да | Число | Больше 0 (в интерфейсе минимум 0,01). Копейки можно вводить через запятую или точку: 1,15 и 1.15 |
| Дата / Дата выполнения | да | Дата | Обязательна |
| Категории | нет | Несколько из справочника | Только категории текущего проекта. Можно выбрать несколько. Новую категорию можно создать прямо в поле: ввести название и нажать «Создать категорию» (достаточно названия) |
| Комната | нет | Выбор из справочника | Только комнаты проекта |
| Магазин / Из списка | нет | Выбор из справочника | Только магазины проекта. Новый магазин — так же, только название |
| Количество / Объём | нет | Число ≥ 0 | По умолчанию 1 |
| Ед. изм. | нет | Текст или список | Для работ: услуга, м², м.п., час, день, шт |
| Оплата | нет | Список | Карта, Наличные, Перевод, Другое. По умолчанию: карта (покупка), перевод (работа) |
| Заметки | нет | Многострочный текст | — |
| Прикрепить чеки и фото | нет | Файлы | JPG, PNG, WEBP, PDF до 15 МБ каждый |
Поведение при смене типа
При переключении на Работа / услуга:
- оплата → «Перевод»;
- единица → «услуга»;
- категория → первая, в названии которой есть «работ» или «услуг» (если такая есть и список категорий пуст);
- для исполнителя можно подставить название выбранного магазина, если поле пустое.
Связи со справочниками
Проект
├── Категории ←── Трата (несколько category_id через expense_categories)
├── Комнаты ←── Трата.room_id
├── Магазины ←── Трата.store_id
└── Сметы / позиции ←── Трата.estimate_item_id (через сверку или импорт чека)
- Списки категории / комнаты / магазина загружаются только для выбранного проекта в шапке.
- В форме траты категорию и магазин можно создать на месте по названию — они сразу появляются в справочнике проекта. У роли Строитель создание недоступно: только выбор из существующих.
- У одной траты может быть несколько категорий. Сумма учитывается в каждой выбранной категории (фильтры и аналитика по категориям). Общая сумма проекта при этом не дублируется.
- Удаление категории, комнаты или магазина не удаляет траты: связь с этой категорией снимается, остальные категории остаются.
- Удаление траты удаляет её вложения с диска.
- После сохранения пересчитываются суммы проекта и агрегаты по справочникам.
Привязка к смете
В этой форме нет прямого поля «Позиция сметы». Привязку делают:
- в разделе Сметы (сверка / автопривязка);
- при импорте чека с автосвязью позиций.
Быстрый ввод по чеку
Кнопка Сканировать чек открывает сценарий QR — подробности в Сканирование чеков. Категории можно задать на весь чек и затем поправить у отдельных позиций.
Если вы строитель
Раздел называется Мои заявки. Видны только свои записи и их статусы. Править и удалять можно, пока заявка На согласовании. После отказа — поправить и Отправить снова. Способ оплаты появится, когда хозяин оплатит заявку.
Хозяин может завести строителя без аккаунта и сам создать заявку от его имени. Когда появится email — привязать его в доступе к проекту. Подробнее: Заявки строителей.
