feat: residues accounting
This commit is contained in:
@@ -18,3 +18,4 @@ from .statistics import statistics_router
|
||||
from .transaction import transaction_router
|
||||
from .shipping import shipping_router
|
||||
from .department import department_router
|
||||
from .residues import residues_router
|
||||
|
||||
@@ -16,8 +16,6 @@ client_router = APIRouter(
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@client_router.get('/search', operation_id='search_clients')
|
||||
async def search_clients(
|
||||
name: str,
|
||||
@@ -52,6 +50,18 @@ async def get_all_clients(
|
||||
return await ClientService(session).get_all()
|
||||
|
||||
|
||||
@client_router.get(
|
||||
'/get/{client_id}',
|
||||
operation_id='get_client',
|
||||
response_model=ClientGetResponse
|
||||
)
|
||||
async def get_client(
|
||||
session: Annotated[AsyncSession, Depends(get_session)],
|
||||
client_id: int,
|
||||
):
|
||||
return await ClientService(session).get_by_id(client_id)
|
||||
|
||||
|
||||
@client_router.post(
|
||||
'/create',
|
||||
operation_id='create_client_api',
|
||||
|
||||
157
routers/residues.py
Normal file
157
routers/residues.py
Normal file
@@ -0,0 +1,157 @@
|
||||
from io import BytesIO
|
||||
|
||||
from fastapi import APIRouter, Depends, Response, Query
|
||||
|
||||
from backend.dependecies import SessionDependency
|
||||
from generators.residual_qr_code_generator import ResidualQRCodeGenerator
|
||||
from schemas.residues import *
|
||||
from services.auth import authorized_user
|
||||
from services.residues import ResiduesService
|
||||
|
||||
residues_router = APIRouter(
|
||||
prefix="/residues",
|
||||
tags=["residues"],
|
||||
)
|
||||
|
||||
|
||||
@residues_router.get(
|
||||
'/pallet/{pallet_id}',
|
||||
response_model=GetResidualPalletResponse,
|
||||
operation_id='get_residual_pallet',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def get_pallet(
|
||||
session: SessionDependency,
|
||||
pallet_id: int,
|
||||
):
|
||||
return await ResiduesService(session).get_pallet(pallet_id)
|
||||
|
||||
|
||||
@residues_router.post(
|
||||
'/pallet',
|
||||
response_model=CreateResidualPalletResponse,
|
||||
operation_id='create_residual_pallet',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def create_pallet(
|
||||
session: SessionDependency,
|
||||
request: CreateResidualPalletRequest,
|
||||
):
|
||||
return await ResiduesService(session).create_pallet(request)
|
||||
|
||||
|
||||
@residues_router.delete(
|
||||
'/pallet/{pallet_id}',
|
||||
response_model=DeleteResidualPalletResponse,
|
||||
operation_id='delete_residual_pallet',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def delete_pallet(
|
||||
session: SessionDependency,
|
||||
pallet_id: int,
|
||||
):
|
||||
return await ResiduesService(session).delete_pallet(pallet_id)
|
||||
|
||||
|
||||
@residues_router.post(
|
||||
'/product',
|
||||
response_model=CreateResidualProductResponse,
|
||||
operation_id='create_residual_product',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def create_residual_product(
|
||||
session: SessionDependency,
|
||||
request: CreateResidualProductRequest,
|
||||
):
|
||||
return await ResiduesService(session).create_residual_product(request)
|
||||
|
||||
|
||||
@residues_router.post(
|
||||
'/product/{residual_product_id}',
|
||||
response_model=UpdateResidualProductResponse,
|
||||
operation_id='update_residual_product',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def update_residual_product(
|
||||
session: SessionDependency,
|
||||
request: UpdateResidualProductRequest,
|
||||
residual_product_id: int,
|
||||
):
|
||||
return await ResiduesService(session).update_residual_product(request, residual_product_id)
|
||||
|
||||
|
||||
@residues_router.delete(
|
||||
'/product/{residual_product_id}',
|
||||
response_model=DeleteResidualProductResponse,
|
||||
operation_id='delete_residual_product',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def delete_residual_product(
|
||||
session: SessionDependency,
|
||||
residual_product_id: int,
|
||||
):
|
||||
return await ResiduesService(session).delete_residual_product(residual_product_id)
|
||||
|
||||
|
||||
@residues_router.get(
|
||||
'/box/{box_id}',
|
||||
response_model=GetResidualBoxResponse,
|
||||
operation_id='get_residual_box',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def get_box(
|
||||
session: SessionDependency,
|
||||
box_id: int,
|
||||
):
|
||||
return await ResiduesService(session).get_box(box_id)
|
||||
|
||||
|
||||
@residues_router.post(
|
||||
'/box',
|
||||
response_model=CreateResidualBoxResponse,
|
||||
operation_id='create_residual_box',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def create_box(
|
||||
session: SessionDependency,
|
||||
request: CreateResidualBoxRequest,
|
||||
):
|
||||
return await ResiduesService(session).create_box(request)
|
||||
|
||||
|
||||
@residues_router.delete(
|
||||
'/box/{box_id}',
|
||||
response_model=DeleteResidualBoxResponse,
|
||||
operation_id='delete_residual_box',
|
||||
dependencies=[Depends(authorized_user)],
|
||||
)
|
||||
async def delete_box(
|
||||
session: SessionDependency,
|
||||
box_id: int,
|
||||
):
|
||||
return await ResiduesService(session).delete_box(box_id)
|
||||
|
||||
|
||||
@residues_router.post(
|
||||
'/receipt',
|
||||
response_model=LoadReceiptResponse,
|
||||
operation_id='receipt',
|
||||
)
|
||||
async def receipt(
|
||||
session: SessionDependency,
|
||||
request: LoadReceiptRequest,
|
||||
):
|
||||
return await ResiduesService(session).load_receipt(request)
|
||||
|
||||
|
||||
@residues_router.get(
|
||||
"/pdf/",
|
||||
operation_id="get_pdf",
|
||||
)
|
||||
async def generate_pdf(
|
||||
session: SessionDependency,
|
||||
pallet_ids: str = Query(""),
|
||||
box_ids: str = Query(""),
|
||||
):
|
||||
pdf_file: BytesIO = await ResidualQRCodeGenerator(session).generate(pallet_ids, box_ids)
|
||||
return Response(pdf_file.getvalue(), media_type="application/pdf")
|
||||
Reference in New Issue
Block a user