- Rechte-Bug im Kalender behoben, der verhindert hat, dass man einen Termin mit Ressource und sich selbst in der Mitarbeiterliste bearbeiten konnte. MoK: - Minuten/Stunden/Minuten&Stunden als Zeiterfassungseinheit wie im FaC implementiert - Quittierungsbelegunterschriftenansicht verbessert - Laden der Zeiterfassungseinträge effizienter gemacht
320 lines
11 KiB
JavaScript
320 lines
11 KiB
JavaScript
function initializeReportView() {
|
|
checkForExistingSignature();
|
|
qbFilterSelectionChange();
|
|
}
|
|
|
|
function calculateDays() {
|
|
var month = $("#month-select option:selected").val();
|
|
var year = $("#year-select option:selected").val();
|
|
|
|
var monthInt = parseInt(month, 10) - 1;
|
|
|
|
var begin = moment(new Date(year, monthInt, 1)).date();
|
|
var end = moment(new Date(year, monthInt, 1)).add(1, "months").add(-1, "days").date();
|
|
|
|
$("#start-day-select").empty();
|
|
$("#end-day-select").empty();
|
|
|
|
for (var i = begin; i <= end; i++) {
|
|
var option = new Option(i, i);
|
|
var option2 = new Option(i, i);
|
|
|
|
$("#start-day-select").append(option);
|
|
$("#end-day-select").append(option2);
|
|
}
|
|
|
|
$("#start-day-select").val(1);
|
|
$("#end-day-select").val(end);
|
|
|
|
var startDay = $("#start-day-select option:selected").val();
|
|
var endDay = $("#end-day-select option:selected").val();
|
|
|
|
if(startDay === 0 || endDay === 0 || year === 0 || month === 0 || areUndefinedOrNull([month, year, startDay, endDay])) {
|
|
return;
|
|
}
|
|
|
|
var changeDateSelectionUrl = getChangeDateSelectionUrl();
|
|
|
|
$.get(changeDateSelectionUrl, { startDayString: startDay, endDayString: endDay, monthString: month, yearString: year});
|
|
}
|
|
|
|
function hideSigningParts(canSign) {
|
|
try {
|
|
if(!isUndefinedOrNull(canSign)) {
|
|
if(canSign === false) {
|
|
$(".signingContent").hide();
|
|
} else {
|
|
$(".signingContent").show();
|
|
}
|
|
}
|
|
} catch(error) {
|
|
showErrorPopup(error);
|
|
}
|
|
}
|
|
|
|
function confirmReportSignatureCancellation() {
|
|
showMessagePopupWithCallback("Unterschrift", "Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
|
function() {
|
|
$("#report-signature-container").removeClass("d-block");
|
|
$("#report-form-container").show();
|
|
|
|
var canvas = document.getElementById("sketch-pad");
|
|
var context = canvas.getContext("2d");
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
|
|
}, false);
|
|
}
|
|
|
|
function onMonthOrYearChange() {
|
|
calculateDays();
|
|
checkForExistingSignature();
|
|
}
|
|
|
|
function checkForExistingSignature() {
|
|
var month = $("#month-select option:selected").val();
|
|
var year = $("#year-select option:selected").val();
|
|
var startDay = $("#start-day-select option:selected").val();
|
|
var endDay = $("#end-day-select option:selected").val();
|
|
|
|
if(startDay === 0 || endDay === 0 || year === 0 || month === 0 || areUndefinedOrNull([month, year, startDay, endDay])) {
|
|
return;
|
|
}
|
|
|
|
var changeDateSelectionUrl = getChangeDateSelectionUrl();
|
|
|
|
$.get(changeDateSelectionUrl,
|
|
{
|
|
startDayString: startDay,
|
|
endDayString: endDay,
|
|
monthString: month,
|
|
yearString: year
|
|
});
|
|
}
|
|
|
|
function qbFilterSelectionChange() {
|
|
var selectedOption = $("#qb-filter-select option:selected").val();
|
|
|
|
switch(selectedOption) {
|
|
case "3":
|
|
$("#team-selection-container").removeClass("d-block");
|
|
$("#team-selection-container").addClass("d-none");
|
|
|
|
$("#customer-selection-container").removeClass("d-none");
|
|
$("#customer-selection-container").addClass("d-block");
|
|
break;
|
|
case "4":
|
|
$("#customer-selection-container").removeClass("d-block");
|
|
$("#customer-selection-container").addClass("d-none");
|
|
|
|
$("#team-selection-container").removeClass("d-none");
|
|
$("#team-selection-container").addClass("d-block");
|
|
break;
|
|
default:
|
|
$("#customer-selection-container, #team-selection-container").removeClass("d-block");
|
|
$("#customer-selection-container, #team-selection-container").addClass("d-none");
|
|
break;
|
|
}
|
|
|
|
var selectedFilterEnumUrl = getSetQbFilterEnumUrl();
|
|
|
|
$.get(selectedFilterEnumUrl, { filterEnumString: selectedOption});
|
|
}
|
|
|
|
function onCustomerSelectionChange() {
|
|
var url = getSetCustomerUrl();
|
|
|
|
var selectedCustomerOid = $("#customers-drop-down option:selected").val();
|
|
|
|
$.get(url, { customerOid: selectedCustomerOid}).done(function() {
|
|
checkForExistingSignature();
|
|
});
|
|
}
|
|
|
|
// Lädt die bisher geleisteten Unterschriften
|
|
//function getSignatures(signatureOidStrings, containerId) {
|
|
// alert("löschen?");
|
|
// logInfo3("Lade vorhandene Unterschriften für Container '" + containerId + "' mit veralteter Methode");
|
|
// try {
|
|
// showSpinner();
|
|
|
|
// var container = $(containerId);
|
|
// container.html("");
|
|
|
|
// $.get(getLoadConfirmationReceiptSignaturesUrl(), { oidsAsString: signatureOidStrings }).done(function(json) {
|
|
// if(isUndefinedOrNull(json) || !checkJson(json)) {
|
|
// if(!checkJson(json)) {
|
|
// hideSpinner();
|
|
// }
|
|
// }
|
|
|
|
// if(isEmptyOrSpaces(json)) {
|
|
// hideSpinner();
|
|
// return;
|
|
// }
|
|
|
|
// var signatureList = $.parseJSON(json);
|
|
|
|
// var newHtml = "";
|
|
|
|
// $.each(signatureList, function(index, signature) {
|
|
// newHtml +=
|
|
// '<div class="row justify-content-md-center mt-2">' +
|
|
// '<div class="col">' +
|
|
// "<div>Unterschrift vom " + signature.InsTsStr + "</div>" +
|
|
// '<img src="' + signature.ImageStr + '" class="img-fluid mx-auto d-block"/>' +
|
|
// "</div>" +
|
|
// "</div>";
|
|
// });
|
|
|
|
// container.append(newHtml);
|
|
// hideSpinner();
|
|
// });
|
|
// } catch(error) {
|
|
// showErrorPopup(error);
|
|
// }
|
|
//}
|
|
|
|
function cancelSignature(canSign, signaturePad, canvasId, signatureContainer, overridingAlertId) {
|
|
try {
|
|
if (canSign === false) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
var canvas = document.getElementById(canvasId);
|
|
var twoDContext = canvas.getContext("2d");
|
|
|
|
var width = canvas.getBoundingClientRect().width;
|
|
var height = canvas.getBoundingClientRect().height;
|
|
|
|
if (width === 0 || height === 0) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
var isEmpty = signaturePad.isEmpty();
|
|
|
|
if(isEmpty === true) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
showMessagePopupWithCallback("Unterschrift",
|
|
"Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
|
function() {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
|
|
signaturePad.clear();
|
|
},
|
|
false);
|
|
} catch (error) {
|
|
showErrorPopup(error);
|
|
}
|
|
}
|
|
|
|
function hideSignatureContainer(signatureContainer, overridingAlertId) {
|
|
$("#" + signatureContainer + ", #" + overridingAlertId).removeClass("d-block");
|
|
$("#report-form-container").show();
|
|
}
|
|
|
|
//function showSignaturePad(overwrite, signatureOidsString, canSign, cardBodyId, customerOid, numberOfEntries, customerName, timeSpan, isEmployeeSignature, employeeName) {
|
|
// try {
|
|
// alert("Kann das gelöscht werden?");
|
|
// cardHeaderButtonClick(cardBodyId);
|
|
|
|
// $("#report-form-container").hide();
|
|
// $("#report-signature-container-div").addClass("d-block");
|
|
|
|
// var plural = "";
|
|
// if(!isEmptyOrSpaces(signatureOidsString) && signatureOidsString.includes(",")) {
|
|
// plural = "en";
|
|
// }
|
|
|
|
// var entryCount = parseInt(numberOfEntries, 10);
|
|
|
|
// var leistungPlural = entryCount > 1 ? "en" : "";
|
|
|
|
// var signatureGiverName = isEmployeeSignature ? employeeName : customerName;
|
|
|
|
// $("#report-info-column-h4").html("Unterschrift" + plural + " von " + signatureGiverName + " für " + numberOfEntries + " erbrachte Leistung" + leistungPlural + " von " + customerName + " (" + timeSpan + ")");
|
|
|
|
// if(overwrite) {
|
|
// $("#overwriting-signature-alert").addClass("d-block");
|
|
// }
|
|
|
|
// getSignatures(signatureOidsString, "#signature-container-div");
|
|
|
|
// hideSigningParts(canSign);
|
|
|
|
// resizeCanvas("#report-sketch-pad-canvas", "#report-canvas-row-div");
|
|
|
|
// var canvas = document.getElementById("report-sketch-pad-canvas");
|
|
|
|
// var signaturePad = new SignaturePad(canvas, { backgroundColor: "rgba(255, 255, 255, 0)" });
|
|
|
|
// var cancelButton = document.getElementById("cancel-report-signature-button");
|
|
// var saveButton = document.getElementById("save-report-signature-button");
|
|
// var clearButton = document.getElementById("clear-report-canvas-button");
|
|
|
|
// cancelButton.addEventListener("click", function() {
|
|
// cancelSignature(canSign, signaturePad, "report-sketch-pad-canvas", "report-signature-container-div", "overwriting-signature-alert");
|
|
// });
|
|
|
|
// saveButton.addEventListener("click", function() {
|
|
// saveSignature(customerOid, isEmployeeSignature, overwrite, signaturePad, "report-sketch-pad-canvas");
|
|
// });
|
|
|
|
// clearButton.addEventListener("click", function() {
|
|
// signaturePad.clear();
|
|
// });
|
|
// } catch(error) {
|
|
// showErrorPopup(error);
|
|
// }
|
|
//}
|
|
|
|
function saveSignature(customerOid, isEmployeeSignature, overwrite, signaturePad, canvasId) {
|
|
try {
|
|
var canvas = document.getElementById(canvasId);
|
|
var clonedCanvas = cloneCanvas(canvas);
|
|
var trimmedCanvas = trimCanvas(clonedCanvas);
|
|
|
|
var context = trimmedCanvas.getContext("2d");
|
|
context.globalCompositeOperation = "destination-over";
|
|
context.fillStyle = "white";
|
|
|
|
logInfo3(trimmedCanvas.width + " x " + trimmedCanvas.height);
|
|
|
|
context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height);
|
|
|
|
var dataUrl = trimmedCanvas.toDataURL("image/png");
|
|
|
|
showSpinner();
|
|
|
|
var url = getCreateSignatureForServiceOverviewUrl();
|
|
|
|
$.post(url, { base64SignatureString: dataUrl, customerOidString: customerOid, isCustomerSignature: !isEmployeeSignature, overwrite: overwrite }).done(function (json) {
|
|
hideSpinner();
|
|
|
|
if (isEmptyOrSpaces(json)) {
|
|
showMessagePopupWithHtmlAndCallback("Unterschrift",
|
|
"Die Unterschrift wurde erfolgreich gespeichert.<br/><br/>Verändern Sie jedoch Einträge der Zeiterfassung in dem ausgewählten Zeitraum, muss die Unterschrift erneut geleistet werden.", false,
|
|
function () {
|
|
showSpinner();
|
|
location.reload();
|
|
},
|
|
true);
|
|
} else {
|
|
showMessagePopup("Fehler", json);
|
|
signaturePad.clear();
|
|
}
|
|
});
|
|
} catch (ex) {
|
|
showErrorPopup(ex);
|
|
}
|
|
} |