Схемы Что нового

Выезды, наряды и договор

Всё, что происходит после продажи: наряды монтажника, данные для договора и подпись на телефоне, календарь, обзвон, план выездов по монтажникам и бригадам, отчёты по выездам.

Содержание раздела

Наряды монтажника

Наряды: срезы Сегодня, Завтра, Неделя, Все и выбор монтажника
Наряды: переключатель «Календарь | Наряды», срезы периода с числами и выбор монтажника

Срезы «Сегодня / Завтра / Неделя / Все» показывают число нарядов, в шапке — сколько нарядов в выбранном срезе; если список длинный, видно «показано 200 из N».

URL: /admin/crm/montazh/ — вид «Наряды» календаря (переключатель «Календарь | Наряды» на обеих страницах). Мобильный сценарий «мой наряд на день»: назначенные монтажи карточками — дата и окно времени, клиент, телефон одним касанием, адрес со ссылкой «маршрут», тариф и комментарий. Просроченный наряд помечается красным. Кнопка «Выполнено» переводит сделку в стадию «Подключено» её воронки прямо с телефона и оставляет системную заметку; «Перенести» сдвигает дату с причиной. Монтажник (группа installer) видит только свои наряды и не может закрыть чужой; менеджеру доступны все наряды и фильтр по монтажнику.

Выезды на день раскладывает «План выездов»; напарник бригады, которого нет в нарядах, получает свой день сообщением при рассылке плана.

Данные для договора: вносит монтажник у клиента

Окно «Данные для договора» на телефоне монтажника
Окно «Данные для договора»: ввод с документа или съёмка разворота

Паспортные данные нельзя спрашивать по телефону: личность абонента устанавливают при предъявлении документа. Поэтому вносит их тот, кто приехал к клиенту, — прямо из своего наряда. До выезда этих данных в системе нет, и договор без них не подписывается: экран подписания сообщает «Не внесены паспортные данные клиента».

В карточке наряда появляется строка «Данные для договора» — пока наряд не закрыт. Рядом со строкой видно, заполнены ли данные: если да, показываются последние цифры номера, а не сам паспорт.

flowchart LR
    A["Монтажник
приехал к клиенту"] --> B["Открывает наряд
«Данные для договора»"] B --> C{"Как вносить?"} C -->|"с документа"| D["Заполняет поля
вручную"] C -->|"съёмка"| E["Фотографирует
разворот"] E --> F["Распознавание"] F --> G["Поля заполнены
— сверить с паспортом"] D --> H["Сохранить"] G --> H H --> I["Данные в карточке клиента"] I --> J["Договор подписывается
росчерком и кодом из СМС"] E -. "снимок не сохраняется" .-> X["удалён после
распознавания"]

Съёмка паспорта

Кнопка «Сфотографировать паспорт» в окне данных для договора
Кнопка открывает камеру телефона; распознанные поля нужно сверить с документом

Кнопка «Сфотографировать паспорт» открывает заднюю камеру телефона. Со снимка читаются серия и номер, кем и когда выдан, дата рождения и адрес регистрации; даты приводятся к нужному виду сами.

Снимок нигде не сохраняется. Он живёт внутри одного запроса: уходит на распознавание и удаляется. Ни в хранилище, ни в базе, ни в журнале его нет — фотография паспорта самый чувствительный вид персональных данных, и держать её нам незачем.

Распознавание экономит набор, но не отменяет проверку: поля нужно сверить с документом до сохранения. Отвечает за верность данных тот, кто держит паспорт в руках.

Кто что видит

Карточка наряда со строкой «Данные для договора»
Карточка наряда: строка «Данные для договора» доступна, пока наряд не закрыт

Доступ к персональным данным даётся под задачу, а не «на всякий случай».

ЧтоКак устроено
Чей нарядТолько свой: чужой наряд монтажнику не открывается
Когда можно вноситьПока наряд не закрыт; после закрытия данные уже в договоре
Что видно после сохранения«Заполнено» и последние цифры номера, а не сами данные
Раздел «Клиенты»Монтажнику закрыт: в карточках клиентов лежат паспорта, а для работы хватает наряда
ЖурналПишется, кто открыл данные, кто их изменил и какие именно поля

Требование 152-ФЗ вести учёт доступа к персональным данным закрывается журналом: фиксируются и правки, и просмотры. Просмотр одного клиента одним сотрудником записывается не чаще раза в полчаса — иначе журнал состоял бы из одних открытий карточки.

flowchart TB
    subgraph M["Монтажник в поле"]
        N["Свои наряды"]
        F["Данные для договора
своего наряда"] end subgraph Z["Закрыто монтажнику"] K["Раздел «Клиенты»"] P["Паспорта других абонентов"] D["Чужие наряды"] end N --> F F --> L["Журнал:
кто открыл и что изменил"] M -.->|"нет доступа"| Z

Состав данных совпадает с полями группы «Договор — физ. лицо» в карточке сделки: серия и номер, кем выдан, дата выдачи, дата рождения, адрес регистрации. После сохранения они переносятся в карточку клиента — оттуда их берут и договор, и выгрузка СОРМ.

Главная монтажника

Главная страница монтажника: монтажи на сегодня и подотчёт
После входа монтажник видит свои монтажи и что у него в подотчёте

Общая главная с выручкой и графиками монтажнику не нужна и по правам закрыта. Вместо неё он видит два блока: «Мои монтажи» — на сегодня с адресом, окном времени и телефоном, ниже ближайшая неделя; и «У меня в подотчёте» — что числится за ним на складе.

Если есть наряды прошедшей даты, которые он не закрыл, в заголовке появляется метка «просрочено: N». Позиции с серийными номерами помечаются отдельно — их нужно вернуть или списать на клиента.

Блок видят только те, кто состоит в монтажной группе (по умолчанию installer, набор групп задаётся в настройках CRM). Остальным сотрудникам главная не меняется.

Подписание договора на телефоне

Клиент подписывает договор прямо при подключении — на телефоне монтажника, пальцем на экране, с подтверждением одноразовым кодом из СМС. Это простая электронная подпись по 63-ФЗ: ключ — код, подписант определяется по номеру телефона, на который код пришёл. Соглашение об использовании подписи входит в сам договор отдельным разделом.

sequenceDiagram
    participant M as Монтажник
    participant S as Система
    participant C as Клиент
    M->>S: Открывает договор из наряда
    S-->>M: Текст договора с данными клиента, тарифом и адресом
    C->>M: Читает и расписывается пальцем на экране
    M->>S: Запрос кода
    S-->>C: СМС с одноразовым кодом
    C->>M: Называет или вводит код
    M->>S: Код и подпись
    S->>S: Проверка кода, PDF со штампом, запись в реестр
    S-->>C: Письмо с PDF и СМС со ссылкой на копию

Как проходит подписание

Четыре шага подписания: договор, согласия, росчерк, код из СМС
Подписание в четыре шага: показать договор, отметить согласия, расписаться пальцем, ввести код из СМС
  1. В наряде монтажник открывает договор сделки. Система заранее проверяет, всё ли готово: паспортные данные клиента, мобильный телефон в сделке, включена ли функция.
  2. Клиент читает договор и расписывается. Поле подписи разворачивается на весь экран; при повороте телефона росчерк не растягивается.
  3. Клиенту уходит СМС с кодом из 6 цифр. После ввода кода собирается PDF: на последней странице — штамп с подписью, временем и контрольной суммой текста договора.
  4. Договор попадает в реестр подписанных, копия уходит клиенту письмом с PDF (если указан e-mail) и СМС со ссылкой. Сбой доставки подписание не отменяет.

Ограничения кода

ПараметрЗначение
Длина кода6 цифр
Срок действия10 минут
Попыток ввода5
Кодов на одно подписание5
СМС на один номерне чаще 1 в минуту и 5 в час

В базе хранится не сам код, а его отпечаток. Каждый шаг пишется в журнал аудита.

Включение и границы первой версии

Тексты договоров на интернет

Договор с клиентом собирается из шаблона, который правят в Продажи → Документы: «Договор (физлицо)» и «Договор (юрлицо)» для сделок типа «Интернет». Эталонные тексты лежат в репозитории (billing/templates/video/docs/seed/) и ставятся командой manage.py install_contract_fiz [--doc contract_ur] --apply; прежний текст она сохраняет в каталог резервных копий (папка doc_templates).

Договор с физическим лицом

Десять разделов: предмет и адрес подключения, подключение и оборудование, расчёты, права и обязанности сторон, ответственность и претензии, персональные данные, срок и расторжение, подписание, реквизиты и подписи.

Договор на экране телефона монтажника: реквизиты оператора и начало текста
Клиент читает договор на телефоне монтажника: шапка с реквизитами оператора, предмет и адрес подключения

Договор с юридическим лицом и ИП

Тринадцать разделов. Отличия от договора с физлицом:

Подпись на телефоне для юрлиц выключена: организация подписывает на бумаге с печатью или через ЭДО.

Чего нет в карточке — берётся из ФНС

Если в карточке клиента не хватает реквизитов, договор дополняет их открытыми данными ФНС по ИНН (тот же источник, что у разбора платежей): официальное название организации, руководитель (в строке «в лице» и под подписью), КПП, ОГРН и адрес, а для ИП — ФИО предпринимателя вместо торгового названия. Ответ кешируется на сутки. Карточка клиента при этом не меняется: её реквизиты уходят в СОРМ, и правит их сотрудник. Адрес подключения: если у сделки адрес не указан, берётся адрес дома клиента.

Лицензия оператора в договоре

Карточка организации, вкладка «Реквизиты»: поле «Лицензия на услуги связи»
Реквизиты организации: номер, дата и вид услуг лицензии попадают в договор

Номер лицензии на услуги связи — обязательное сведение договора. Он хранится у каждой организации: карточка организации → вкладка «Реквизиты» → поле «Лицензия на услуги связи». Вписывать нужно так, как в реестре Роскомнадзора, вместе с видом услуг, например № Л030-00000-00/00000000 от 01.01.2020 (телематические услуги связи) — в договоре печатается «лицензией Оператора» и далее это значение целиком. Поле пустое — строка лицензии в договор не попадает.

Доступ в сеть Интернет — это телематические услуги связи, и лицензия должна быть именно на них: лицензия на предоставление каналов связи такие услуги не покрывает.

Календарь и синхронизация с телефоном

URL: /admin/crm/calendar/. Монтажи и задачи CRM на одной месячной сетке; на телефоне — списком по дням. Переключатель слоёв «Всё / Монтажи / Задачи», цвет события — по стадии сделки или срочности задачи (просрочено, сегодня, позже), легенда рядом. Монтаж или задачу можно создать прямо с календаря (нажатие на пустой день) и перенести перетаскиванием на другую дату. Переключатель «Календарь | Наряды» ведёт к нарядам.

Синхронизация по CalDAV

События сами попадают в календарь рабочей почты сотрудника на почтовом сервере системы. Этот календарь подключается на телефоне как обычный (CalDAV) — выезды и задачи видны в штатном календаре смартфона.

Обзвон

Обзвон: сводка дня, срезы и очередь звонков
Обзвон: сводка дня, срезы и очередь — что сделать, попытки, ответственный и кнопки итога звонка (демо-данные)

CRM → «Обзвон» (/admin/crm/obzvon/) — очередь звонков по заявкам, которым пора назначить или подтвердить монтаж. Своей таблицы у очереди нет: она собирается из сделок на этапах из настроек — «Тариф выбран» (FIELD_CALL_AGREE_STAGES, согласовать дату) и «Назначен монтаж» (FIELD_CALL_CONFIRM_STAGES, подтвердить выезд).

Первый звонок роботом

Подтвердить выезд может робот автообзвона: кнопка «Роботу» у заявки или «Подтвердить роботом (N)» для всей очереди. Робот называет дату и время монтажа и просит нажать 1 — «подтверждаю» или 2 — «нужен оператор».

Робот звонит настоящим клиентам, поэтому запускается только кнопкой оператора — сам по расписанию он не звонит.

План выездов

CRM → «План выездов» (/admin/crm/plan/) — кто из монтажников, куда и во сколько едет в выбранный день. Выезды — сделки с датой монтажа на этот день; план раскладывает их по монтажникам и бригадам, строит маршрут по дорогам и после утверждения пишет время и монтажника в сделки.

Обучающее видео 3:38

Девять шагов для диспетчера, оператора обзвона и главного инженера: обзвон и дата монтажа, чтение плана, ручная правка, свободные окна, утверждение, рассылка монтажникам, график и отчёты.

1920×1080 с озвучкой Скачать

При первом входе на страницу открывается знакомство с разделом: первым шагом этот ролик, дальше — короткие экраны о плане, ручной правке, свободных окнах, утверждении и графике. Открыть его снова — кнопка «Знакомство» в шапке страницы.

Снимки в этом разделе и в ролике сделаны на копии базы с выдуманными клиентами и телефонами; дома и монтажники — настоящие.

План выездов на день: карточки монтажников и бригад, карта маршрутов
План выездов на день: сводка, выбор даты, «Не вошли в план», карточки монтажников и бригад, маршруты на карте (демо-данные)
flowchart LR
    LEAD["Заявка"] --> HOME["Дом в сделке"]
    HOME --> TECH{"Техвозможность"}
    TECH -- "можно" --> CALL["Обзвон
или робот"] CALL --> DATE["Дата и окно
в сделке"] DATE --> PLAN["План выездов
маршрут по дорогам"] CREW["График
и бригады"] --> PLAN PLAN --> OK["Утвердить
монтажник · время · бригада"] REM["18:00 — план на завтра
не утверждён?"] -.-> OK OK --> SEND["Отправить монтажникам
мессенджер · Telegram"] OK --> CAL["Календарь
и наряды"] OK --> REP["Отчёты
по выездам"] style PLAN fill:#134e4a,stroke:#43b77a,color:#fff style OK fill:#43b77a,stroke:#2d9a5f,color:#fff style SEND fill:#0f766e,stroke:#43b77a,color:#fff style REM fill:#78350f,stroke:#d97706,color:#fff

Как собирается план

У каждого монтажника или бригады — время выезда, число выездов, километры, время окончания и кнопка «Маршрут» со всеми точками дня в Яндекс Картах; у выезда — вид работ, длительность и сколько добавляет дорога. Справа — маршруты на карте цветом монтажника.

Карточка бригады в плане выездов
Карточка бригады: часы, выезд, километры и окончание дня; у выезда — время, окно клиента, вид работ, путь до точки и «Кто едет» (демо-данные)
Маршруты монтажников на карте плана
Маршруты на карте — по дорогам, цветом монтажника (демо-данные)
Карточка «Не вошли в план»
«Не вошли в план» — выезд с причиной и выбором, кто поедет (демо-данные)

Ручная правка: «Кто едет» и перетаскивание

Раскладку можно поправить до утверждения — план пересчитается сразу, а в сделки правка попадёт только после «Утвердить».

Список «Кто едет» у выезда
«Кто едет»: сверху работающие в этот день, у каждого — что у него уже есть (демо-данные)

Время в пути: маршрутизатор по дорогам

Расстояние и время между точками дня план берёт у маршрутизатора OSRM, который работает на сервере биллинга с картой OpenStreetMap: одна таблица «время и расстояние» на все точки дня. Время маршрутизатора — без пробок, поэтому оно умножается на поправку из графика (по умолчанию 1,3: пробки, светофоры, парковка). На странице — «км по дорогам» и у каждого выезда «+N км, M мин в пути», на карте — линия маршрута по улицам.

Утверждение и рассылка

«Утвердить (N)» записывает в сделки время в поле «Монтаж назначен» и монтажника — тем же запросом, что карточка сделки: с проверкой права, занятости и событием в календаре монтажника. У бригады монтажником записывается водитель, а весь состав — в системное поле сделки «Бригада». Перед записью окно показывает, что изменится, после — «Отменить» возвращает прежние значения.

«Отправить монтажникам» — каждый участник бригады получает свой день: выезды по порядку с телефонами и адресами, ссылку на маршрут и на наряды — личным сообщением в мессенджере от имени отправителя и в личный Telegram, если он привязан в профиле. Кнопка активна, только когда план уже записан в сделки: черновик не уходит. После отправки видно, кому и куда дошло.

Окно «Утвердить план»
Перед записью окно перечисляет, что изменится в сделках (демо-данные)
Окно «Отправить план монтажникам»
Кому уйдёт план: каждый участник бригады получает свой день (демо-данные)

Свободные окна

Если заявка отказалась или перенеслась, у монтажника появляется «Свободно 13:05–18:00» и до трёх ближайших заявок, которые ждут дату монтажа (этап «Тариф выбран», техвозможность не «Нельзя»), с расстоянием от соседнего выезда и кнопкой звонка. «Согласовано» записывает выбранное время тем же запросом, что обзвон, переводит заявку на «Назначен монтаж», и план пересчитывается сразу. Окна показываются на сегодня (не раньше чем через час) и будущие дни.

Свободное окно и заявка рядом
Свободное окно в дне монтажника и ближайшая заявка без даты (демо-данные)
Окно «Клиент согласен»
«Согласовано»: время из свободного окна и комментарий (демо-данные)

Несколько организаций

Монтажники бывают общими у нескольких организаций. План показывает монтажников организаций сотрудника (или выбранной в навбаре) и учитывает выезды другой организации, у которых монтажник уже назначен: такой выезд занимает его время ровно в назначенный час, план его не двигает и не утверждает. Если к той организации у сотрудника нет доступа, выезд показан без клиента, адреса и точки на карте — нет его и в ссылке на маршрут, и в линии пути. У каждого выезда — бейдж организации.

График монтажников и бригады

CRM → «План выездов» → «График монтажников» (/admin/crm/plan/crew/) — кто ездит, в какие дни и часы, откуда выезжает, с кем и на какой машине. Своей таблицы нет: график — одна настройка FIELD_PLAN_CREW.

Как считать план: офис, нормы, бригада, поправка ко времени в пути, напоминание
Как считать план: офис, нормы, бригада, поправка ко времени в пути, напоминание
Строки графика монтажников
Строки графика: бригада с машиной, напарник «без машины», монтажник без водителя (в план не попадёт), отпуск датами

Бригада — напарники, которые в этот день работают. У неё один маршрут от точки водителя, общие часы и общие навыки; на месте она работает быстрее на заданный процент. Если общих часов меньше двух, напарники едут по отдельности, и план об этом пишет. Кто без машины и без водителя рядом, в план не попадает — причина видна в строке «Не поедут».

Кто утверждает и напоминание

Утверждать и рассылать план и менять график может группа из настройки FIELD_PLAN_APPROVER_GROUP (например, «Главный инженер») и администраторы; остальные смотрят план и пересчитывают его у себя. Пустая настройка — как раньше: все, кому можно назначать монтажника. Ставить монтажника в карточке отдельной сделки можно по общему праву CRM.

В заданный час (по умолчанию 18:00, поле «Напомнить, если план не утверждён») система проверяет план на завтра. Если в нём есть выезды без монтажника или без точного времени, группа получает сообщение в «Системные уведомления» мессенджера и в личный Telegram — один раз за день, со ссылкой на план. Пустое поле — напоминания нет.

Отчёты по выездам

«План выездов» → «Отчёты» (/admin/crm/plan/report/) — факт за период (по умолчанию 30 дней, период запоминается) в шести разделах, каждый выгружается в CSV:

Отчёты по выездам: период, разделы и сводка
Отчёты по выездам: период, разделы и сводка
Отказы: причины, этап, с которого уходят, и районы
Отказы: причины, этап, с которого уходят, и районы
Техвозможность по районам: сколько заявок ждёт сети
Техвозможность по районам: сколько заявок ждёт сети