склади и инструмент готовы

This commit is contained in:
2025-12-07 19:36:28 +03:00
parent 54bf21d52d
commit 65a3bc1671
65 changed files with 3485 additions and 115 deletions
+77 -21
View File
@@ -35,11 +35,11 @@ class StocksRecordsHandler:
"price": price,
}
try:
logger.info(f"Создание записи: {action} от {init_user_id}")
logger.debug(f"Создание записи: {action} от {init_user_id}")
logger.debug(recordData)
record = StocksRecords(**recordData)
await record.save()
logger.info(f"Запись успешно создана, id: {record.id}")
logger.debug(f"Запись успешно создана, id: {record.id}")
return True if not return_record else record
except Exception as e:
logger.error(f"Ошибка создания записи: {str(e)}")
@@ -54,7 +54,7 @@ class StocksRecordsHandler:
accept: bool = True,
):
try:
logger.info(
logger.debug(
f"{'Принятие' if accept else 'Отклонение'} записи {record.id} от {decision_user_id}"
)
record.decision_user_id = decision_user_id
@@ -64,7 +64,7 @@ class StocksRecordsHandler:
record.price = price
record.accepted = accept
await record.save()
logger.info(
logger.debug(
f"Запись {record.id} успешно {'принята' if accept else 'отклонена'} {decision_user_id} в {record.decided_at.strftime('%Y-%m-%d %H:%M:%S')}"
)
return True
@@ -83,16 +83,16 @@ class StocksRecordsHandler:
return recordDB
try:
logger.info(f"Обновление записи {record_id} от {edit_user_id}")
logger.debug(f"Обновление записи {record_id} от {edit_user_id}")
record = await StocksRecords.get(id=record_id)
record.edit_user_id = edit_user_id
record.edited_at = datetime.now()
logger.info("Вносим изменения в записи о движении инструмента")
logger.debug("Вносим изменения в записи о движении инструмента")
if record.source_stock_id:
logger.info(
logger.debug(
"Вносим изменения в записи о движении инструмента из исходного склада"
)
sourceStockRecord = await StockHandler.get(
@@ -103,12 +103,12 @@ class StocksRecordsHandler:
sourceStockRecord = updateStockRecord(sourceStockRecord, kwargs)
await sourceStockRecord.save()
logger.info(
logger.debug(
"Внесли изменения в записи о движении инструмента из исходного склада"
)
if record.target_stock_id:
logger.info(
logger.debug(
"Вносим изменения в записи о движении инструмента в целевой склад"
)
targetStockRecord = await StockHandler.get(
@@ -119,11 +119,11 @@ class StocksRecordsHandler:
targetStockRecord = updateStockRecord(targetStockRecord, kwargs)
await targetStockRecord.save()
logger.info(
logger.debug(
"Внесли изменения в записи о движении инструмента в целевой склад"
)
logger.info("Внесли изменения в записи о движении инструмента")
logger.debug("Внесли изменения в записи о движении инструмента")
edited = {}
for key, value in kwargs.items():
@@ -132,7 +132,7 @@ class StocksRecordsHandler:
edited[key] = {"original": originalValue, "new": value}
record.edited = edited
await record.save()
logger.info(
logger.debug(
f"Запись {record_id} успешно обновлена {edit_user_id} в {record.updated_at.strftime('%Y-%m-%d %H:%M:%S')}"
)
logger.debug(edited)
@@ -148,19 +148,23 @@ class StocksRecordsHandler:
try:
if user_id:
userInfo = f"пользователя {user_id} "
decided = "не решенных "
daysLimit = ""
query = select(StocksRecords).where(
StocksRecords.init_user_id == user_id,
StocksRecords.created_at > datetime.now() - timedelta(days=days),
StocksRecords.decision_user_id == None,
)
else:
userInfo = "всех пользователей "
decided = ""
daysLimit = f"за последние {days} дн."
query = select(StocksRecords).where(
StocksRecords.created_at > datetime.now() - timedelta(days=days),
)
logger.info(f"Получение всех записей {userInfo}за последние {days} дн.")
logger.debug(f"Получение всех {decided}записей {userInfo}{daysLimit}")
records = await CRUD.read(query, True)
logger.info(
f"{len(records)} записей {userInfo}за последние {days} дн. успешно получены"
logger.debug(
f"{len(records)} {decided}записей {userInfo}{daysLimit} успешно получены"
)
if len(records) == 0:
return []
@@ -176,28 +180,80 @@ class StocksRecordsHandler:
from db import CRUD
try:
logger.info(f"Получение записи {record_id}")
logger.debug(f"Получение записи {record_id}")
query = select(StocksRecords).where(StocksRecords.id == record_id)
stocksRecord = await CRUD.read(query)
if not stocksRecord:
logger.info(f"Запись {record_id} не найдена")
logger.debug(f"Запись {record_id} не найдена")
return False
logger.info(f"Запись {record_id} успешно получена")
logger.debug(f"Запись {record_id} успешно получена")
return stocksRecord.toDict() if not record else stocksRecord
except Exception as e:
logger.error(f"Ошибка получения записи: {str(e)}")
return False
async def getOriginalToolboxId(toolkitId: int, targetToolboxId: int):
from db import CRUD
try:
logger.debug(
f"Получение записи о перемещении инструмента {toolkitId} на склад {targetToolboxId}"
)
query = select(StocksRecords).where(
StocksRecords.toolkit_id == toolkitId,
StocksRecords.target_toolbox_id == targetToolboxId,
)
stocksRecord = await CRUD.read(query)
if not stocksRecord:
logger.debug(f"Запись {toolkitId} не найдена")
return False
logger.debug(f"Запись {toolkitId} успешно получена")
return stocksRecord.source_toolbox_id
except Exception as e:
logger.error(f"Ошибка получения записи: {str(e)}")
return False
class ServiceRecordsHandler:
async def add(user_id: int, details: dict):
try:
logger.info(f"Создание записи: {user_id}")
logger.debug(f"Создание записи: {user_id}")
logger.debug(details)
record = ServicesRecords(user_id=user_id, details=details)
await record.save()
logger.info(f"Запись успешно создана, id: {record.id}")
logger.debug(f"Запись успешно создана, id: {record.id}")
return True
except Exception as e:
logger.error(f"Ошибка создания записи: {str(e)}")
return False
async def get(user_id: int = None, days: int = 30):
from db import CRUD
try:
if user_id:
userInfo = f"пользователя {user_id} "
daysLimit = ""
query = select(ServicesRecords).where(
ServicesRecords.user_id == user_id,
)
else:
userInfo = "всех пользователей "
daysLimit = f"за последние {days} дн."
query = select(ServicesRecords).where(
ServicesRecords.created_at > datetime.now() - timedelta(days=days),
)
logger.debug(f"Получение всех записей {userInfo}{daysLimit}")
records = await CRUD.read(query, True)
logger.debug(
f"{len(records)} записей {userInfo}{daysLimit} успешно получены"
)
if len(records) == 0:
return []
records.sort(key=lambda x: x.created_at, reverse=True)
recordsData = [record.toDict() for record in records]
logger.debug(recordsData)
return recordsData
except Exception as e:
logger.error(f"Ошибка получения записей: {str(e)}")
return False