feat: вфыв

This commit is contained in:
2024-07-22 12:45:21 +03:00
parent 7c10d8777e
commit 82c9126d87
19 changed files with 725 additions and 18 deletions

View File

@@ -9,3 +9,4 @@ from .position import position_router
from .user import user_router
from .role import role_router
from .marketplace import marketplace_router
from .payroll import payroll_router

117
routers/payroll.py Normal file
View 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