Bugfixing Cronjob ohne try
This commit is contained in:
parent
2851cc8807
commit
6d89d5f40d
134
users/views.py
134
users/views.py
|
|
@ -1415,6 +1415,7 @@ class landingPage(TemplateView):
|
||||||
'''
|
'''
|
||||||
def absencecheck(user, daytocheck):
|
def absencecheck(user, daytocheck):
|
||||||
returnstat = False
|
returnstat = False
|
||||||
|
print("ABSENCECHECK")
|
||||||
absencedays = Absence.objects.filter(agency=user.profile.agency, user=user, confirm_status=0) & (Absence.objects.filter(agency=user.profile.agency, user=user, start=daytocheck) | (Absence.objects.filter(agency=user.profile.agency, user=user, start__lt=daytocheck) & Absence.objects.filter(agency=user.profile.agency, user=user, end__gt=daytocheck)) | Absence.objects.filter(agency=user.profile.agency, user=user, end=daytocheck))
|
absencedays = Absence.objects.filter(agency=user.profile.agency, user=user, confirm_status=0) & (Absence.objects.filter(agency=user.profile.agency, user=user, start=daytocheck) | (Absence.objects.filter(agency=user.profile.agency, user=user, start__lt=daytocheck) & Absence.objects.filter(agency=user.profile.agency, user=user, end__gt=daytocheck)) | Absence.objects.filter(agency=user.profile.agency, user=user, end=daytocheck))
|
||||||
if(len(absencedays) > 0):
|
if(len(absencedays) > 0):
|
||||||
returnstat = True
|
returnstat = True
|
||||||
|
|
@ -1432,81 +1433,84 @@ def cronactionsdaily(request, code):
|
||||||
today = date.today()
|
today = date.today()
|
||||||
for user in allusers:
|
for user in allusers:
|
||||||
# REST URLAUB BERECHNUNG
|
# REST URLAUB BERECHNUNG
|
||||||
try:
|
#try:
|
||||||
usertimedata = UserTime.objects.get(user=user)
|
usertimedata = UserTime.objects.get(user=user)
|
||||||
day_tocheck = usertimedata.loose_holidedate.split(".")[0]
|
day_tocheck = usertimedata.loose_holidedate.split(".")[0]
|
||||||
month_tocheck = usertimedata.loose_holidedate.split(".")[1]
|
month_tocheck = usertimedata.loose_holidedate.split(".")[1]
|
||||||
month = today.month
|
month = today.month
|
||||||
|
day = today.day
|
||||||
|
if month < 10:
|
||||||
|
month = "0" + str(month)
|
||||||
day = today.day
|
day = today.day
|
||||||
if month < 10:
|
else:
|
||||||
month = "0" + str(month)
|
month = month
|
||||||
day = today.day
|
|
||||||
else:
|
|
||||||
month = month
|
|
||||||
|
|
||||||
if day < 10:
|
if day < 10:
|
||||||
day = "0" + str(day)
|
day = "0" + str(day)
|
||||||
else:
|
else:
|
||||||
day = day
|
day = day
|
||||||
# Restetag erreicht, Reste ins nächste Jahr übertragen
|
|
||||||
if(str(day_tocheck) == str(day) and str(month_tocheck) == str(month)):
|
# Restetag erreicht, Reste ins nächste Jahr übertragen
|
||||||
sourceyear = today.year
|
if(str(day_tocheck) == str(day) and str(month_tocheck) == str(month)):
|
||||||
this_year = list(UserYearAbsenceInfo.objects.filter(year=sourceyear, user=user))[0]
|
sourceyear = today.year
|
||||||
next_year = list(UserYearAbsenceInfo.objects.filter(year=sourceyear+1, user=user))[0]
|
this_year = list(UserYearAbsenceInfo.objects.filter(year=sourceyear, user=user))[0]
|
||||||
next_year.restdays = this_year.days - this_year.days_inuse
|
next_year = list(UserYearAbsenceInfo.objects.filter(year=sourceyear+1, user=user))[0]
|
||||||
next_year.save()
|
next_year.restdays = this_year.days - this_year.days_inuse
|
||||||
|
next_year.save()
|
||||||
|
|
||||||
if(user.usertime.usetime):
|
if(user.usertime.usetime):
|
||||||
workdays = Workday.objects.filter(user=user, end=None)
|
workdays = Workday.objects.filter(user=user, end=None)
|
||||||
for wd in workdays:
|
for wd in workdays:
|
||||||
wd.end = datetime(wd.start.year, wd.start.month, wd.start.day, 23, 59)
|
wd.end = datetime(wd.start.year, wd.start.month, wd.start.day, 23, 59)
|
||||||
wd.save()
|
wd.save()
|
||||||
|
|
||||||
yesterday = date.today() - timedelta(days=1)
|
yesterday = date.today() - timedelta(days=1)
|
||||||
weekday = yesterday.weekday()
|
weekday = yesterday.weekday()
|
||||||
workdays_yesterday = len(Workday.objects.filter(user=user, start__day=yesterday.day, start__month=yesterday.month, start__year=yesterday.year))
|
|
||||||
|
|
||||||
targettworktime = 0.0
|
workdays_yesterday = len(Workday.objects.filter(user=user, start__day=yesterday.day, start__month=yesterday.month, start__year=yesterday.year))
|
||||||
# Mitarbeiter hat für den gestrigen Tag keine Zeiten erfasst, daher automatisch auf null wenn KEINE Abwesenheit eingetragen wurde
|
|
||||||
if(weekday == 0):
|
|
||||||
targettworktime = user.usertime.wd_mo
|
|
||||||
if(weekday == 1):
|
|
||||||
targettworktime = user.usertime.wd_tu
|
|
||||||
if(weekday == 2):
|
|
||||||
targettworktime = user.usertime.wd_we
|
|
||||||
if(weekday == 3):
|
|
||||||
targettworktime = user.usertime.wd_th
|
|
||||||
if(weekday == 4):
|
|
||||||
targettworktime = user.usertime.wd_fr
|
|
||||||
if(weekday == 5):
|
|
||||||
targettworktime = user.usertime.wd_sa
|
|
||||||
if(weekday == 6):
|
|
||||||
targettworktime = user.usertime.wd_so
|
|
||||||
|
|
||||||
# Es wird nur ein Arbeitstag erstellt, wenn KEINE Abwesenheiten vorliegen und der Nutzer an diesem Tag arbeiten muss
|
targettworktime = 0.0
|
||||||
if(workdays_yesterday == 0 and absencecheck(user, yesterday) == False and targettworktime > 0.0 and user.usertime.usetime_start <= today):
|
# Mitarbeiter hat für den gestrigen Tag keine Zeiten erfasst, daher automatisch auf null wenn KEINE Abwesenheit eingetragen wurde
|
||||||
workdaytemp = Workday(user=user, agency=user.profile.agency, start=datetime(yesterday.year, yesterday.month, yesterday.day, 8, 0), end=datetime(yesterday.year, yesterday.month, yesterday.day, 8, 0), target=targettworktime)
|
if(weekday == 0):
|
||||||
workdaytemp.save()
|
targettworktime = user.usertime.wd_mo
|
||||||
|
if(weekday == 1):
|
||||||
|
targettworktime = user.usertime.wd_tu
|
||||||
|
if(weekday == 2):
|
||||||
|
targettworktime = user.usertime.wd_we
|
||||||
|
if(weekday == 3):
|
||||||
|
targettworktime = user.usertime.wd_th
|
||||||
|
if(weekday == 4):
|
||||||
|
targettworktime = user.usertime.wd_fr
|
||||||
|
if(weekday == 5):
|
||||||
|
targettworktime = user.usertime.wd_sa
|
||||||
|
if(weekday == 6):
|
||||||
|
targettworktime = user.usertime.wd_so
|
||||||
|
|
||||||
|
# Es wird nur ein Arbeitstag erstellt, wenn KEINE Abwesenheiten vorliegen und der Nutzer an diesem Tag arbeiten muss
|
||||||
|
if(workdays_yesterday == 0 and absencecheck(user, yesterday) == False and targettworktime > 0.0 and user.usertime.usetime_start <= today):
|
||||||
|
workdaytemp = Workday(user=user, agency=user.profile.agency, start=datetime(yesterday.year, yesterday.month, yesterday.day, 8, 0), end=datetime(yesterday.year, yesterday.month, yesterday.day, 8, 0), target=targettworktime)
|
||||||
|
workdaytemp.save()
|
||||||
|
|
||||||
|
|
||||||
# Erinnerungsmails/Push bei Vertretung verschicken
|
# Erinnerungsmails/Push bei Vertretung verschicken
|
||||||
one_week_later = date.today() + timedelta(days=7)
|
one_week_later = date.today() + timedelta(days=7)
|
||||||
repre_absence = Absence.objects.filter(representator=user, start=one_week_later, confirm_status=0)
|
|
||||||
|
repre_absence = Absence.objects.filter(representator=user, start=one_week_later, confirm_status=0)
|
||||||
for r in repre_absence:
|
|
||||||
if(r.representator.usernotifications.absence_user_is_rep_reminder_mail):
|
for r in repre_absence:
|
||||||
sendMailNoti(" in einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!", user)
|
if(r.representator.usernotifications.absence_user_is_rep_reminder_mail):
|
||||||
|
sendMailNoti(" in einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!", user)
|
||||||
|
|
||||||
if(r.representator.usernotifications.absence_user_is_rep_reminder_push):
|
if(r.representator.usernotifications.absence_user_is_rep_reminder_push):
|
||||||
newnotification = UserNotification(touser=user, notificationtext="Erinnerung für Abwesenheitsvertretung!", notificationtype="", elementid=r.pk)
|
newnotification = UserNotification(touser=user, notificationtext="Erinnerung für Abwesenheitsvertretung!", notificationtype="", elementid=r.pk)
|
||||||
newnotification.save()
|
newnotification.save()
|
||||||
|
|
||||||
channel_layer = channels.layers.get_channel_layer()
|
channel_layer = channels.layers.get_channel_layer()
|
||||||
async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Abwesenheit | In einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!"})
|
async_to_sync(channel_layer.group_send)("user_" + str(user.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Abwesenheit | In einer Woche startet Ihre Vertretung für " + r.user.first_name + " " + r.user.last_name + "!"})
|
||||||
|
|
||||||
data.update({"status " + str(user.pk) : "ok"})
|
data.update({"status " + str(user.pk) : "ok"})
|
||||||
except ObjectDoesNotExist:
|
#except ObjectDoesNotExist:
|
||||||
data.update({"status" + str(user.pk) : "no usertime found for " + user.get_full_name()})
|
# data.update({"status" + str(user.pk) : "no usertime found for " + user.get_full_name()})
|
||||||
else:
|
else:
|
||||||
print("API CODE FAILED")
|
print("API CODE FAILED")
|
||||||
data.update({"status" : "failed"})
|
data.update({"status" : "failed"})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue