function selectSupportConcept(cb2ScOid) {
showSpinner();
$("#CostBearer2SupportConceptOid").val(cb2ScOid);
$("#selectSupportConceptForm").submit();
}
function setSelectedEmployee() {
var employeeOid = parseInt($("#employeesDropDown").find(":selected").val());
if (isNaN(employeeOid)) {
return;
}
$.get(getSetServiceRecordEmployeeUrl(), { employeeOid: employeeOid });
}
function loadServiceDescriptions() {
var selectedCategoryOid = $("#category-select").find(":selected").val();
if (selectedCategoryOid === null || selectedCategoryOid === undefined) {
return;
}
$.get(getLoadServiceCategoriesUrl(), { pServiceCategoryOid: selectedCategoryOid })
.done(function (data) {
var serviceDescriptions = $.parseJSON(data);
var serviceDescriptionsSelect = $("#leistung-select");
serviceDescriptionsSelect.empty();
serviceDescriptionsSelect.val("");
$.each(serviceDescriptions, function (index, serviceDescription) {
serviceDescriptionsSelect.append('");
});
var serviceDescriptionToEdit = getServiceDescriptionToEdit();
var selectedOid = 0;
if (serviceDescriptionToEdit > 0) {
$("#leistung-select > option").each(function() {
var val = $(this).val();
if (serviceDescriptionToEdit == val) {
serviceDescriptionsSelect.val(val);
selectedOid = val;
}
});
} else {
if(serviceDescriptions[0] !== undefined) {
serviceDescriptionsSelect.val(serviceDescriptions[0].ServiceDescriptionOid);
selectedOid = serviceDescriptions[0].ServiceDescriptionOid;
}
}
if (selectedOid > 0) {
$.get(getSetServiceDescriptionUrl(), { pServiceDescriptionOid: selectedOid });
}
$.get(getLoadTextbausteineForServiceCategoryUrl(), { pServiceCategoryOid: selectedCategoryOid }).done(function(result) {
if(result.length <= 2) {
$("#textmodule-container").hide();
return;
}
$("#textmodule-container").show();
$("#tree").html(result);
//$("#tree").treeview({
// data: result,
// onNodeSelected: function (event, data) {
// var tags = data.tags;
// if (tags === undefined || tags === null || tags.length === 0) {
// return;
// }
// var textbausteinOid = parseInt(tags[0], 10);
// var focusedDokuFeld;
// $.get(getLoadCompleteTextbausteinByOidUrl(), { pTextbausteinOid: textbausteinOid }).done(function (textModuleText) {
// if ($("#dokufeld").length > 0) {
// focusedDokuFeld = $("#dokufeld");
// } else {
// var numberOfDokutypes = getNumberOfDokutypes();
// for (var i = 0; i < numberOfDokutypes; i++) {
// var currentElement = $("#doku_" + i);
// if (currentElement.css("display") !== "none") {
// focusedDokuFeld = $("#doku-textarea-" + i);
// break;
// }
// }
// }
// var cursorPosition = focusedDokuFeld.prop("selectionStart");
// var v = focusedDokuFeld.val();
// var textBefore = v.substring(0, cursorPosition);
// var textAfter = v.substring(cursorPosition, v.length);
// focusedDokuFeld.val(textBefore + textModuleText + textAfter);
// $("#textbausteine-popup").modal("hide");
// });
// }
//});
});
});
}
function checkJson(str)
{
try {
JSON.parse(str);
} catch (error) {
return false;
}
return true;
}
function serviceDescriptionSelectOnReset() {
setTimeout(function () {
loadServiceDescriptions();
}, 100);
}
function showAlertMessage(message) {
$("#form-alert").html(message);
$("#form-alert").show();
}
function calculateDuration(isInvocatedByHoursMinutesButton) {
logInfo("calculateDuration");
var startTime = $("#start-time").val();
var endTime = $("#end-time").val();
var duration = $("#duration").val();
var hoursMinutesDropdownButton = $("#hours-minutes-dropdown-btn");
logInfo(`startTime: ${startTime};
endTime: ${endTime}
duration: ${duration}
hoursMInutesDropdownButton: ${hoursMinutesDropdownButton}`);
var startTimeCondition = startTime !== undefined && startTime !== null && startTime.length > 0;
var endTimeCondition = endTime !== undefined && endTime !== null && endTime.length > 0;
var durationNumber = hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden" ? parseFloat(duration.replace(",", ".")) : parseInt(duration, 10);
var durationCondition = !isNaN(durationNumber);
var startDateString = $("#start-date-picker").datetimepicker("date");
var endDate = moment(new Date());
var startDate = moment(new Date());
if(startDateString.length !== 0) {
startDate = moment(startDateString);
endDate = startDate.clone();
}
if ($("#end-date-picker").length !== 0) {
var endDateString = $("#end-date-picker").datetimepicker("date");
if (endDateString.length !== 0) {
endDate = moment(endDateString);
}
}
var newDurationValue = 0;
if(startTimeCondition && endTimeCondition && isInvocatedByHoursMinutesButton === false) {
var startHHmm = parseTimeInputToIntegerArray(startTime);
var endHHmm = parseTimeInputToIntegerArray(endTime);
startDate.hours(startHHmm[0]);
startDate.minutes(startHHmm[1]);
endDate.hours(endHHmm[0]);
endDate.minutes(endHHmm[1]);
var momentDuration = moment.duration(endDate.diff(startDate));
if (hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden") {
newDurationValue = momentDuration.asHours();
} else {
newDurationValue = momentDuration.asMinutes();
}
$("#duration").val(newDurationValue);
} else if(startTimeCondition && durationCondition) {
if(hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden") {
durationNumber *= 60;
}
calculateTimeWithDuration(startTime, $("#end-time"), startDate, durationNumber);
} else if(endTimeCondition && durationCondition) {
if(hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden") {
durationNumber *= 60;
}
calculateTimeWithDuration(endTime, $("#start-time"), startDate, durationNumber * -1);
}
}
function onDurationChange() {
var startTime = $("#start-time").val();
var endTime = $("#end-time").val();
var duration = $("#duration").val();
var hoursMinutesDropdownButton = $("#hours-minutes-dropdown-btn");
var startTimeCondition = startTime !== undefined && startTime !== null && startTime.length > 0;
var endTimeCondition = endTime !== undefined && endTime !== null && endTime.length > 0;
var durationNumber = hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden" ? parseFloat(duration.replace(",", ".")) : parseInt(duration, 10);
var durationCondition = !isNaN(durationNumber);
if((false === startTimeCondition && false === endTimeCondition) || durationCondition === false) {
return;
}
var startDateString = $("#start-date-picker").datetimepicker("date");
var endDate = moment(new Date());
var startDate = moment(new Date());
if (startDateString.length !== 0) {
startDate = moment(startDateString);
endDate = startDate.clone();
}
if ($("#end-date-picker").length !== 0) {
var endDateString = $("#end-date-picker").datetimepicker("date");
endDate = moment(endDateString);
}
var h2m = [0, 0];
if(hoursMinutesDropdownButton.length && hoursMinutesDropdownButton.text() === "Stunden") {
durationNumber *= 60;
}
if (startTimeCondition === true) {
h2m = parseTimeInputToIntegerArray(startTime);
startDate.hours(h2m[0]).minutes(h2m[1]).add(durationNumber, "m");
$("#end-time").val(startDate.format("HH:mm"));
} else {
h2m = parseTimeInputToIntegerArray(endTime);
endDate.hours(h2m[0]).minutes(h2m[1]).add(durationNumber * -1, "m");
$("#start-time").val(endDate.format("HH:mm"));
}
}
function calculateTimeWithDuration(timeInputValue, timeElement, startDate, duration) {
var hoursToMinutes = parseTimeInputToIntegerArray(timeInputValue);
var hours = parseInt(hoursToMinutes[0]);
var minutes = parseInt(hoursToMinutes[1]);
console.log("duration: " + duration);
startDate.hours(hours);
startDate.minutes(minutes);
startDate.add(duration, "m");
timeInputValue = startDate.format("HH:mm");
timeElement.val(timeInputValue);
}
function resetCreateForm() {
$("#serviceRecordCreationForm").trigger("reset");
}
function resetSingleBookingForm() {
$("#singleBookingForm").trigger("reset");
}
function submitSingleBookingForm() {
showSpinner();
validateForm($("#singleBookingForm"));
}
function submitCreateForm() {
showSpinner();
validateForm($("#serviceRecordCreationForm"));
}
function submitEditForm() {
showSpinner();
validateForm($("#serviceRecordEditForm"));
}
function resetGroupBookingForm() {
$("#groupBookingCreationForm").trigger("reset");
}
function submitGroupBookingForm() {
showSpinner();
validateForm($("#groupBookingCreationForm"));
}
function submitGroupBookingEditForm() {
showSpinner();
validateForm($("#groupBookingEditingForm"));
}
function deactivateGroupBookingForm() {
$("#employees-button, #category-select, #leistung-select, #start-date, #end-date, #start-time, #end-time, #duration, #distance, textarea, #reset-button, #create-button, #textbausteine-button").prop("disabled", true);
}
function activateGroupBookingForm() {
$("#employees-button, #category-select, #leistung-select, #start-date, #end-date, #start-time, #end-time, #duration, #distance, textarea, #reset-button, #create-button, #textbausteine-button").prop("disabled", false);
}
function deleteServiceRecord(serviceRecordOid) {
showMessagePopupWithCallback("Eintrag löschen", "Sind Sie sicher, dass Sie den Eintrag löschen möchten?",
function() {
var url = getValidateServiceRecordDeletionUrl();
$.get(url, { serviceRecordOidString: serviceRecordOid }).done(function(result) {
if (result === "Error") {
showAlertMessageBox("Fehler", "Es ist ein Fehler aufgetreten", null, false);
return;
}
var form = $("#deletion-form");
if(result.length === 0) {
if(form.length !== 0) {
logDebug("Sollte nicht mehr eintreffen; serviceRecordOid: " + serviceRecordOid);
$("#oidHolder").val(serviceRecordOid);
showSpinner();
form.submit();
}
} else { // Meldungen
hideSpinner();
var validationResult = $.parseJSON(result);
if(validationResult.Message === null) {
logDebug("Is valid; serviceRecordOid: " + serviceRecordOid);
$("#oidHolder").val(serviceRecordOid);
showSpinner();
form.submit();
return;
}
var kannTrotzdemGespeichertWerden = message.KannTrotzdemGespeichertWerden;
var validationCallback = function() {
$("#messagePopup .modal-body").html();
if(kannTrotzdemGespeichertWerden) {
showSpinner();
form.submit();
}
};
if(kannTrotzdemGespeichertWerden) {
showWarningMessageBox("Fehler", message.Message, validationCallback, false);
} else {
showAlertMessageBox("Fehler", message.Message, validationCallback, false);
}
}
});
}, false);
}
function validateForm(form) {
if (form === undefined || form === null) {
hideSpinner();
return;
}
var errorMessage = "";
var isNoticeMandatory = getIsDocumentationMandatory();
var numberOfNoticeTextareas = getNumberOfDokutypes();
var isValid = true;
if (isNoticeMandatory) {
if (numberOfNoticeTextareas === 0) {
var doku = $("#dokufeld").val();
isValid = doku.length > 0;
} else {
for (var i = 0; i < numberOfNoticeTextareas; i++) {
var d = $("#doku-textarea-" + i).val();
isValid = d.length > 0;
if (isValid) {
break;
}
}
}
if (isValid === false) {
errorMessage = "Bitte füllen Sie " + (numberOfNoticeTextareas > 1 ? "mindestens ein" : "das") + " Dokumentationsfeld aus.
";
}
}
var startAndEndDates = getStartAndEndDate();
if (startAndEndDates === null && isValid) {
isValid = false;
errorMessage += "Die Datums- und / oder Zeitangaben sind nicht korrekt.
";
}
var isInEditingMode = getIsInEditingMode();
if(isValid === false) {
hideSpinner();
showAlertMessageBox("Fehler",
errorMessage,
function() {
$("#messagePopup .modal-body").html();
},
true);
return;
}
if(startAndEndDates !== null && isValid) {
var start = startAndEndDates[0];
var end = startAndEndDates[1];
console.log("%c" + start.format("DD.MM.YYYY") + " bis " + end.format("DD.MM.YYYY") + "; isInEditingMode: " + isInEditingMode + "; dateString: " + start.format("DD.MM.YYYY") + "; startString: " + start.format("HH:mm") + "; endString" + end.format("HH:mm"), "color: purple;font-size:12px;font-weight:bold;");
$.get(getCheckRightsUrl(), { von: start.format("DD.MM.YYYY"), bis: end.format("DD.MM.YYYY"), inEditMode: isInEditingMode, dateString: start.format("DD.MM.YYYY"), startString: start.format("HH:mm"), endString: end.format("HH:mm") }).done(function(result) {
var message = $.parseJSON(result);
if(message.Message === null) {
form.submit();
} else {
hideSpinner();
var kannTrotzdemGespeichertWerden = message.KannTrotzdemGespeichertWerden;
var testCallback = function() {
$("#messagePopup .modal-body").html();
if(kannTrotzdemGespeichertWerden) {
showSpinner();
form.submit();
}
};
if (kannTrotzdemGespeichertWerden) {
showWarningMessageBox("Fehler", message.Message, testCallback, false);
} else {
showAlertMessageBox("Fehler", message.Message, testCallback, false);
}
}
});
}
}
var treeHtml = "";
function buildGoalsTree(treeData) {
var container = $("#goals-container");
container.empty();
treeHtml = "";
$.each(treeData, function(index) {
buildGoaldTreeBranch(treeData[index]);
});
container.append(treeHtml);
}
function buildGoaldTreeBranch(goalItem) {
var goalOid = goalItem.ValueListEntryOid;
var goalHeader = goalItem.Header;
var isChecked = getSelectedGoalOids() !== null && isInArray(goalOid, getSelectedGoalOids()) ? "checked" : "";
if(!goalItem.IsLeaf) {
treeHtml +=
'