ПН-ПТ: с 10 до 17
Оставить заявку

Разработка отчета по лидам в Битрикс24 для автошколы

10.08.2022

Евгений Б. (веб-разработчик)

содержание статьи

цель и проблема заказчика

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

Наш постоянный клиент обратился с задачей автоматизировать работу сотрудника. Сделать его работу проще.

 
Сотруднику необходимо было собирать статистику о количестве клиентов для бухгалтерского отчета. Средствами Битрикс24 выполнять данную задачу неудобно и занимает много времени. На это жаловался сотрудник.

 
Поэтому нам необходимо было разработать внутреннее приложение.

 
Цель приложения: сделать работу сотрудника проще и эффективнее. При этом не подвергая стрессу и переживаниям. 

Бизнес-задача: Показывать количество целевых обращений в автошколу за период работы с учетом филиала и ассортимента товара.

УТОЧНЯЮЩИЕ ВОПРОСЫ ОТ РАЗРАБОТЧИКА

1. Где берутся списки офисов и категории прав?

Данные списки нестандартные. Находятся в списке группы с идентификатором 18 и инфоблоках 86 и 90.

2. Что делать с лидами у которых офис уже закрыт? Нужно отображать в отдельной колонке?

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

3. Нужен ли функционал погружения в список лидов в таблице?

Пока нет.

4. Нужна возможность выбирать статусы получаемых лидов в интерфейсе приложения ?

Нет. Возможно в будущем такой функционал потребуется.

Итоговое техническое задание

текст тз

  • применяемые технологии: JavaScript, jquery, библиотека BX24;
  • доступ приложения к модулям: CRM, lists (списки);
  • возможность выбрать в интерфейсе дату "ОТ" и "ПО" получаемых лидов;
  • получение списка лидов с определенными статусами, которые заранее указал заказчик ("IN_PROCESS", "6", "24", "CONVERTED", "12", "26", "33", "29", "31", "32", "34");
  • вывод информации в виде 2‑х аналогичных таблиц, одна по списку статусов заказчика, а вторая по успешным лидам ("CONVERTED");
  • столбцы таблицы - это категории прав по сортировке от меньшего индекса к большему (добавив "Не определился" и "Итоги");
  • ряды таблицы это список офисов по сортировке от меньшего индекса к большему (добавив "Без офиса" и "Итоги");
  • список офисов и категории прав являются динамичными, то есть при изменении или удалении списка меняется и сама таблица, отображая только актуальные данные на текущий момент (пользовательские поля в лиде "UF_CRM_1519160375" - офис, "UF_CRM_1519162607" - категория прав);
  • не учитывать лиды, которые имеют удаленный офис;
  • в таблице отображать лиды у которых нет офиса или не выбрана категория прав, помещая их в соответствующие ячейки;
  • подсчитывать итоги и по офисам и по категориям прав;
  • сортировку таблицы по столбцам.

Выполнение работы

Примеры кода, методы, параметры (фильтры)

1. Организация запросов
  • "crm.lead.list" - получение списка лидов, с параметрами:
    • сортировка   order: { ID: "ASC"} // сортирует идентификатор по возрастанию 
    •  фильтр (диапазон даты создания берется из полей ввода)
filter: {
// делает выборку лидов только по статусам 
"=STATUS_ID": [ "IN_PROCESS", "6", "24", "CONVERTED", "12", "26", "33", "29", "31", "32", "34"],
// дата создания больше указанной даты берется из поля ввода 
">DATE_CREATE": "2022-07-01T00:00:00.000Z",
// дата создания меньше указанной даты, берется из поля ввода
"<DATE_CREATE": "2022-07-31T20:59:59.000Z"
}
    • селектором полей select: ["STATUS_ID", "UF_CRM_1519160375", "UF_CRM_1519162607"] // перечисление минимального количества  полей лидов для обеспечения более высокой скорости обработки запросов и работы приложения в целом 
  • "lists.element.get" два запроса на получение списка в инфоблоке группы, с идентификаторами 86 и 90, с параметрами:
{
IBLOCK_TYPE_ID: "lists_socnet", // идентификатор типа инфоблока
IBLOCK_ID: 90, // идентификатор инфоблока
SOCNET_GROUP_ID: 18, // идентификатор группы
}

2. Разработка

  • добавление приложения на портал клиента с доступами;
  • формирование объекта отсортированных данных;
  • верстка таблиц и интерфейс выбора времени с кнопкой;
  • добавление логики сортировки при клике на ячейку шапки таблицы;
  • проверка адаптива и открытие приложения в слайдере;
  • тестирование на наличие ошибок в расчетах и нештатных случаев.

Дополнительные плюшки (не учитывалось в ТЗ)

  • при открытии приложения в селектор даты подставляется диапазон даты текущего месяца;

  • при открытии приложения сразу запускается поиск и отрисовка таблиц (получение лидов занимает достаточно мало времени, около 0.4с - 0.6с за 2500 лидов);

  • при старте страницы и нажатии кнопки "Поиск" отрабатывает функция подстройки содержимого приложения под размер iframe окна Битрикса;

  • для удобства добавлено событие поиска на кнопку "Enter" на клавиатуре, а по полям ввода даты можно переключаться с помощью Tab.

Результат работы разработчика

Результат работы с правками от дизайнера

Список правок
  • цвета при наведении на ряд таблицы и ячейку таблицы;
  • цвет фона шапки и ячеек офисов;
  • увеличена жирность текста у итогов;
  • цвет кнопки при наведении;
  • когда приложение находится в процессе поиска лидов внутри кнопки отображается анимация загрузки;
  • выравнивание ячеек по высоте и ширине;
  • отрегулированы отступы;
  • добавлены эффекты при наведении;
  • добавлены вспомогательные стрелочки сортировки:
    • появляются при наведении на ячейку шапки таблицы;
    • при нажатии таблица сортируется и отображается стрелочка повернутая в сторону сортировки, таким образом показывая какая колонка отсортирована и в какую сторону;
  • ячейки в которых значение "0" добавлена прозрачность, что бы снизить акцент.

Сложности и новый опыт

  • с получением прав доступа на запросы списочных данных групп на портале клиента,
  • понимание задачи разработчиком,

Список правок
  • дата "ПО" это конец выбранного дня

Подсчет трудозатрат

Руководитель проектов РазработчикВеб-дизайнер Итого
Виды работ - общение с заказчиком;
- оформление ТЗ;
- демонстрация результата.
- разбор технического задания;
- подготовка и настройка;
- отправка запросов, создание логики, формирование объекта статистики;
- верстка;
- правки от РП и дизайнера;
- тестирование.
- рекомендации к оформлению;
- общение с разработчиком;
- контроль результата.
Трудозатраты 2 часа 8 часов2 часа 12 часов