
- •Домашнее задание
- •1.1. Разработать каркас для процесса Работа с классификатором изделий.
- •1.2. Содержание работы
- •1.3. Исходные данные для задачи
- •1.4. Рекомендуемые инструменты
- •1.5. Рекомендуемые источники
- •Аннотация
- •1. Описание выполненной работы
- •1.1. Введение
- •1.2. Анализ исходных данных
- •2. Создание базы данных
- •2.2. Разработка основных процедур
- •2.2.1. Проверка категории на существование
- •2.2.2. Проверка изделия на существование
- •2.2.3. Добавление категории
- •2.2.4. Добавление подкатегории
- •2.2.5. Добавление изделия
- •2.2.6. Получение всех категорий
- •2.2.7. Получение всех изделий
- •2.2.8. Обновление цены изделия
- •2.2.9. Обновление количества изделия
- •2.2.10. Изменить категорию изделия
- •2.2.11. Удаление изделия
- •2.2.12. Удаление категории
- •2.2.13. Удаление подкатегории
- •2.2.14. Проверка на цикл при изменении родителя подкатегории
- •2.2.15. Изменение родителя подкатегории
- •2.2.16. Изменение имени категории
- •2.2.17. Изменение имени изделия
- •2.2.18. Получение всех предков подкатегории
- •2.2.19. Получение всех подкатегорий категории
- •2.2.20. Вывод всех подкатегорий категории
- •2.2.21. Получение всех изделий категории
- •2.2.22. Удаление всех таблиц
- •2.2.23. Получение названия родителя у подкатегории
- •2.2.24. Заполнение базы данных контрольным примером
2.2.6. Получение всех категорий
функция: get_all_categories - получение всех категорий
-- вход: нет
-- выход: все категории в классификаторе
-- эффекты: нет
-- требования: нет
def get_all_categories():
try:
cursor.execute("SELECT * FROM category")
categories_names = cursor.fetchall()
return categories_names
except Exception as _ex:
print(f"Произошла ошибка при получении категорий: {_ex}")
return None
2.2.7. Получение всех изделий
функция: get_all_products - получение всех изделий
-- вход: нет
-- выход: все изделия в классификаторе
-- эффекты: нет
-- требования: нет
def get_all_products():
try:
cursor.execute("SELECT * FROM product")
products_names = cursor.fetchall()
return products_names
except Exception as _ex:
print(f"Произошла ошибка при получении товаров: {_ex}")
return None
2.2.8. Обновление цены изделия
функция: product_update_price - обновление цены изделия
-- вход:
-- 1. product_name - имя изделия
-- 2. new_price - новая цена изделия
-- выход: нет
-- эффекты:
-- 1. обновление цены изделия
-- требования:
-- 1. изделие должно существовать
def product_update_price(product_name, new_price):
try:
if is_product_exist(product_name):
cursor.execute("UPDATE product SET price = ? WHERE product_name = ?", (new_price, product_name))
conn.commit()
print('Цена изделия успешно обновлена.')
else:
print('Указанное изделие не существует.')
except Exception as _ex:
print(f"Произошла ошибка при обновлении цены изделия: {_ex}")
2.2.9. Обновление количества изделия
функция: product_update_quantity - обновление количества изделия
-- вход:
-- 1. product_name - имя изделия
-- 2. new_quantity- новое количество изделия
-- выход: нет
-- эффекты:
-- 1. обновление количества изделия
-- требования:
-- 1. изделие должно существовать
def product_update_quantity(product_name, new_quantity):
try:
if is_product_exist(product_name):
cursor.execute("UPDATE product SET quantity = ? WHERE product_name = ?", (new_quantity, product_name))
conn.commit()
print('Количество изделия успешно обновлено.')
else:
print('Указанное изделие не существует.')
except Exception as _ex:
print(f"Произошла ошибка при обновлении цены изделия: {_ex}")
2.2.10. Изменить категорию изделия
функция: change_product_category - измение категории у изделия
-- вход:
-- 1. product_name - название изделия
-- 2. new_category - название новой категории
-- выход: нет
-- эффекты:
-- 1. изменение категории у изделия
-- требования:
-- 1. изделие должно существовать
-- 2. новая категория должна существовать
def change_product_category(product_name, new_category):
try:
if is_category_exists(new_category):
# Получаем идентификатор новой категории
cursor.execute("SELECT id FROM category WHERE category_name = ?", (new_category,))
new_category_id = cursor.fetchone()[0]
# Обновляем категорию у изделия
cursor.execute("UPDATE product SET id_category = ? WHERE product_name = ?", (new_category_id, product_name))
conn.commit()
print('Категория изделия успешно изменена.')
else:
print('Указанная новая подкатегория не существует.')
except Exception as e:
print(f"Произошла ошибка при изменении подкатегории изделия: {e}")