Журнал перемещений, упрощение и чистка

This commit is contained in:
2025-12-13 23:47:46 +03:00
parent de572396a6
commit a9e57b4a38
20 changed files with 961 additions and 101 deletions
+65 -9
View File
@@ -1,3 +1,4 @@
from datetime import date, datetime, timedelta
from fastapi import APIRouter, Depends, Request
from fastapi.responses import RedirectResponse
@@ -7,6 +8,7 @@ from .user import router as user
from .stocks import router as stocks
from .toolbox import router as toolbox
from .toolkit import router as toolkit
from .records import router as records
router = APIRouter()
@@ -15,6 +17,7 @@ router.include_router(user, prefix="/user", tags=["user"])
router.include_router(stocks, prefix="/stocks", tags=["stocks"])
router.include_router(toolbox, prefix="/toolbox", tags=["toolbox"])
router.include_router(toolkit, prefix="/toolkit", tags=["toolkit"])
router.include_router(records, prefix="/records", tags=["records"])
@router.get("/")
@@ -50,9 +53,16 @@ async def post_requests(
reqData = {
"tab": request_data.get("body").get("tabId"),
"userData": request_data.get("body").get("cookiesData").get("userData"),
"accessData": request_data.get("body").get("cookiesData").get("accessData"),
}
if "cookiesData" in request_data.get("body"):
if "userData" in request_data.get("body").get("cookiesData"):
reqData["userData"] = (
request_data.get("body").get("cookiesData").get("userData")
)
if "accessData" in request_data.get("body").get("cookiesData"):
reqData["accessData"] = (
request_data.get("body").get("cookiesData").get("accessData")
)
resultData = {"status": "error", "data": {}}
logger.info(f"Получение данных для вкладки {reqData.get('tab')}")
match reqData.get("tab"):
@@ -67,10 +77,23 @@ async def post_requests(
resultData["status"] = "ok"
resultData["data"] = toolbox
case "requests":
requests = await StocksRecordsHandler.get(reqData.get("userData").get("id"))
canDesign = reqData.get("accessData").get(
"refund_request_confirm", False
) or reqData.get("accessData").get("debit_request_confirm", False)
userId = reqData.get("userData").get("id")
requests = await StocksRecordsHandler.get(userId, canDesign)
users = await UserHandler.getAll()
toolboxes = await ToolboxHandler.getAll()
toolkitsIds = set([request.get("toolkit_id") for request in requests])
toolkits = await ToolkitHandler.getSeveral(list(toolkitsIds))
if isinstance(requests, list):
resultData["status"] = "ok"
resultData["data"] = requests
resultData["data"] = {
"requests": requests,
"users": users,
"toolboxes": toolboxes,
"toolkits": toolkits,
}
case "toolkits":
toolkits = await ToolkitHandler.getAll()
categories = await CategoryHandler.getAll()
@@ -80,12 +103,45 @@ async def post_requests(
"toolkits": toolkits,
"categories": categories,
}
# logger.info(resultData)
case "jurnal_toolkits":
jurnal_toolkits = await StocksRecordsHandler.get()
if jurnal_toolkits:
resultData["status"] = "ok"
resultData["data"] = jurnal_toolkits
startDate = request_data.get("body").get(
"startDate", date.today() - timedelta(days=7)
)
if isinstance(startDate, str):
startDate = datetime.strptime(startDate, "%Y-%m-%d").date()
endDate = request_data.get("body").get("endDate", date.today())
if isinstance(endDate, str):
endDate = datetime.strptime(endDate, "%Y-%m-%d").date()
jurnal_toolkits = await StocksRecordsHandler.getLogs(startDate, endDate)
if isinstance(jurnal_toolkits, list):
if len(jurnal_toolkits) == 0:
resultData["status"] = "ok"
resultData["data"] = {
"requests": [],
"users": [],
"toolboxes": [],
"toolkits": [],
"startDate": startDate.strftime("%Y-%m-%d"),
"endDate": endDate.strftime("%Y-%m-%d"),
}
else:
users = await UserHandler.getAll()
toolboxes = await ToolboxHandler.getAll()
toolkitsIds = set(
[request.get("toolkit_id") for request in jurnal_toolkits]
)
toolkits = await ToolkitHandler.getSeveral(list(toolkitsIds))
resultData["status"] = "ok"
resultData["data"] = {
"requests": jurnal_toolkits,
"users": users,
"toolboxes": toolboxes,
"toolkits": toolkits,
"startDate": startDate.strftime("%Y-%m-%d"),
"endDate": endDate.strftime("%Y-%m-%d"),
}
case "jurnal_service":
jurnal_service = await ServiceRecordsHandler.get()
if jurnal_service: