Skip to content

Latest commit

 

History

History
82 lines (71 loc) · 7.16 KB

File metadata and controls

82 lines (71 loc) · 7.16 KB

Подготовленный проект

Данный проект содержит следующие элементы из предметной области "выдача займов":

  • Сущности Client (клиент) и Loan (займ)
  • Экраны для просмотра и редактирования Client, а также экран со списком Loans

Задание

В этом задании требуется реализовать пользовательский интерфейс и логику работы с данными для создания заявок на займы, а также для просмотра и одобрения заявок.

1. Интерфейс для запроса займа

Создать экран RequestLoan:

  • Создать экран на основе шаблона "Blank screen".
  • Экран должен открываться как диалог.
  • Экран должен отсутствовать в меню (будет открываться из другого экрана).
  • Экран содержит два поля ввода с подписями: Client и Amount, и две кнопки: Request и Cancel.
  • Поле Client - выбирает клиента из списка, использовать EntityComboBox. Обязательное поле.
  • Поле Amount - текстовое поле. Обязательное.
  • Действие Request
    • Должно провести валидацию данных: Client (обязательное) и Amount (обязательное; значение должно быть > 0). Вывести уведомление в случае некорректных значений.
    • Создает, заполняет атрибутами и сохраняет в БД объект Loan.
    • Дополнительно проставляет атрибуты requestDate текущим днём, а также status - Requested.
    • После успешного сохранения, закрывает текущий экран (диалог).
  • Выбрать и добавить к кнопке Request подходящую по смыслу иконку.
  • Действие Cancel - просто закрывает диалог.

Для сохранения сущности использовать DataManager.

Верстка диалога:

  • Кнопки Request и Cancel должны быть расположены внизу диалога, рядом, по горизонтали.
  • Диалог должен быть компактно поджат по высоте и ширине содержимого, без пустого пространства.

Добавить кнопку для открытия экрана-диалога RequestLoan в экран Clients.

  • Название "Request loan"
  • По нажатию открывает диалог RequestLoan
  • (*) (опционально) Если в таблице Clients выделена запись, то передавать эту запись в диалог RequestLoan, чтобы сразу предзаполнить поле Client.

2. Экран просмотра заявок на займы

Создать отдельный экран LoanApproval для просмотра информации по заявкам на займы (Loan).

  • Использовать шаблон экрана Entity Browser, для сущности Loan
  • Отключить стандартные CRUD действия.
  • Заголовок экрана и подпись в меню - "Loan Approval"
  • В экран должны загружаться только Loans со статусом Requested.
  • Использовать компонент GroupTable. Настроить в таблице начальную группировку по столбцу requestDate.
  • Настроить следующий набор столбцов:
    • requestDate (группа)
    • client (полное имя)
    • amount
    • client - phoneNumber
    • client - salary
    • client age (возраст, в годах). Это генерируемая колонка (Generated Column) с текстом. Возраст вычислять на основании client#birthDate.

2.1 (*) (опциональное) Отображение предыдущих займов клиента

Добавить в экран LoanApproval дополнительную таблицу для показа данных о других займах клиента, который создавал выбранную заявку:

  • Расположение - в нижней части экрана.
  • Данная таблица должна иметь фиксированный размер по вертикали, чтобы отображать ~4 строки. По горизонтали - растянуть на всю ширину.
  • Над дополнительной таблицей поместить надпись-заголовок "Previous loans:".
  • Таблица должна отображать другие Loans того же Client, заявка которого выделена в основной таблице. Текущую заявку на займ не показывать здесь.
  • Когда в основной таблице заявок меняется выделение, содержимое дополнительной таблицы должно обновляться.
  • Столбцы: amount, requestDate, status.

При изменении размера экрана расти должна основная таблица заявок, и она же должна занимать все свободное место по высоте.

Примечания:

  • Использовать слушатель события ItemChangeEvent контейнера данных (collection container) для реакции на смену выделения в таблице.
  • Проставлять значения параметров запроса в загрузчик данных (data loader) из кода контроллера экрана.

3. Действия по одобрению или отклонению заявки.

Добавить в экран LoanApproval две кнопки для одобрения (Approve) или отклонения (Reject) заявки.

  • Добавить кнопки в панель над основной таблицей.
  • Подобрать и добавить к обеим кнопкам подходящие по смыслу иконки.
  • Действие Approve:
    • Меняет статус выбранного в таблице Loan на Approved
    • Удаляет Loan из таблицы на экране
    • Показывает уведомление (Notification) "Approved"
  • Действие Reject:
    • Меняет статус выбранного в таблице Loan на Rejected
    • Удаляет Loan из таблицы на экране
    • Показывает уведомление (Notification) "Rejected"

Для сохранения изменений использовать DataManager.