Завершена работа со складами

This commit is contained in:
2025-12-10 23:03:32 +03:00
parent 197a4d0b1e
commit fcbe25f7ec
14 changed files with 689 additions and 34 deletions
+1 -1
View File
@@ -56,7 +56,7 @@ async def post_requests(
case "toolkits":
toolkits = await ToolkitHandler.getAll()
categories = await CategoryHandler.getAll()
if toolkits:
if toolkits and categories:
resultData["status"] = "ok"
resultData["data"] = {
"toolkits": toolkits,
Binary file not shown.
Binary file not shown.
Binary file not shown.
+33
View File
@@ -1,4 +1,5 @@
from fastapi import APIRouter, Depends
from db.handlers.actions import StocksActions
from db.handlers.stock import StockHandler
from db.handlers.toolbox import ToolboxHandler
from utils import requestDict, logger
@@ -48,3 +49,35 @@ async def delete_toolbox(reqDict=Depends(requestDict)):
if result:
response["status"] = "ok"
return response
@router.post("/fill", summary="Заполнение ящика")
async def fill_toolbox(reqDict=Depends(requestDict)):
logger.info(f"Заполнение ящика")
logger.info(reqDict.get("body"))
response = {"status": "error"}
toolboxId = reqDict.get("body").get("toolboxId")
userId = reqDict.get("body").get("userId")
reason = reqDict.get("body").get("reason")
items = reqDict.get("body").get("items")
successCount = 0
for item in items:
success = await StocksActions.registration(
item.get("toolkit_id"),
toolboxId,
userId,
item.get("quantity"),
item.get("price"),
item.get("placement"),
reason,
)
if success:
successCount += 1
if successCount == len(items):
response["status"] = "ok"
else:
response["message"] = (
f"Оприходовано {successCount} записей из {len(items)}. Проверьте остатки и повторите попытку"
)
logger.info(response)
return response
+20 -1
View File
@@ -1,6 +1,8 @@
from fastapi import APIRouter, Depends
from db.handlers.stock import StockHandler
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 utils import requestDict, logger
@@ -55,3 +57,20 @@ async def toolkit_request(
response["status"] = "ok"
response["data"] = stocksData
return response
@router.post("/fill_prepare", summary="Подготовка заполнения ящика")
async def fill_toolbox():
logger.info(f"Подготовка заполнения ящика")
response = {"status": "error"}
toolkits = await ToolkitHandler.getAll()
categories = await CategoryHandler.getAll()
placements = await PlacementHandler.getAll()
if toolkits and categories:
response["status"] = "ok"
response["data"] = {
"toolkits": sorted(toolkits, key=lambda toolkit: toolkit["title"]),
"categories": sorted(categories, key=lambda category: category["title"]),
"placements": [placement.toDict() for placement in placements],
}
return response