33import itertools
44import math
55
6- from django .db .models import Q , Sum
6+ from django .db .models import Q , Count , Sum
77from django .utils import timezone
88
99from rest_framework import serializers
@@ -87,12 +87,12 @@ class Meta:
8787
8888class EmployeeGetSerializer (serializers .ModelSerializer ):
8989 user = UserGetSmallSerializer (read_only = True )
90- badges = BadgeGetSmallSerializer (read_only = True , many = True )
90+ # badges = BadgeGetSmallSerializer(read_only=True, many=True)
9191
9292
9393 class Meta :
9494 model = Employee
95- fields = ('user' , 'id' , 'badges' , 'employment_verification_status' )
95+ fields = ('user' , 'id' ,'employment_verification_status' )
9696
9797
9898class ClockinGetSerializer (serializers .ModelSerializer ):
@@ -130,12 +130,11 @@ class Meta:
130130 exclude = ()
131131
132132class PayrollPeriodPaymentEmployeeSerializer (serializers .ModelSerializer ):
133- employee = EmployeeGetSerializer (read_only = True )
133+ # employee = EmployeeGetSerializer(read_only=True)
134134
135135 class Meta :
136136 model = PayrollPeriodPayment
137137 exclude = ()
138- fields = ('employee' , )
139138
140139class PayrollPeriodGetDateSerializer (serializers .ModelSerializer ):
141140 class Meta :
@@ -146,7 +145,9 @@ class Meta:
146145 'ending_at' ,
147146 )
148147class PayrollPeriodGetTinySerializer (serializers .ModelSerializer ):
149- payments = PayrollPeriodPaymentEmployeeSerializer (read_only = True , many = True )
148+ # payments = PayrollPeriodPaymentEmployeeSerializer(read_only=True, many=True)
149+ employee_count = serializers .SerializerMethodField ()
150+
150151 class Meta :
151152 model = PayrollPeriod
152153 fields = (
@@ -155,9 +156,16 @@ class Meta:
155156 'starting_at' ,
156157 'ending_at' ,
157158 'total_payments' ,
158- 'payments '
159+ 'employee_count '
159160 )
160161
162+ def get_employee_count (self , instance ):
163+ employees = PayrollPeriodPayment .objects .filter (employer__id = instance .employer_id , payroll_period__id = instance .id ).order_by ('employee_id' ).values ('employee' ).distinct ().count ()
164+
165+ total_employees = employees
166+
167+ return total_employees
168+
161169class PayrollPeriodGetSmallSerializer (serializers .ModelSerializer ):
162170 class Meta :
163171 model = PayrollPeriod
@@ -595,7 +603,7 @@ def generate_periods_and_payments(employer, generate_since=None):
595603 if end_date >= NOW :
596604 log_debug ('hooks' ,'No new periods to generate, now is ' + str (NOW ) + ' we have to wait until ' + str (end_date ))
597605 return []
598-
606+
599607 while end_date < NOW :
600608
601609 start_date = end_date - \
@@ -660,6 +668,7 @@ def generate_periods_and_payments(employer, generate_since=None):
660668 payment .save ()
661669 total_payments = total_payments + 1
662670
671+ print ('el total payment' , total_payments )
663672 period .total_payments = total_payments
664673 period .save ()
665674 generated_periods .append (period )
0 commit comments