Главная страница

Сессия 2. Программные решения для бизнеса Разработано совместно с hakta pro


Скачать 166.93 Kb.
НазваниеПрограммные решения для бизнеса Разработано совместно с hakta pro
Дата06.10.2022
Размер166.93 Kb.
Формат файлаpdf
Имя файлаСессия 2.pdf
ТипДокументы
#718779

Программные решения для бизнеса
Разработано совместно с hakta.pro
1
Приложение 2
Сессия 2
Разработка desktop-приложений
Список материалов
Очень важно постоянно получать актуальную информацию об остатках материалов на складах, поэтому необходимо реализовать вывод материалов, которые хранятся в базе данных, согласно предоставленному макету. При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png).
Вывод должен осуществляться постранично (по 15 записей на страницу). Для удобства навигации по страницам необходимо вывести список их номеров (как на макете) с возможностью перехода к выбранной странице, а также предусмотреть переходы к предыдущей и следующей страницам.
Пользователь должен иметь возможность отсортировать материалы (по возрастанию и убыванию) по следующим параметрам: наименование, остаток на складе и стоимость. Выбор сортировки должен быть реализован с помощью выпадающего списка.
Кроме этого, пользователь должен иметь возможность отфильтровать данные по типу материала. Все типы из базы данных должны быть выведены в выпадающий список для фильтрации. Первым элементом в выпадающем списке должен быть “Все типы”, при выборе которого настройки фильтра сбрасываются.
Пользователь должен иметь возможность искать материалы, используя поисковую строку. Поиск должен осуществляться по наименованию и описанию материала.
Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
В верхней части окна необходимо показывать количество выведенных данных и общее количество записей в базе. Например, 155 из 237. В случае если данные в таблицу выводятся после фильтрации или поиска, количество выведенных данных необходимо обновить исходя из размера выборки.
Необходимо подсвечивать строки с данными о конкретном материале в зависимости от минимального допустимого количества и наличия на складе. В случае если количество материала меньше, чем указанное минимальное количество, в качестве фона необходимо применить цвет #f19292. В случае если текущее количество составляет 300% от минимального количества, то необходимо использовать цвет с кодом
#ffba01.
В списке материалов необходимо добавить возможность изменения минимального количества сразу для нескольких выбранных материалов. Для этой цели реализуйте возможность выделения сразу нескольких элементов в списке материалов, после чего должна появиться кнопка “Изменить минимальное количество на ...”. При нажатии на кнопку необходимо отобразить модальное окно с возможностью ввода числового значения, на которое и будет изменено значение минимального количества всех выбранных материалов. По умолчанию в поле должно быть введено максимальное значение этого параметра среди

Программные решения для бизнеса
Разработано совместно с hakta.pro
2 всех материалов. После нажатия кнопки “Изменить” минимальное количество выделенных материалов должна быть изменено в базе данных, а также обновлено в интерфейсе.
Добавление/редактирование материалов
Необходимо реализовать возможность добавления и редактирования исходных материалов (сырья) для всей продукции компании.
Необходимо добавить возможность редактирования данных существующего материала, а также добавление нового материала в новом окне - форме для добавления/редактирования материала.
Переходы на данное окно должны быть реализованы из главной формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить материал”.
На форме должны быть предусмотрены следующие поля: наименование, тип материала (выпадающий список), количество на складе, единица измерения, количество в упаковке, минимальное количество, стоимость за единицу, изображение и подробное описание (с возможностью многострочного ввода).
Стоимость материала может включать сотые части, а также не может быть отрицательной. Минимальное количество также не может принимать отрицательные значения.
Также необходимо реализовать вывод списка возможных поставщиков. В список можно добавлять новые позиции и удалять существующие. При добавлении поставщики должны выбираться из выпадающего списка с возможностью поиска по наименованию.
При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
Для получения информации об объеме затрат на закупки необходимого количества материалов следует предусмотреть вывод информации о стоимости минимально необходимой партии. Если количество на складе меньше минимального количества материалов, необходимо получить разницу между этими значениями и рассчитать минимальный объем закупки, кратный количеству материалов в упаковке (так как материалы закупаются исключительно целыми упаковками). Сумму закупки следует рассчитать, ориентируясь на минимальный объем и цену за единицу материала.
Пользователь может добавить/заменить изображение у материала.
Для того чтобы администратор случайно не изменял несколько материалов, предусмотрите невозможность открытия более одного окна редактирования.
В окне редактирования материала должна присутствовать кнопка “Удалить”, которая удаляет материал из базы данных. При этом должны соблюдаться следующие условия. Если у материала есть информация о возможных поставщиках или история изменения количества, то эта информация должна быть удалена вместе с материалом. Но если он используется при производстве какой-либо продукции, то удаление материала из базы данных должно быть запрещено. После удаления материала система должна сразу вернуть пользователя обратно к списку материалов.
После редактирования/добавления/удаления материалов данные в окне списка материалов должны быть обновлены.

Программные решения для бизнеса
Разработано совместно с hakta.pro
3
Разработка библиотеки классов
Общие требования
Для того чтобы в производстве могли быстро и одинаково рассчитывать количество необходимого сырья для производства той или иной продукции, необходимо разработать библиотеку классов.
Данная библиотека будет подключаться к основному проекту и должна быть представлена в виде .dll/.jar файла или папки с файлом .py.
Чтобы система правильно интегрировалась вам необходимо обязательно следовать правилам именования библиотек, классов и методов в них. В случае ошибок в рамках именования ваша работа не может быть проверена и ваш результат не будет зачтен. Классы и методы должны содержать модификатор public (если это реализуемо в рамках платформы), чтобы внешние приложения могли получить к ним доступ.
В качестве названия для библиотеки необходимо использовать: WSUniversalLib. Вам необходимо загрузить исходный код проекта с библиотекой в отдельный репозиторий с названием, совпадающим с названием проекта.
Класс расчета материалов
Метод должен рассчитывать целое количество сырья, необходимого для производства определенного количества (count) продукции, учитывая возможный брак материалов. Для упрощения расчетов будем считать всю продукцию прямоугольного размера с известными значениями ширины (width) и длины
(length).
Количество необходимого качественного сырья на одну единицу продукции рассчитывается как площадь продукции, умноженная на коэффициент типа продукции.
Коэффициенты типа продукции (product_type):
Тип продукции 1 - 1.1,
Тип продукции 2 - 2.5,
Тип продукции 3 - 8.43.
При этом нужно учитывать процент брака материала в зависимости от его типа (material_type):
Тип материала 1 - 0.3%,
Тип материала 2 - 0.12%.
При этом если в качестве параметров метода будут приходить несуществующие типы продукции/материалов или другие неподходящие данные, то метод должен вернуть -1.
Например, необходимо изготовить 15 единиц продукции 3 типа шириной 20 и длиной 45 из материала 1 типа. Количество качественного сырья (без учета брака) будет равно 113 805. Однако с учетом возможного брака материалов общее необходимое количество сырья должно быть увеличено до 114 147,442.
Округлив полученное значение до ближайшего большего целого, получим 114 148 единиц необходимого сырья.

Программные решения для бизнеса
Разработано совместно с hakta.pro
4
Спецификация метода представлена в отдельном файле в ресурсах.
Разработка модульных тестов (Unit-tests)
Для выполнения процедуры тестирования созданного вами метода библиотеки WSUniversalLib, возвращающего целое количество сырья для производства, вам необходимо создать отдельный проект модульных тестов.
В рамках проекта разработайте тесты, максимально полно покрывающие функционал метода. Ничего страшного, если ваш метод работает не совсем идеально и тесты могут быть не пройдены в связи с этим - в данном модуле это не так важно.
Обратите внимание, что имена тестов должны отражать их суть, т.е. вместо TestMethod1() тест следует назвать, например, GetQuantityForProduct_NonExistentProductType() для тестирования случая передачи несуществующего типа продукции.
Необходимо разработать модульные тесты, которые на основании исходных данных можно условно разделить на 2 группы следующим образом: 10 методов низкой сложности и 5 методов высокой сложности.


написать администратору сайта