Bug Gleitzeit
This commit is contained in:
parent
c31d329e4a
commit
e1620e740d
|
|
@ -29,6 +29,9 @@ from django.template.loader import render_to_string
|
|||
from cloud.models import DataFile
|
||||
import math
|
||||
import requests
|
||||
|
||||
# TODO: ADM-Oberfläche Auswertung machen, an welchen Tagen eines Mitarbeiters auch eine Abwesenheit
|
||||
|
||||
'''
|
||||
Prüfung, ob angemeldeter User Mitarbeiterstatus hat. IMMER PER DISPATCH EINBAUEN!
|
||||
'''
|
||||
|
|
|
|||
|
|
@ -48,53 +48,49 @@ def checkAbsenceWorkdayCollide(absence):
|
|||
# Alle einzelnen Tage der Abwesenheit werden durchgegangen:
|
||||
for day in daterange(absence.start, absence.end):
|
||||
# Arbeitstage an diesem Tag werden geladen
|
||||
workdays = Workday.objects.filter(user=absence.user, start__day=absence.start.day, start__month=absence.start.month, start__year=absence.start.year)
|
||||
workdays = Workday.objects.filter(user=absence.user, start__day=day.day, start__month=day.month, start__year=day.year)
|
||||
|
||||
# Wenn es Arbeitstage gibt, dann wird geprüft, ob die Abwesenheit diesen verändert hat.
|
||||
for workday in workdays:
|
||||
# Arbeitstag in Tag ohne Zeit umwandeln
|
||||
# Wenn die Abwesenheit die Zeiterfassung NICHT ändert, muss diese ggf. geändert werden. Ansonsten bleibt sie gleich.
|
||||
if absence.reason.is_time == False:
|
||||
if absence.reason.is_time == True:
|
||||
# Prüfung, ob der Tag halb ist oder nicht. Wenn ja, dann Zielarbeitszeit des Tages um die Hälfte reduzieren.
|
||||
if (workday.start.day == absence.start.day and workday.start.month == absence.start.month and workday.start.year == absence.start.year) or (workday.end.day == absence.end.day and workday.end.month == absence.end.month and workday.end.year == absence.end.year):
|
||||
if(getIsAbsenceStartEndHalf(absence)):
|
||||
workday.target = workday.target / 2
|
||||
workday.save()
|
||||
# Ganzer Tag vorhanden, Arbeitstag wird als löschen markiert, aber nicht gelöscht
|
||||
else:
|
||||
workday.delflag = True
|
||||
workday.save()
|
||||
else:
|
||||
# Sollte der ganze Tag mal als zu löschen markiert worden sein, wird dies hier zurückgenommen
|
||||
if workday.delflag == True:
|
||||
workday.delflag = False
|
||||
#if (workday.start.day == absence.start.day and workday.start.month == absence.start.month and workday.start.year == absence.start.year) or (workday.end.day == absence.end.day and workday.end.month == absence.end.month and workday.end.year == absence.end.year):
|
||||
if(getIsAbsenceStartEndHalf(absence)):
|
||||
workday.target = workday.target / 2
|
||||
workday.save()
|
||||
# Sollte der ganze Tag mal als zu löschen markiert worden sein, wird dies hier zurückgenommen
|
||||
if workday.delflag == True:
|
||||
workday.delflag = False
|
||||
workday.save()
|
||||
else:
|
||||
workday.delflag = True
|
||||
workday.save()
|
||||
|
||||
def checkAbsenceWorkdayCollideDelete(absence):
|
||||
# Alle einzelnen Tage der Abwesenheit werden durchgegangen:
|
||||
for day in daterange(absence.start, absence.end):
|
||||
# Arbeitstage an diesem Tag werden geladen
|
||||
workdays = Workday.objects.filter(user=absence.user, start__day=absence.start.day, start__month=absence.start.month, start__year=absence.start.year)
|
||||
workdays = Workday.objects.filter(user=absence.user, start__day=day.day, start__month=day.month, start__year=day.year)
|
||||
|
||||
# Wenn es Arbeitstage gibt, dann wird geprüft, ob die Abwesenheit diesen verändert hat.
|
||||
for workday in workdays:
|
||||
# Arbeitstag in Tag ohne Zeit umwandeln
|
||||
# Wenn die Abwesenheit die Zeiterfassung NICHT ändert, muss diese ggf. geändert werden. Ansonsten bleibt sie gleich.
|
||||
if absence.reason.is_time == False:
|
||||
if absence.reason.is_time == True:
|
||||
# Prüfung, ob der Tag halb ist oder nicht. Wenn ja, dann Zielarbeitszeit des Tages um die Hälfte reduzieren.
|
||||
if (workday.start.day == absence.start.day and workday.start.month == absence.start.month and workday.start.year == absence.start.year) or (workday.end.day == absence.end.day and workday.end.month == absence.end.month and workday.end.year == absence.end.year):
|
||||
if(getIsAbsenceStartEndHalf(absence)):
|
||||
workday.target = workday.target / 2
|
||||
workday.save()
|
||||
# Ganzer Tag vorhanden, Arbeitstag wird als löschen markiert, aber nicht gelöscht
|
||||
else:
|
||||
workday.delflag = False
|
||||
workday.save()
|
||||
else:
|
||||
# Sollte der ganze Tag mal als zu löschen markiert worden sein, wird dies hier zurückgenommen
|
||||
if workday.delflag == True:
|
||||
workday.delflag = False
|
||||
#if (workday.start.day == absence.start.day and workday.start.month == absence.start.month and workday.start.year == absence.start.year) or (workday.end.day == absence.end.day and workday.end.month == absence.end.month and workday.end.year == absence.end.year):
|
||||
if(getIsAbsenceStartEndHalf(absence)):
|
||||
workday.target = workday.target / 2
|
||||
workday.save()
|
||||
# Sollte der ganze Tag mal als zu löschen markiert worden sein, wird dies hier zurückgenommen
|
||||
if workday.delflag == True:
|
||||
workday.delflag = False
|
||||
workday.save()
|
||||
else:
|
||||
workday.delflag = True
|
||||
workday.save()
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ from django.template.loader import render_to_string
|
|||
from django.core.mail import send_mail
|
||||
from digitaleagentur.utils import *
|
||||
|
||||
|
||||
# Load freedays
|
||||
def loadingFreeDays(plz):
|
||||
# Getting land
|
||||
|
|
|
|||
Loading…
Reference in New Issue