Деталка партнера#
Ссылка возврата на список партнеров#
Аналогично ссылке возврата в деталке клиента
Закладка "Информация"#
Мэппинг полей#
На закладке отображается информация о партнере.
- Статус
- Атрибут объекта
partner.status
- Недоступно для редактирования.
- Название
- Атрибут объекта
partner.name
- Обязательно к заполнению.
- Максимальная длина 500 символов
- Разрешены для ввода любые символы
- Уникальное. Текст ошибки, если при сохранении проверка на уникальность не выполняется:
Партнёр уже добавлен
Просмотр и редактирование партнера#
Режим просмотра партнера#
Просмотр деталки партнера доступен пользователю с правом VIEW_PARTNER_ALL
- Деталка партнера открывается в режиме просмотра:
- по клику на строке в списке партнеров
- поля не доступны для изменения
- Активна закладка
Информация - Отображаются кнопки:
Редактировать(см. режим редактирования партнера})БлокироватьилиРазблокировать(см. Блокировка и разблокировка партнера})
Режим редактирования партнера#
Кнопка Редактировать в деталке партнера
- Отображается:
- пользователям с правом CREATE_PARTNER
- если статус
partner.status=ACTIVE - если форма в режиме просмотра
- При нажатии на кнопку:
- становятся доступны для изменения все поля
- отображаются кнопки
ОтменитьиСохранить:
Кнопка Отменить
- Активна всегда
- При нажатии:
- сбрасывает внесенные изменения в поля партнера
- переводит форму в режим просмотра
Кнопка Сохранить
- Активна если изменено хотя бы одно поле
- При нажатии пользователем на кнопку, система:
- в процессе сохранения на кнопке отображает лоадер, все поля и кнопки формы заблокированы
- выполняет проверки как при добавлении партнера
- сохраняет партнера в БД
- обновляет
user.name=partner.nameу всех привязанных пользователей партнера - создает событие аудита PARTNER_EDITED
- переводит форму в режим просмотра
Блокировка и разблокировка партнера#
Кнопка Заблокировать в деталке отображается:
- пользователям с правом CREATE_PARTNER
- если статус
partner.status=ACTIVE - если форма в режиме просмотра
При нажатии на кнопку:
- в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны (на всех вкладках)
- обновляется статус на
partner.status=INACTIVE - создаетсяя событие аудита PARTNER_BLOCKED
- отображается новый статус на форме
- блокируются все привязанные к партнеру пользователи (с записью о их блокировке в события аудита)
- скрывается кнопка
Заблокировать - показывается оповещение
Кнопка Разблокировать отображается:
- пользователям с правом CREATE_PARTNER
- если статус
partner.status=INACTIVE - если форма в режиме просмотра
При нажатии на кнопку:
- в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны (на всех вкладках)
- обновляется статус на
partner.status=ACTIVE, - создаетсяя событие аудита PARTNER_UNBLOCKED
- отображается новый статус на форме
- разблокируются все привязанные к партнеру пользователи (с записью о их разблокировке в события аудита)
- скрывается кнопка
Разблокировать - показывается оповещение
Закладка "Пользователи"#
Мэппинг полей#
На закладке отображается информация о пользователях партнера:
| Поле таблицы | Атрибут объекта |
|---|---|
user.email |
|
| Телефон | user.phone |
| Статус | user.status |
Сортировка по полю E-mail (по алфавиту).
Отображается списком без пагинации
Если у пользователя нет прав на добавление CREATE_PARTNER и в таблице нет записей,
то пустая закладка Пользователи не отображается макет
Добавление пользователя#
Можно пригласить нового пользователя или прикрепить незаблокированного существующего, который не привязан ни к одному партнеру/клиенту/агенту/пользователю
- Кнопка
+ Добавить- отображается пользователю с правом CREATE_PARTNER
- активна в режимах просмотра и редактирования партнера
- неактивна, если партнер заблокирован
- При нажатии на кнопку
+ Добавить, открывается модальное окно с полями для ввода - модалка не закрывается по клику на фон (только крестиком или кнопками
Отменить,Добавить)
- Атрибут объекта:
user.email
- Обязательное
- Максимальная длина 256 символов
- при вводе e-mail (потеря фокуса поля), если введен валидный e-mail, система выполняет проверку, существует ли уже пользователь с таким e-mail:
- Во время обработки все поля и кнопки формы неактивны.
- если существует:
- в поле Телефон отображается номер найденного пользователя
- поле Телефон становится недоступным для изменения
- Телефон
- Атрибут объекта:
user.phone
- Обязательно к заполнению.
- Маска ввода номера мобильного телефона РФ
+7 9XX XXX-XX-XX
Если пользователь вставляет номер телефона из буфера (copy-past), система вставляет только 9 цифр справа.
- Фамилия
- Атрибут объекта:
user.lastName
- Необязательно к заполнению.
- Максимальная длина: 50 символов.
- Маска ввода: русские и латинские буквы, пробелы, дефисы.
- Имя
- Атрибут объекта:
user.firstName
- Необязательно к заполнению.
- Максимальная длина: 50 символов.
- Маска ввода: русские и латинские буквы, пробелы, дефисы.
- Отчество
- Атрибут объекта:
user.patronymic
- Необязательно к заполнению.
- Максимальная длина: 50 символов.
- Маска ввода: русские и латинские буквы, пробелы, дефисы.
Кнопка Отменить
- Активна всегда
- При нажатии пользователем на кнопку, система:
- закрывает окно без дополнительных подтверждений
- запись не сохраняется в БД
Кнопка Добавить
- Активна если заполнены вся поля
- При нажатии пользователем на кнопку, система:
- выполняет проверки
- если проверки не выполнены, запись не сохраняется, под полем
E-mailотображается сообщение (см. в описании проверок).
- если проверки не выполнены, запись не сохраняется, под полем
- закрывает окно
- сохраняет в БД
- отправляет письмо на почту пользователю
- создает запись в журнале событий
- показывает обновленную таблицу
- выполняет проверки
Проверки при сохранении пользователя#
1.К партнеру можно добавить:
- нового пользователя (пользователя с таким e-mail не существует в системе)
- существующего пользователя, который не привязан к какому-либо партнеру/клиенту/агенту/сотруднику.
Если условия не выполняются, под полем E-mail отображается сообщение об ошибке: Пользователь уже приглашён
2.Если пользователь существует, не привязан к какому-либо партнеру/клиенту/агенту/сотруднику, то он не должен быть заблокирован.
Если условия не выполняются, под полем E-mail отображается сообщение об ошибке: Пользователь заблокирован
3.E-mail должен соответствовать паттерну указанному в модели,
Если не соответствует, под полем E-mail отображается сообщение об ошибке: Некорректный e-mail
4.Телефон должен соответствовать маске (см описание поля)
Если не соответствует, под полем Телефон отображается сообщение об ошибке: Некорректный номер
Сохранение пользователя#
- Если привязывается существующий пользователь к партнеру, то система обновляет привязанного пользователя в БД.
- Если создается новый, то создает нового в БД и в Keycloak
кроме указанных на форме значений, система сохраняет:
user.type=PARTNERuser.role=PARTNERuser.status=- если добавлен новый пользователь -
INVITED, - если добавлен существующий - оставляет без изменений
- если добавлен новый пользователь -
user.parnter= ссылка на партнера к которому привязывается пользовательuser.name=partner.name
Отправка письма пользователю#
- Если добавлен новый пользователь или существующий, который ешё не принял приглашение
- Если добавлен существующий
Журнал событий#
Система создает события аудита:
- USER_INVITED - при добавлении нового пользователя
- USER_LINKED - при привязке существующего пользователя
Отвязывание пользователя#
Кнопка отвязывания в строках пользователей:
- отображается пользователю с правом CREATE_PARTNER
- неактивна, если партнер заблокирован
- при наведении курсора отображается подсказка
Отвязать пользователя - При нажатии пользователем, система:
- отображает диалоговое окно для подтверждения пользователем (макет)
- если пользователь отказался, диалоговое окно закрывается без изменений.
- система отвязывает пользователя от партнера
user.parnter=null - создает событие журнала аудита USER_UNLINKED
- показывает обновленный список пользователей партнера
- отображает диалоговое окно для подтверждения пользователем (макет)