feat: вфыв
This commit is contained in:
		
							
								
								
									
										117
									
								
								routers/payroll.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								routers/payroll.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,117 @@
 | 
			
		||||
from fastapi import APIRouter
 | 
			
		||||
 | 
			
		||||
from backend.dependecies import SessionDependency, PaginationDependency, CurrentUserDependency
 | 
			
		||||
from schemas.finances import CreatePayRateRequest, UpdatePayRateRequest, DeletePayRateRequest, \
 | 
			
		||||
    GetAllPayrollSchemeResponse, GetAllPayRatesResponse, CreatePayRateResponse, UpdatePayRateResponse, \
 | 
			
		||||
    DeletePayRateResponse
 | 
			
		||||
from schemas.payment_record import GetPaymentRecordsResponse, CreatePaymentRecordResponse, CreatePaymentRecordRequest, \
 | 
			
		||||
    DeletePaymentRecordResponse, DeletePaymentRecordRequest
 | 
			
		||||
from services.payroll import PayrollService
 | 
			
		||||
 | 
			
		||||
payroll_router = APIRouter(
 | 
			
		||||
    prefix="/payroll",
 | 
			
		||||
    tags=["payroll"]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# region PayScheme
 | 
			
		||||
@payroll_router.get(
 | 
			
		||||
    '/scheme/get-all',
 | 
			
		||||
    operation_id='get_all_payroll_schemas',
 | 
			
		||||
    response_model=GetAllPayrollSchemeResponse
 | 
			
		||||
)
 | 
			
		||||
async def get_all_schemas(
 | 
			
		||||
        session: SessionDependency
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).get_all_schemas()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@payroll_router.get(
 | 
			
		||||
    '/pay-rate/get-all',
 | 
			
		||||
    operation_id='get_all_pay_rates',
 | 
			
		||||
    response_model=GetAllPayRatesResponse
 | 
			
		||||
)
 | 
			
		||||
async def get_all_pay_rates(
 | 
			
		||||
        session: SessionDependency
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).get_all_pay_rates()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region PayRate
 | 
			
		||||
@payroll_router.post(
 | 
			
		||||
    '/pay-rate/create',
 | 
			
		||||
    operation_id='create_pay_rate',
 | 
			
		||||
    response_model=CreatePayRateResponse
 | 
			
		||||
)
 | 
			
		||||
async def create_pay_rate(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: CreatePayRateRequest
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).create_pay_rate(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@payroll_router.post(
 | 
			
		||||
    '/pay-rate/update',
 | 
			
		||||
    operation_id='update_pay_rate',
 | 
			
		||||
    response_model=UpdatePayRateResponse
 | 
			
		||||
)
 | 
			
		||||
async def update_pay_rate(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: UpdatePayRateRequest
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).update_pay_rate(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@payroll_router.post(
 | 
			
		||||
    '/pay-rate/delete',
 | 
			
		||||
    operation_id='delete_pay_rate',
 | 
			
		||||
    response_model=DeletePayRateResponse
 | 
			
		||||
)
 | 
			
		||||
async def update_pay_rate(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: DeletePayRateRequest
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).delete_pay_rate(request)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region PaymentRecord
 | 
			
		||||
@payroll_router.get(
 | 
			
		||||
    '/payment-record/get',
 | 
			
		||||
    operation_id='get_payment_records',
 | 
			
		||||
    response_model=GetPaymentRecordsResponse
 | 
			
		||||
)
 | 
			
		||||
async def get_payment_records(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        pagination: PaginationDependency
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).get_payment_records(pagination)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@payroll_router.post(
 | 
			
		||||
    '/payment-record/create',
 | 
			
		||||
    operation_id='create_payment_record',
 | 
			
		||||
    response_model=CreatePaymentRecordResponse
 | 
			
		||||
)
 | 
			
		||||
async def create_payment_records(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: CreatePaymentRecordRequest,
 | 
			
		||||
        user: CurrentUserDependency
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).create_payment_record(request, user)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@payroll_router.post(
 | 
			
		||||
    '/payment-record/delete',
 | 
			
		||||
    operation_id='delete_payment_record',
 | 
			
		||||
    response_model=DeletePaymentRecordResponse
 | 
			
		||||
)
 | 
			
		||||
async def delete_payment_record(
 | 
			
		||||
        session: SessionDependency,
 | 
			
		||||
        request: DeletePaymentRecordRequest,
 | 
			
		||||
):
 | 
			
		||||
    return await PayrollService(session).delete_payment_record(request)
 | 
			
		||||
# endregion
 | 
			
		||||
		Reference in New Issue
	
	Block a user