Automatismen Zeiterfassung DONE
This commit is contained in:
parent
2059671f3c
commit
a70a4e8f6c
|
|
@ -1,5 +1,5 @@
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
from timemanagement.models import *
|
||||||
'''
|
'''
|
||||||
|
|
||||||
Hier sind alle Methoden gesammelt, die bei der Zeiterfassung eine Rolle spielen.
|
Hier sind alle Methoden gesammelt, die bei der Zeiterfassung eine Rolle spielen.
|
||||||
|
|
@ -25,6 +25,18 @@ from datetime import timedelta
|
||||||
True -> Ist nur ein halber Tag
|
True -> Ist nur ein halber Tag
|
||||||
False -> Ist ein ganzer 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
|
# Gibt die Woche als Wochentage zurück
|
||||||
|
|
@ -39,3 +51,14 @@ def getIsAbsenceStartEndHalf(absence):
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -36,6 +36,7 @@
|
||||||
<tbody id="table_contacts" >
|
<tbody id="table_contacts" >
|
||||||
{% for da in days_this_month %}
|
{% for da in days_this_month %}
|
||||||
|
|
||||||
|
{% isfreedayname request.user da as isfreename %}
|
||||||
|
|
||||||
{% getabscenceday request.user request.user da as abday %}
|
{% getabscenceday request.user request.user da as abday %}
|
||||||
<tr id="da_{{da|date:"d-m-y"}}"
|
<tr id="da_{{da|date:"d-m-y"}}"
|
||||||
|
|
@ -43,6 +44,8 @@
|
||||||
style="background-color: #d3d3d3;"
|
style="background-color: #d3d3d3;"
|
||||||
{% elif abday != False %}
|
{% elif abday != False %}
|
||||||
style="background-color: {{abday.reason.color}}; color: #ffffff"
|
style="background-color: {{abday.reason.color}}; color: #ffffff"
|
||||||
|
{% elif isfreename != False %}
|
||||||
|
style="background-color: #d3d3d3;"
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for workday in workdays %}
|
{% for workday in workdays %}
|
||||||
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
|
{% if workday.start|date:"d-m-y" == da|date:"d-m-y" %}
|
||||||
|
|
@ -61,9 +64,13 @@
|
||||||
{{da|date:"d.m.y"}}
|
{{da|date:"d.m.y"}}
|
||||||
</td>
|
</td>
|
||||||
<!-- START -->
|
<!-- START -->
|
||||||
<td {% if abday != False %} colspan="3" {% endif %}>
|
<td {% if abday != False or isfreename != False %} colspan="3" {% endif %}>
|
||||||
{% if abday != False %}
|
{% if abday != False or isfreename != False %}
|
||||||
|
{% if isfreename != False %}
|
||||||
|
{{isfreename}}
|
||||||
|
{% else %}
|
||||||
{{abday.reason}}
|
{{abday.reason}}
|
||||||
|
{% endif %}
|
||||||
{% if abday.start == da%}
|
{% if abday.start == da%}
|
||||||
{% if abday.startday_info == "1" %}
|
{% if abday.startday_info == "1" %}
|
||||||
(nur Vormittags)
|
(nur Vormittags)
|
||||||
|
|
@ -213,7 +220,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
{% if abday == False %}
|
{% if abday == False and isfreename == False %}
|
||||||
<!-- ENDE -->
|
<!-- ENDE -->
|
||||||
<td>
|
<td>
|
||||||
{% counterWDreset %}
|
{% counterWDreset %}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@ from django.contrib.auth.models import User, Group
|
||||||
from users.signals import adjust_group_notifications_permission
|
from users.signals import adjust_group_notifications_permission
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from digitaleagentur.utils import *
|
from digitaleagentur.utils import *
|
||||||
|
from digitaleagentur.timemanagement_utils import *
|
||||||
from organizer.models import QuickLinks
|
from organizer.models import QuickLinks
|
||||||
from areas.models import Areas
|
from areas.models import Areas
|
||||||
from tasks.models import Tasks
|
from tasks.models import Tasks
|
||||||
|
|
@ -1643,7 +1644,7 @@ def cronactionsdaily(request, code):
|
||||||
day_half_found = True
|
day_half_found = True
|
||||||
|
|
||||||
# Es wird nur ein Arbeitstag erstellt, wenn KEINE Abwesenheiten vorliegen und der Nutzer an diesem Tag arbeiten muss
|
# 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 or day_half_found) and targettworktime > 0.0 and user.usertime.usetime_start < today):
|
if(workdays_yesterday == 0 and (absencecheck(user, yesterday) == False or day_half_found) and isfreedaycheck(user, yesterday) 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 = 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()
|
workdaytemp.save()
|
||||||
except:
|
except:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue