Update formulier
This commit is contained in:
parent
bf79ade408
commit
f8b1f7a4ce
@ -386,11 +386,20 @@
|
|||||||
<td style="text-align: center">0</td>
|
<td style="text-align: center">0</td>
|
||||||
<td style="text-align: center">0</td>
|
<td style="text-align: center">0</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" class="behandeling_calc_remarks">
|
<td colspan="3">
|
||||||
|
<div class="behandeling_calc_remarks"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td colspan="3" class="behandeling_calc_time">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@ -477,7 +486,11 @@
|
|||||||
|
|
||||||
clone.insertAfter('tr.behandeling:last');
|
clone.insertAfter('tr.behandeling:last');
|
||||||
|
|
||||||
jQuery('input.behandeling_calc').off('change keyup').on('change keyup',function(){
|
jQuery('tr.behandeling input.behandeling_calc').off('change keyup').on('change keyup',function(){
|
||||||
|
calculateBehandelingen();
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery('tr.behandeling select').off('change').on('change',function(){
|
||||||
calculateBehandelingen();
|
calculateBehandelingen();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -513,8 +526,10 @@
|
|||||||
|
|
||||||
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') {
|
||||||
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);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery('tr.behandeling_calc_summary td:nth-child(2)').text(total);
|
jQuery('tr.behandeling_calc_summary td:nth-child(2)').text(total);
|
||||||
@ -534,7 +549,9 @@
|
|||||||
calc_message = 'Dit klopt precies';
|
calc_message = 'Dit klopt precies';
|
||||||
class_message = 'alert-success';
|
class_message = 'alert-success';
|
||||||
}
|
}
|
||||||
jQuery('td.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').addClass(class_message).text(calc_message);
|
||||||
|
|
||||||
|
validate_behandeling_hours();
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
@ -597,6 +614,142 @@
|
|||||||
updateBehandelingen();
|
updateBehandelingen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validate_behandeling_hours() {
|
||||||
|
let behandelingen = {};
|
||||||
|
jQuery('div.poliekliniek_specialisatie').each(function(index,element){
|
||||||
|
element = jQuery(element);
|
||||||
|
|
||||||
|
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(),
|
||||||
|
max_time : 0,
|
||||||
|
used_time : 0
|
||||||
|
};
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
if ('' != time_start_value && '' != time_end_value && time_start_value > 0 && time_end_value > 0) {
|
||||||
|
|
||||||
|
let time_start = new Date()
|
||||||
|
time_start.setHours(Math.floor(time_start_value / 100));
|
||||||
|
time_start.setMinutes(time_start_value % 100);
|
||||||
|
time_start.setSeconds(0);
|
||||||
|
time_start.setMilliseconds(0);
|
||||||
|
|
||||||
|
let time_end = new Date()
|
||||||
|
time_end.setHours(Math.floor(time_end_value / 100));
|
||||||
|
time_end.setMinutes(time_end_value % 100);
|
||||||
|
time_end.setSeconds(0);
|
||||||
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
|
//console.log(time_start,time_end);
|
||||||
|
|
||||||
|
behandelingen[specialisme]['max_time'] = ((time_end - time_start) / (1000 * 60));
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
if ('' != time_start_value && '' != time_end_value && time_start_value > 0 && time_end_value > 0) {
|
||||||
|
|
||||||
|
let time_start = new Date()
|
||||||
|
time_start.setHours(Math.floor(time_start_value / 100));
|
||||||
|
time_start.setMinutes(time_start_value % 100);
|
||||||
|
time_start.setSeconds(0);
|
||||||
|
time_start.setMilliseconds(0);
|
||||||
|
|
||||||
|
let time_end = new Date()
|
||||||
|
time_end.setHours(Math.floor(time_end_value / 100));
|
||||||
|
time_end.setMinutes(time_end_value % 100);
|
||||||
|
time_end.setSeconds(0);
|
||||||
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
|
//console.log(time_start,time_end);
|
||||||
|
|
||||||
|
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
||||||
|
}
|
||||||
|
|
||||||
|
time_start_value = element.find('select[name^="lunch_pauze_start_afdeling_"]').val() * 1;
|
||||||
|
time_end_value = element.find('select[name^="lunch_pauze_end_afdeling_"]').val() * 1;
|
||||||
|
|
||||||
|
if ('' != time_start_value && '' != time_end_value && time_start_value > 0 && time_end_value > 0) {
|
||||||
|
|
||||||
|
let time_start = new Date()
|
||||||
|
time_start.setHours(Math.floor(time_start_value / 100));
|
||||||
|
time_start.setMinutes(time_start_value % 100);
|
||||||
|
time_start.setSeconds(0);
|
||||||
|
time_start.setMilliseconds(0);
|
||||||
|
|
||||||
|
let time_end = new Date()
|
||||||
|
time_end.setHours(Math.floor(time_end_value / 100));
|
||||||
|
time_end.setMinutes(time_end_value % 100);
|
||||||
|
time_end.setSeconds(0);
|
||||||
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
|
//console.log(time_start,time_end);
|
||||||
|
|
||||||
|
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
||||||
|
}
|
||||||
|
|
||||||
|
time_start_value = element.find('select[name^="middag_pauze_start_afdeling_"]').val() * 1;
|
||||||
|
time_end_value = element.find('select[name^="middag_pauze_end_afdeling_"]').val() * 1;
|
||||||
|
|
||||||
|
if ('' != time_start_value && '' != time_end_value && time_start_value > 0 && time_end_value > 0) {
|
||||||
|
|
||||||
|
let time_start = new Date()
|
||||||
|
time_start.setHours(Math.floor(time_start_value / 100));
|
||||||
|
time_start.setMinutes(time_start_value % 100);
|
||||||
|
time_start.setSeconds(0);
|
||||||
|
time_start.setMilliseconds(0);
|
||||||
|
|
||||||
|
let time_end = new Date()
|
||||||
|
time_end.setHours(Math.floor(time_end_value / 100));
|
||||||
|
time_end.setMinutes(time_end_value % 100);
|
||||||
|
time_end.setSeconds(0);
|
||||||
|
time_end.setMilliseconds(0);
|
||||||
|
|
||||||
|
//console.log(time_start,time_end);
|
||||||
|
|
||||||
|
behandelingen[specialisme]['max_time'] -= ((time_end - time_start) / (1000 * 60));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery('tr.behandeling').each(function(index,element){
|
||||||
|
element = jQuery(element);
|
||||||
|
|
||||||
|
if (element.find('select[name^="behandeling_method_"]').val() == 'live') {
|
||||||
|
let specialisme = element.find('select[name^="behandeling_specialisme_"]').val();
|
||||||
|
let duration = element.find('select[name^="behandeling_duration_"]').val();
|
||||||
|
let amount100 = element.find('input[name^="behandeling_100p_"]').val();
|
||||||
|
|
||||||
|
if (specialisme && duration && amount100) {
|
||||||
|
behandelingen[specialisme]['used_time'] += duration * amount100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let error = false;
|
||||||
|
let message = jQuery('td.behandeling_calc_time');
|
||||||
|
message.html('')
|
||||||
|
|
||||||
|
jQuery.each(behandelingen,function(specialisme,obj){
|
||||||
|
if (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. ' + (obj.used_time - obj.max_time) + ' Minuten teveel.'));
|
||||||
|
} else if (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 ' + (obj.max_time - obj.used_time) + ' minuten tijd over voor meer afspraken.'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
function validate_working_hours() {
|
function validate_working_hours() {
|
||||||
jQuery('div.werktijden').each(function(index,element){
|
jQuery('div.werktijden').each(function(index,element){
|
||||||
jQuery(element).find('select').removeClass('is-invalid');
|
jQuery(element).find('select').removeClass('is-invalid');
|
||||||
@ -722,11 +875,12 @@
|
|||||||
jQuery('div.poliekliniek_specialisatie input').off('change').on('change',function(){
|
jQuery('div.poliekliniek_specialisatie input').off('change').on('change',function(){
|
||||||
updateSpecialisatieValues();
|
updateSpecialisatieValues();
|
||||||
});
|
});
|
||||||
|
{% comment %}
|
||||||
jQuery('a.add_behandelkamer').on('click',function(event){
|
jQuery('a.add_behandelkamer').on('click',function(event){
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
addBehandelkamer();
|
addBehandelkamer();
|
||||||
});
|
});
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
jQuery('a.add_behandeling').on('click',function(event){
|
jQuery('a.add_behandeling').on('click',function(event){
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@ -735,6 +889,7 @@
|
|||||||
|
|
||||||
jQuery('div.werktijden select').off('change').on('change',function(event){
|
jQuery('div.werktijden select').off('change').on('change',function(event){
|
||||||
check_working_hours(this);
|
check_working_hours(this);
|
||||||
|
calculateBehandelingen();
|
||||||
});
|
});
|
||||||
|
|
||||||
jQuery('table#tabel_behandelingen thead tr th').each(function(index,element){
|
jQuery('table#tabel_behandelingen thead tr th').each(function(index,element){
|
||||||
@ -749,7 +904,8 @@
|
|||||||
|
|
||||||
jQuery('form#new_schedule_form').on('submit',function(event){
|
jQuery('form#new_schedule_form').on('submit',function(event){
|
||||||
if (validate_working_hours() &&
|
if (validate_working_hours() &&
|
||||||
calculateBehandelingen()) {
|
calculateBehandelingen() &&
|
||||||
|
validate_behandeling_hours()) {
|
||||||
|
|
||||||
let formdata = new FormData(this);
|
let formdata = new FormData(this);
|
||||||
formdata.delete('csrfmiddlewaretoken');
|
formdata.delete('csrfmiddlewaretoken');
|
||||||
|
Loading…
Reference in New Issue
Block a user