Перейти к содержанию

Модуль «Продажи» (7 экранов)


/p/:pid/orders — Orders List

Назначение: Табличный вид продаж. Фильтрация по типу, статусу, DLQ. Доступ: Member+.

Компоновка:
  ├── Header + Sidebar
  └── Main:
      ├── Заголовок: «Продажи» | Toggle: [Список●] [Канбан] | Кнопка: [создание из карточки сделки]
      ├── Панель фильтров:
      │   ├── 🔍 Поиск по номеру, названию
      │   ├── Тип продажи (multi-select)
      │   ├── Этап (multi-select)
      │   ├── Ответственный (multi-select)
      │   ├── DLQ-ошибка (checkbox)
      │   ├── Дата создания (date range)
      │   └── Сделка (поиск)
      │
      └── Таблица:
          | ☐ | Номер ▼   | Тип          | Сделка        | Этап       | Ответст. | Создан   | Статус    |
          | ☐ | ORD-0042  | ЗП проект    | Альфа — ЗП    | Проверка   | Петрова  | 20.01.26 | ✅        |
          | ☐ | ORD-0043  | РКО          | Альфа — компл.| Заполнение | Козлов   | 21.01.26 | ⚠ DLQ    |

          Статус DLQ: красная метка «⚠ Ошибка отправки» — кликабельная.

Empty state: «Продажи создаются из карточки сделки.» [Открыть сделки]

/p/:pid/orders/kanban — Orders Kanban

Назначение: Канбан продаж по этапам. Включается в настройках модуля. Доступ: Member+.

Компоновка: аналогично Deals Kanban, но колонки = этапы продажи.
  Колонки: Заполнение | Проверка | Подписание | Отправка | Завершён

  Карточка продажи:
  ├── Номер + тип продажи
  ├── Сделка (ссылка)
  ├── Ответственный
  ├── Метка «⚠ DLQ» (если ошибка отправки)
  └── Метка «⚠ Drift» (если реквизиты изменились)

  Drag & drop между этапами.
  Фильтр по типу продажи (dropdown сверху).

/p/:pid/orders/:id — Order Details

Назначение: Карточка продажи — динамическая форма из Order Type. Доступ: Member+ (по политике).

Компоновка:
  ├── Header + Sidebar
  └── Main:
      ├── Шапка:
      │   ├── «Продажа #ORD-0042 — Зарплатный проект»
      │   ├── Прогресс этапов: ●Заполнение → ●Проверка → ○Подписание → ○Отправка
      │   ├── Сделка: «Альфа — ЗП» (ссылка) | Продукт: ЗП Премиум
      │   ├── Владелец: Петрова | Создан: 20.01.2026
      │   └── Действия: [Редактировать] [Перевести на этап ▼] [Удалить]
      │
      ├── Баннер DLQ (если статус «Ошибка отправки»):
      │   ⚠ «Ошибка отправки. Попытка 3/3 (таймаут). Последняя: 15:30»
      │   [Повторить отправку] [Подробности ▼]
      │   Подробности: код ответа, тело ошибки, лог попыток.
      │
      ├── Баннер Drift (если реквизиты изменились):
      │   ⚠ «Реквизиты компании изменены после создания продажи.»
      │   Телефон: +7920... → +7916... (Козлов, 20 янв)
      │   [Принять изменения] [Открыть компанию]
      │
      ├── Sidebar карточки:
      │   ├── Контакт: Иванов И.И. (ссылка)
      │   ├── Компания: ООО Альфа (ссылка)
      │   └── Сделка: Альфа — ЗП (ссылка)
      │
      ├── Динамическая форма (поля из Order Type):
      │   ├── Кол-во карт: 500 (число)
      │   ├── Тариф: Премиум (выбор)
      │   ├── Дата начала: 01.03.2026 (дата)
      │   ├── Реквизиты подтверждены: ☑ (чекбокс)
      │   └── Скан доверенности: файл.pdf (файл)
      │
      ├── Tabs:
      │   ├── Документы: сгенерированные и загруженные [+ Сгенерировать] [+ Загрузить]
      │   ├── Активности: связанные задачи [+ Активность]
      │   └── История: аудит-лог
      │
      └── Кнопка: [Перевести на следующий этап →]

/p/:pid/orders/:id/edit — Edit Order

Назначение: Редактирование полей продажи. Доступ: Member+ (по политике). Доступно даже в статусе DLQ-ошибки.

Компоновка: динамическая форма из Order Type с предзаполненными значениями.
Все поля доступны для редактирования (кроме номера и типа продажи).
Кнопки: [Отмена] [Сохранить]

/p/:pid/orders/types — Order Types

Назначение: Список типов продаж проекта. Доступ: Manager+.

Компоновка:
  ├── Header + Sidebar
  └── Main:
      ├── Заголовок: «Типы продаж» | Кнопка: [+ Тип продажи]
      └── Список карточек:
          ┌──────────────────────────────────────────────────────┐
          │ Зарплатный проект                     v3 (schema)   │
          │ Поля: 5 | Этапы: 4 | Документы: 2 | Webhook: ✅     │
          │ Активных продаж: 12                                 │
          │ [Редактировать]                                      │
          └──────────────────────────────────────────────────────┘

/p/:pid/orders/types/new — Create Order Type

Назначение: Конструктор типа продажи — поля, этапы, документы, действия. Доступ: Manager+.

Компоновка (форма-конструктор):
  ├── Заголовок: «Новый тип продажи»
  ├── Название (input)
  │
  ├── Секция «Поля» (конструктор форм):
  │   ├── Строка: [Название поля] [Тип ▼: текст/число/дата/выбор/файл/чекбокс] [Обязат. ☐] [×]
  │   ├── Строка: ...
  │   └── [+ Добавить поле]
  │   Drag & drop для сортировки полей.
  │
  ├── Секция «Этапы» (drag & drop):
  │   ├── Строка: [Название этапа] [Условие перехода ▼] [Действие при переходе ▼] [×]
  │   └── [+ Добавить этап]
  │   Финальный этап: Завершён (фиксированный).
  │
  ├── Секция «Шаблоны документов»:
  │   ├── Привязка существующих шаблонов (multi-select)
  │   └── [+ Создать шаблон] → /p/:pid/documents/templates/new
  │
  ├── Секция «Финальное действие»:
  │   ├── Тип: ○ Нет ○ Webhook ○ Email ○ Задача
  │   ├── Если Webhook: URL, метод, headers, body (JSON editor)
  │   └── Retry policy: кол-во повторов (input), интервал (dropdown), макс. ожидание (input)
  │
  └── Кнопки: [Отмена] [Создать]

/p/:pid/orders/types/:id/edit — Edit Order Type

Назначение: Редактирование типа продажи. Доступ: Manager+.

Компоновка: аналогично Create, поля предзаполнены.
Дополнительно:
  ├── Версия схемы: v3 (информационно)
  ├── Предупреждение при добавлении обязательного поля:
  │   «Поле будет обязательным только для новых продаж.
  │    Существующие продажи (12 шт.) не затрагиваются.»
  └── Кнопка: [Удалить тип] (если нет активных продаж)