New updates
This commit is contained in:
parent
8d479aa6b3
commit
4998290549
@ -347,7 +347,7 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="behandeling">
|
<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>
|
<td>
|
||||||
<select class="form-control" id="behandeling_duration_0" name="behandeling_duration_0" required>
|
<select class="form-control" id="behandeling_duration_0" name="behandeling_duration_0" required>
|
||||||
<option value="5">5</option>
|
<option value="5">5</option>
|
||||||
@ -568,10 +568,18 @@
|
|||||||
function calculateBehandelingen() {
|
function calculateBehandelingen() {
|
||||||
let total = 0, percentage = 0;
|
let total = 0, percentage = 0;
|
||||||
let error = false;
|
let error = false;
|
||||||
|
let show_message = false;
|
||||||
|
|
||||||
jQuery('tr.behandeling').each(function(counter,row){
|
jQuery('tr.behandeling').each(function(counter,row){
|
||||||
row = jQuery(row);
|
row = jQuery(row);
|
||||||
if (row.find('select[name^="behandeling_method_"]').val() == 'live') {
|
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);
|
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);
|
percentage += (row.find('input[name*="_30p_"]').val() != '' ? row.find('input[name*="_30p_"]').val() * 1 : 0);
|
||||||
}
|
}
|
||||||
@ -594,7 +602,12 @@
|
|||||||
calc_message = 'Dit klopt precies';
|
calc_message = 'Dit klopt precies';
|
||||||
class_message = 'alert-success';
|
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();
|
validate_behandeling_hours();
|
||||||
|
|
||||||
@ -681,12 +694,13 @@
|
|||||||
let specialisme = element.find('input[name^="specialisatie_"]').val();
|
let specialisme = element.find('input[name^="specialisatie_"]').val();
|
||||||
|
|
||||||
behandelingen[specialisme] = {
|
behandelingen[specialisme] = {
|
||||||
name : element.find('input[name^="specialisatie_"]').val(),
|
name : element.find('input[name^="specialisatie_"]').val(),
|
||||||
artsen : element.find('input[name^="specialisatie_aantal_artsen_"]').val() * 1,
|
artsen : element.find('input[name^="specialisatie_aantal_artsen_"]').val() * 1,
|
||||||
max_time : 0,
|
max_time : 0,
|
||||||
used_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_start_value = element.find('select[name^="werkdag_start_afdeling_"]').val() * 1;
|
||||||
let time_end_value = element.find('select[name^="werkdag_end_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.setSeconds(0);
|
||||||
time_end.setMilliseconds(0);
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
//console.log(time_start,time_end);
|
|
||||||
|
|
||||||
behandelingen[specialisme]['max_time'] = ((time_end - time_start) / (1000 * 60));
|
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_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;
|
time_end_value = element.find('select[name^="ochtend_pauze_end_afdeling_"]').val() * 1;
|
||||||
|
|
||||||
@ -726,8 +739,6 @@
|
|||||||
time_end.setSeconds(0);
|
time_end.setSeconds(0);
|
||||||
time_end.setMilliseconds(0);
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
//console.log(time_start,time_end);
|
|
||||||
|
|
||||||
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -796,13 +807,19 @@
|
|||||||
message.html('')
|
message.html('')
|
||||||
|
|
||||||
jQuery.each(behandelingen,function(specialisme,obj){
|
jQuery.each(behandelingen,function(specialisme,obj){
|
||||||
|
if ('' == specialisme) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ((obj.artsen * obj.max_time) - obj.used_time < 0) {
|
if ((obj.artsen * obj.max_time) - obj.used_time < 0) {
|
||||||
error = true;
|
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) {
|
} 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.'));
|
message.append(jQuery('<div>').addClass('alert-success').html('<strong>' + specialisme + ' </strong>: Perfect! Alle tijd is ingedeeld.'));
|
||||||
} else {
|
} 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){
|
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.
|
// 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
|
// 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 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());
|
let disable = false;
|
||||||
if (element.selected && disable) {
|
|
||||||
|
// 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('');
|
morning_break_end.val('');
|
||||||
}
|
}
|
||||||
element.disabled = disable;
|
element.disabled = disable;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (morning_break_start.val() == '0') {
|
||||||
|
morning_break_end.val('0');
|
||||||
|
}
|
||||||
|
|
||||||
lunch_start.find('option').each(function(index,element){
|
lunch_start.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.
|
// Only allow options that are between the day start and day end.
|
||||||
@ -877,11 +911,23 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
lunch_end.find('option').each(function(index,element){
|
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.
|
// 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
|
// 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 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) {
|
if (element.selected && disable) {
|
||||||
lunch_end.val('');
|
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){
|
afternoon_break_start.find('option').each(function(index,element){
|
||||||
if ('' !== element.value && element.value > 0) {
|
if ('' !== element.value && element.value > 0) {
|
||||||
@ -904,11 +954,23 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
afternoon_break_end.find('option').each(function(index,element){
|
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.
|
// 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
|
// 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 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) {
|
if (element.selected && disable) {
|
||||||
afternoon_break_end.val('');
|
afternoon_break_end.val('');
|
||||||
}
|
}
|
||||||
@ -916,6 +978,10 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (afternoon_break_start.val() == '0') {
|
||||||
|
afternoon_break_end.val('0');
|
||||||
|
}
|
||||||
|
|
||||||
if (showerror) {
|
if (showerror) {
|
||||||
html.find('small.text-danger').toggle(day_start.val() == '' || day_start.val() == null ||
|
html.find('small.text-danger').toggle(day_start.val() == '' || day_start.val() == null ||
|
||||||
day_end.val() == '' || day_end.val() == null ||
|
day_end.val() == '' || day_end.val() == null ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user