Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 сем / 1 / МиСПрИС_1374_1_Наволоцкий_Харитонов_Зырянов.docx
Скачиваний:
11
Добавлен:
29.03.2025
Размер:
3.55 Mб
Скачать

2.2. Разработка основных процедур

2.2.1. Проверка категории на существование

функция: проверка на существование категории

-- вход: category_name - название категории

-- выход: булевое значение отвечающее за результат функции (true/false)

-- эффекты: нет

-- требования: нет

def is_category_exists(category_name):

cursor.execute("SELECT COUNT(*) FROM category WHERE category_name = ?", (category_name,))

count = cursor.fetchone()[0]

res = count > 0

return res

2.2.2. Проверка изделия на существование

функция: проверка на существование изделия

-- вход: product_name - название изделия

-- выход: булевое значение отвечающее за результат функции (true/false)

-- эффекты: нет

-- требования: нет

def is_product_exist(product_name):

cursor.execute("SELECT COUNT(*) FROM product WHERE product_name = ?", (product_name,))

count = cursor.fetchone()[0]

res = count > 0

return res

2.2.3. Добавление категории

функция: добавление новой категории

-- вход:

-- category_name - название категории

-- id_parent - id родительской категории (можеть быть None)

-- выход: нет

-- эффекты:

-- 1. Добавление новой категории в таблицу Категории

-- 2. Возврат ошибки, если категория с таким названием уже существует

-- требования:

-- 1. Название категории должно быть уникальным

def add_category(category_name, id_parent=None):

try:

if id_parent is not None:

cursor.execute('''

INSERT INTO category (category_name, id_parent)

VALUES (?, ?)

''', (category_name, id_parent))

else:

cursor.execute('''

INSERT INTO category (category_name, id_parent)

VALUES (?, NULL)

''', (category_name,))

conn.commit()

except Exception as _ex:

print(f'Error {_ex} - такое название категории уже есть!')

2.2.4. Добавление подкатегории

функция: add_subcategory - добавление подкатегории

-- вход:

-- 1. category_name - имя категории

-- 2. subcategory_name - имя добавляемой подкатегории

-- выход: нет

-- эффекты:

-- 1. добавление подкатегории

-- требования:

-- 1. название категории должно быть уникально

-- 2. родительская категория должна существовать

def add_subcategory(category_name, subcategory_name):

try:

if is_category_exists(category_name):

# Получаем Id категории

cursor.execute("SELECT id FROM category WHERE category_name = ?", (category_name,))

id_parent_to_set = cursor.fetchone()[0]

add_category(subcategory_name, id_parent_to_set)

conn.commit()

print("Подкатегория успешно добавлена.")

else:

print("Указанная категория/подкатегория не существует.")

except Exception as _ex:

print(f"Произошла ошибка при добавлении подкатегории: {_ex}")

2.2.5. Добавление изделия

функция: add_product - добавление изделия

-- вход:

-- 1. product_name - название изделия

-- 2. category_name - название категории для изделия

-- 3. quantity - количество изделия

-- 4. price - цена изделия

-- выход: нет

-- эффекты:

-- 1. добавление изделия

-- требования:

-- 1. название изделия должно быть не нулевым

-- 2. категория для изделия должна существовать

def add_product(product_name, category_name, quantity, price):

try:

if is_category_exists(category_name):

# Получаем id подкатегории по ее названию

cursor.execute("SELECT id FROM category WHERE category_name = ?", (category_name,))

category_id = cursor.fetchone()[0]

# Добавляем новое изделие в таблицу Изделие

cursor.execute("INSERT INTO product (id_category, product_name, quantity, price) VALUES (?, ?, ?, ?)",

(category_id, product_name, quantity, price))

conn.commit()

print("Изделие успешно добавлено.")

else:

print("Указанная подкатегория не существует.")

except Exception as _ex:

print(f"Произошла ошибка при добавлении изделия: {_ex}")

Соседние файлы в папке 1