Деталка субагента#
Интерфейс#
Ссылка возврата на список субагентов#
Аналогично ссылке возврата в деталке клиента
Мэппинг полей#
- Статус
- Атрибут объекта
subagent.status
- Недоступно для редактирования.
- Название
- Атрибут объекта
subagent.fullNameEnglish
- Обязательно к заполнению.
- Максимальная длина 500 символов
- Разрешены для ввода любые символы кроме кириллицы
- Агенты
- Атрибут объекта
subagent.agents
- Мультиселект
- выбор из списка активных агентов
- В выпадашке отображаются
agent.fullName - Обязательно к заполнению, должен быть выбран хотя бы один агент
Предельное значение ставки#
| Поле таблицы | Атрибут объекта |
|---|---|
| Валюта | subagent.costs[].currency |
| Сумма от | subagent.costs[].minAmount |
| Сумма до | subagent.costs[].maxAmount |
| Ставка | subagent.costs[].percent |
Если нет строк таблицы и у пользователя нет права на добавление,
вся группа Предельное значение ставки вместе с заголовком скрывается
Сортировка по полям Валюта (по алфавиту) , потом по Сумма от (по возрастанию)
Добавление предельного значения ставки#
- Кнопка
+ Добавить- отображается пользователю с правом CREATE_SUBAGENT
- активна в режимах просмотра и редактирования субагента
- неактивна, если субагент заблокирован
- При нажатии на кнопку
+ Добавить, открывается модальное окно с полями для ввода - модалка не закрывается по клику на фон (только крестиком или кнопками
Отменить,Добавить)
- Валюта
- Атрибут объекта:
subagent.costs[].currency
- обязательное
- выбор из локального справочника валют:
- первыми в списке отображаются EUR,USD,CNY,CHF,GBP,AED,CAD,HKD, потом все остальные в алфавитном порядке
- пользователь вводит код валюты или его часть
- система показывает список валют у которых введенное значение входит в код валюты
- пользователь выбирает из предложенного списка нужную
- система отображает в поле код выбранной валюты (3 символа)
- если значение указано, очистить его нельзя
- Сумма от
- Атрибут объекта:
subagent.costs[].minAmount
- обязательное
- инпут
- число
- минимальное значение - 0,01
-
максимальное значение - 99 999 999 999,99
-
разделитель групп разрядов - пробел
- десятичный разделитель - запятая
- 2 знака дробной части отображаются всегда:
- если пользователь вводит целое число, система добавляет в поле
,00. Например: введено123456, отображается123 456,00 - если пользователь вводит число одним заком поле запятой, система добавляет
0. Например: введено123456,3, отображается123 456,30 - если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено
123456.3, отображается123 456,30 - Ссылка на пример (в примере нет добавления
,00)
- если пользователь вводит целое число, система добавляет в поле
- при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
- не может быть больше "Суммы до"
- Сумма до
- Атрибут объекта:
subagent.costs[].maxAmount
- обязательное
- инпут
- число
- минимальное значение - 0,01
- максимальное значение - 99 999 999 999,99
- разделитель групп разрядов - пробел
- десятичный разделитель - запятая
- 2 знака дробной части отображаются всегда:
- если пользователь вводит целое число, система добавляет в поле
,00. Например: введено123456, отображается123 456,00 - если пользователь вводит число одним заком поле запятой, система добавляет
0. Например: введено123456,3, отображается123 456,30 - если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено
123456.3, отображается123 456,30 - Ссылка на пример (в примере нет добавления
,00)
- если пользователь вводит целое число, система добавляет в поле
- при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
- Ставка
- Атрибут объекта:
subagent.costs[].percent
-
значение
- обязательное
- инпут
- число
- минимальное значение - 0,0000
- максимальное значение - 100
# Обработка исполнителем новой заявки
## Пользователи процесса - CONTRACTOR - CUSTOMER - OBSERVER - COMPLIANCE - PARTNER
## Предусловия - Заявка отправлена исполнителю на рассмотрение (Статус заявки = NEW) - У пользователя роли CONTRACTOR есть право VIEW_ORDER_ALL - У пользователя ролей CUSTOMER есть право VIEW_ORDER - У пользователя ролей OBSERVER, COMPLIANCE есть право VIEW_ORDER_ALL - У пользователя ролей PARTNER есть право VIEW_ORDER
## Точки входа - По ссылке из письма - Выбрал заявку в статусе NEW из списка заявок
## Варианты завершения - Заявка возвращена клиенту на доработку (Статус заявки = CUSTOMER_ADJUSTMENT) - Заявка привязана к договору (заполнен агент, присвоен номер), заявка отправлена на согласование агенту
статус заявки = AGENT_APPROVAL)## Процесс { id="process" }
### Общий вид { id="process_bpmn" }
Верхнеуровневый процесс обработки новой заявки исполнителем
# Шаг 1. Исполнитель открывает заявку, проверяет её 1.1 Если к заявке есть замечания, Исполнитель пишет их и отправляет на доработку клиенту. Конец сценария. 2. Исполнитель привязывает заявку к договору 3. Исполнитель отправляет заявку на согласование агенту ## Особенности процесса { id="process_specificity" }
- Пользователь с правом VIEW_ORDER видят только "свои" заявки, у которых
order.document.userEmployeeилиorder.document.userCustomerсовпадает сuser.id- с ролью PARTNER видит только заявки "своих" клиентов (у которых в карточке указан тот же партнёр, с которым связан пользователь-партнёр)
- Пользователь с правом VIEW_ORDER_ALL видят все заявки
- Внешний вид формы аналогичен форме процесса создания заявки, отличия описаны в разделе Особенности статуса NEW
- В зависимости от роли у пользователя отличаются доступные действия в заявке. Описаны в разделе Особенности статуса NEW
- При открытии заявки пользователем, заявка открывается в режиме просмотра.
- Для перехода в режим редактирования пользователь нажимает кнопку
Редактировать. Кнопка отображается Исполнителю. - В режиме редактирования система позволяет редактировать исполнителя только поле
Договор. Все остальные поля исполнитель редактировать не может. - Работа с вложениями (просмотреть, скачать) доступна без перехода в режим редактирования.
!!! info "Особенности сабмита формы" - пользователь может сохранить заявку, даже если он не заполнил все обязательные поля - при сохранении (и, опосредованно, при отправке, так как отправка тригерит сохранение) валидируются заполненные поля на соответстиве типам и паттернам. - при отрпавке заявки проверяется заполнены ли все обязательные поля --- - нельзя сохранить заявку, если в ней есть заполненные поля, чьё содержимое не отвечает требованиям - можно сохранить заявку, если в ней не заполнены обязательные поля - нельзя отправить заявку, если в ней не заполнены обязательные поля
## Интерфейс { id="ui" }
### Особенности статуса NEW { id="difference" }
в хинте статуса заявки отображается подсказка
Агент заполняет заявку и отправляет клиенту на согласованиеВ зависимости от роли отличаются доступные действия и кнопки в заявке:
Видимость кнопок описана в import_order.json:
- Кнопка
Редактировать- отображается исполнителю - Кнопка
Закрыть заявку- отображается исполнителю, клиенту - Кнопка
Отправить агенту- отображается исполнителю - Кнопка
Вернуть клиенту на доработку- отображается исполнителю
### Заголовок и номер заявки { id="header" }
В зависимости от типа заявки заголовок: - `Импортная заявка` - `Экспортная заявка`Если заявке уже присвоен номер, то к заголовку добавляется
№{order.document.number}Номер присваивается при сохранении если указан договор.
### Поля заявки { id="fields" }
Отображаются все поля заявки, которые описаны в процессе создания заявки. Поля заполненные клиентом недоступны для редактирования.
Поля для заполнения Исполнителем:
#### Группа полей
Маршрут{ id="fields_route" }- Договор
- Атрибут объекта
order.contract
- обязательное
- текст ошибки, если выбран не подписанный договор:
Договр должен быть подписан - выбор из списка договоров:
- в списке первой строкой отображается ссылка
Создать новый договор.- При нажатии инициализируется процесс создания нового договора
- В процессе создания нового договора (до перехода к его деталке), на кнопке крутится лоадер, кнопка
Создать новый договори форма заявки блокируются.
- в списке отображаются только активные договора с клиентом, от которого поступила заявка и имеющие такой же
document.directionкак и у заявки:contract.statusnot in (CLOSED,CANCELLED),contract.doocument.customer==order.doocument.customercontract.document.direction==order.document.direction
- если есть связанные с договором неподписанные доп. соглашения (не в статусах SIGNED, CANCELLED), отображается красная надпись
Есть неподписанные доп. соглашения. Наличие неподписанных доп. соглашений в договоре не блокирует процессы заявки. - пользователь вводит номер договора или его часть
- система показывает список договоров у которых введенное значение входит в номер договора
- для каждого договора отображается:
Номер договораиАгентесли они заданы в договоре- Если номер и агент не заданы (возможно в статусе договора Draft), то вместо номера отображается название статуса
Черновики прочерк вместо агента. - текущий статус договора
- пользователь выбирает из предложенного списка нужный договор
- Если выбран договор с номером и агентом, система отображает в поле номер договора, под полем название Агента из договора
- Если выбран договор без номера и агента, система отображает в поле название статуса "Черновик", под полем - пусто.
- в списке первой строкой отображается ссылка
- При изменении значения поля пользователем, система:
- заполняет субагента, плательщика и его счет
- заполняет Комиссию или Накладные расходы из базовой или индивидуальной ставки
- заполняет или очищает ссылки на использованный запрос индивидуальных или набор базовых ставок
- заполняет курс и его срок:
- находит курс агента из договора, у которого
firstCurrency = order.currencyCounterpartyиsecondCurrency = order.currencyCustomer- если курс найден, подставляет его значение
exchangeRateв заявкуorder.commission.exchangeRate, и заполняет срок курсаorder.commission.exchangeRateNotValidAfterкак при изменении курса вручную пользователем - если курс не найден, оставляет курс и его срок пустыми`
- если курс найден, подставляет его значение
- находит курс агента из договора, у которого
- При очистке значения поля
Договор, система очищает поля:- субагент,
- плательщик,
- Счет плательщика
- Ставка,
- Накладные расходы,
- Курс,
- Срок действия курса
- Поведение системы в зависимости от результата подбора субагента, плательщика, счета плательщика
- см. набор макетов работы поля
Другие поля группы: см. описание полей в Обработка агентом новой заявки: - отображаются исполнителю в заявке, но недоступны для изменения в статусе NEW, - не отображаются клиенту
#### Группа полей
Агентское вознаграждение{ id="commission" }Поля группы: см. описание полей в Обработка агентом новой заявки:
- отображаются в заявке всем пользователям, кроме COSTOMER , недоступны для изменения
### Итоговая информация по заявке { id="summary" }
См. описание работы блока итоговой информации
## Скачивание заявки в "Excel" { id="export_to_excel" } - Кнопка
Скачать файл(макет) отображается пользователю с правом EXPORT_ORDER во всех статусах заявки - при нажатии на кнопку - во время формирования файла на кнопке отображается лоадер, кнопка недоступна - если возникает техническая ошибка, над заявкой отображается баннер с технической ошибкой - после завершения формирования файла, файл сохраняется на устройство пользователя - шаблон формируемого файла - название сформированного файла:Order {amountCounterparty} {currencyCounterparty}.xlsx-amountCounterparty- сумма в формате NNN NNN,NN (разделители разрядов пробелы, отделитель десятичной части - запятая) -currencyCounterparty- код валюты alfa-3## Просмотр и редактирование заявки { id="view_edit_mode" }
### Режим просмотра заявки { id="view_mode" }
- В режиме просмотра все поля недоступны для редактирования.
- кнопка
Редактироватьотображается только Исполнителю - При нажатии на кнопку
Редактироватьзаявка переходит в режим редактирования
### Режим редактирования заявки { id="edit_mode"}
- Доступны для редактирования только поле
Договор(см. в разделе Поля заявки) - Отображаются кнопки
ОтменитьиСохранитьСохранитьстановится доступна только после изменения значения полей заявки.- при нажатии
Сохранитьсистема сохраняет заявку, возвращает форму в режим просмотра - при нажатии
Отменить, система сбрасывает изменения и возвращает форму в режим просмотра.
- При изменении значений полей от которых зависит блок итоговой информации (в т.ч. при автоматическом заполнении при изменении договора), блок пересчитывается и обновляется.
### Сохранение заявки { id="save_order" }
Сохранение заявки выполняется:
- при нажатии пользователем кнопки
Сохранить - перед отправкой заявки исполнителем агенту
При сохранении заявки, система:
- не выполняет проверку обязательности полей и наличия обязательных вложений
- выполняет проверку на соответствие типам и паттернам.
Соответствие полей формы схемам document и document-order описаны в разделе поля заявки
Кроме полей, введённых пользователем и заполненных системой при изменении договора, система сохраняет:
order.document.userEmployee- пользователь, изменивший заявкуorder.document.changedAt- текущие дата времяorder.document.exchangeRate:- если в заявке валюты
order.currencyCounterpartyиorder.amountCounterpartyравны, то значение всегда 1 - если валюты не равные, то значение не заполняется системой
- если в заявке валюты
order.document.number:- обновляется только если был изменен договор
- имеет формат
{номер договора}_{номер заявки} - найти максимальный номер заявки из всех привязанных к этому же договору, увеличить номер на 1.
- при перевыборе одного и того же договора повторно несколько раз подряд, номер заявки не увеличивается
- если указанный договор имеет статус SIGNED, номер присваивается. При других статусах договора - номер заявки очищается.
После сохранения заявки система:
- обновляет заголовок (добавляет номер)
- переводит заявку в режим просмотра
- показывает сообщение:
## Документы { id="documents" }
### Доступные функции при работе с документами в статусе NEW { id="documents_status_role" }
Просмотр и скачивание всех вложений, которые клиент прикрепил на этапе создания заявки доступно всем пользователям, которые могут просмотреть заявку
## Отправка заявки на согласование агенту { id="send_to_signing" }
# Шаг 1. Исполнитель нажимает кнопку отправки заявки 2. Система делает недоступными все поля, кнопки и ссылки на форме, на всех закладках. Показывает лоадер на кнопке 3. Система проверят формат полей 2а. Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса. 3. Система сохраняет заявку в БД 4. Система проверят заполнение обязательных полей 4а. Если есть ошибки, система подсвечивает поля с ошибками. Конец процесса. 5. Система обновляет поля заявки и статус на AGENT_APPROVAL 6. Система отправляет сообщение на почту агенту 7. Система закрывает заявку, показывает список заявок и сообщение об успешной отправке ### Проверка перед отправкой { id="validate_send" }
Перед отправкой система выполняет проверку:
- формата и обязательность значений соответствуют описанию полей в разделе поля заявки
- Договор в Статусе SIGNED
Если обнаружены ошибки:
- система показывает тултип на кнопке отправки:
Подпишите и заполните договор - форма переходит в режим редактирования (если она еще не в нем), подсвечиваются незаполненные поля. Пользователя перекидывает на вкладку «Параметры»
- Если договор не в статусе SIGNED, поле так же подсвечивается красным, как для незаполненных обязательных полей
### Обновление полей заявки при отправке { id="send_update" }
При отправке заявки исполнителю система записывает в заявку значения:
order.status- AGENT_APPROVALorder.verifiedAt- текущие дата и времяdocument.changedAt- текущие дата и время
### Отправка сообщения на E-mail исполнителя { id="send_mail" }
Система отправляет сообщение всем активным пользователям с ролью AGENT агента, указанного в договоре
contract.document.agent:,!!! note "Полный набор макетов" Все макеты и состояния по ссылке Макеты Figma: Заявка у исполнителя
Кнопка Отменить
- Активна всегда
- При нажатии пользователем на кнопку, система:
- закрывает окно без дополнительных подтверждений
- предельное значение ставки не сохраняется в БД
Кнопка Добавить
- Активна если заполнены вся поля
- При нажатии пользователем на кнопку, система:
- выполняет проверку что
Сумма от<=Сумма до, если проверка не выполняется:- под
Сумма ототображается ошибкаПервая сумма не может быть больше второй - окно не закрывается, предельное значение ставки не сохраняется
- под
- закрывает окно,
- сохраняет в БД,
- показывает обновленную таблицу,
- выполняет проверку что
Редактирование и удаление Предельного значения ставки#
Пользователь с правом CREATE_SUBAGENT нажимает на строку в таблице Предельного значения ставки (и в режиме редактирования, и в режиме просмотра), Система показывает модалку редактирования строки:
- модалка открывается, если субагент не заблокирован
- поля аналогичны полям при добавлении Предельного значения ставки,
- заполнены ранее сохраненными значениями,
- все доступны для редактирования
- модалка не закрывается по клику на фон (только крестиком или кнопками
Отменить,Сохранить)
Кнопка Удалить
- активна всегда
- При нажатии пользователем на кнопку, система:
- закрывает окно без дополнительных подтверждений
- удаляет строку из БД
- закрывает модалку
- показывает обновленную таблицу
Кнопка Отменить
- аналогична кнопке
Отменитьпри добавлении Предельного значения ставки
Кнопка Сохранить
- аналогична кнопке
Добавитьпри добавлении Предельного значения ставки
Лимиты#
| Поле таблицы | Атрибут объекта |
|---|---|
| Валюта | subagent.limits[].currency |
| Сумма | subagent.limits[].amount |
Если нет строк таблицы лимитов и у пользователя нет права на добавление,
вся группа Лимиты вместе с заголовком скрывается
Сортировка по полю Валюта (по алфавиту)
Добавление лимита#
- Кнопка
+ Добавить- отображается пользователю с правом CREATE_SUBAGENT
- активна в режимах просмотра и редактирования субагента
- неактивна, если субагент заблокирован
- При нажатии на кнопку
+ Добавить, открывается модальное окно с полями для ввода:
- Валюта
- Атрибут объекта:
subagent.limits[].currency
- обязательное
- выбор из локального справочника валют:
- первыми в списке отображаются EUR,USD,CNY,CHF,GBP,AED,CAD,HKD, потом все остальные в алфавитном порядке
- пользователь вводит код валюты или его часть
- система показывает список валют у которых введенное значение входит в код валюты
- пользователь выбирает из предложенного списка нужную
- система отображает в поле код выбранной валюты (3 символа)
- если значение указано, очистить его нельзя
- уникальное в рамках субагента
- валюты, для которых в таблице лимитов у субагента уже есть запись, в выпадашке неактивны и рядом отображается надпись
Лимит для валюты уже создан - при редактировании лимита поле неактивно (изменить валюту строки лимита нельзя)
- Сумма
- Атрибут объекта:
subagent.limits[].amount
- обязательное
- инпут
- число
- минимальное значение - 0,01
-
максимальное значение - 99 999 999 999,99
-
разделитель групп разрядов - пробел
- десятичный разделитель - запятая
- 2 знака дробной части отображаются всегда:
- если пользователь вводит целое число, система добавляет в поле
,00. Например: введено123456, отображается123 456,00 - если пользователь вводит число одним заком поле запятой, система добавляет
0. Например: введено123456,3, отображается123 456,30 - если пользователь вводит точку для разделения дробной части, система заменяет точку на запятую. Например: введено
123456.3, отображается123 456,30 - Ссылка на пример (в примере нет добавления
,00)
- если пользователь вводит целое число, система добавляет в поле
- при вставке в поле значения из буфера, значение вставляется только если его формат соответствует требованиям
Кнопка Отменить
- Активна всегда
- При нажатии пользователем на кнопку, система:
- закрывает окно без дополнительных подтверждений
- лимит не сохраняется в БД
Кнопка Добавить
- Активна если заполнены вся поля
- При нажатии пользователем на кнопку, система:
- закрывает окно,
- сохраняет в БД,
- показывает обновленную таблицу,
Редактирование и удаление лимита#
Пользователь с правом CREATE_SUBAGENT нажимает на строку в таблице лимитов (и в режиме редактирования, и в режиме просмотра), Система показывает модалку редактирования строки:
- модалка открывается, если субагент не заблокирован
- поля аналогичны полям при добавлении лимита
- поле
Валютанеактивно (изменить валюту строки лимита нельзя)
- поле
- заполнены ранее сохраненными значениями,
- все доступны для редактирования
Кнопка Удалить
- активна всегда
- При нажатии пользователем на кнопку, система:
- закрывает окно без дополнительных подтверждений
- удаляет строку из БД
- закрывает модалку
- показывает обновленную таблицу
Кнопка Отменить
- аналогична кнопке
Отменитьпри добавлении лимита
Кнопка Сохранить
- аналогична кнопке
Добавитьпри добавлении лимита
Получатели/плательщики#
| Поле таблицы | Атрибут объекта |
|---|---|
| Приоритет | subagent.subsidiaries[].priority |
| Название | subagent.subsidiaries[].fullNameEnglish |
| Статус | subagent.subsidiaries[].status |
Если нет строк таблицы Получатели/плательщики и у пользователя нет права на добавление,
вся группа Получатели/плательщики вместе с заголовком скрывается
Сортировка по полю Приоритет (по возрастанию)
Добавление Получателя/плательщика#
- Кнопка
+ Добавить- отображается пользователю с правом CREATE_SUBAGENT
- активна в режимах просмотра и редактирования субагента
- неактивна, если субагент заблокирован
- При нажатии на кнопку
+ Добавить, открывается модальное окно с полями для ввода:- см. Макет
- см. мэппинг полей Получателя/Плательщика
- модалка не закрывается по клику на фон (только крестиком или кнопками
Отменить,Добавить)
Кнопка Отменить
- Активна всегда
- При нажатии пользователем на кнопку:
- закрывает окно без дополнительных подтверждений
- сохраняет Получателя/Плательщика в БД
Кнопка Добавить
- При нажатии пользователем на кнопку, система:
- проверяет обязательные поля. Если есть незаполненные
- подсвечивает такие поля
- окно не закрывает
- плательщика не сохраняет
- проверяет чтоб у субагента не было плательщика с таким же приоритетом. Если уже есть:
- подсвечивает поле
Приоритети показывает под ним сообщениеПриоритет уже добавлен - окно не закрывает
- плательщика не сохраняет
- подсвечивает поле
- закрывает окно,
- сохраняет в БД, При первом сохранении, кроме заполненных пользователем полей, заполняется
status-ACTIVE
- показывает деталку Получателя/плательщика в режиме просмотра
- проверяет обязательные поля. Если есть незаполненные
Просмотр Получателя/плательщика#
Пользователь нажимает на строку в таблице Получатели/Плательщики (и в режиме редактирования, и в режиме просмотра), система открывает деталку получателя/плательщика:
- деталка открывается, если субагент не заблокирован
- деталка открывается в режиме просмотра
Просмотр и редактирование субагента#
Режим просмотра субагента#
Просмотр деталки субагента доступен пользователю с правом VIEW_SUBAGENT_ALL
- Деталка субагента открывается в режиме просмотра:
- по клику на строке в списке субагентов
- поля не доступны для изменения
- Отображаются кнопки
Редактировать(см. режим редактирования субагента})БлокироватьилиРазблокировать(см. режим Блокировка и разблокировка субагента})
Режим редактирования субагента#
Кнопка Редактировать в деталке субагента
- Отображается:
- пользователям с правом CREATE_SUBAGENT
- если статус субагента
subagent.status=ACTIVE - если форма в режиме просмотра
- При нажатии на кнопку:
- становятся доступны для изменения все поля
- отображаются кнопки
ОтменитьиСохранить:
Кнопка Отменить
- Активна всегда
- При нажатии:
- сбрасывает внесенные изменения в поля субагента
- переводит форму в режим просмотра
Кнопка Сохранить
- Активна если изменено хотя бы одно поле
- При нажатии пользователем на кнопку, система:
- в процессе сохранения на кнопке отображает лоадер, все поля и кнопки формы заблокированы
- проверяет обязательные поля, в случае ошибки подсвечивает незаполненные поля
- сохраняет субагент в БД
- переводит форму в режим просмотра
Блокировка и разблокировка субагента#
Кнопка Заблокировать в деталке отображается:
- пользователям с правом CREATE_SUBAGENT
- если статус субагента
subagent.status=ACTIVE - если форма в режиме просмотра
При нажатии на кнопку:
- в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны
- обновляется статус на
subagent.status=INACTIVE - отображается новый статус на форме
- скрывается кнопка
Заблокировать - показывается оповещение
Кнопка Разблокировать отображается:
- пользователям с правом CREATE_SUBAGENT
- если статус субагента
subagent.status=INACTIVE - если форма в режиме просмотра
При нажатии на кнопку:
- в процессе обработки отображается лоадер на кнопке, все поля и кнопки на форме недоступны
- обновляется статус на
subagent.status=ACTIVE, - отображается новый статус на форме
- скрывается кнопка
Разблокировать - показывается оповещение
