This commit is contained in:
holger.trampe 2020-11-09 21:00:27 +01:00
parent 99116da8d3
commit 3ae7eb829d
2 changed files with 50 additions and 46 deletions

View File

@ -1046,6 +1046,7 @@ Berücksichtigt sowohl Wochenende als auch in der Agentur hinterlegte Freitage/S
'''
@login_required
def calculateHolidays(request, start, end, start_half, end_half, user):
restdays = 0
allfreedays = FreeDays.objects.filter(agency=request.user.profile.agency)
if(end == start):
@ -1066,34 +1067,36 @@ def calculateHolidays(request, start, end, start_half, end_half, user):
weekdays = []
freedaycounter = 0
for dt in daterange(start, end):
day_found = False
if dt.isoweekday() not in weekdays:
counter += 1
for freeday in allfreedays.all():
if(dt == freeday.day):
freedaycounter += 1
day_found = True
# Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht
if(dt.isoweekday() == 1):
if user.usertime.wd_mo == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 2):
if user.usertime.wd_tu == 0.0:#
freedaycounter += 1
elif(dt.isoweekday() == 3):
if user.usertime.wd_we == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 4):
if user.usertime.wd_th == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 5):
if user.usertime.wd_fr == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 6):
if user.usertime.wd_sa == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 7):
if user.usertime.wd_so == 0.0:
freedaycounter += 1
if day_found == False:
if(dt.isoweekday() == 1):
if user.usertime.wd_mo == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 2):
if user.usertime.wd_tu == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 3):
if user.usertime.wd_we == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 4):
if user.usertime.wd_th == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 5):
if user.usertime.wd_fr == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 6):
if user.usertime.wd_sa == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 7):
if user.usertime.wd_so == 0.0:
freedaycounter += 1
return restdays - counter + freedaycounter
@ -1121,7 +1124,7 @@ def calculatingHolidaysByAbsence(request, absence):
weekdays = []
freedaycounter = 0
for dt in daterange(absence.start, absence.end):
day_found = False
if dt.isoweekday() not in weekdays:
finalholidayinabsence += 1
# Prüfung, ob freie Tage vorhanden sind
@ -1129,30 +1132,31 @@ def calculatingHolidaysByAbsence(request, absence):
# FREEDAY FOUND
if(dt == freeday.day):
freedaycounter += 1
day_found = True
# Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht
stat = False
if(dt.isoweekday() == 1):
if absence.user.usertime.wd_mo == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 2):
if absence.user.usertime.wd_tu == 0.0:#
freedaycounter += 1
elif(dt.isoweekday() == 3):
if absence.user.usertime.wd_we == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 4):
if absence.user.usertime.wd_th == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 5):
if absence.user.usertime.wd_fr == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 6):
if absence.user.usertime.wd_sa == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 7):
if absence.user.usertime.wd_so == 0.0:
freedaycounter += 1
if day_found == False:
if(dt.isoweekday() == 1):
if absence.user.usertime.wd_mo == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 2):
if absence.user.usertime.wd_tu == 0.0:#
freedaycounter += 1
elif(dt.isoweekday() == 3):
if absence.user.usertime.wd_we == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 4):
if absence.user.usertime.wd_th == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 5):
if absence.user.usertime.wd_fr == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 6):
if absence.user.usertime.wd_sa == 0.0:
freedaycounter += 1
elif(dt.isoweekday() == 7):
if absence.user.usertime.wd_so == 0.0:
freedaycounter += 1
return finalholidayinabsence - freedaycounter

View File

@ -513,7 +513,7 @@ def dashboard(request):
filterdate = datetime.now()
#news = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__let=filterdate).filter(go_offline_on__get=filterdate).order_by('-go_online_on')[:4]
news_all = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-created_date') | News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__isnull=True).order_by('-created_date')
news_all = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-go_online_on') | News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__isnull=True).order_by('-go_online_on')
# Maximal fünf News final zur Seite schicken!
news = []