This commit is contained in:
2025-12-21 19:02:40 +03:00
parent 546c70cbcd
commit 599158f8e1
10 changed files with 639 additions and 27 deletions
Binary file not shown.
Binary file not shown.
+9
View File
@@ -1,6 +1,7 @@
from datetime import date, datetime, time
from sqlalchemy import func, select
from db import CRUD
from db.handlers.records import ServiceRecordsHandler
from db.schemas.orders import Orders
from utils.loggers import logger
@@ -10,6 +11,10 @@ class OrdersHandler:
async def new(user_id: int, order: str):
try:
await Orders(customer_id=user_id, customer_comment=order).save()
await ServiceRecordsHandler.add(
user_id,
{f"Добавлен заказ": f"{order}"},
)
except Exception as e:
logger.error(f"Ошибка создания заказа: {str(e)}")
return {"errorMessage": f"Ошибка создания заказа: {str(e)}"}
@@ -92,6 +97,10 @@ class OrdersHandler:
if comment:
changeData["executor_comment"] = comment
await order.edit(**changeData)
await ServiceRecordsHandler.add(
user_id,
{f"Обновлен заказ": f"{order.customer_comment}"},
)
except Exception as e:
logger.error(f"Ошибка обновления заказа: {str(e)}")
return {"errorMessage": f"Ошибка обновления заказа: {str(e)}"}
+44 -9
View File
@@ -3,7 +3,7 @@ from db.handlers.stock import StockHandler
from db.handlers.user import UserHandler
from utils import logger, saveImage, safeFilename
from db import CRUD
from db.schemas.toolkit import Toolkit
from db.schemas.toolkit import Toolkit, ToolkitCompatibility
from sqlalchemy import select
from db.handlers.records import ServiceRecordsHandler
from utils.image import deleteImage
@@ -173,7 +173,7 @@ class ToolkitHandler:
@staticmethod
async def getAll():
query = select(Toolkit)
query = select(Toolkit).order_by(Toolkit.id)
toolkits = await CRUD.read(query, True)
return [toolkit.toDict() for toolkit in toolkits] if toolkits else []
@@ -184,16 +184,15 @@ class ToolkitHandler:
if not toolkit:
logger.error("Инструмент не найден")
return {}
data = toolkit.toDict()
if toolkit.comment_user_id:
user_data = await UserHandler.get(toolkit.comment_user_id)
data = toolkit.toDict()
data["comment_user_data"] = user_data
logger.info(data)
data["comment_user_data"] = user_data
return data
@staticmethod
async def getSeveral(toolkitIds: list[int]) -> list[dict]:
query = select(Toolkit).where(Toolkit.id.in_(toolkitIds))
query = select(Toolkit).where(Toolkit.id.in_(toolkitIds)).order_by(Toolkit.id)
toolkits = await CRUD.read(query, True)
return [toolkit.toDict() for toolkit in toolkits] if toolkits else []
@@ -230,9 +229,6 @@ class ToolkitHandler:
@staticmethod
async def addComment(toolkitId: int, user_id: int, comment: str):
logger.info(f"Добавление комментария к инструменту {toolkitId}...")
logger.info(f"Комментарий: {comment}")
logger.info(f"Пользователь: {user_id}")
query = select(Toolkit).where(Toolkit.id == toolkitId)
toolkit = await CRUD.read(query)
if not toolkit:
@@ -248,6 +244,45 @@ class ToolkitHandler:
logger.info(f"Комментарий к инструменту {toolkit.title} успешно добавлен")
return {"status": "ok"}
@staticmethod
async def addCompatibility(userId, data):
newCompatibility = await ToolkitCompatibility.add_compatibility(
int(data.get("toolkitId")), int(data.get("compatibleToolkitId"))
)
if "errorMessage" not in newCompatibility:
await ServiceRecordsHandler.add(
userId,
{
f"Добавлена совместимость": f"{data.get('toolkitId')} - {data.get('compatibleToolkitId')}"
},
)
return newCompatibility
@staticmethod
async def deleteCompatibility(userId, data):
deleteCompatibility = await ToolkitCompatibility.remove_compatibility(
int(data.get("toolkitId")), int(data.get("compatibleToolkitId"))
)
if "errorMessage" not in deleteCompatibility:
await ServiceRecordsHandler.add(
userId,
{
f"Удалена совместимость": f"{data.get('toolkitId')} - {data.get('compatibleToolkitId')}"
},
)
return deleteCompatibility
@staticmethod
async def getCompatibility(toolkitId: int):
result = await ToolkitCompatibility.get_compatibility(toolkitId)
if "errorMessage" in result:
return result
toolkitsIds = list(result.get("data").values())
toolkitsList = await ToolkitHandler.getSeveral(toolkitsIds)
toolkitsData = {toolkit["id"]: toolkit for toolkit in toolkitsList}
data = {"records": result.get("data"), "toolkits": toolkitsData}
return {"status": "ok", "data": data}
@staticmethod
async def initialize():
from .categories import CategoryHandler