|
|
|
@ -12,7 +12,7 @@ from rest_framework.decorators import api_view |
|
|
|
|
from rest_framework.response import Response |
|
|
|
|
from rest_framework.views import APIView |
|
|
|
|
from rest_framework.renderers import StaticHTMLRenderer |
|
|
|
|
from caremyway.api.serializers import UserSerializer, UserInfoSerializer, ClientSerializer, ProviderSerializer, WorkTypeSerializer, EmployeeSerializer, EmployerSerializer, PriceSerializer, CShiftSerializer, PShiftSerializer, TimeSheetSerializer, RecordSheetSerializer |
|
|
|
|
from caremyway.api.serializers import UserSerializer, UserInfoSerializer, ClientSerializer, ProviderSerializer, WorkTypeSerializer, EmployeeSerializer, EmployerSerializer, PriceSerializer, CShiftSerializer, PShiftSerializer, TimeSheetSerializer, RecordSheetSerializer, PayStubSerializer |
|
|
|
|
|
|
|
|
|
class UserViewSet(viewsets.ModelViewSet): |
|
|
|
|
lookup_field = 'username' |
|
|
|
@ -415,6 +415,31 @@ def gen_recordsheets(user, payday, manage): |
|
|
|
|
|
|
|
|
|
return list(recordsheets) |
|
|
|
|
|
|
|
|
|
def gen_paystubs(user, payday, manage): |
|
|
|
|
recordsheets = gen_recordsheets(user, payday, manage) |
|
|
|
|
print(recordsheets) |
|
|
|
|
paystubs = [] |
|
|
|
|
|
|
|
|
|
for recordsheet in recordsheets: |
|
|
|
|
lastrecord = recordsheet['record'][-1] |
|
|
|
|
|
|
|
|
|
paystub = {} |
|
|
|
|
paystub['management'] = recordsheet['management'] |
|
|
|
|
paystub['client'] = recordsheet['client'] |
|
|
|
|
paystub['provider'] = recordsheet['provider'] |
|
|
|
|
paystub['payday'] = lastrecord['payday'] |
|
|
|
|
paystub['reg_pay'] = lastrecord['reg_pay'] |
|
|
|
|
paystub['vac_pay'] = lastrecord['vac_pay'] |
|
|
|
|
paystub['earnings'] = lastrecord['earnings'] |
|
|
|
|
paystub['cpp'] = lastrecord['cpp'] |
|
|
|
|
paystub['ei'] = lastrecord['ei'] |
|
|
|
|
paystub['income_tax'] = lastrecord['income_tax'] |
|
|
|
|
paystub['total_deductions'] = lastrecord['total_deductions'] |
|
|
|
|
paystub['net_pay'] = lastrecord['net_pay'] |
|
|
|
|
paystubs.append(paystub) |
|
|
|
|
|
|
|
|
|
return list(paystubs) |
|
|
|
|
|
|
|
|
|
class ReportView(APIView): |
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
response = [] |
|
|
|
@ -438,6 +463,14 @@ class ReportView(APIView): |
|
|
|
|
|
|
|
|
|
response = RecordSheetSerializer(recordsheets, many=True).data |
|
|
|
|
|
|
|
|
|
elif report_type == 'paystub': |
|
|
|
|
payday = validate_param(qp.get('payday'), serializers.DateField()) |
|
|
|
|
manage = validate_param(qp.get('manage'), serializers.UUIDField(allow_null=True)) |
|
|
|
|
|
|
|
|
|
paystubs = gen_paystubs(request.user, payday, manage) |
|
|
|
|
|
|
|
|
|
response = PayStubSerializer(paystubs, many=True).data |
|
|
|
|
|
|
|
|
|
return Response(response, status=status.HTTP_200_OK) |
|
|
|
|
|
|
|
|
|
@api_view() |
|
|
|
|