feat: filling deals from excel file
This commit is contained in:
		@@ -2,13 +2,14 @@ import base64
 | 
			
		||||
from io import BytesIO
 | 
			
		||||
from typing import Annotated
 | 
			
		||||
 | 
			
		||||
from fastapi import APIRouter, Depends, Response
 | 
			
		||||
from fastapi import APIRouter, Depends, Response, UploadFile
 | 
			
		||||
from sqlalchemy.ext.asyncio import AsyncSession
 | 
			
		||||
 | 
			
		||||
from backend.dependecies import SessionDependency, CurrentUserDependency
 | 
			
		||||
from backend.session import get_session
 | 
			
		||||
from generators.deal_pdf_generator.generator import DealTechSpecPdfGenerator
 | 
			
		||||
from models import User
 | 
			
		||||
from parsers import DealParser
 | 
			
		||||
from schemas.barcode import GetDealProductsBarcodesPdfRequest, GetDealProductsBarcodesPdfResponse
 | 
			
		||||
from schemas.deal import *
 | 
			
		||||
from services.auth import get_current_user, authorized_user, guest_user
 | 
			
		||||
@@ -258,6 +259,31 @@ async def get_available_employees_to_assign(
 | 
			
		||||
    return await DealService(session).get_available_employees_to_assign(deal_id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@deal_router.post(
 | 
			
		||||
    '/prefill/excel/parse',
 | 
			
		||||
    response_model=ParseDealsExcelResponse,
 | 
			
		||||
    operation_id='parse_deals_excel',
 | 
			
		||||
)
 | 
			
		||||
async def parse_deals_excel(
 | 
			
		||||
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
			
		||||
        upload_file: UploadFile,
 | 
			
		||||
):
 | 
			
		||||
    file_bytes = upload_file.file.read()
 | 
			
		||||
    return await DealParser(session).parse(file_bytes)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@deal_router.post(
 | 
			
		||||
    '/prefill/excel/create',
 | 
			
		||||
    response_model=CreateDealsFromExcelResponse,
 | 
			
		||||
    operation_id='create_deals_excel',
 | 
			
		||||
)
 | 
			
		||||
async def create_deals_from_excel(
 | 
			
		||||
        session: Annotated[AsyncSession, Depends(get_session)],
 | 
			
		||||
        request: CreateDealsFromExcelRequest,
 | 
			
		||||
        user: CurrentUserDependency,
 | 
			
		||||
):
 | 
			
		||||
    return await DealService(session).create_deals_from_excel(request, user)
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Deal services
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user