New updates
This commit is contained in:
parent
8d479aa6b3
commit
4998290549
@ -347,7 +347,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="behandeling">
|
||||
<td><input type="text" class="form-control" id="behandeling_0" name="behandeling_0" required></td>
|
||||
<td><input type="text" class="form-control" id="behandeling_0" name="behandeling_0" maxlength="20" required></td>
|
||||
<td>
|
||||
<select class="form-control" id="behandeling_duration_0" name="behandeling_duration_0" required>
|
||||
<option value="5">5</option>
|
||||
@ -568,10 +568,18 @@
|
||||
function calculateBehandelingen() {
|
||||
let total = 0, percentage = 0;
|
||||
let error = false;
|
||||
let show_message = false;
|
||||
|
||||
jQuery('tr.behandeling').each(function(counter,row){
|
||||
row = jQuery(row);
|
||||
if (row.find('select[name^="behandeling_method_"]').val() == 'live') {
|
||||
if (!show_message) {
|
||||
show_message = ( row.find('input[name^="behandeling_"]').val() !== ''
|
||||
&& row.find('select[name^="behandeling_specialisme_"]').val() !== ''
|
||||
&& row.find('input[name^="behandeling_100p_"]').val() !== ''
|
||||
&& row.find('input[name^="behandeling_30p_"]').val() !== '' )
|
||||
}
|
||||
|
||||
total += (row.find('input[name*="_100p_"]').val() != '' ? row.find('input[name*="_100p_"]').val() * 1 : 0);
|
||||
percentage += (row.find('input[name*="_30p_"]').val() != '' ? row.find('input[name*="_30p_"]').val() * 1 : 0);
|
||||
}
|
||||
@ -594,7 +602,12 @@
|
||||
calc_message = 'Dit klopt precies';
|
||||
class_message = 'alert-success';
|
||||
}
|
||||
jQuery('div.behandeling_calc_remarks').removeClass('alert-danger alert-warning alert-success').addClass(class_message).text(calc_message);
|
||||
|
||||
jQuery('div.behandeling_calc_remarks').removeClass('alert-danger alert-warning alert-success').html('');
|
||||
if (show_message) {
|
||||
jQuery('div.behandeling_calc_remarks').addClass(class_message).text(calc_message);
|
||||
}
|
||||
|
||||
|
||||
validate_behandeling_hours();
|
||||
|
||||
@ -681,12 +694,13 @@
|
||||
let specialisme = element.find('input[name^="specialisatie_"]').val();
|
||||
|
||||
behandelingen[specialisme] = {
|
||||
name : element.find('input[name^="specialisatie_"]').val(),
|
||||
artsen : element.find('input[name^="specialisatie_aantal_artsen_"]').val() * 1,
|
||||
max_time : 0,
|
||||
used_time : 0
|
||||
name : element.find('input[name^="specialisatie_"]').val(),
|
||||
artsen : element.find('input[name^="specialisatie_aantal_artsen_"]').val() * 1,
|
||||
max_time : 0,
|
||||
used_time : 0
|
||||
};
|
||||
|
||||
// Hole working day, first time row
|
||||
let time_start_value = element.find('select[name^="werkdag_start_afdeling_"]').val() * 1;
|
||||
let time_end_value = element.find('select[name^="werkdag_end_afdeling_"]').val() * 1;
|
||||
|
||||
@ -704,11 +718,10 @@
|
||||
time_end.setSeconds(0);
|
||||
time_end.setMilliseconds(0);
|
||||
|
||||
//console.log(time_start,time_end);
|
||||
|
||||
behandelingen[specialisme]['max_time'] = ((time_end - time_start) / (1000 * 60));
|
||||
}
|
||||
|
||||
// Morning break. Second row
|
||||
time_start_value = element.find('select[name^="ochtend_pauze_start_afdeling_"]').val() * 1;
|
||||
time_end_value = element.find('select[name^="ochtend_pauze_end_afdeling_"]').val() * 1;
|
||||
|
||||
@ -726,8 +739,6 @@
|
||||
time_end.setSeconds(0);
|
||||
time_end.setMilliseconds(0);
|
||||
|
||||
//console.log(time_start,time_end);
|
||||
|
||||
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
||||
}
|
||||
|
||||
@ -796,13 +807,19 @@
|
||||
message.html('')
|
||||
|
||||
jQuery.each(behandelingen,function(specialisme,obj){
|
||||
if ('' == specialisme) {
|
||||
return;
|
||||
}
|
||||
if ((obj.artsen * obj.max_time) - obj.used_time < 0) {
|
||||
error = true;
|
||||
message.append(jQuery('<div>').addClass('alert-danger').html('<strong>' + specialisme + ' </strong>: Te veel behandelingen voor het aantal arsten en werktijd. ' + moment.duration(obj.used_time - (obj.artsen * obj.max_time),'minutes').humanize() + ' teveel.'));
|
||||
duration_to_much = (obj.used_time - (obj.artsen * obj.max_time)) * 60 * 1000;
|
||||
duration_to_much = humanizeDuration(duration_to_much, {language: moment.locale(), delimiter: ' {% trans "and" %} ', units: ['h','m']});
|
||||
message.append(jQuery('<div>').addClass('alert-danger').html('<strong>' + specialisme + ' </strong>: Te veel behandelingen voor het aantal artsen en werktijd. ' + duration_to_much + ' te veel.'));
|
||||
} else if ((obj.artsen * obj.max_time) - obj.used_time == 0) {
|
||||
message.append(jQuery('<div>').addClass('alert-success').html('<strong>' + specialisme + ' </strong>: Perfect! Alle tijd is ingedeeld.'));
|
||||
} else {
|
||||
message.append(jQuery('<div>').addClass('alert-warning').html('<strong>' + specialisme + ' </strong>: Uw heeft nog ' + moment.duration((obj.artsen * obj.max_time) - obj.used_time,'minutes').humanize() + ' tijd over voor meer afspraken.'));
|
||||
// do not show this message here, as it is hard to predict the maximum available time
|
||||
// message.append(jQuery('<div>').addClass('alert-warning').html('<strong>' + specialisme + ' </strong>: Uw heeft nog ' + moment.duration((obj.artsen * obj.max_time) - obj.used_time,'minutes').humanize() + ' tijd over voor meer afspraken.'));
|
||||
}
|
||||
});
|
||||
|
||||
@ -851,18 +868,35 @@
|
||||
});
|
||||
|
||||
morning_break_end.find('option').each(function(index,element){
|
||||
if ('' !== element.value && element.value > 0) {
|
||||
if ('' !== element.value && element.value >= 0) {
|
||||
// Only allow options that are between the day start and day end.
|
||||
// Or when morning_break_start is selected and valid, add period time for end time selections
|
||||
// When start time is selected, the option 'no break' is not valid (value 0)
|
||||
let time = ('' != morning_break_start.val() ? morning_break_start.val() : day_start.val());
|
||||
let disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
if (element.selected && disable) {
|
||||
let disable = false;
|
||||
|
||||
// Selected no-break at morning starting time and select no-break here
|
||||
if (time == 0 && element.value == 0) {
|
||||
disable = false;
|
||||
} else if (time == 0) {
|
||||
disable = element.value != 0;
|
||||
} else if (element.value == 0) {
|
||||
disable = '' != morning_break_start.val();
|
||||
} else {
|
||||
disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
}
|
||||
|
||||
if(element.selected && disable) {
|
||||
morning_break_end.val('');
|
||||
}
|
||||
element.disabled = disable;
|
||||
}
|
||||
});
|
||||
|
||||
if (morning_break_start.val() == '0') {
|
||||
morning_break_end.val('0');
|
||||
}
|
||||
|
||||
lunch_start.find('option').each(function(index,element){
|
||||
if ('' !== element.value && element.value > 0) {
|
||||
// Only allow options that are between the day start and day end.
|
||||
@ -877,11 +911,23 @@
|
||||
});
|
||||
|
||||
lunch_end.find('option').each(function(index,element){
|
||||
if ('' !== element.value && element.value > 0) {
|
||||
if ('' !== element.value && element.value >= 0) {
|
||||
// Only allow options that are between the day start and day end.
|
||||
// Or when lunch_start is selected and valid, add period time for end time selections
|
||||
// When start time is selected, the option 'no break' is not valid (value 0)
|
||||
let time = ('' != lunch_start.val() ? lunch_start.val() : day_start.val()) * 1;
|
||||
let disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
let disable = false;
|
||||
|
||||
if (time == 0 && element.value == 0) {
|
||||
disable = false;
|
||||
} else if (time == 0) {
|
||||
disable = element.value != 0;
|
||||
} else if (element.value == 0) {
|
||||
disable = '' != lunch_start.val();
|
||||
} else {
|
||||
disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
}
|
||||
|
||||
if (element.selected && disable) {
|
||||
lunch_end.val('');
|
||||
}
|
||||
@ -889,6 +935,10 @@
|
||||
}
|
||||
});
|
||||
|
||||
if (lunch_start.val() == '0') {
|
||||
lunch_end.val('0');
|
||||
}
|
||||
|
||||
|
||||
afternoon_break_start.find('option').each(function(index,element){
|
||||
if ('' !== element.value && element.value > 0) {
|
||||
@ -904,11 +954,23 @@
|
||||
});
|
||||
|
||||
afternoon_break_end.find('option').each(function(index,element){
|
||||
if ('' !== element.value && element.value > 0) {
|
||||
if ('' !== element.value && element.value >= 0) {
|
||||
// Only allow options that are between the day start and day end.
|
||||
// Or when morning_break_start is selected and valid, add period time for end time selections
|
||||
// When start time is selected, the option 'no break' is not valid (value 0)
|
||||
let time = ('' != afternoon_break_start.val() ? afternoon_break_start.val() : day_start.val());
|
||||
let disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
let disable = false;
|
||||
|
||||
if (time == 0 && element.value == 0) {
|
||||
disable = false;
|
||||
} else if (time == 0) {
|
||||
disable = element.value != 0;
|
||||
} else if (element.value == 0) {
|
||||
disable = '' != afternoon_break_start.val();
|
||||
} else {
|
||||
disable = (time && element.value <= time) || (day_end.val() && element.value > day_end.val());
|
||||
}
|
||||
|
||||
if (element.selected && disable) {
|
||||
afternoon_break_end.val('');
|
||||
}
|
||||
@ -916,6 +978,10 @@
|
||||
}
|
||||
});
|
||||
|
||||
if (afternoon_break_start.val() == '0') {
|
||||
afternoon_break_end.val('0');
|
||||
}
|
||||
|
||||
if (showerror) {
|
||||
html.find('small.text-danger').toggle(day_start.val() == '' || day_start.val() == null ||
|
||||
day_end.val() == '' || day_end.val() == null ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user