Перейти к содержанию

Статусная модель запроса на индивидуальные ставки от партнера#

JSON статусной модели individual_rate_set_partner.json

individual_rates_partner.png

Статусы#

DRAFT#

DRAFT
Отображаемое название: Черновик
Свойство Значение
Хинт при наведении курсора на статус Черновик доступен только партнёру. Для отправки заполните поля, и нажмите “Отправить на проверку исполнителю”.
Кто видит запрос Пользователь с ролю PARTNER
Кто видит кнопку Редактировать и может изменять запрос Пользователь с ролю PARTNER
Поля которые можно редактировать в этом статусе 1. все поля, кроме поля Партнёр
2. строки запроса (создать, удалить, изменить)
Куда можно перейти CONTRACTOR_VERIFICATION (описание перехода)
  • Перед сохранением запроса в статусе DRAFT, система выполняет проверку:

    • Дата начала: не может быть больше чем Дата окончания. Если проверка не выполняется:
      • подсвечивает поле Дата начала
      • под полем Дата начала отображает сообщение: см. описание поля
    • Дата начала: не может быть меньше текущей даты. Если проверка не выполняется:
      • подсвечивает поле Дата начала
      • под полем Дата начала отображает сообщение: см. описание поля
    • Количество платежей в месяц: должно быть в интервале от 1 до 1000. Если проверка не выполняется:
      • подсвечивает поле Количество платежей в месяц
      • под полем Количество платежей в месяц отображает сообщение: см. описание поля
    • Совокупный объём в месяц: должно быть > 0. Если проверка не выполняется:
      • подсвечивает поле Совокупный объём в месяц
    • Дата окончания: если заполнена, не может быть меньше чем Дата начала. Если проверка не выполняется:
      • подсвечивает поле Дата окончания
      • под полем Дата окончания отображает сообщение: см. описание поля
    • Дата окончания: если заполнена, не может быть меньше текущей даты. Если проверка не выполняется:
      • подсвечивает поле Дата окончания
      • под полем Дата окончания отображает сообщение: см. описание поля
  • Добавление, изменение, удаление, строк работает аналогично как при создании запроса партнером

CONTRACTOR_VERIFICATION#

CONTRACTOR_VERIFICATION
Отображаемое название: Проверка исполнителем
Свойство Значение
Хинт при наведении курсора на статус Исполнитель проверят запрос
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Пользователь с ролю CONTRACTOR
Поля которые можно редактировать в этом статусе Поле Комментарий
Куда можно перейти AGENT_APPROVAL (описание перехода)
REJECTED (описание перехода)
  • Перед сохранением запроса в статусе CONTRACTOR_VERIFICATION система не выполняет проверок.

AGENT_APPROVAL#

AGENT_APPROVAL
Отображаемое название: Согласование агентом
Свойство Значение
Хинт при наведении курсора на статус Агент согласовывает запрос
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Пользователь с ролю AGENT
Поля которые можно редактировать в этом статусе 1. Дата окончания
2. строки запроса (создать, удалить, изменить)
Куда можно перейти APPROVED (описание перехода)
REJECTED (описание перехода)
  • Добавление, изменение, удаление, строк работает аналогично как при создании запроса партнером

  • Перед сохранением запроса в статусе AGENT_APPROVAL, система выполняет проверку:

    • Дата окончания: если заполнена, не может быть меньше чем Дата начала. Если проверка не выполняется:
      • подсвечивает поле Дата окончания
      • под полем Дата окончания отображает сообщение: см. описание поля
    • Дата окончания: если заполнена, не может быть меньше текущей даты. Если проверка не выполняется:
      • подсвечивает поле Дата окончания
      • под полем Дата окончания отображает сообщение: см. описание поля
  • При сохранении запроса в статусе AGENT_APPROVAL:
    • если пользователь внес изменения в строки заявки,
      • система сохраняет признак individualRateSet.isChangedByAgent = true

APPROVED#

APPROVED
Отображаемое название: Согласован

Условие отображения статуса:

  • для запросов на Все заявки (scope == ALL_ORDERS) если:
    • Cтатус = APPROVED и
    • Дата начала > текущей даты
  • для запросов на одну заявку (scope == ONE_ORDER) если:
    • статус = APPROVED
Свойство Значение
Хинт при наведении курсора на статус Запрос согласован
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

REJECTED#

REJECTED
Отображаемое название: Отклонен
Свойство Значение
Хинт при наведении курсора на статус Запрос отклонен
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

Если в запросе заполнено individualRateSet.notApprovalComment отображается блок с комментарием

ACTIVE#

ACTIVE
Отображаемое название: Активен

Условие отображения статуса:

  • для запросов на Все заявки (scope == ALL_ORDERS) если:
    • статус = APPROVED и
    • Дата начала <= текущей даты и
    • Дата окончания => текущей даты или Дата окончания не указана
  • для запросов на одну заявку (scope == ONE_ORDER) если:
    • не может быть в таком статусе
Свойство Значение
Хинт при наведении курсора на статус Действующие ставки
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

EXPIRED#

EXPIRED
Отображаемое название: Срок действия истёк

Условие отображения статуса:

  • для запросов на Все заявки (scope == ALL_ORDERS) если:
    • статус = APPROVED и
    • Дата окончания < текущей даты
  • для запросов на одну заявку (scope == ONE_ORDER) если:
    • не может быть в таком статусе
Свойство Значение
Хинт при наведении курсора на статус Срок действия запроса истёк
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

REDEEMED#

REDEEMED
Отображаемое название: Использован в заявке
Свойство Значение
Хинт при наведении курсора на статус Индивидуальная ставка была применена к заявке
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

CANCELLED#

CANCELLED
Отображаемое название: Аннулирован
Свойство Значение
Хинт при наведении курсора на статус Запрос аннулирован
Кто видит запрос Пользователь с любой из ролей: PARTNER, CONTRACTOR, OBSERVER, COMPLIANCE, AGENT
PARTNER - только свои запросы (в которых указан в individualRateSet.partner)
AGENT - только свои запросы (в которых указан в individualRateSet.agent)
CONTRACTOR, OBSERVER, COMPLIANCE - видят все запросы
Кто видит кнопку Редактировать и может изменять запрос Никто ничего не может изменить
Поля которые можно редактировать в этом статусе Никто ничего не может изменить
Куда можно перейти Переходы отсутствуют

Переходы#

DRAFT-CONTRACTOR_VERIFICATION#

  • Макет
  • Кнопка перехода в статус CONTRACTOR_VERIFICATION:
    • отображается в форме создания и в статусе DRAFT
    • вид отображения кнопки - первичная (закрашенная синим)
    • название кнопки Отправить на проверку исполнителю
  • при нажатии пользователем на кнопку, система:
    • выполняет контроль формата данных в полях (см. описание статуса DRAFT)
      • если проверка не выполняется, на кнопке отправки показывает тултип Заполните обязательные поля
    • выполняет проверки:
      • должны быть заполнены обязательные поля (Агент, Клиент, Совокупный объем в месяц, Валюта, Количество платежей в месяц, Страны банков получателей, Валюты конечных платежей), если проверка не выполняется:
        • переводит форму в режим редактирования (если ещё не в нём)
        • подсвечивают незаполненные поля
        • на кнопке отправки показывает тултип Заполните обязательные поля
      • Для запросов на Все заявки (scope == ALL_ORDERS) должно быть заполнено обязательное поля Дата начала, если проверка не выполняется:
        • переводит форму в режим редактирования (если ещё не в нём)
        • подсвечивают незаполненные поля
        • на кнопке отправки показывает тултип Заполните обязательные поля
      • в запросе есть хотя бы одна строка со ставками, если проверка не выполняется:
        • переводит форму в режим редактирования (если ещё не в нём)
        • в блоке строк отображает сообщение Добавьте хотя бы одну строку
        • на кнопке отправки показывает тултип Заполните обязательные поля
    • Для запросов на Все заявки (scope == ALL_ORDERS) выполняет проверку:
      • существуют ли запросы, которые необходимо аннулировать (должны выполняться все указанные условия):
        • с таким же клиентом individualRateSet.customer
        • с таким же агентом individualRateSet.agent
        • с такой же областью действия individualRateSet.scope
        • с таким же партнером individualRateSet.partner
        • в статусе из списка: CONTRACTOR_VERIFICATION, AGENT_APPROVAL, APPROVED, ACTIVE
        • пересекаются интервалы дат с отправляемым запросом (при поиске пересечения учитывается: если дата окончания не указана, то запрос действует бессрочно)
      • Если такие запросы существуют, система показывает диалоговое окно:
        • макет
        • можно закрыть крестиком или кликом на фоне
        • Кнопка Отмена:
          • доступна всегда
          • при нажатии на кнопку, система закрывает диалоговое окно, статус заявки не меняет, Конец сценария.
        • Кнопка Аннулировать:
          • доступна всегда
          • при нажатии пользователем, система обновляет статус всех найденных пересекающиеся запросов индивидуальных ставок individualRateSet.status = CANCELLED.
    • сохраняет запрос
    • меняет статус на CONTRACTOR_VERIFICATION
    • закрывает форму запроса
    • показывает таблицу с обновленными запросами индивидуальных ставок
    • показывает оповещение Запрос индивидуальных ставок отправлен
    • отправляет на почту сообщение исполнителю

CONTRACTOR_VERIFICATION-AGENT_APPROVAL#

  • Макет
  • Кнопка перехода в статус AGENT_APPROVAL:
    • отображается в статусе CONTRACTOR_VERIFICATION пользователю с ролью CONTRACTOR
    • вид отображения кнопки - первичная (закрашенная синим)
    • название кнопки Отправить на согласование агенту
  • при нажатии пользователем на кнопку, система:
    • не выполняет контроль формата данных в полях
    • сохраняет запрос
    • меняет статус на AGENT_APPROVAL
    • закрывает форму запроса
    • показывает таблицу с обновленными запросами индивидуальных ставок
    • показывает оповещение Запрос индивидуальных ставок отправлен
    • отправляет на почту сообщение агенту

CONTRACTOR_VERIFICATION-REJECTED#

  • Макет
  • Кнопка перехода в статус REJECTED:
    • отображается в статусе CONTRACTOR_VERIFICATION пользователю с ролью CONTRACTOR
    • вид отображения кнопки - красная
    • название кнопки Отклонить
  • при нажатии пользователем на кнопку, система:
    • показывает диалоговое окно подтверждения

Окно подтверждения:

  • Можно закрыть крестиком или кликом на фон
  • Кнопка Отменить:
    • доступна всегда
    • при нажатии пользователем на кнопку, система закрывает диалоговое окно, конец сценария.
  • Кнопка Подтвердить:
    • доступна всегда
    • при нажатии пользователем на кнопку, система:
      • не выполняет контроль формата данных в полях
      • сохраняет запрос
      • меняет статус на REJECTED
      • закрывает форму запроса
      • показывает таблицу с обновленными запросами индивидуальных ставок
      • показывает оповещение Запрос индивидуальных ставок отклонён
      • отправляет на почту сообщение партнеру

AGENT_APPROVAL-APPROVED#

  • Макет
  • Кнопка перехода в статус APPROVED:
    • отображается в статусе AGENT_APPROVAL пользователю с ролью AGENT
    • вид отображения кнопки - первичная (закрашенная синим)
    • название кнопки Согласовать
  • при нажатии пользователем на кнопку, система:
    • выполняет контроль формата данных в полях (см. описание статуса AGENT_APPROVAL)
      • если проверка не выполняется, на кнопке отправки показывает тултип Заполните обязательные поля
    • выполняет проверки:
      • в запросе есть хотя бы одна строка со ставками, если проверка не выполняется:
        • переводит форму в режим редактирования (если ещё не в нём)
        • в блоке строк отображает сообщение Добавьте хотя бы одну строку
        • на кнопке отправки показывает тултип Заполните обязательные поля
    • сохраняет запрос
    • меняет статус на APPROVED
    • закрывает форму запроса
    • показывает таблицу с обновленными запросами индивидуальных ставок
    • показывает оповещение Набор индивидуальных ставок согласован
    • отправляет на почту сообщение исполнителю и партнеру

AGENT_APPROVAL-REJECTED#

  • Макет
  • Кнопка перехода в статус REJECTED:
    • отображается в статусе AGENT_APPROVAL пользователю с ролью AGENT
    • вид отображения кнопки - красная
    • название кнопки Отклонить:
  • при нажатии пользователем на кнопку, система:
    • выполняет контроль формата данных в полях (см. описание статуса AGENT_APPROVAL)
    • сохраняет запрос
    • показывает диалоговое окно подтверждения.

Окно подтверждения:

  • Можно закрыть крестиком или кликом на фон
  • Поле для ввода комментария
  • Кнопка Отменить:
    • доступна всегда
    • при нажатии пользователем на кнопку, система закрывает диалоговое окно, конец сценария.
  • Кнопка Отклонить:
    • становится доступной если в поле Комментарий введен текст.
    • При нажатии пользователем на кнопку:
      • сохраняет запрос
      • введенный комментарий сохраняет в individualRateSet.notApprovalComment
      • меняет статус на REJECTED
      • закрывает форму запроса
      • показывает таблицу с обновленными запросами индивидуальных ставок
      • показывает оповещение Запрос индивидуальных ставок отклонён
      • отправляет на почту сообщение исполнителю и партнеру