Skip to content
This repository has been archived by the owner on Jul 11, 2021. It is now read-only.

Client for oracle database. University course work.

Notifications You must be signed in to change notification settings

Tka4uk-Andrei/OracleDbClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OracleDbClient

Brief project description

This is client for oracle database written on C#.


Full Project description (russian)

Введение

Название работы: Автоматизация работы оптовой фирмы

Оптовая фирма (далее организация) занимается оптовыми и мелкооптовыми поставками различных товаров в магазины Санкт-Петербурга.

Требуется автоматизировать рабочее место менеджера по распределению товаров между двумя складами организации.

Два склада несут функционально различную нагрузку в целях уменьшения арендной платы организации.

Первый склад находится на территории Санкт-Петербурга и сильно меньше второго, который находится в значительном удалении. Первый склад исполняет функции кеш'а множества самых популярных товаров.

Задачей менеджера по распределению является изучение спроса и выделения множества приоритетных товаров, которые будут завезены на первый склад. Менеджер должен иметь доступ к состоянию обоих складов, справочнику товаров и журналу реализации. При появлении заявки на определенный товар, менеджер заносит заявку в журнал и списывает необходимое количество товара с первого склада. В случае, если на первом складе товара недостаточно – остаток списывается со второго. Такой вариант приносит лишние расходы фирме, так как в этом случае она занимается доставкой товара на территорию заказчика, чтобы не потерять клиента.

Завоз товаров на первый склад производится ночью каждого дня в соответствии с приоритетами, выставленными менеджером. Второй склад содержит достаточное число товаров (считаем, что он способен покрыть любой спрос), и его работа выходит за рамки данного проекта.


Требования к базе данных

  • Контроль целостности данных, используя механизм связей.
  • Операции модификации групп данных и данных в связанных таблицах должны быть выполнены в рамках транзакций.
  • Логика работы приложения должна контролироваться триггерами. В частности:
    • Триггер должен не позволять списать товар со второго склада при наличии товара на первом.
    • Триггер должен контролировать, чтобы вводимая заявка не превышала суммарное количество товара на первом и втором складах.
  • Все операции вычисления различных показателей (из требований к клиентскому приложению) должны реализовываться хранимыми процедурами.

Требования к клиенту

  • Необходимо реализовать интерфейсы для ввода, модификации и удаления:
    • Товаров, включая задание приоритета;
    • Заявки, с автоматическим списанием товара со складов.
  • В главном окне приложения должен быть реализован журнал менеджера с просмотром количества товаров на складах.
  • Необходимо реализовать возможность просмотра менеджером следующих показателей:
    • Пять самых популярных товаров.
    • Изменение спроса данного товара за некоторый промежуток времени.
    • Графическое отображение изменения спроса заданного товара.

Краткое описание полей и таблиц

Таблица SALES (заявки на продажу)

Название колонки Тип данных Расшифровка
id NUMBER (*,0) Идентификатор заявки
good_id NUMBER (*,0) Идентификатор товара
good_count NUMBER (*,0) Количество товара
create_date TIMESTAMP (3) Дата заявки

Таблица GOODS (описание товаров)

Название колонки Тип данных Расшифровка
id NUMBER (*,0) Идентификатор товара
name VARCHAR2(50 BYTE) Наименование товара
priority NUMBER (*,0) Приоритет товара (больше число выше приоритет)

Таблица WAREHOUSE1 и WAREHOUSE2 (описание товаров на складах)

Название колонки Тип данных Расшифровка
id NUMBER (*,0) Идентификатор записи
good_id NUMBER (*,0) Идентификатор товара
good_count NUMBER (*,0) Количество товара на складе

Таблица USERS_LIST (описание пользователей и их ролей)

Название колонки Тип данных Расшифровка
id NUMBER (*,0) Идентификатор пользователя
user_name VARCHAR2(50 BYTE) Имя пользователя
user_role NUMBER (*,0) Описание роли (1-менеджер склада, 2-директор, 3-пользователь)
user_password VARCHAR2(500 BYTE) Пароль. Зашифрован SHA256

Примечание. Все поля с именем id являются автоматически инкрементируемыми первичными ключами. Поля с префиксом id являются внешними ключами к таблицам с соответствующими именами.


Описание ролей для клиентского прилложения

Менеджер складов (реализована)

  • Просмотр и добавление заявок на товары
  • Просмотр и добавление названий товаров, а также их приоритетов
  • Просмотр и изменение количества товаров на складах №1, №2
  • Отображение спроса на заданный товар в определённый период
  • Отображение прогнозируемого спроса на товар на неделю

Директор (не реализована)

  • Просмотр заявок на товары
  • Просмотр товаров и их количество на обоих складах
  • Добавление новых наименований товаров, а также изменение их приоритетов
  • Отображение спроса на заданный товар в определённый период
  • Отображение прогнозируемого спроса на товар на неделю

Пользователь (не реализована)

  • Промотор товара на складе №1
  • Просмотр и добавление заявок на покупку
  • Просмотр всех возможных наименований товаров

About

Client for oracle database. University course work.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published