Формулировка проблемы: необходима возможность указания целевого значения плана продаж и валидация введенных значений его стоимостей.
Решение: на форму План продаж необходимо добавить компоненты:
Вне динамической таблицы
Поле | Тип компонента | Имя компонента |
---|---|---|
Создающий пользователь |
компонент выбора пользователей |
crm_form_deal_owner_user |
Подразделение создающего пользователя |
компонент выбора подразделений |
crm_owner |
UUID корневой организации |
однострочное поле |
crm_all_accessible |
Поля "Создающий пользователь" и "Подразделение создающего пользователя":
Поля скрыты.
Включены флаги "Заполнять создающим пользователем" и "Заполнять департаментом создающего пользователя".
Поле "UUID корневой организации":
Поле скрыто.
Поле содержит значение по умолчанию 1
.
Заголовок динамической таблицы
Поле | Тип компонента | Имя компонента |
---|---|---|
Целевое значение |
числовое поле |
crm_form_deal_main2_goal_pvalue_cN |
где N - порядковый номер целевого значения (от 1 до 14 включительно).
Требование к полю:
Флаг "Заблокировать от изменений пользователем".
Поле содержит значение из поля "Стоимость продаж" (crm_form_deal_main2_theme_pvalue_cN), у которых совпадают значения:
"Год" (crm_form_deal_order_sales_year);
"Месяц" (crm_form_deal_order_sales_month);
"Тема сотрудничества" (crm_form_deal_main2_theme_cN);
"Отделение" (crm_form_deal_sales_pk1) в таблице текущего документа по форме и "Подразделение создающего пользователя" (crm_owner) другого документа по форме.
При отсутствии документа по форме "План продаж", удовлетворяющего перечисленным требованиям поле остается пустым, плейсхолдер не отображается.
Если имеется несколько документов, удовлетворяющих требованиям, указывается целевое значение последнего измененного документа.
Значения полей актуализируются при каждом открытии документа.
Если сумма значений всех полей "Стоимость продаж" хотя бы одной темы сотрудничества меньше, чем значение ее поля "Целевое значение", то при сохранении такого документа отобразится сообщение об ошибке:
Сумма стоимостей продаж должна быть больше либо равна целевому значению
Весь столбец соответствующей темы сотрудничества подсвечивается красным.
Динамическая таблица
Поле | Тип компонента | Имя компонента |
---|---|---|
Пользователь |
компонент выбора пользователей |
crm_form_deal_responsibleManager_responsible |
Флаг "Обязательное поле" включен.
Требования к полям "Отделение" и "Пользователь":
Один из столбцов всегда скрыт:
если подразделение создающего пользователя имеет дочерние подразделения, то скрыт столбец "Пользователь";
если подразделение создающего пользователя не имеет дочерние подразделения, то скрыт столбец "Отделение".
Заголовок "Отделение" или "Пользователь" выровнен по вертикали по центру.
Документ индекса для плана продаж пользователей
Необходимо доработать существующий индекс
r-crm_registry_deals_plans_custom
для учета плана
продаж пользователей следующим образом:
В каждый документ индекса добавлены поля:
все поля вне динамической таблицы:
"Создающий пользователь";
"Подразделение создающего пользователя";
и другие поля, если они будут добавлены на форму.
компоненты выбора пользователей "Пользователь" - в
поле
crm_form_deal_responsibleManager_responsible
флаг isUser
:
флаг содержит значение 1
, если поле
"Отделение"
crm_form_deal_sales_pk1
пусто;
флаг содержит значение 0
, если поле
"Отделение"
crm_form_deal_sales_pk1
заполнено.
Если поле "Пользователь"
crm_form_deal_responsibleManager_responsible
на форме не заполнено, то в индексе для него записано значение
""
(пустое поле).
Если поле "Отделение"
crm_form_deal_sales_pk1
на форме не
заполнено, то в индексе для него записано значение
""
(пустое поле).
Доработка формы "Сделка" для обеспечения формирования исполнения плана продаж по сотрудникам
На форму "Сделка" добавлен новый компонент:
Поле | Тип компонента | Имя компонента |
---|---|---|
isUser |
выбор вариантов |
isUser |
Требования к полю:
Поле имеет два варианта: 1
и
0
.
По умолчанию выбраны оба варианта.
Поле скрыто.