Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 сем / 2 / мисприс-2.2_1374_Наволоцкий_Зырянов_Харитонов.docx
Скачиваний:
3
Добавлен:
29.03.2025
Размер:
1.7 Mб
Скачать

2.7.4 Процедура, создающая запись о схд в таблице “terminal_classifier”

функция: create_shd - добавление записи в таблицу terminal_classifier

-- вход:

-- 1. new_shd_name - имя СХД

-- 2. new_shd_name_short - имя СХД короткое

-- 3. shd_parent_name - имя родителя СХД (необязательный аргумент)

-- выход: 1 успех / 0 ошибка

-- эффекты:

-- 1. создание новой записи в таблице terminal_classifier

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

-- 1. передаваемые аргументы должны существовать

def create_shd(new_shd_name, new_shd_name_short, shd_parent_name=None):

try:

if shd_parent_name != None:

if not is_category_exists(shd_parent_name):

print(f'ошибка! СХД родитель не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')

return

try:

add_subcategory(shd_parent_name, new_shd_name, new_shd_name_short)

print(f'СХД с именем \"{new_shd_name}\" создана как дочерняя по отношению к \"{shd_parent_name}\"')

return

except Exception as e:

conn.rollback()

print(f"Error in create_shd категории: {e}")

try:

add_category(new_shd_name, new_shd_name_short, None, None)

print(f'СХД с именем \"{new_shd_name}\" создана как родительская')

return

except Exception as e:

conn.rollback()

print(f"Error in create_shd подкатегории: {e}")

except Exception as e:

conn.rollback()

print(f"Error in create_shd: {e}")

2.7.5 Процедура, создающая грц класс в таблице terminal_classifier

функция: create_grc_class - добавление записи в таблицу terminal_classifier

-- вход:

-- 1. new_grc_name - имя ГРЦ

-- 2. new_grc_name_short - имя ГРЦ короткое

-- 3. grc_parent_name - имя родителя ГРЦ (необязательный аргумент)

-- выход: 1 успех / 0 ошибка

-- эффекты:

-- 1. создание новой записи в таблице terminal_classifier

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

-- 1. передаваемые аргументы должны существовать

def create_grc_class(new_grc_name, new_grc_name_short, grc_parent_name=None):

try:

if grc_parent_name != None:

if not is_category_exists(grc_parent_name):

print(f'ошибка! ГРЦ родитель не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')

return

try:

add_subcategory(grc_parent_name, new_grc_name, new_grc_name_short)

print(f'ГРЦ с именем \"{new_grc_name}\" создано как дочернее по отношению к \"{grc_parent_name}\"')

return

except Exception as e:

conn.rollback()

print(f"Error in create_grc_class категории: {e}")

try:

add_category(new_grc_name, new_grc_name_short, None, None)

print(f'ГРЦ с именем \"{new_grc_name}\" создано как родительское')

return

except Exception as e:

conn.rollback()

print(f"Error in create_grc_class подкатегории: {e}")

except Exception as e:

conn.rollback()

print(f"Error in create_grc_class: {e}")

2.7.6 Процедура создания экземпляра грц

функция: create_grc - добавление экземпляра СХД записи в таблицу product

-- вход:

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

-- 2. shd_id - СХД id

-- 3. grc_name - имя ГРЦ

-- 4. grc_name_short - имя ГРЦ короткое

-- выход: 1 успех / 0 ошибка

-- эффекты:

-- 1. создание новой записи экземпляра СХД в таблице product

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

-- 1. передаваемые аргументы должны существовать

def create_grc(category_name, shd_id, grc_name, grc_name_short):

try:

if not is_exist_by_id_in_table(shd_id, TERMINAL_CLASSIFIER_TABLE):

print(f'ошибка! такого класса СХД не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')

return

if is_product_exist(grc_name):

print(f'ошибка! название ГРЦ уже занято в таблице {PRODUCT_TABLE}')

return

cursor.execute(f"SELECT id FROM {TERMINAL_CLASSIFIER_TABLE} WHERE terminal_classifier_name = ?", (category_name,))

id_category = cursor.fetchone()[0]

if not is_exist_by_id_in_table(id_category, TERMINAL_CLASSIFIER_TABLE):

print(f'ошибка! такой категории для ГРЦ не существует в таблице {TERMINAL_CLASSIFIER_TABLE}')

return

cursor.execute("INSERT INTO product (id_category, product_name, product_name_short, place) VALUES (?, ?, ?, ?)",

(id_category, grc_name, grc_name_short, shd_id))

conn.commit()

print("ГРЦ успешно добавлено.")

return

except Exception as _ex:

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

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