кнопки пополнения и изменения положения в карточках и на складе

This commit is contained in:
2025-12-14 23:09:43 +03:00
parent a99d82c8e3
commit 1a677f9ef2
8 changed files with 219 additions and 6 deletions
Binary file not shown.
+42
View File
@@ -1,8 +1,12 @@
from fastapi import APIRouter, Depends
from sqlalchemy import select
from db import CRUD
from db.handlers.actions import StocksActions
from db.handlers.categories import CategoryHandler
from db.handlers.stock import PlacementHandler, StockHandler
from db.handlers.toolbox import ToolboxHandler
from db.handlers.toolkit import ToolkitHandler
from db.schemas.stock import Placement
from utils import requestDict, logger
@@ -191,3 +195,41 @@ async def manage_toolkit(reqData: dict = Depends(requestDict)):
f"Управление инструментами ({action}) прошло {'успешно' if response.get('status') == 'ok' else 'неуспешно'}"
)
return response
@router.post("/quick_action", summary="Быстрое действие")
async def quick_action(reqData: dict = Depends(requestDict)):
logger.info(f"Быстрое действие")
response = {"status": "error"}
action = reqData.get("body").get("action")
toolboxId = int(reqData.get("body").get("toolboxId"))
toolkitId = int(reqData.get("body").get("toolkitId"))
userId = reqData.get("body").get("userId")
data = reqData.get("body").get("data")
match action:
case "fill":
toolkit = await StocksActions.registration(
toolkitId,
toolboxId,
userId,
int(data.get("amount")),
float(data.get("price")),
"",
data.get("reason"),
)
response = handleResult(toolkit, response)
case "move":
try:
placement = await CRUD.read(
select(Placement).where(
Placement.toolkit_id == toolkitId,
Placement.toolbox_id == toolboxId,
)
)
await placement.edit(data.get("location"))
response["status"] = "ok"
except Exception as e:
logger.error(e)
case _:
pass
return response