Формулировка проблемы: необходимо реализовать кейс системы управления взаимоотношениями с клиентами.
Связанные задачи:
Решение:
Модуль доступен для подразделения "Отдел продаж".
Модуль содержит групповые кнопки, переключающие вид отображения воронки:
"Воронка"
"Канбан"
По умолчанию выбран вид отображения "Канбан".
По нажатию на кнопку "Воронка" основная область содержит воронку продаж.
По нажатию на кнопку "Канбан" основная область содержит канбан продаж.
Боковая панель содержится в рабочей области для обоих видов отображения.
При переключении вида отображения настройки в боковой панели не изменяются.
Изменение значений настроек боковой панели должно сопровождаться анимацией загрузки.
Настройка представлена компонентом выбора пользователей.
Компонент содержит авторизованного пользователя, а также его подчиненных из подразделения "Отдел продаж".
Компонент позволяет выбрать:
всех пользователей;
нескольких пользователей;
одного пользователя;
ни одного пользователя.
По умолчанию выбран авторизованный пользователь.
Доступно три параметра фильтрации:
Период
Статус сделки
Стоимость
При фильтрации сделок за период учитывается только факт смены значения в поле "Статус" записи реестра Сделка. Если за указанный период значение этого поля изменялось несколько раз, то в воронку должно войти только последнее.
Параметр "Период" представлен выпадающим списком и двумя компонентами выбора даты, разделенными тире.
Выпадающий список периода содержит пункты:
"За все время" - воронка содержит все сделки с момента создания записи реестра до текущего времени на сервере.
"Прошедшая неделя" - учитываются только те сделки, у которых изменился статус за последнюю неделю от текущего дня на сервере.
"Прошедший месяц" - учитываются только те сделки, у которых изменился статус за последний месяц от текущего дня на сервере.
"Прошедший квартал" - учитываются только те сделки, у которых изменился статус за последний квартал от текущего дня на сервере.
"Прошедший год" - учитываются только те сделки, у которых изменился статус за последний год от текущего дня на сервере.
"Произвольный период" - учитываются только те сделки, у которых изменился статус за указанный пользователем период.
Компоненты выбора даты активны только при выбранном пункте "Произвольный период".
Компоненты выбора даты по умолчанию отображают период
текущий день на сервере + месяц
.
Параметр "Статус" представлен выпадающим списком с пунктами:
"Все";
значение crm_dict_dealStatus_type записи справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_end=1;
значения crm_dict_dealStatus_type всех записей справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_quality=0.
Статус "Все" включает в себя все записи справочника crm_dict_dealStatus со значением crm_dict_dealStatus_quality=1.
Параметр "Стоимость" представлен двумя числовыми полями:
По умолчанию выбраны:
Воронка продаж представлена в виде кнопок статусов сделки.
Статусы сделки определяются записями справочника crm_dict_dealStatus.
Кнопки статусов содержат два типа значений:
количество сделок данного статуса;
коэффициент конвертации.
Значение отображаются в формате:
%название_статуса%
%количество_сделок_статуса% (%коэффициент_конвертации%)
Коэффициент конвертации отсутствует для кнопки первого статуса.
Коэффициент конвертации рассчитывается как:
количество сделок последующего статуса / количество сделок предыдущего статуса * 100%
Изменение количества сделок и коэффициентов конвертации должно происходить в режиме реального времени.
Кнопки статусов сделок имеет форму трапеции.
Ширина кнопок статична:
максимальная - 450px по наибольшей горизонтальной стороне кнопки;
минимальная - 150px по наименьшей горизонтальной стороне кнопки.
Кнопки воронки продаж имеют одинаковую статичную высоту, пропорционально максимальной высоте воронки.
Минимальная высота кнопок - 40px.
Максимальная высота всей воронки - 500px.
Если воронка содержит один статус, то его кнопка также отображается в виде трапеции на максимальную высоту всей воронки.
Если не выбран ни один пользователь воронка отображается пустой:
значения количества сделок и коэффициента конвертации - 0;
кнопки имеют минимальную высоту.
Стоимость продаж в панели - сумма значений компонента Бюджет всех сделок текущей воронки.
Комиссия продаж в панели рассчитывается как:
стоимость продаж * % комиссии продаж
где % комиссии продаж
- значение поля
% комиссии
первой созданной записи реестра % комиссии продаж.
Значение поля "% комиссии" для каждой отдельной сделки идет в расчет согласно значению crm_dict_dealStatus_end записи справочника crm_dict_dealStatus:
crm_dict_dealStatus_end=1 - % комиссии на момент сохранения этого статуса;
остальные - % комиссии на конец рассматриваемого периода.
При смене статуса сделки на запись справочника crm_dict_dealStatus, у которой crm_dict_dealStatus_end=1, для нее сохраняется текущий % комиссии. Он будет использоваться в расчете, даже если строка динамической таблицы с таким % будет удалена.
Если в записи реестра % комиссии продаж указано несколько записей с одинаковыми датами начала, то в расчет идет последний % комиссии, удовлетворяющий требованиям.
Значение комиссии продаж в панели округляется до целого.
Основная рабочая область содержит панели сделок, расположенные в виде таблицы, где:
столбцы - статусы сделок (значения crm_dict_dealStatus_type записи справочника crm_dict_dealStatus) согласно текущей фильтрации
строки - сделки
Панели статусов окрашены в цвета, указанные в поле crm_dict_dealStatus_color записи справочника crm_dict_dealStatus.
Панели сделок отсортированы в столбце согласно убыванию значений компонента Бюджет всех сделок текущего статуса.
Панель статуса содержит:
Значение crm_dict_dealStatus_type записи справочника crm_dict_dealStatus
Количество сделок данного статуса
Сумма значений компонента Бюджет всех сделок текущего статуса.
Панель сделки содержит значение полей:
По нажатию на панель сделки откроется соответствующая запись реестра Сделка.
Цвет фона наименования аккаунта в панели - значение crm_dict_dealStatus_color записи справочника crm_dict_dealStatus выбранного статуса с прозрачностью 30%.
Все поля в панелях сделки и статуса отображаются на одной строке без переносов.
Если значение поля в панели сделки или статуса такое, что не отображается в строке полностью, текст обрезается с добавлением многоточия.
Для полей в панелях сделки и статуса имеются тултипы.
Имеется возможность перемещения панелей сделок горизонтально между столбцами при помощи drag-n-drop.
Переместить панели сделки можно из всех столцов в любой столбец без исключений.
При перемещении панели сделки между стоблцами изменяется значение поля "Статус" данной записи реестра Сделка согласно новому статусу (столбцу таблицы).
Ширина каждого столбца одинаково пропорциональна и в сумме составляет общую ширину основной рабочей области.
Минимальная ширина столбца - 200px.
Если таблица содержит один статус, то ее столбец отображается на ширину всей рабочей области.
Если количество столбцов такое, что они не отображаются в основной рабочей области полностью, отображается горизонтальный скролл.
Если количество панелей сделок такое, что не отображается в основной рабочей области полностью, отображается вертикальный скролл.
При прокрутке таблицы строка заголовков (статусов сделок) имеет фиксированное положение.
При создании записи реестра "Сделка" путем смены статуса или нажатием на кнопку поле crm_form_deal_responsibleManager_responsible по умолчанию заполняется пользователем, указанным в первой записи реестра "Ответственный за сделки".
Код формы: crm_form_deal_responsible.
Форма содержит следующие компоненты:
Поле | Тип компонента | Имя компонента |
---|---|---|
Ответственный за сделку |
компонент выбора пользователей |
crm_form_deal_responsible_user |
Свойства реестра:
Свойство | Значение |
---|---|
Код |
crm_registry_deal_responsible |
Форма документа |
crm_form_deal_responsible |
Группа |
менеджеры-маркетологи, менеджеры по продажам |
Права |
Просмотр списка, Просмотр данных, Изменение, Редактирование |
Сортировка |
по дате создания |
Направление сортировки |
по убыванию |
Отображаемые поля формы:
Идентификатор колонки | Название поля | Номер | Значащее содержимое |
---|---|---|---|
crm_form_deal_responsible_user |
Ответственный менеджер |
да |
Поля справочника:
Код | Имя | Комментарий | Переводить |
---|---|---|---|
crm_dict_dealStatus_type |
Тип |
Да | |
crm_dict_dealStatus_value |
Порядковый номер пункта в выпадающем списке |
Не может иметь значение, равное 0 |
Нет |
crm_dict_dealStatus_quality |
Качество |
0 - negative 1 - positive |
Нет |
crm_dict_dealStatus_end |
Законченность |
Имеет смысл только для crm_dict_dealStatus_quality=1 0 - not end 1 - end |
Нет |
crm_dict_dealStatus_color |
Цвет панели в воронке |
Нет |
Данные справочника по умолчанию:
Тип | Порядковый номер пункта в выпадающем списке | Качество | Законченность | Цвет панели в воронке |
---|---|---|---|---|
Уточнение потребности |
1 |
1 |
0 |
|
Подготовка приложения |
2 |
1 |
0 |
|
Защита предложения |
3 |
1 |
0 |
|
Закрытие сделки |
4 |
1 |
1 |
|
Отказ |
5 |
0 |
|
Если некоторые параметры не были указаны, то им присваиваются значения по умолчанию:
не указан crm_dict_dealStatus_quality:
crm_dict_dealStatus_quality=1
crm_dict_dealStatus_end=0
не указан crm_dict_dealStatus_end:
crm_dict_dealStatus_end=0
не указаны crm_dict_dealStatus_quality и crm_dict_dealStatus_end:
crm_dict_dealStatus_quality=1
crm_dict_dealStatus_end=0
не указан crm_dict_dealStatus_color:
crm_dict_dealStatus_color=#f3c02d
Запись с данными crm_dict_dealStatus_quality=1 и crm_dict_dealStatus_end=1 должна быть одна. Если таких записей несколько, то данные значения применяются только для первой созданной записи. Остальным записям из списка присваивается значение crm_dict_dealStatus_end=0.
Список статусов сделок, для которых crm_dict_dealStatus_value=0 либо не указан вовсе, сортируются по параметру crm_dict_dealStatus_type в локали С в алфавитном порядке.
Необходимо переименовать существующие объекты конфигурации:
реестр "% комиссии" в "% комиссии лидогенерации"
форму "% комиссии" в "% комиссии лидогенерации" (на трех языках)
После этого в типовую конфигурацию добавляются новые форма и реестр.
Код формы: crm_form_deal_comission.
Форма содержит следующие компоненты:
Поле | Тип компонента | Имя компонента |
---|---|---|
% комссии |
динамическая таблица |
crm_form_deal_comission_main |
Дата начала |
дата |
crm_form_deal_comission_main_start_date |
Дата окончания |
дата |
crm_form_deal_comission_main_finish_date |
% комиссии |
числовое поле |
crm_form_deal_comission_main_comission |
Динамическая таблица "% комиссии":
Форматная строка:
[Значение ${crm_form_comission_main_deal_comission}% с ${crm_form_deal_comission_main_start_date} по ${crm_form_deal_comission_main_finish_date}]
Поле "Дата начала":
Флаги "Заблокировать от изменений пользователем" и "Заполнять текущей датой/временем" включены.
Поле "Дата окончания":
Флаг "Заблокировать от изменений пользователем" включен.
Компонент в последней строке заполняется текущей датой при добавлении новой строки динамической таблицы.
Поле "% комиссии":
Значение поля по умолчанию при создании записи реестра - 5.
Свойства реестра:
Свойство | Значение |
---|---|
Код |
crm_registry_deal_comission |
Форма документа |
crm_form_deal_comission |
Группа |
менеджеры по продажам |
Права |
Просмотр списка, Просмотр данных, Изменение, Редактирование |
Сортировка |
по дате создания |
Направление сортировки |
по убыванию |
Отображаемые поля формы:
Идентификатор колонки | Название поля | Номер | Значащее содержимое |
---|---|---|---|
crm_form_deal_comission_main |
% комиссии |
нет |