Files
Fulfillment-Backend/routers/payroll.py
2024-07-22 12:45:21 +03:00

118 lines
3.1 KiB
Python

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