заказы

This commit is contained in:
2025-12-21 03:45:02 +03:00
parent 83ecf65abf
commit 546c70cbcd
15 changed files with 862 additions and 38 deletions
+48 -26
View File
@@ -1,15 +1,17 @@
from datetime import date, datetime, timedelta
from datetime import datetime, timedelta
from fastapi import APIRouter, Depends, Request
from fastapi.responses import RedirectResponse
from db.handlers.access import AccessLevelHandler
from db.handlers.categories import CategoryHandler
from db.handlers.orders import OrdersHandler
from utils import render, requestDict, logger
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
from .orders import router as orders
router = APIRouter()
@@ -19,6 +21,7 @@ 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.include_router(orders, prefix="/orders", tags=["orders"])
@router.get("/")
@@ -52,6 +55,21 @@ async def post_requests(
from db.handlers.toolkit import ToolkitHandler
from db.handlers.user import UserHandler
def getDates(data: dict):
startDate = data.get("startDate")
if isinstance(startDate, str):
startDate = datetime.strptime(startDate, "%Y-%m-%d").date()
if startDate is None:
startDate = datetime.now().date() - timedelta(days=30)
endDate = data.get("endDate")
if isinstance(endDate, str):
endDate = datetime.strptime(endDate, "%Y-%m-%d").date()
if endDate is None:
endDate = datetime.now().date()
if startDate > endDate:
startDate, endDate = endDate, startDate
return startDate, endDate
reqData = {
"tab": request_data.get("body").get("tabId"),
}
@@ -105,18 +123,7 @@ async def post_requests(
"categories": categories,
}
case "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()
if startDate > endDate:
startDate, endDate = endDate, startDate
startDate, endDate = getDates(request_data.get("body"))
jurnal_toolkits = await StocksRecordsHandler.getLogs(startDate, endDate)
if isinstance(jurnal_toolkits, list):
@@ -147,18 +154,7 @@ async def post_requests(
"endDate": endDate.strftime("%Y-%m-%d"),
}
case "jurnal_service":
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()
if startDate > endDate:
startDate, endDate = endDate, startDate
startDate, endDate = getDates(request_data.get("body"))
jurnal_service = await ServiceRecordsHandler.getLogs(startDate, endDate)
if isinstance(jurnal_service, list):
@@ -199,7 +195,33 @@ async def post_requests(
"users": users,
"accessLevels": accessLevels,
}
# logger.info(resultData)
case "orders":
fullAccess = reqData["accessData"].get("view_all_toolboxes", False)
startDate, endDate = getDates(request_data.get("body"))
if fullAccess:
result = await OrdersHandler.get_all(startDate, endDate)
if "errorMessage" in result.keys():
resultData["message"] = result["errorMessage"]
else:
resultData["status"] = "ok"
if "orders" in result.keys():
resultData["data"]["orders"] = result["orders"]
else:
userId = reqData.get("userData").get("id")
result = await OrdersHandler.get_all_by_consumer(
userId, startDate, endDate
)
if "errorMessage" in result.keys():
resultData["message"] = result["errorMessage"]
else:
resultData["status"] = "ok"
if "orders" in result.keys():
resultData["data"]["orders"] = result["orders"]
if resultData["status"] == "ok":
resultData["data"]["startDate"] = startDate.strftime("%Y-%m-%d")
resultData["data"]["endDate"] = endDate.strftime("%Y-%m-%d")
resultData["data"]["users"] = await UserHandler.getAll()
resultData["data"]["fullAccess"] = fullAccess
case _:
pass
return resultData