Договоры
Договор — соглашение между заказчиком и подрядчиком на выполнение работ. Объекты, по которым ведутся работы, привязываются к договору.
Что хранится
- Номер договора, дата заключения и срок (дата завершения).
- Сумма и предмет (полный + короткий — для отображения в таблицах).
- Тип контракта — из каталога
spec_contracts(«Договор», «Государственный контракт» и т.п.). На него ссылается полеspec_contract_id. - Тип — отдельное легаси-текстовое поле (
type_contract) для способа оплаты или другой произвольной характеристики («по единице», «Равными частями» и т.п.). Это не то же, что «Тип контракта». - Заказчик и подрядчик — ссылки на «Организации» (один и тот же может быть и тем, и другим).
- Список объектов.
- Список доп. соглашений (
sub_contract) — если договор изменялся.
Создание
Раздел «Договоры» → «+ Создать договор»:
- Номер и даты — обязательно.
- Тип контракта — выбрать из каталога; если нужного нет, рядом с селектом есть «+».
- Заказчик — организация с флагом
customer = true. Если её ещё нет — можно создать прямо из формы через «+». - Подрядчик — организация с флагом
executor = true. Аналогично создаётся «на лету». - Тип, предмет, сумма.
Модалка организации (создание из формы контракта) и страница каталога «Организации» используют один и тот же компонент. Поведение одинаковое; на странице каталога есть режим редактирования существующей организации.
Дополнительные соглашения
К договору можно добавлять дополнения (sub_contracts): они меняют предмет/сумму/срок, но не создают новый договор. На странице договора — вкладка «Доп. соглашения».
Таблица списка договоров
Список договоров
Колонки в актуальном порядке:
| Колонка | Источник |
|---|---|
| Статус | вычисляется по датам (активен / истёк / расторгнут) |
| Тип контракта | spec_contract.name |
| Номер договора | number |
| Предмет | short_subject (короткий вариант). Полный subject доступен через всплывающую подсказку |
| Заказчик | customer.short_name |
| Подрядчик | executor.short_name |
| Дата заключения | date_of_consclusion |
| Срок | date_of_completion |
| Тип | type_contract (легаси-текст: «по единице», «Равными частями» и т.п.) |
| Сумма | summ |
| Объекты | количество — ссылка на отфильтрованный список объектов |
| Действия | ✏️ редактировать · 👁 открыть · 🗑 удалить |
Таблица в компактном режиме: длинные значения обрезаются «…», полный текст — в title. Ширину любого столбца можно тянуть мышью за правый край шапки; настройка сохраняется в localStorage (отдельно для каждой страницы). Над таблицей — кнопка «↔ Сбросить ширины».
Связь с другими сущностями
- Объекты ссылаются на договор: один объект = один договор.
- Заявки / Отчёты наследуют связь с договором через объект.
- В сводке на странице объекта строка договора целиком кликабельна — ведёт сюда.
Поиск и фильтры
В списке договоров:
- Фильтр по заказчику.
- Фильтр по подрядчику.
- Фильтр по типу контракта.
- Поиск по номеру и предмету.