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

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

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

-- вход:

-- 1. resource_name - имя ресурса

-- 2. unit_id - ЕИ

-- 3. operation_id - id операции

-- 4. prod_id - id объекта

-- 5. quantity - количество

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

-- эффекты:

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

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

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

def create_input_resource(resource_name, unit_id, operation_id, prod_id, quantity):

try:

if not is_exist_by_id_in_table(prod_id, PRODUCT_TABLE):

print(f'объекта с id={prod_id} не существует в таблице {PRODUCT_TABLE}')

return

if not is_exist_by_id_in_table(unit_id, UNIT_TABLE):

print(f'ЕИ с id={unit_id} не существует в таблице {UNIT_TABLE}')

return

if not is_exist_by_id_in_table(operation_id, PROD_OPERATION_TABLE):

print(f'операции с id={operation_id} не существует в таблице {PROD_OPERATION_TABLE}')

return

if not resource_name:

print(f'название ресурса не может быть пустой строкой')

return

check_query = f"SELECT COUNT(*) FROM {INPUT_RESOURCES_TABLE} WHERE resource_name = ? AND operation_id = ? AND quantity = ? AND prod_id = ?"

cursor.execute(check_query, (resource_name, operation_id, quantity, prod_id))

count = cursor.fetchone()[0]

if count > 0:

print(f'ошибка! уже существует ресурс для продукции с id={prod_id} с таким именем - \"{resource_name}\" для операции с id={operation_id} в количестве - {quantity}')

return

cursor.execute(

"INSERT INTO input_resources (operation_id, prod_id, resource_name, unit_id, quantity) VALUES (?, ?, ?, ?, ?)",

(operation_id, prod_id, resource_name, unit_id, quantity,)

)

conn.commit()

print(f'ресурс с названием \"{resource_name}\" успешно создан для операции с id={operation_id} для продукции с id={prod_id}')

return 1

except Exception as e:

conn.rollback()

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

return 0

2.7.3 Процедура удаления записи о операции в таблице “prod_operation”

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

-- вход:

-- 1. operation_id - id операции

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

-- эффекты:

-- 1. удаление записи в таблице prod_operation

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

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

def del_obj_operation(operation_id):

try:

# Проверяем, существует ли операция с указанным ID

cursor.execute(f"SELECT COUNT(*) FROM {PROD_OPERATION_TABLE} WHERE id = ?", (operation_id,))

operation_exists = cursor.fetchone()[0]

if operation_exists == 0:

print(f'Операция с ID {operation_id} не существует')

return

# Удаляем операцию

del_query = f"DELETE FROM {PROD_OPERATION_TABLE} WHERE id = ?"

cursor.execute(del_query, (operation_id,))

conn.commit()

print(f'Операция с id={operation_id} успешно удалена')

except Exception as e:

conn.rollback()

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

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