65 lines
1.6 KiB
Python
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
|
|
|
|
|
|
|
|
|