digitaleagenturnc/digitaleagentur/timemanagement_utils.py

65 lines
1.6 KiB
Python

from datetime import timedelta
from timemanagement.models import *
'''
Hier sind alle Methoden gesammelt, die bei der Zeiterfassung eine Rolle spielen.
daterange()
- Gibt jeden Tag zwischen zwei Daten zurück
@param:
date1 - Startdatum
date2 - Enddatum
@return:
Array mit den entsprechenden Tagen
getIsAbsenceStartEndHalf()
- Gibt True zurücke, wenn der Anfang oder das Ende einer Abwesenheit nur ein halber Tag ist, ansonsten False
@param:
absence - Die zu prüfende Abwesenheit
@return:
True -> Ist nur ein halber Tag
False -> Ist ein ganzer Tag
isfreedaycheck()
- Gibt True/False zurück, wenn der übergebene Tag innerhalb oder an einem Feiertag/freien Tag der Agentur lirgt.
@param
user - Benutzer, um über user.profile.agency die entsprechende Agentur abzufragen
day - Tag, welcher geprüft werden soll
@return:
True -> Übergebener Tag ist kein freier Tag oder kein Feiertag
False -> Übergebener Tag ist ein freier Tag oder ein Feiertag
'''
# Gibt die Woche als Wochentage zurück
def daterange(date1, date2):
for n in range(int ((date2 - date1).days)+1):
yield date1 + timedelta(n)
# Gibt True zurück, wenn eine Tag einer Abwesenheit nur ein halber Tag ist
def getIsAbsenceStartEndHalf(absence):
if absence.startday_info == "1" or absence.startday_info == "2" or absence.endday_info == "1" or absence.endday_info == "2":
return True
else:
return False
# Gibt True zurück, wenn dieser Tag nicht an einem freien Tag liegt.
def isfreedaycheck(user, day):
if len(FreeDays.objects.filter(agency=user.profile.agency, day=day)) > 0:
return False
else:
return True