Commit c522a58b authored by Kristina Markova's avatar Kristina Markova

CRM spec: + v1.5

parent c02a1447
......@@ -129,6 +129,7 @@ crm/spec/src/crm_consist/marketing_pipeline.md -text
crm/spec/src/crm_consist/marketing_sidePannel.md -text
crm/spec/src/crm_consist/reminder.md -text
crm/spec/src/crm_consist/sales.md -text
crm/spec/src/crm_consist/sales_OS.md -text
crm/spec/src/crm_consist/sales_cost_comission.md -text
crm/spec/src/crm_consist/sales_dashboard.md -text
crm/spec/src/crm_consist/sales_funnel.md -text
......
......@@ -32,6 +32,7 @@
* [Пользовательские компоненты](#userModules)
* [crm_component_canban_deal](#uMCanbanDeal)
* [crm_component_deals_dashboard](#uMDealsDashboard)
* [crm_component_deals_os_dashboard](#uMDealsOSDashboard)
* [crm_component_deals_productivity](#uMDealsProductivity)
* [crm_component_deal_button](#uMDealButton)
* [crm_component_funnel](#uMFunnel)
......@@ -99,6 +100,7 @@
* [Внешние модули](#externalModules)
* [Управление маркетингом](#marketing)
* [Управление продажами](#sales)
* ["Управление продажами" (для ОП)](#sales_OS)
### Группы {#groups}
......@@ -425,6 +427,8 @@
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **Переход в негативный статус** | числовое поле | crm_form_deal_refused |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
| **isUser** | выбор вариантов | isUser |
+--------------------------------------------------------+---------------------------------------------------------------+--------------------------------------------------------+
*Поле "Лид"*:
......@@ -586,6 +590,14 @@
* Компонент скрыт.
*Поле "isUser":*
* Поле имеет два варианта: `1` и `0`.
* По умолчанию выбраны оба варианта.
* Поле скрыто.
При конвертации лида в сделку (как с помощью кнопки на форме "Лид",
так и при перемещении лида на Канбан-доске) открывается форма "Сделка", где
автоматически заполнены компоненты:
......@@ -1744,6 +1756,8 @@
| **Подразделение создающего** | компонент выбора подразделений | crm_owner |
| **пользователя** | | |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
| **UUID корневой организации** | однострочное поле | crm_all_accessible |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
| **План продаж** | динамическая таблица | crm_form_deal_main2_theme_sales |
+----------------------------------+---------------------------------------------------+--------------------------------------------------------+
| Отделение | компонент выбора подразделений | crm_form_deal_sales_pk1 |
......@@ -1842,6 +1856,12 @@
* Включены флаги "Заполнять создающим пользователем" и "Заполнять
департаментом создающего пользователя".
*Поле "UUID корневой организации":*
* Поле скрыто.
* Поле содержит значение по умолчанию `1`.
*Динамическая таблица "План продаж":*
* Флаг "Отобразить границы" включен.
......@@ -4691,5 +4711,15 @@
| Адрес приложения | [URL](http://tdd.lan.arta.kz/docs/cases/crm/additional/html/crm_without_data.html)/crm/deal |
+--------------------------------------------------------+---------------------------------------------------------------------------------------------+
#### Управление продажами (для ОП) {#sales_OS}
+--------------------------------+-----------------------------------------------------------------------------------------------+
| Свойство | Значение |
+================================+===============================================================================================+
| Код | crm_ext3DealOS |
+--------------------------------+-----------------------------------------------------------------------------------------------+
| Адрес приложения | [URL](http://tdd.lan.arta.kz/docs/cases/crm/additional/html/crm_without_data.html)/crm/dealOS |
+--------------------------------+-----------------------------------------------------------------------------------------------+
<#include "crm_consist/user_components.md">
<#include "crm_consist/reminder.md">
......@@ -330,6 +330,24 @@ HTML код:
```
#### crm_component_deals_os_dashboard {#uMDealsOSDashboard}
+--------------------------------------------------------+----------------------------------------------------------+
| Свойство | Значение |
+========================================================+==========================================================+
| Код | crm_component_deals_os_dashboard |
+--------------------------------------------------------+----------------------------------------------------------+
| Использовать в формах | включен |
+--------------------------------------------------------+----------------------------------------------------------+
HTML код:
``` xml
<iframe src="http://%IP_adress%:5601/app/kibana#/dashboard/%D0%9F%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-(%D1%81%D0%BE%D1%82%D1%80%D1%83%D0%B4%D0%BD%D0%B8%D0%BA%D0%B8)?embed=true&_g=(refreshInterval%3A('%24%24hashKey'%3A'object%3A5090'%2Cdisplay%3A'30%20seconds'%2Cpause%3A!f%2Csection%3A1%2Cvalue%3A30000)%2Ctime%3A(from%3Anow-15m%2Cmode%3Aquick%2Cto%3Anow))" height="100%" width="100%"></iframe>
```
#### crm_component_deals_productivity {#uMDealsProductivity}
+--------------------------------------------------------+----------------------------------------------------------+
......@@ -2651,3 +2669,5 @@ function createSkypeLink(value, parent) {
}
```
......@@ -60,37 +60,82 @@ API.
- `r-crm-registry_lead` - индекс данных реестра ["Лиды"](#registryLead);
- `r-crm_registry_deals_plans_custom` - служебный индекс данных реестра ["План продаж"](#registrySalesCost)
(по подразделениям);
- `r-crm_registry_deals_plans_custom_user` - служебный индекс данных реестра ["План продаж"](#registrySalesCost)
(по сотрудникам);
- `r-crm_registry_deals_plans_custom` - служебный индекс данных реестра ["План продаж"](#registrySalesCost) (по подразделениям и пользователям);
- `r-crm_registry_deals*` - шаблон, объединяющий данные реестра ["Сделки"](#registryDeal)
и служебный индекс `r-crm_registry_deals_plans_custom`.
Индекс `deals-status-history` создается и рассчитывается автоматически при
запусе Synergy. Индексы `r-crm_registry_deals_plans_custom` и
`r-crm_registry_deals_plans_custom_user` создаются при
запусе Synergy. Индекс `r-crm_registry_deals_plans_custom` создается при
создании записей в реестре ["План продаж"](#registrySalesCost). Остальные
индексы включены в типовую конфигурацию.
### Боковая панель фильтрации {#dashboards_side_panel}
Все дашборды содержат боковую панель, которая содержит фильтр "Подразделения".
По умолчанию фильтр заполнен подразделением текущего пользователя, и дашборд
отображает только те данные, которые доступны подразделению пользователя.
Пользователю доступны для выбора:
* подразделение, к котрому непосредственно относится пользователь;
* все дочерние подразделения того, к которому относится пользователь.
При выборе нескольких подразделений результатом фильтрации являются записи,
в которых в качестве ответственного или разрешенного подразделения указано
хотя бы одно из выбранных подразделений.
Условия, формируемые фильтром, пересекаются (логическое "И") с другими существующими
условиями дашбордов, которые были как добавлены вручную, так и сформированы при
"проваливании" в отдельных диаграммах.
Для каждого дашборда фильтр "Подразделения" формирует свой набор условий
отображения данных.
Настройка фильтра "Подразделение" осуществляется в компоненте `crm_form_funnel_deps`
на служебных формах внешних модулей:
- `crm_form_funnel` - модуль ["Управление маркетингом"](#sec.marketing)
- `crm_form_funnel_deal` - модуль ["Управление продажами"](#sec.sales)
- `crm_form_funnel_deal_os` - модуль ["Управление продажами (ОП)"](#sec.sales_OS)
### Управление маркетингом {#dashboards_marketing}
Отображаются записи реестров "Лиды", "Аккаунты" и "Маркетинговые мероприятия", в которых
поле "Все доступные" `crm_all_accessible` содержат подразделение, указанное в фильтре
"Подразделения".
**Общие настройки дашборда:**
- период обновления: 30 секунд
- источник данных для публикации: `Embedded iframe`
- общее условие на отображаемые данные: `NOT crm_all_accessible_key_sort: ""`
- опубликован в пользовательском компоненте `crm_component_leads_dashboard`,
где в параметрах размера фрейма указано `100%` для высоты и ширины.
**Фильтр "Подразделения":**
- доступен мультивыбор;
- условие, формируемое фильтром для выбранных подразделений с идентификаторами
`uuid1, uuid2, ..., uuidN`:
> `(crm_all_accessible_key_sort: "<uuid1>" || crm_all_accessible_key_sort: "<uuid2>" || ... || crm_all_accessible_key_sort: "<uuidN>")`
> При удалении тэга подразделения с идентификатором `uuidN` из фильтра соответствующее ему
условие `crm_all_accessible_key_sort: "<uuidN>"` также удаляется из условия дашборда.
Дашборд "Аналитика" в модуле "Управление маркетингом" состоит из диаграмм:
1. **Количество аккаунтов**
Отображает одно число - общее количество неудаленных записей в реестре
> Отображает одно число - общее количество неудаленных записей в реестре
["Аккаунты"](#registryAccount).
> - тип диаграммы: Metric
......@@ -105,7 +150,7 @@ API.
2. **Количество лидов**
Отображает одно число - общее количество неудаленных записей в реестре
> Отображает одно число - общее количество неудаленных записей в реестре
["Лиды"](#registryLead).
> - тип диаграммы: `Metric`
......@@ -120,7 +165,7 @@ API.
3. **Средний предполагаемый чек по лидам**
Отображает одно число: среднее значение поля "Потенциальный бюджет" по
> Отображает одно число: среднее значение поля "Потенциальный бюджет" по
всем неудаленных записях реестра ["Лиды"](#registryLead).
> - тип диаграммы: `Metric`
......@@ -137,7 +182,7 @@ API.
4. **Маркетинговые мероприятия**
Отображает список неудаленных записей реестра ["Маркетинговые мероприятия"](#registryEvent)
> Отображает список неудаленных записей реестра ["Маркетинговые мероприятия"](#registryEvent)
с детализацией по дате создания, наименованию мероприятия, бюджету,
целевому и текущему отклику, а также оценке эффективности мероприятия.
......@@ -245,20 +290,38 @@ API.
### Управление продажами {#dashboards_sales}
Отображаются записи реестров "Сделки" и "Счет-фактуры", в которых поле "Все доступные"
`crm_all_accessible` содержат подразделение, указанное в фильтре "Подразделения".
**Общие настройки дашборда:**
- период обновления: 30 секунд
- источник данных для публикации: `Embedded iframe`
- условие на отображаемые данные: `deleted:0 && NOT crm_all_accessible_key_sort: ""`
- опубликован в пользовательском компоненте `crm_component_deals_dashboard`,
где в параметрах размера фрейма указано `100%` для высоты и ширины.
**Фильтр "Подразделения":**
- мультивыбор по умолчанию не доступен, но может быть включен разработчиком
Synergy (методологом) в компоненте `crm_form_funnel_deps` на форме `crm_form_funnel_deal`.
- условие, формируемое фильтром для выбранных подразделений с идентификаторами
`uuid1, ..., uuidN`:
> `(crm_all_accessible_key_sort: "<uuid1>" || crm_all_accessible_key_sort: "<uuid2>" || ... crm_all_accessible_key_sort: "<uuidN>")`
> При удалении тэга подразделения с идентификатором `uuidN` из фильтра соответствующее ему
условие `crm_all_accessible_key_sort: "<uuidN>"` также удаляется из условия дашборда.
Дашборд "Аналитика" в модуле "Управление продажами" состоит из диаграмм:
1. **Топ прайс-листа**
Отображает 10 наиболее продаваемых позиций реестра [Каталог товаров и услуг](#registryItems) -
> Отображает 10 наиболее продаваемых позиций реестра [Каталог товаров и услуг](#registryItems) -
наименование и количество проданных товаров, указанных в записях реестра
[Счет-фактуры](#registryInvoices).
......@@ -267,7 +330,7 @@ API.
> - шаблон индекса: `r-crm_registry_invoices`
> - условие на отображаемые данные:
`deleted:0 NOT crm_form_deal_order_orderList_value_sort:""`
`deleted:0 && NOT crm_form_deal_order_orderList_value_sort:""`
> Параметры агрегации:
......@@ -299,7 +362,7 @@ API.
2. **Среднее время прохождения сделками статусов**
Отображает среднее время прохождения сделками каждого из статусов (в днях)
> Отображает среднее время прохождения сделками каждого из статусов (в днях)
на основании записей рееестра [Сделки](#registryDeal).
> **Примечание:**
......@@ -311,7 +374,7 @@ API.
> - шаблон индекса: `deals_status_history`
> - условие на отображаемые данные: `deleted:0`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 1`
> Параметры агрегации:
......@@ -349,14 +412,14 @@ API.
3. **Количество сделок по статусам**
Отображает общее количество сделок в каждом из статусов (при их наличии)
> Отображает общее количество сделок в каждом из статусов (при их наличии)
на основании записей рееестра [Сделки](#registryDeal).
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals`
> - условие на отображаемые данные: `deleted:0`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 1`
> Параметры агрегации:
......@@ -404,7 +467,7 @@ API.
3. **Количество сделок с отказом**
Отображает общее количество сделок, перешедших в негативный статус
> Отображает общее количество сделок, перешедших в негативный статус
(`crm_dict_dealStatus_quality=0` справочника [Статусы сделки](#dictionaryDealStatus)),
с указанием их предыдущего положительного статуса.
......@@ -412,7 +475,7 @@ API.
> - шаблон индекса: `r-crm_registry_deals`
> - условие на отображаемые данные: `deleted:0 NOT crm_form_deal_refused_key_double:0`
> - условие на отображаемые данные: `deleted:0 NOT crm_form_deal_refused_key_double:0 && isUser_key_double: 1`
> Параметры агрегации:
......@@ -462,7 +525,7 @@ API.
4. **Количество просроченных сделок по статусам**
Отображает количество сделок, не сменивших статус за время, указанное
> Отображает количество сделок, не сменивших статус за время, указанное
в документе по форме ["Нормативы продолжительности статусов сделки"](#formDealFlowStandard)
для соответствующего статуса. Диаграмма не содержит статусов, которые
не являются предыдущими для сделок - записей в реестре [Сделки](#registryDeal).
......@@ -471,7 +534,7 @@ API.
> - шаблон индекса: `r-crm_registry_deals`
> - условие на отображаемые данные: `deleted:0 NOT crm_form_deal_expired_key_double:0`
> - условие на отображаемые данные: `deleted:0 NOT crm_form_deal_expired_key_double:0 && isUser_key_double: 1`
> Параметры агрегации:
......@@ -522,7 +585,7 @@ API.
5. **Список сделок**
Отображает список всех неудаленных записей реестра [Сделки](#registryDeal)
> Отображает список всех неудаленных записей реестра [Сделки](#registryDeal)
с детализацией по лидам, темам сотрудничества, статусам, ответственным менеджерам,
причинам отказа от сделки (если она указана), а также с указанием стоимости
сделки.
......@@ -531,7 +594,7 @@ API.
> - шаблон индекса: `r-crm_registry_deals`
> - условие на отображаемые данные: `deleted:0`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 1`
> Параметры агрегации:
......@@ -621,34 +684,122 @@ API.
### Продуктивность {#dashboards_productivity}
Отображаются записи реестров "Сделки" и "План продаж", в которых одно из полей:
- "Все доступные" `crm_all_accessible`
- "Подразделение" `crm_form_deal_sales_pkN`
содержит подразделение, указанное в фильтре "Подразделения". При этом отображаются
только плановые показатели, поставленные для подразделений, без учета планов для
пользователей.
**Общие настройки дашборда:**
- период обновления: 30 секунд
- источник данных для публикации: `Embedded iframe`
- условие на отображаемые данные: `deleted:0 && isUser_key_double:0`
- опубликован в пользовательском компоненте `crm_component_deals_productivity`,
где в параметрах размера фрейма указано `100%` для высоты и ширины.
**Фильтр "Подразделения":**
- мультивыбор по умолчанию не доступен, но может быть включен разработчиком
Synergy (методологом) в компоненте `crm_form_funnel_deps` на форме `crm_form_funnel_deal`.
- условие, формируемое фильтром для выбранных подразделений с идентификаторами
`uuid1, ..., uuidN`:
> `(crm_all_accessible_key_sort: "<uuid1>" || crm_form_deal_sales_pk1_key_sort: "<uuid1>" || ... || crm_all_accessible_key_sort: "<uuidN>" || crm_form_deal_sales_pk1_key_sort: "<uuidN>")`
> При удалении тэга подразделения с идентификатором `uuidN` из фильтра соответствующее ему
условие `crm_all_accessible_key_sort: "<uuidN>" || crm_form_deal_sales_pk1_key_sort: "<uuidN>"`
также удаляется из условия дашборда.
>> **Примечание:**
>> Если во внешнем модуле "Управление продажами" для фильтра "Подразделения"
`crm_form_funnel_deps` был включен мультивыбор, то показатели плановых значений стоимости
продаж в диаграммах "Исполнение плана" и "Исполнение плана по темам сотрудничества"
будут суммироваться для **всех** выбранных подразделений.
***Пример поведения дашборда при включенном мультивыборе:***
*Предварительные условия:*
1. Настроена оргструктура:
* Организация
* Отдел маркетинга
* Отдел маркетинга по Алматы
* Отдел маркетинга по Астане
* Отдел продаж
* Отдел продаж по Алматы
* Отдел продаж по Астане
2. Пользователь является сотрудником подразделения "Отдел продаж".
3. В реестре "План продаж" созданы записи (столбцы в таблице не соответствуют
[настроенным столбцам](http://tdd.lan.arta.kz/docs/cases/crm/spec/html/sec.crm_conf_consist.html#registrySalesCost)
реестра и приведены для наглядности примера):
+------------------+---------------------------------+---------------------------+
| **Автор** | **Ответственное подразделение** | **Суммарный план продаж** |
+==================+=================================+===========================+
| Организация | Отдел продаж | 1 000 000 |
+------------------+---------------------------------+---------------------------+
| Отдел продаж | Отдел продаж Астана | 600 000 |
+------------------+---------------------------------+---------------------------+
| Отдел продаж | Отдел продаж Алматы | 600 000 |
+------------------+---------------------------------+---------------------------+
4. В дашборде "Продуктивность" в фильтре "Подразделения" выбраны все доступные
пользователю подразделения:
1. Отдел продаж
2. Отдел продаж Алматы
3. Отдел продаж Астана
*Результат:* на диаграмме "Исполнение плана продаж" метрика "План продаж" отображает
число `2 200 000`, метрика "% исполнения плана" рассчитана как процент от этого числа.
>> Описанное поведение **не является ошибкой Synergy**, но может быть использовано специально
для просмотра продуктивности по всем подчиненным подразделениям. Для того, чтобы план
продаж был вычислен корректно, достаточно из фильтра "Подразделения" удалить тэг
текущего подразделения пользователя и оставить там только тэги непосредственных
дочерних подразделений.
Дашборд "Продуктивность" в модуле "Управление продажами" состоит из диаграмм:
1. **Отделения**
Отображает список подразделений организации. Диаграмма не содержит подразделений,
> Отображает список подразделений организации. Диаграмма не содержит подразделений,
для которых не было указано ни одного планового показателя стоимости в реестре
[План продаж](#registrySalesCost).
[План продаж](#registrySalesCost), а также тех, в которых поле "Пользователь"
не пусто.
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals_plans_custom`
> - условие на отображаемые данные: `deleted:0`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 0`
> Параметры агрегации:
>> Числовые (`metrics`):
>> *Количество:*
>> *Средняя плановая стоимость продаж:*
>> - тип агрегации: `Average`
......@@ -676,11 +827,11 @@ API.
> Опции диаграммы:
>> количество записей на страницу: 5
>> количество записей на страницу: 10
2. **Месяцы**
Отображает список месяцев согласно справочнику [Месяцы](#dictionaryMonths).
> Отображает список месяцев согласно справочнику [Месяцы](#dictionaryMonths).
Диаграмма не содержит месяцев, в которые ни одна сделка не перешла в
положительный конечный статус (`crm_dict_dealStatus_end=1`), согласно
записям реестра [Сделки](#registryDeal).
......@@ -689,13 +840,13 @@ API.
> - шаблон индекса: `r-crm_registry_deals_plans_custom`
> - условие на отображаемые данные: `deleted:0`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 0`
> Параметры агрегации:
>> Числовые (`metrics`):
>> *Количество:*
>> *Средняя плановая стоимость продаж:*
>> - тип агрегации: `Average`
......@@ -705,13 +856,13 @@ API.
>> Групповые агрегации (поля таблицы, `buckets`):
>>> *Отделение:*
>>> *Месяц:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_sales_pk1_value_sort`
>>> - поле агрегации: `crm_form_deal_order_sales_month_value_sort`
>>> - способ сортировки: `Term`
......@@ -727,15 +878,15 @@ API.
3. **Исполнение плана**
Отображает три числа:
> Отображает три числа:
- суммарное значение вмех плановых показателей по стоимости продаж;
> - суммарное значение всех плановых показателей по стоимости продаж;
- суммарное значение бюджета всех закрытых сделок;
> - суммарное значение бюджета всех закрытых сделок;
- процент исполнения плана продаж, рассчитываемый таким образом:
> - процент исполнения плана продаж, рассчитываемый таким образом:
> %факт_продаж% / %план_продаж% * 100%
>> %факт_продаж% / %план_продаж% * 100%
>>> **Примечание 1:**
......@@ -754,7 +905,7 @@ Synergy.
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double: 0`
> Параметры агрегации:
......@@ -785,7 +936,7 @@ Synergy.
>>> - `toLocaleString()` - формат отображения числа, при котором в
качестве разделителя тысяч используется пробел;
>>> - `.toFixed(2)` - округление числа до второго знака после запятой
>>> - `toFixed(2)` - округление числа до второго знака после запятой
(до сотых).
>> *План продаж:*
......@@ -808,18 +959,18 @@ Synergy.
4. **Исполнение плана по темам сотрудничества**
Отображает суммарные значения плана продаж, сумму потенциального
> Отображает суммарные значения плана продаж, сумму потенциального
бюджета по всем сделкам, перешедшим в положительный конечный статус
(`crm_dict_dealStatus_end=1`), в разрезе [тем сотрудничества]((#registryThemes)).
В диаграмму включаются только те темы сотрудничества, для которых
был указан хотя бы один плановый показатель в реестре
[План продаж](#registrySalesCost).
[План продаж](#registrySalesCost) при заполненном поле "Подразделение".
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double:0`
> Параметры агрегации:
......@@ -869,7 +1020,382 @@ Synergy.
5. **Исполнение плана по темам (гистрограмма)**
Отображает показатели плана и факта продаж в разрезе тем сотрудничества
> Отображает показатели плана и факта продаж в разрезе тем сотрудничества
в виде гистограммы (столбиковой диаграммы, Bar chart). Диаграмма представляет
собой визуализацию данных в таблице **Исполнение плана по темам сотрудничества**.
> - тип диаграммы: `Vertical bar chart`
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double:0`
> Параметры агрегации:
>> Числовые (`metrics`, ось Y):
>>> *План продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `plan_key_double`
>>> - отображаемое название параметра: "План продаж"
>>> *Факт продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `crm_form_deal_main3_budget_key_double`
>>> - отображаемое название параметра: "Факт продаж"
>> Групповые агрегации (`buckets`, ось X):
>>> *Тема сотрудничества:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_main2_theme_value_sort`
>>> - способ сортировки: `metric: План продаж`
>>> - направление сортировки: `Descending`
>>> - количество отображаемых результатов: 30
>>> - отображаемое название параметра: "Тема сотрудничества"
> Опции диаграммы:
>> раположение столбцов: сгруппированное.
### Продуктивность (сотрудники) {#dashboards_productivity_OS}
Отображаются записи реестров "Сделки" и "План продаж", в которых поле "Владелец"
`crm_owner` содержит подразделение, указанное в фильтре "Подразделения". При этом
отображаются только плановые показатели, поставленные для пользователей, без учета
планов для подразделений.
**Общие настройки дашборда:**
- период обновления: 30 секунд
- источник данных для публикации: `Embedded iframe`
- условие на отображаемые данные: `deleted:0 && isUser_key_double:1`
- опубликован в пользовательском компоненте `crm_component_deals_os_productivity`,
где в параметрах размера фрейма указано `100%` для высоты и ширины.
**Фильтр "Подразделения":**
- мультивыбор по умолчанию не доступен, но может быть включен разработчиком
Synergy (методологом) в компоненте `crm_form_funnel_deps` на форме `crm_form_funnel_deal_os`.
- условие, формируемое фильтром для выбранных подразделений с идентификаторами
`uuid1, ..., uuidN`:
> `crm_owner_key_sort: "<uuid1>" || crm_owner_key_sort: "<uuid2>" || ... || crm_owner_key_sort: "<uuidN>"`
> При удалении тэга подразделения с идентификатором `uuidN` из фильтра соответствующее ему
условие `crm_owner_key_sort: "<uuidN>"` также удаляется из условия дашборда.
Дашборд "Продуктивность" (сотрудники) в модуле "Управление продажами (ОП)" состоит из диаграмм:
1. **Сотрудники**
> Отображает список сотрудников подразделения. Диаграмма не содержит пользователей,
для которых не было указано ни одного планового показателя стоимости в реестре
[План продаж](#registrySalesCost), а также данных из записей, в которых поле "Пользователь" пусто.
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals_plans_custom`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 1`
> Параметры агрегации:
>> Числовые (`metrics`):
>> *Средняя плановая стоимость продаж:*
>> - тип агрегации: `Average`
>> - поле агрегации: `plan_key_double`
>> - отображаемое название параметра: "Средняя плановая стоимость продаж"
>> Групповые агрегации (поля таблицы, `buckets`):
>>> *Сотрудник:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_responsibleManager_responsible_value_sort`
>>> - способ сортировки: `Term`
>>> - направление сортировки: `Descending`
>>> - количество отображаемых результатов: 30
>>> - отображаемое название параметра: "Сотрудник"
> Опции диаграммы:
>> количество записей на страницу: 10
2. **Месяцы**
> Отображает список месяцев согласно справочнику [Месяцы](#dictionaryMonths).
Диаграмма не содержит месяцев, в которые ни одна сделка не перешла в
положительный конечный статус (`crm_dict_dealStatus_end=1`), согласно
записям реестра [Сделки](#registryDeal).
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals_plans_custom`
> - условие на отображаемые данные: `deleted:0 && isUser_key_double: 1`
> Параметры агрегации:
>> Числовые (`metrics`):
>> *Средняя плановая стоимость продаж:*
>> - тип агрегации: `Average`
>> - поле агрегации: `plan_key_double`
>> - отображаемое название параметра: "Средняя плановая стоимость продаж"
>> Групповые агрегации (поля таблицы, `buckets`):
>>> *Месяц:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_order_sales_month_value_sort`
>>> - способ сортировки: `Term`
>>> - направление сортировки: `Descending`
>>> - количество отображаемых результатов: 12
>>> - отображаемое название параметра: "Месяц"
> Опции диаграммы:
>> количество записей на страницу: 6
3. **Исполнение плана (сотрудники)**
> Отображает три числа:
> - суммарное значение всех плановых показателей по стоимости продаж;
> - суммарное значение бюджета всех закрытых сделок;
> - процент исполнения плана продаж, рассчитываемый таким образом:
>> %факт_продаж% / %план_продаж% * 100%
>>> **Примечание 1:**
>>> В диаграмме для подсчета факта продаж учитываются только сделки,
перешедшие в положительный конечный статус (`crm_dict_dealStatus_end=1`),
согласно записям реестра [Сделки](#registryDeal).
>>> **Примечание 2:**
>>> Для построения диаграммы используется специфический тип визуализации -
`Extended metric`. Он не включается в основной инструментарий Kibana, но
устанавливается автоматически при установке пакета kibana из репозитория
Synergy.
> - тип диаграммы: `Extended metric`
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double: 1`
> Параметры агрегации:
>> *Суммарное значение плана продаж:*
>> - тип агрегации: `Sum`
>> - поле агрегации: `plan_key_double`
>> - используемое название параметра: `sum_cost`
> *Суммарное значение фактических продаж:*
>> - тип агрегации: `Sum`
>> - поле агрегации: `crm_form_deal_main3_budget_key_double`
>> - используемое название параметра: `sum_budget`
> Вычисляемые параметры (вкладка `Options`):
>>> **Примечание 3:**
>>> Во всех полях `Formula` используется синтаксис языка JavaScript.
Помимо непосредственного вычисления процента исполнения плана продаж,
дополнительно используются функции:
>>> - `toLocaleString()` - формат отображения числа, при котором в
качестве разделителя тысяч используется пробел;
>>> - `toFixed(2)` - округление числа до второго знака после запятой
(до сотых).
>> *План продаж:*
>> - формула: `(metrics['sum_cost'].value).toLocaleString()`
>> - отображаемое название параметра: "План продаж"
>> *Факт продаж:*
>> - формула: `(metrics['sum_budget'].value).toLocaleString()`
>> - отображаемое название параметра: "Факт продаж"
>> *Процент исполнения плана продаж:*
>> - формула: `(((metrics['sum_budget'].value / metrics['sum_cost'].value)) *100).toFixed(2)`
>> - отображаемое название параметра: "% исполнения плана продаж"
4. **Исполнение плана по темам (сотрудники)**
> Отображает суммарные значения плана продаж, сумму потенциального
бюджета по всем сделкам, перешедшим в положительный конечный статус
(`crm_dict_dealStatus_end=1`), в разрезе [тем сотрудничества]((#registryThemes)).
В диаграмму включаются только те темы сотрудничества, для которых
был указан хотя бы один плановый показатель в реестре
[План продаж](#registrySalesCost) при заполненном поле "Пользователь".
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double:1`
> Параметры агрегации:
>> Числовые (`metrics`):
>>> *План продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `plan_key_double`
>>> - отображаемое название параметра: "План продаж"
>>> *Факт продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `crm_form_deal_main3_budget_key_double`
>>> - отображаемое название параметра: "Факт продаж"
>> Групповые агрегации (поля таблицы, `buckets`):
>>> *Тема сотрудничества:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_main2_theme_value_sort`
>>> - способ сортировки: `metric: План продаж`
>>> - направление сортировки: `Descending`
>>> - количество отображаемых результатов: 30
>>> - отображаемое название параметра: "Тема сотрудничества"
> Опции диаграммы:
>> количество записей на страницу: 10
5. **Исполнение плана по сотрудникам**
> Отображает суммарные значения плана продаж, сумму потенциального
бюджета по всем сделкам, перешедшим в положительный конечный статус
(`crm_dict_dealStatus_end=1`), в разрезе ответственных менеджеров.
В диаграмму включаются только те сотрудники, для которых
был указан хотя бы один плановый показатель в реестре
[План продаж](#registrySalesCost) при заполненном поле "Пользователь".
> - тип диаграммы: `Data table`
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double:1`
> Параметры агрегации:
>> Числовые (`metrics`):
>>> *План продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `plan_key_double`
>>> - отображаемое название параметра: "План продаж"
>>> *Факт продаж*
>>> - тип агрегации: `Sum`
>>> - поле агрегации: `crm_form_deal_main3_budget_key_double`
>>> - отображаемое название параметра: "Факт продаж"
>> Групповые агрегации (поля таблицы, `buckets`):
>>> *Сотрудник:*
>>> - тип разделения: `Split Rows`
>>> - тип агрегации: `Terms`
>>> - поле агрегации: `crm_form_deal_responsibleManager_responsible_value_sort`
>>> - способ сортировки: `metric: План продаж`
>>> - направление сортировки: `Descending`
>>> - количество отображаемых результатов: 30
>>> - отображаемое название параметра: "Сотрудник"
> Опции диаграммы:
>> количество записей на страницу: 10
6. **Исполнение плана по темам (гистрограмма)**
> Отображает показатели плана и факта продаж в разрезе тем сотрудничества
в виде гистограммы (столбиковой диаграммы, Bar chart). Диаграмма представляет
собой визуализацию данных в таблице **Исполнение плана по темам сотрудничества**.
......@@ -877,7 +1403,7 @@ Synergy.
> - шаблон индекса: `r-crm_registry_deals*`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1`
> - условие на отображаемые данные: `deleted:0 && crm_form_deal_end_key_double:1 && isUser_key_double:1`
> Параметры агрегации:
......@@ -919,6 +1445,6 @@ Synergy.
> Опции диаграммы:
>> раположение столбцов: сгруппированное
>> раположение столбцов: сгруппированное.
......@@ -8,4 +8,5 @@ Synergy CRM содержит набор предустановленных су
<#include "crm_consist/buildin_objects.md">
<#include "crm_consist/marketing.md">
<#include "crm_consist/sales.md">
<#include "crm_consist/sales_OS.md">
<#include "crm_consist/dashboards.md">
## Внешний модуль "Управление продажами" (для ОП) {#sec.sales_OS}
### Общее {#sales_OS.main}
Модуль предназначен для сотрудников и руководителей подразделений,
которые не имеют дочерних подразделений.
Состав и функциональность и внешний вид модуля аналогичны модулю
["Управление продажами"](#sec.sales), за исключением дашборда
["Продуктивность"](#sales.productivity_OS).
### Продуктивность {#sales.productivity_OS}
По нажатию на кнопку "Продуктивность" в модуле "Управление продажами"
открывается [дашбоард Kibana](#dashboards_productivity_OS), который содержит
следующие панели:
* "Сотрудники" - таблица со столбцами:
* "Сотрудник" - значение поля "Пользователь" (crm_form_deal_responsibleManager_responsible)
документа по форме План продаж;
* "Средняя плановая стоимость продаж" - значение рассчитывается как:
> `сумма значений полей "Стоимость продаж" / количество значений полей "Стоимость продаж"`
* "Месяцы" - таблица со столбцами:
* "Месяц" - значение поля "Месяц" (crm_form_deal_order_sales_month)
документа по форме План продаж;
* "Средняя плановая стоимость продаж" - значение рассчитывается как:
> `сумма значений полей "Стоимость продаж" / количество значений полей "Стоимость продаж"`
* "Исполнение плана":
* "План продаж" - сумма значений всех полей "Стоимость продаж"
(crm_form_deal_main2_theme_pvalue_cN) для всех "Сотрудников" (crm_form_deal_responsibleManager_responsible)
всех документов по форме План продаж.
* "Факт продаж" - сумма значений полей "Бюджет" (crm_form_deal_main3_budget)
всех сделок с положительным конечным статусом (crm_dict_dealStatus_end=1).
* "% исполнения плана продаж" - значение рассчитывается как:
> `"Факт продаж" / "План продаж" * 100%`
* "Исполнение плана по темам сотрудничества" - таблица со столбцами:
* "Тема сотрудничества" - значение поля "Тема сотрудничества" (crm_form_deal_main2_theme_cN)
документа по форме План продаж.
* "План продаж" - сумма значений полей "Стоимость продаж" (crm_form_deal_main2_theme_pvalue_cN)
для всех "Сотрудников" (crm_form_deal_responsibleManager_responsible) соответствующей "Темы сотрудничества"
(crm_form_deal_main2_theme_cN) всех документов по форме План продаж.
* "Факт продаж" - сумма значений полей "Бюджет" (crm_form_deal_main3_budget)
всех сделок с положительным конечным статусом (crm_dict_dealStatus_end=1), у
которых в поле "Тема" (crm_form_deal_main2_theme) указана соответствующая "Тема
сотрудничества".
* "Исполнение плана по сотрудникам" - таблица со столбцами:
* "Сотрудник" - значение поля "Сотрудник" (crm_form_deal_responsibleManager_responsible)
документа по форме План продаж.
* "План продаж" - сумма значений полей "Стоимость продаж" (crm_form_deal_main2_theme_pvalue_cN)
для всех "Сотрудников" (crm_form_deal_responsibleManager_responsible) соответствующей "Темы сотрудничества"
(crm_form_deal_main2_theme_cN) всех документов по форме План продаж.
* "Факт продаж" - сумма значений полей "Бюджет" (crm_form_deal_main3_budget)
всех сделок с положительным конечным статусом (crm_dict_dealStatus_end=1), у
которых в поле "Ответственный менеджер" (crm_form_deal_responsibleManager_responsible) указан
соответствующий "Сотрудник".
* "Исполнение плана по темам (гистрограмма)" - стобликовая диаграмма,
в которой:
* ось X - значения полей "Тема сотрудничества" (crm_form_deal_main2_theme_cN)
документа по форме План продаж;
* ось Y - максимальное значение "План продаж" или "Факт продаж".
> Столбцы гистограммы - "План продаж" и "Факт продаж" согласно каждой
"Теме сотрудничества" (crm_form_deal_main2_theme_cN).
......@@ -8,8 +8,7 @@
и "План продаж" (crm_form_deal_main2_theme_pvalue_cN)
по нажатию на кнопку "X" над соответствующим столбцом. При сохранении документа
с удаленным столбцом соответствующий документ индекса
[r-crm_registry_deals_plans_custom](#dashboards_productivity) и
[r-crm_registry_deals_plans_custom_user](#dashboards_productivity) будет удален.
[r-crm_registry_deals_plans_custom](#dashboards_productivity) будет удален.
Имеется возможность добавить столбец, содержащий поля "Тема сотрудничества"
(crm_form_deal_main2_theme_cN) и "План продаж" (crm_form_deal_main2_theme_pvalue_cN)
......@@ -23,8 +22,7 @@
где %N+1% - наибольший порядковый номер компонентов текущего документа + 1.
При сохранении документа с новым столбцом создается новый документ индекса
[r-crm_registry_deals_plans_custom](#dashboards_productivity) и
[r-crm_registry_deals_plans_custom_user](#dashboards_productivity).
[r-crm_registry_deals_plans_custom](#dashboards_productivity).
В режиме чтения кнопки удаления ("Х") и добавления ("+ Добавить столбец")
столбцов не отображаются.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment