QS 0.9.1 Bugs bearbeitet
This commit is contained in:
parent
eb0f5fbe70
commit
1882602a4e
1
.cred
1
.cred
|
|
@ -1,2 +1,3 @@
|
|||
https://holger.trampe:Zerogoogle123_@git.vhevents.de/
|
||||
https://holger.trampe:Zerogoogle123_@git.vhevents.de/
|
||||
https://holger.trampe:Zerogoogle123_@git.vhevents.de/
|
||||
|
|
|
|||
|
|
@ -942,7 +942,7 @@ def UserProfileUpdate(request, pk, newuser=0):
|
|||
}
|
||||
return render(request, 'dasettings/user_usprof.html', context)
|
||||
else:
|
||||
messages.success(request, f'Fehlerhafte Eingabe!')
|
||||
messages.success(request, f'Fehlerhafte Eingabe! Das Verfallsdatum muss im Format TAG.MONAT. sein und existieren!')
|
||||
context = {
|
||||
'active_link' : 'dasettings',
|
||||
'user_fullname' : user_fullname,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
from django import template
|
||||
from django.contrib.auth.models import Group, User
|
||||
from users.models import AgencyGroup, Agency, AgencyNetwork, AgencyNetworkPreperation, UserTime
|
||||
from users.models import AgencyGroup, Agency, AgencyNetwork, AgencyNetworkPreperation, UserTime, UserYearAbsenceInfo
|
||||
from standards.models import Standards, StandardCommentRate, StandardComments
|
||||
from timemanagement.models import Workday, FreeDays, Absence
|
||||
from message.models import Message
|
||||
|
|
@ -594,3 +594,47 @@ def loadaccounttime(user):
|
|||
|
||||
return [final_info, status]
|
||||
|
||||
'''
|
||||
|
||||
Gibt True zurück, wenn ein Mitarbeiter an diesem Tag laut Vertragsdaten NICHT arbeitet.
|
||||
|
||||
Gibt False zurück, wenn er an diesem Tag mindestens 0.1 Stunden arbeitet
|
||||
|
||||
'''
|
||||
@register.simple_tag
|
||||
def getthisdaynotworking(user, day):
|
||||
stat = False
|
||||
if(day.isoweekday() == 1):
|
||||
if user.usertime.wd_mo == 0.0:
|
||||
stat = True
|
||||
elif(day.isoweekday() == 2):
|
||||
if user.usertime.wd_tu == 0.0:#
|
||||
stat = True
|
||||
elif(day.isoweekday() == 3):
|
||||
if user.usertime.wd_we == 0.0:
|
||||
stat = True
|
||||
elif(day.isoweekday() == 4):
|
||||
if user.usertime.wd_th == 0.0:
|
||||
stat = True
|
||||
elif(day.isoweekday() == 5):
|
||||
if user.usertime.wd_fr == 0.0:
|
||||
stat = True
|
||||
return stat
|
||||
|
||||
|
||||
'''
|
||||
|
||||
Gibt das verfügbare Urlaubskontingent eines Mitarbeiters zurück
|
||||
|
||||
'''
|
||||
@register.simple_tag
|
||||
def kontingent(user):
|
||||
kon = 0.0
|
||||
try:
|
||||
yearinfo = list(UserYearAbsenceInfo.objects.filter(year=date.today().year, user=user))[0]
|
||||
inuse = yearinfo.days_inuse
|
||||
kon = yearinfo.days - inuse
|
||||
except:
|
||||
pass
|
||||
|
||||
return kon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{% load crispy_forms_tags %}
|
||||
{% load mathfilters %}
|
||||
{% load counter_tag %}
|
||||
|
||||
{% if user|usergperm:"absencemanager" %}
|
||||
|
||||
<h5>Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} annehmen/ablehnen</h5>
|
||||
<hr>
|
||||
<h6>Informationen der Abwesenheit</h6>
|
||||
|
|
@ -49,3 +53,10 @@ Informationen: {{absence.info}}<br />
|
|||
absencestring_confirm = 'Sicher, dass Sie die Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} vom {{absence.start|date:"d.m Y"}} bis {{absence.end|date:"d.m Y"}} <b>annehmen</b> wollen?'
|
||||
absencestring_noconfirm = 'Sicher, dass Sie die Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} vom {{absence.start|date:"d.m Y"}} bis {{absence.end|date:"d.m Y"}} <b>ablehnen</b> wollen?'
|
||||
</script>
|
||||
|
||||
{% else %}
|
||||
|
||||
<h5>Abwesenheit für {{absence.user.first_name}} {{absence.user.last_name}} annehmen/ablehnen</h5>
|
||||
<hr>
|
||||
Diese Daten dürfen Sie nicht abrufen.
|
||||
{% endif %}
|
||||
|
|
@ -8,8 +8,9 @@
|
|||
<button type="button" class="btn btn-primary mr-1" onclick="javascript:nextMonth()"><i class="fas fa-arrow-circle-right"></i></button>
|
||||
</div>
|
||||
</td>
|
||||
{% for da in days_this_month %}
|
||||
<td id="{{forloop.counter0}}_tableheadid"><small>{{da|date:"d D"}}</small></td>
|
||||
{% for da in days_this_month %}
|
||||
{% isfreeday user da as isfree %}
|
||||
<td id="{{forloop.counter0}}_tableheadid" {% if today == da %} style="background-color: #F2D488;" {% elif da.weekday == 5 or da.weekday == 6 %} style="background-color: #d3d3d3;" {% elif isfree %} style="background-color: #9C9C9C; color: #ffffff" {% endif %}><small>{{da|date:"d D"}}</small></td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
|
|
@ -20,20 +21,26 @@
|
|||
<td width="21%" id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_firstcolum">
|
||||
<img class="commentimg mr-2" src="{{ us.profile.get_photo_url }}">
|
||||
{{us.get_full_name}}
|
||||
{% if user|usergperm:"absencemanager" %}
|
||||
{% kontingent us as userkontingent %}
|
||||
<span class="badge badge-primary badge-counter" style="float: right;" >{{userkontingent}}</span>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
{% for da in days_this_month %}
|
||||
|
||||
{% for da in days_this_month %}
|
||||
{% isfreeday user da as isfree %}
|
||||
{% isfreedayname user da as isfreename %}
|
||||
{% getabscenceday user us da as abday %}
|
||||
{% startdatecheck us da as startdatecheck %}
|
||||
{% startdatecheck us da as startdatecheck %}
|
||||
{% getthisdaynotworking us da as thisdaynotworking %}
|
||||
{% if isfree %}
|
||||
<!-- FREEDAYS -->
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_free" style="background-color: #9C9C9C" data-toggle="tooltip" data-placement="top" title="{{isfreename}}">
|
||||
<!-- USER NOT STARTED YET -->
|
||||
{% elif startdatecheck == False %}
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_free" style="background-color: #d3d3d3">
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_free" style="background-color: #d3d3d3">
|
||||
{% elif thisdaynotworking == True %}
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_free" style="background-color: #d3d3d3">
|
||||
{% elif da.weekday == 5 or da.weekday == 6 %}
|
||||
<!-- WEEKEND -->
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_free" style="background-color: #d3d3d3">
|
||||
|
|
@ -146,9 +153,13 @@
|
|||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_{{da|date:'Y-m-d'}}" {% if us.pk == user.pk or user|usergperm:"absencemanager" %}class="tm-ab-tdhover"{% endif %}>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<!-- NORMAL CHOICE -->
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_{{da|date:'Y-m-d'}}" {% if us.pk == user.pk or user|usergperm:"absencemanager" %}class="tm-ab-tdhover"{% endif %}>
|
||||
<!-- HEutigen Tag einfärben -->
|
||||
{% elif today == da %}
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_{{da|date:'Y-m-d'}}" {% if us.pk == user.pk or user|usergperm:"absencemanager" %}class="tm-ab-tdhover"{% endif %} style="background-color: #F2D488" >
|
||||
<!-- Ganz normaler Tag -->
|
||||
{% else %}
|
||||
<td id="{{actfcounter}}_{{forloop.counter}}_{{us.pk}}_{{da|date:'Y-m-d'}}" {% if us.pk == user.pk or user|usergperm:"absencemanager" %}class="tm-ab-tdhover"{% endif %} >
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
|
|
@ -368,7 +379,7 @@ function recalculateChoosenDays(){
|
|||
},
|
||||
success : function(data){
|
||||
|
||||
|
||||
console.log(data)
|
||||
if(data["other_absences"] != false){
|
||||
$("#otherholidays").show();
|
||||
$("#otherholidays_users").html(data["other_absences"]);
|
||||
|
|
@ -377,6 +388,16 @@ function recalculateChoosenDays(){
|
|||
$("#otherholidays").hide();
|
||||
}
|
||||
|
||||
if(data["userown_absences"] != false){
|
||||
$("#ownholidays").show();
|
||||
$("#ownholidays_users").html(data["userown_absences"]);
|
||||
}
|
||||
else{
|
||||
$("#ownholidays").hide();
|
||||
}
|
||||
|
||||
|
||||
|
||||
$("#startAbsenceProgress").modal("show");
|
||||
|
||||
|
||||
|
|
@ -441,6 +462,8 @@ function recalculateChoosenDaysAfterInit(){
|
|||
},
|
||||
success : function(data){
|
||||
|
||||
console.log(data);
|
||||
|
||||
if(data["other_absences"] != false){
|
||||
$("#otherholidays").show();
|
||||
$("#otherholidays_users").html(data["other_absences"]);
|
||||
|
|
@ -448,6 +471,14 @@ function recalculateChoosenDaysAfterInit(){
|
|||
else{
|
||||
$("#otherholidays").hide();
|
||||
}
|
||||
|
||||
if(data["userown_absences"] != false){
|
||||
$("#ownholidays").show();
|
||||
$("#ownholidays_users").html(data["userown_absences"]);
|
||||
}
|
||||
else{
|
||||
$("#ownholidays").hide();
|
||||
}
|
||||
|
||||
$("#restholidays").html(data["restholiday_thisyear"]);
|
||||
$("#detail_rest").html(data["restholiday_thisyear"]);
|
||||
|
|
@ -482,7 +513,8 @@ function recalculateChoosenDaysAfterInit(){
|
|||
behindcheck = true;
|
||||
}
|
||||
|
||||
if(behindcheck == false || data["restholiday_thisyear"] < 0 || data["restholiday_lastyear"] < 0 || data["restholiday_nextyear"] < 0 && data["startendcheck"] || data["restholiday_thisyear"] < 0 || data["restholiday_nextyear"] < 0 ){
|
||||
if(behindcheck == false || data["restholiday_thisyear"] < 0 || data["restholiday_lastyear"] < 0 || data["restholiday_nextyear"] < 0 && data["startendcheck"] || data["restholiday_thisyear"] < 0 || data["restholiday_nextyear"] < 0 || data["userown_absences"] != false)
|
||||
{
|
||||
$("#start_absence_contract").prop("disabled", true);
|
||||
}
|
||||
else{
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{% if user.usertime.usetime_start == None %}
|
||||
<div class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" id="missingdatainfo">
|
||||
<div class="modal-dialog" role="document">
|
||||
|
|
@ -92,7 +91,7 @@
|
|||
})
|
||||
|
||||
$('#missingdatainfo').on('hidden.bs.modal', function (e) {
|
||||
location.href = "{% url 'dasettings' %}";
|
||||
location.href = "{% url 'dasettings' %}";
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
{% block content %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% load counter_tag %}
|
||||
{% load mathfilters %}
|
||||
{% if request.user.profile.agency.module_timemanagement %}
|
||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.1.6/Chart.bundle.min.js"></script>
|
||||
<div class="content-section col-12">
|
||||
<h3>Abwesenheiten{% if request.user.profile.showtooltips %} <small><i data-toggle="tooltip" data-placement="top" title="Bearbeiten Sie hier Ihre Abwesenheiten." class="far fa-question-circle"></i></small>{% endif %}
|
||||
|
||||
<h3>Abwesenheiten{% if request.user.profile.showtooltips %} <small><i data-toggle="tooltip" data-placement="top" title="Bearbeiten Sie hier Ihre Abwesenheiten." class="far fa-question-circle"></i></small>{% endif %}
|
||||
</h3>
|
||||
<hr>
|
||||
|
||||
|
|
@ -166,6 +166,12 @@
|
|||
<br />
|
||||
<div id="otherholidays_users"></div>
|
||||
</div>
|
||||
<div id="ownholidays" style="display: none;">
|
||||
<hr>
|
||||
In diesem Zeitraum haben Sie bereits folgende Abwesenheiten:
|
||||
<br />
|
||||
<div id="ownholidays_users"></div>
|
||||
</div>
|
||||
<!-- Fields for rest-logic -->
|
||||
<div style="display: none;">
|
||||
{{abscenceform.nextmonth}}
|
||||
|
|
@ -200,7 +206,7 @@
|
|||
<div id="confirmcontent"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="javascript:closeOnly()">Schließen</button>
|
||||
<button type="button" class="btn" data-dismiss="modal" onclick="javascript:closeOnly()">Schließen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -328,7 +334,6 @@ $("#show_detailview").hover(
|
|||
);
|
||||
*/
|
||||
|
||||
|
||||
function confirmAbscenceFinal(){
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
|
|
@ -491,6 +496,11 @@ $('#absencetabs a').on('click', function (e) {
|
|||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$("#missingdatainfo").modal("toggle");
|
||||
|
||||
$('#missingdatainfo').on('hidden.bs.modal', function (e) {
|
||||
location.href = "{% url 'dasettings' %}";
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
{% endif %}
|
||||
|
|
|
|||
|
|
@ -276,6 +276,7 @@ def AbsenceManagmenet(request, activemonth=False, activeyear=False):
|
|||
"final_reasons" : final_reasons,
|
||||
"yearinfo" : yearinfo,
|
||||
"kontingent" : kontingent,
|
||||
"today" : date.today(),
|
||||
"abscenceform" : AddAbsence(instance=request.user),
|
||||
"userown" : Absence.objects.filter(agency=request.user.profile.agency, user=request.user).order_by("-start")
|
||||
}
|
||||
|
|
@ -569,7 +570,6 @@ def TimeAjax(request):
|
|||
if(tempTime.startdate == None):
|
||||
missinguserdata.append(user)
|
||||
|
||||
|
||||
context = {
|
||||
"active_link" : "abscence",
|
||||
"usersofagency" : User.objects.filter(profile__agency=request.user.profile.agency).order_by("-last_name"),
|
||||
|
|
@ -580,7 +580,8 @@ def TimeAjax(request):
|
|||
"nextmonth" : nextmonth,
|
||||
"prevmonth" : prevmonth,
|
||||
"nextyear" : nextyear,
|
||||
"prevyear" : prevyear
|
||||
"prevyear" : prevyear,
|
||||
"today" : date.today(),
|
||||
}
|
||||
return render(request, "timemanagement/rendered_table.html", context)
|
||||
|
||||
|
|
@ -641,7 +642,7 @@ def TimeAjax(request):
|
|||
new_stat = request.GET["newconfstat"]
|
||||
|
||||
info = request.GET["info"]
|
||||
|
||||
# Eingeloggter Nutzer hat Rechte, Urlaube einzutragen
|
||||
if(absence.user.profile.agency == request.user.profile.agency and request.user.has_perm("users.absencemanager")):
|
||||
absence.confirm_status = new_stat
|
||||
absence.confirm_info = info
|
||||
|
|
@ -657,6 +658,7 @@ def TimeAjax(request):
|
|||
"activemonth" : request.GET["activemonth"],
|
||||
"activeyear" : request.GET["activeyear"]
|
||||
}
|
||||
# Berechnung starten, da Urlaub vorhanden ist
|
||||
elif request.GET["action"] == "getrestholidays":
|
||||
user = User.objects.get(pk=request.GET["userid"])
|
||||
usertimedata = UserTime.objects.get(user=user)
|
||||
|
|
@ -709,10 +711,10 @@ def TimeAjax(request):
|
|||
if(end_day_obj.year == start_day_obj.year):
|
||||
# Startt des Urlaubs NACH Verfallsdatum - nur aktuelles JAhr und die Zahl interessiert
|
||||
if(start_day_obj > holidayloose_date):
|
||||
need_days = (calculateHolidays(request, start_day_obj, end_day_obj, start_half, end_half))*(-1)
|
||||
need_days = (calculateHolidays(request, start_day_obj, end_day_obj, start_half, end_half, user))*(-1)
|
||||
holiday_thisyear = yeardata.days - yeardata.days_inuse - need_days
|
||||
else:
|
||||
need_days = (calculateHolidays(request, start_day_obj, end_day_obj, start_half, end_half))*(-1)
|
||||
need_days = (calculateHolidays(request, start_day_obj, end_day_obj, start_half, end_half, user))*(-1)
|
||||
# Kein Resturlaub
|
||||
if(yeardata.restdays == 0.0):
|
||||
holiday_thisyear = yeardata.days - yeardata.days_inuse - need_days
|
||||
|
|
@ -732,17 +734,17 @@ def TimeAjax(request):
|
|||
holiday_lastyear = yeardata.restdays
|
||||
date_splitter = datetime.date(end_day_obj.year, 1, 1)
|
||||
|
||||
need_days_this = (calculateHolidays(request, start_day_obj, date_splitter, start_half, False))*(-1)
|
||||
need_days_this = (calculateHolidays(request, start_day_obj, date_splitter, start_half, False), user)*(-1)
|
||||
|
||||
need_days_next = (calculateHolidays(request, date_splitter, end_day_obj, False, end_half))*(-1)
|
||||
need_days_next = (calculateHolidays(request, date_splitter, end_day_obj, False, end_half, user))*(-1)
|
||||
|
||||
need_days = (calculateHolidays(request, start_day_obj, date_splitter, start_half, False))*(-1) + (calculateHolidays(request, date_splitter, end_day_obj, False, end_half))*(-1)
|
||||
need_days = (calculateHolidays(request, start_day_obj, date_splitter, start_half, False, user))*(-1) + (calculateHolidays(request, date_splitter, end_day_obj, False, end_half))*(-1)
|
||||
holiday_thisyear = yeardata.days - yeardata.days_inuse - need_days_this
|
||||
days_nextyear_normal = 0
|
||||
days_nextyear_rest = 0
|
||||
# Urlaub nächstes Jahr MIT und OHNE Rest
|
||||
if(holiday_nextyear_rest == 0.0):
|
||||
holiday_nextyear = holiday_nextyear - (calculateHolidays(request, date_splitter, end_day_obj, False, end_half))*(-1)
|
||||
holiday_nextyear = holiday_nextyear - (calculateHolidays(request, date_splitter, end_day_obj, False, end_half, user))*(-1)
|
||||
else:
|
||||
temprest = holiday_nextyear_rest - need_days_next
|
||||
# Rest reicht!
|
||||
|
|
@ -766,6 +768,16 @@ def TimeAjax(request):
|
|||
for a in other_absences:
|
||||
other_absences_string += a.user.first_name + " " + a.user.last_name + " - Vom " + a.start.strftime("%d.%m.%Y") + " bis " + a.end.strftime("%d.%m.%Y") + "<br />"
|
||||
|
||||
# Prüfen, ob der Nutzer selbst schon Abwesenheiten in diesem Zeitraum hat
|
||||
|
||||
userown_absences = Absence.objects.filter(start__lte=start_day_obj, end__gte=end_day_obj, agency=request.user.profile.agency, user=user)
|
||||
print(userown_absences)
|
||||
userown_absences_string = False
|
||||
if (len(userown_absences) > 0):
|
||||
userown_absences_string = ""
|
||||
for a in userown_absences:
|
||||
userown_absences_string += a.reason.name + " - Vom " + a.start.strftime("%d.%m.%Y") + " bis " + a.end.strftime("%d.%m.%Y") + "<br />"
|
||||
|
||||
data = {
|
||||
"restholiday_thisyear" : holiday_thisyear,
|
||||
"restholiday_lastyear" : holiday_lastyear,
|
||||
|
|
@ -775,7 +787,8 @@ def TimeAjax(request):
|
|||
"need_days" : need_days,
|
||||
"need_days_next" : need_days_next,
|
||||
"need_days_this" : need_days_this,
|
||||
"other_absences" : other_absences_string
|
||||
"other_absences" : other_absences_string,
|
||||
"userown_absences" : userown_absences_string
|
||||
}
|
||||
# REQUEST USER NO RIGHTS
|
||||
else:
|
||||
|
|
@ -798,7 +811,7 @@ Berücksichtigt sowohl Wochenende als auch in der Agentur hinterlegte Freitage/S
|
|||
|
||||
'''
|
||||
@login_required
|
||||
def calculateHolidays(request, start, end, start_half, end_half):
|
||||
def calculateHolidays(request, start, end, start_half, end_half, user):
|
||||
restdays = 0
|
||||
allfreedays = FreeDays.objects.filter(agency=request.user.profile.agency)
|
||||
if(end == start):
|
||||
|
|
@ -825,7 +838,24 @@ def calculateHolidays(request, start, end, start_half, end_half):
|
|||
for freeday in allfreedays.all():
|
||||
if(dt == freeday.day):
|
||||
freedaycounter += 1
|
||||
|
||||
|
||||
# Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht
|
||||
if(dt.isoweekday() == 1):
|
||||
if user.usertime.wd_mo == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 2):
|
||||
if user.usertime.wd_tu == 0.0:#
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 3):
|
||||
if user.usertime.wd_we == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 4):
|
||||
if user.usertime.wd_th == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 5):
|
||||
if user.usertime.wd_fr == 0.0:
|
||||
freedaycounter += 1
|
||||
|
||||
|
||||
return restdays - counter + freedaycounter
|
||||
|
||||
|
|
@ -856,10 +886,28 @@ def calculatingHolidaysByAbsence(request, absence):
|
|||
|
||||
if dt.isoweekday() not in weekdays:
|
||||
finalholidayinabsence += 1
|
||||
# Prüfung, ob freie Tage vorhanden sind
|
||||
for freeday in allfreedays.all():
|
||||
# FREEDAY FOUND
|
||||
if(dt == freeday.day):
|
||||
freedaycounter += 1
|
||||
# Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht
|
||||
stat = False
|
||||
if(dt.isoweekday() == 1):
|
||||
if absence.user.usertime.wd_mo == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 2):
|
||||
if absence.user.usertime.wd_tu == 0.0:#
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 3):
|
||||
if absence.user.usertime.wd_we == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 4):
|
||||
if absence.user.usertime.wd_th == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 5):
|
||||
if absence.user.usertime.wd_fr == 0.0:
|
||||
freedaycounter += 1
|
||||
|
||||
return finalholidayinabsence - freedaycounter
|
||||
|
||||
|
|
|
|||
|
|
@ -417,8 +417,7 @@ def save_newabsence(sender, instance, **kwargs):
|
|||
abinfo_nextyear = list(UserYearAbsenceInfo.objects.filter(user=instance.user, year=instance.start.year+1))
|
||||
if(len(abinfo_nextyear) > 0):
|
||||
is_nextyear = True
|
||||
abinfo_nextyear = abinfo_nextyear[0]
|
||||
|
||||
abinfo_nextyear = abinfo_nextyear[0]
|
||||
|
||||
multiple_info_needays = False
|
||||
if(hasattr(newdata[3], "__len__")):
|
||||
|
|
@ -463,7 +462,7 @@ def save_newabsence(sender, instance, **kwargs):
|
|||
abinfo_nextyear.restdays = abinfo_nextyear.restdays - newdata[3][3]
|
||||
abinfo_nextyear.save()
|
||||
|
||||
# Hier werd der REST als vorjahreswert und NORMAL als nächstes Jahr gespeichert
|
||||
# Hier werden alle benötigten Tage von Vor- und Nächstem Jahr gespeichert
|
||||
instance.holidays_normal = newdata[3][0]
|
||||
instance.holidays_rest = 0
|
||||
instance.holidays_normal_next = newdata[3][1]
|
||||
|
|
@ -646,6 +645,21 @@ def calculateHolidays(user, start, end, start_half, end_half):
|
|||
if(dt == freeday.day):
|
||||
freedaycounter += 1
|
||||
|
||||
if(dt.isoweekday() == 1):
|
||||
if user.usertime.wd_mo == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 2):
|
||||
if user.usertime.wd_tu == 0.0:#
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 3):
|
||||
if user.usertime.wd_we == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 4):
|
||||
if user.usertime.wd_th == 0.0:
|
||||
freedaycounter += 1
|
||||
elif(dt.isoweekday() == 5):
|
||||
if user.usertime.wd_fr == 0.0:
|
||||
freedaycounter += 1
|
||||
|
||||
return restdays - counter + freedaycounter
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue