Реализовать последовательный пользовательский интерфейс, позволяющий перемещаться между существующими окнами (страницами) в приложении (в том числе обратно, например, с помощью кнопки «Назад»). Обеспечить соответствующий заголовок на каждом окне (странице) приложения.
Реализовать обработку исключительных ситуаций в приложении. Необходимо уведомлять пользователя о совершаемых им ошибках или о запрещенных в рамках задания действиях, предупреждать о неотвратимых операциях. Окна сообщений соответствующих типов (например, ошибка, предупреждение, информация) должны отображаться с соответствующим заголовком и пиктограммой. Текст сообщения должен быть полезным и информативным, содержать полную информацию о совершенных ошибках пользователя и порядок действий для их исправления. Также можно использовать визуальные подсказки для пользователя при вводе данных.
Необходимо использовать комментарии для пояснения неочевидных фрагментов кода. Комментарии должны присутствовать только в местах, которые требуют дополнительного пояснения.
Необходимо реализовать возможность сортировки, фильтрации, поиска, расположите элементы по своему усмотрению.
Менеджер и администратор должны иметь возможность искать товары, используя поисковую строку. Поиск должен осуществляться по всем доступным данным с текстовым типом данных, в том числе по нескольким атрибутам одновременно.
Менеджер и администратор должны иметь возможность отсортировать товары (по возрастанию и убыванию) по количеству на складе.
Кроме этого, менеджер и администратор должны иметь возможность отфильтровать данные по поставщику. Первым элементом в выпадающем списке должен быть “Все поставщики”, при выборе которого настройки фильтра сбрасываются.
Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/ ”отфильтровать” и т.п. Фильтрация и поиск должны применяться совме стно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
Необходимо реализовать возможность добавления и редактирования исходных товаров. Добавлять и редактировать данные может только администратор. Необходимо добавить возможность редактирования данных существующего товара, а также добавление нового товара в новом окне - форме для добавления/ редактирования товара. Переходы на данное окно должны быть реализованы из формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить товар”.
На форме должны быть предусмотрены следующие поля: фото товара (при отсутствии изображения необходимо вывести картинку- заглушку из ресурсов (picture.png) Прил_2_ОЗ_КОД 09.02.07-2-2026-М1.rar), наименование товара, категория товара (выпадающий список), описание товара, производитель (выпадающий список), поставщик, цена, единица измерения, количество на складе, действующая скидка. Стоимость товара может включать сотые части, а также не может быть отрицательной. Минимальное количество также не может принимать отрицательные значения.
При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
ID товара при добавлении не отображается, автоматически вычисляется +1 к имеющемуся в БД, при редактировании ID доступно только для чтения.
Администратор может добавить/ заменить изображение у товара. Изображение, которое загружает администратор при добавлении или редактировании, должно сохраняться в папку с приложением. Для оптимального объема реализуйте ограничение на размер фото: 300Х200 пикселей. В базе данных необходимо хранить путь к изображению. При замене изображения, старое фото из папки должно быть удалено.
Для того, чтобы администратор случайно не изменял несколько товаров, предусмотрите невозможность открытия более одного окна редактирования.
Реализуйте возможность удаления товара администратором. Товар, который присутствует в заказе, удалить нельзя.
После редактирования/добавления/удаления товаров данные в окне списка товаров должны быть обновлены.