118 lines
3.1 KiB
Python
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
|