MoK:
1. GetStatus auf type=1 geändert. 2. Bei den Bargeldkassen Bugs gefixt (ist noch nicht fertig). 3. Fehler bezüglich jsonResult in mobileUtils.js gefixt. 4. Meldung bei Login wegen GetStatus eingebaut.
This commit is contained in:
@@ -422,6 +422,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
|
||||
#region Bargeldkassen
|
||||
|
||||
[Authorize]
|
||||
private void ReloadBargeldkassen()
|
||||
{
|
||||
if(Model?.SelectedCustomer?.CustomerOid is null)
|
||||
@@ -817,6 +818,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult DeleteTransactionSignature(long transactionOid)
|
||||
{
|
||||
if(Model is null)
|
||||
@@ -861,6 +863,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return PartialView("CustomerBargeldkassen", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public ActionResult LoadHistoryEntries(long transactionOid)
|
||||
{
|
||||
if(Model is null)
|
||||
@@ -877,12 +880,19 @@ namespace BeWoPlanerMobil.Controllers
|
||||
return PartialView("CustomerBargeldtransaktionshistorienPartial", Model);
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string ClearHistoryEntries()
|
||||
{
|
||||
Model?.BargeldtransaktionshistoryEntries.Clear();
|
||||
|
||||
return LeerzeichenFuerGetMethoden;
|
||||
}
|
||||
|
||||
[Authorize]
|
||||
public string CheckForExistingSignature()
|
||||
{
|
||||
return (Model?.SelectedBargeldtransaktion?.SignatureOid.HasValue ?? false) ? "1" : "0";
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Abwesenheiten
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace BeWoPlanerMobil.Controllers
|
||||
{
|
||||
public class LoginController : AbstractBaseController
|
||||
{
|
||||
private String GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&t=0";
|
||||
private String GETSERVER_URL = "https://support.bewoplaner.de/api/getserver.php?k={0}&type=1";
|
||||
|
||||
public static string LoginErrorIndex => "LoginErrorIndex";
|
||||
|
||||
|
||||
@@ -461,9 +461,11 @@ function showMessagePopupWithHtmlAndCallback(title, messageAsHtml, hasCloseButto
|
||||
|
||||
$("#message-popup-ok-btn").off("click");
|
||||
|
||||
$("#message-popup-ok-btn").on("click", function () {
|
||||
callback();
|
||||
});
|
||||
if(typeof callback === "function") {
|
||||
$("#message-popup-ok-btn").on("click", function () {
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
if (hasCloseButton === false) {
|
||||
$("#message-popup-close-btn").hide();
|
||||
@@ -471,7 +473,7 @@ function showMessagePopupWithHtmlAndCallback(title, messageAsHtml, hasCloseButto
|
||||
$("#message-popup-close-btn").show();
|
||||
}
|
||||
|
||||
if(executeCallbackByBothButtons === true) {
|
||||
if(executeCallbackByBothButtons === true && typeof callback === "function") {
|
||||
$("#message-popup-close-btn, #message-popup-esc-btn").off("click");
|
||||
$("#message-popup-close-btn, #message-popup-esc-btn").on("click",
|
||||
function () {
|
||||
@@ -495,8 +497,8 @@ function parseJason(jsonToParse) {
|
||||
try {
|
||||
return $.parseJSON(jsonToParse);
|
||||
} catch (error) {
|
||||
if(stringContainsDoctype(jsonResult)) {
|
||||
showErrorPopup(error, jsonResult);
|
||||
if(stringContainsDoctype(jsonToParse)) {
|
||||
showErrorPopup(error, jsonToParse);
|
||||
} else {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
|
||||
@@ -129,57 +129,95 @@ function initializeSignature(selectedServiceRecordOid) {
|
||||
var clearButton = document.getElementById("clear-canvas-btn");
|
||||
var cancelButton = document.getElementById("cancel-signature-btn");
|
||||
|
||||
saveButton.addEventListener("click", function(event) {
|
||||
var url = getSetSelectedSignatureUrl();
|
||||
var date = moment(new Date());
|
||||
var saveButtonClone = saveButton.cloneNode(true);
|
||||
var clearButtonClone = clearButton.cloneNode(true);
|
||||
var cancelButtonClone = cancelButton.cloneNode(true);
|
||||
|
||||
var clonedCanvas = trimCanvas(cloneCanvas(document.getElementById("sketch-pad")));
|
||||
saveButton.parentNode.replaceChild(saveButtonClone, saveButton);
|
||||
clearButton.parentNode.replaceChild(clearButtonClone, clearButton);
|
||||
cancelButton.parentNode.replaceChild(cancelButtonClone, cancelButton);
|
||||
|
||||
var context = clonedCanvas.getContext("2d", { willReadFrequently: true });
|
||||
context.globalCompositeOperation = "destination-over";
|
||||
context.fillStyle = "white";
|
||||
context.fillRect(0, 0, clonedCanvas.width, clonedCanvas.height);
|
||||
function saveBtnListener(event) {
|
||||
saveButtonClick(selectedServiceRecordOid);
|
||||
}
|
||||
|
||||
var dataUrl = clonedCanvas.toDataURL("image/png");
|
||||
function clearBtnListener(event) {
|
||||
clearButtonClick(signaturePad);
|
||||
}
|
||||
|
||||
var formattedDate = date.format("DD.MM.YYYY HH:mm:ss");
|
||||
function cancelBtnListener(event) {
|
||||
cancelButtonClick(signaturePad)
|
||||
}
|
||||
|
||||
showSpinner();
|
||||
saveButtonClone.addEventListener("click", saveBtnListener);
|
||||
|
||||
$.post(url, { blob: dataUrl, timeStamp: formattedDate, serviceRecordOid: selectedServiceRecordOid }).done(function(json) {
|
||||
hideSpinner();
|
||||
|
||||
if(json === "1") {
|
||||
$("#signature-container").removeClass("d-block");
|
||||
$("#main-container, #checkbox-container").show();
|
||||
showMessagePopupWithCallback("Unterschrift", "Die Unterschrift wurde erfolgreich gespeichert.", function() {
|
||||
showSpinner();
|
||||
$("#signature-alert").addClass("d-none");
|
||||
location.reload();
|
||||
}, true);
|
||||
} else {
|
||||
var errorMessage = json === "0" ? "Es ist ein Fehler beim Speichern der Unterschrift aufgetreten. Bitte wenden Sie sich an Ihren Administrator." : json;
|
||||
clearButtonClone.addEventListener("click", clearBtnListener);
|
||||
|
||||
showMessagePopup("Fehler", errorMessage);
|
||||
$("#signature-alert").addClass("d-none");
|
||||
signaturePad.clear();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
clearButton.addEventListener("click", function (event) {
|
||||
signaturePad.clear();
|
||||
});
|
||||
|
||||
cancelButton.addEventListener("click", function(event) {
|
||||
showMessagePopupWithCallback("Unterschrift", "Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
||||
function() {
|
||||
$("#signature-container, #checkbox-container").removeClass("d-block");
|
||||
$("#signature-alert").addClass("d-none");
|
||||
$("#main-container").show();
|
||||
|
||||
signaturePad.clear();
|
||||
}, false);
|
||||
});
|
||||
cancelButtonClone.addEventListener("click", cancelBtnListener);
|
||||
});
|
||||
}
|
||||
|
||||
function saveButtonClick(selectedServiceRecordOid) {
|
||||
try {
|
||||
var url = getSetSelectedSignatureUrl();
|
||||
var date = moment(new Date());
|
||||
|
||||
var clonedCanvas = trimCanvas(cloneCanvas(document.getElementById("sketch-pad")));
|
||||
|
||||
var context = clonedCanvas.getContext("2d", {willReadFrequently: true});
|
||||
context.globalCompositeOperation = "destination-over";
|
||||
context.fillStyle = "white";
|
||||
context.fillRect(0, 0, clonedCanvas.width, clonedCanvas.height);
|
||||
|
||||
var dataUrl = clonedCanvas.toDataURL("image/png");
|
||||
|
||||
var formattedDate = date.format("DD.MM.YYYY HH:mm:ss");
|
||||
|
||||
showSpinner();
|
||||
|
||||
$.post(url, {blob: dataUrl, timeStamp: formattedDate, serviceRecordOid: selectedServiceRecordOid}).done(function (json) {
|
||||
hideSpinner();
|
||||
|
||||
if(json === "1") {
|
||||
$("#signature-container").removeClass("d-block");
|
||||
$("#main-container, #checkbox-container").show();
|
||||
showMessagePopupWithCallback("Unterschrift", "Die Unterschrift wurde erfolgreich gespeichert.", function () {
|
||||
showSpinner();
|
||||
$("#signature-alert").addClass("d-none");
|
||||
location.reload();
|
||||
}, true);
|
||||
} else {
|
||||
var errorMessage = json === "0" ? "Es ist ein Fehler beim Speichern der Unterschrift aufgetreten. Bitte wenden Sie sich an Ihren Administrator." : json;
|
||||
|
||||
showMessagePopup("Fehler", errorMessage);
|
||||
$("#signature-alert").addClass("d-none");
|
||||
signaturePad.clear();
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function cancelButtonClick(signaturePad) {
|
||||
try {
|
||||
showMessagePopupWithCallback("Unterschrift", "Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
||||
function () {
|
||||
$("#signature-container, #checkbox-container").removeClass("d-block");
|
||||
$("#signature-alert").addClass("d-none");
|
||||
$("#main-container").show();
|
||||
|
||||
signaturePad.clear();
|
||||
}, false);
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function clearButtonClick(signaturePad) {
|
||||
try {
|
||||
signaturePad.clear();
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
$("#customer-bargeldkassen-modal-body").load("@Url.Action("LoadEditFormPartial")", {bargeldkassenOid: bargeldkassenOid}, function () {
|
||||
hideSpinner();
|
||||
$("#customer-bargeldkassen-form-popup-title").text(bargeldkassenname + " bearbeiten");
|
||||
$("#customer-bargeldkassen-form-popup-title").text(`${bargeldkassenname} bearbeiten`);
|
||||
$("#customer-bargeldkassen-form-popup").modal("show");
|
||||
calcBargeldkassenFormPrependWidth();
|
||||
});
|
||||
@@ -54,7 +54,8 @@
|
||||
|
||||
function deleteBtnClickTest(bargeldkassenOid, bargeldkassenname) {
|
||||
try {
|
||||
showMessagePopupWithHtmlAndCallback("Bargeldkasse löschen", "Möchten Sie die Bargeldkasse \"" + bargeldkassenname + "\" wirklich löschen?", function () {
|
||||
|
||||
showMessagePopupWithHtmlAndCallback(`Bargeldkasse löschen`, `Möchten Sie die Bargeldkasse "${bargeldkassenname}" wirklich löschen?`, true, function () {
|
||||
showSpinner();
|
||||
$("#bk-to-delete-oid").val(bargeldkassenOid);
|
||||
document.getElementById("bargeldkassendeleteform").submit();
|
||||
@@ -152,6 +153,7 @@
|
||||
}
|
||||
|
||||
function signZahlungsbeleg(transaktionsOid) {
|
||||
logInfo(`Transaktion mit Oid ${transaktionsOid} wird unterschrieben`);
|
||||
try {
|
||||
$("#customer-container").hide();
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-block");
|
||||
@@ -167,68 +169,27 @@
|
||||
var saveButton = document.getElementById("transaktionsunterschriften-save-btn");
|
||||
var clearButton = document.getElementById("transaktionsunterschriften-clear-canvas-btn");
|
||||
|
||||
cancelButton.addEventListener("click",
|
||||
var cancelButtonClone = cancelButton.cloneNode(true);
|
||||
var saveButtonClone = saveButton.cloneNode(true);
|
||||
var clearButtonClone = clearButton.cloneNode(true);
|
||||
|
||||
cancelButton.parentNode.replaceChild(cancelButtonClone, cancelButton);
|
||||
saveButton.parentNode.replaceChild(saveButtonClone, saveButton);
|
||||
clearButton.parentNode.replaceChild(clearButtonClone, clearButton);
|
||||
|
||||
cancelButtonClone.addEventListener("click",
|
||||
function () {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var width = canvas.getBoundingClientRect().width;
|
||||
var height = canvas.getBoundingClientRect().height;
|
||||
|
||||
if(width === 0 || height === 0 || signaturePad.isEmpty()) {
|
||||
logInfo("width oder height sind 0 oder das SignaturePad ist leer");
|
||||
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
showMessagePopupWithCallback("Unterschrift",
|
||||
"Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
||||
function () {
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
},
|
||||
false);
|
||||
cancelButtonEvent(signaturePad);
|
||||
});
|
||||
|
||||
saveButton.addEventListener("click",
|
||||
saveButtonClone.addEventListener("click",
|
||||
function () {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var clonedCanvas = cloneCanvas(canvas);
|
||||
var trimmedCanvas = trimCanvas(clonedCanvas);
|
||||
|
||||
var context = trimmedCanvas.getContext("2d", {willReadFrequently: true});
|
||||
context.globalCompositeOperation = "destination-over";
|
||||
context.fillStyle = "white";
|
||||
context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height);
|
||||
|
||||
var dataUrl = trimmedCanvas.toDataURL("image/png");
|
||||
|
||||
showSpinner();
|
||||
|
||||
$("#bargeldkassen-container").load("@Url.Action("SaveTransaktionsunterschrift")",
|
||||
{
|
||||
transaktionsOid: transaktionsOid,
|
||||
signatureAsBase64: dataUrl
|
||||
},
|
||||
function () {
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
$("#customer-container").show();
|
||||
|
||||
hideSpinner();
|
||||
});
|
||||
saveButtonEvent(transaktionsOid);
|
||||
});
|
||||
|
||||
clearButton.addEventListener("click",
|
||||
clearButtonClone.addEventListener("click",
|
||||
function () {
|
||||
signaturePad.clear();
|
||||
clearButtonEvent(signaturePad);
|
||||
});
|
||||
} catch(error) {
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
@@ -236,6 +197,89 @@
|
||||
$("#customer-container").show();
|
||||
showErrorPopup(error);
|
||||
}
|
||||
|
||||
function clearButtonEvent(signaturePad) {
|
||||
try {
|
||||
signaturePad.clear();
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function saveButtonEvent(transaktionsOid) {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var clonedCanvas = cloneCanvas(canvas);
|
||||
var trimmedCanvas = trimCanvas(clonedCanvas);
|
||||
|
||||
var context = trimmedCanvas.getContext("2d", {willReadFrequently: true});
|
||||
context.globalCompositeOperation = "destination-over";
|
||||
context.fillStyle = "white";
|
||||
context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height);
|
||||
|
||||
var dataUrl = trimmedCanvas.toDataURL("image/png");
|
||||
logInfo(`Unterschrift für Transaktion mit Oid ${transaktionsOid} wird zu SaveTransaktionsunterschrift geschickt`);
|
||||
showSpinner();
|
||||
|
||||
$("#bargeldkassen-container").load("@Url.Action("SaveTransaktionsunterschrift")",
|
||||
{
|
||||
transaktionsOid: transaktionsOid,
|
||||
signatureAsBase64: dataUrl
|
||||
},
|
||||
function () {
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
$("#customer-container").show();
|
||||
|
||||
hideSpinner();
|
||||
});
|
||||
}
|
||||
|
||||
function cancelButtonEvent(signaturePad) {
|
||||
try {
|
||||
var canvas = document.getElementById("transaktionsunterschriftencanvas");
|
||||
var width = canvas.getBoundingClientRect().width;
|
||||
var height = canvas.getBoundingClientRect().height;
|
||||
|
||||
if(width === 0 || height === 0 || signaturePad.isEmpty()) {
|
||||
logInfo("width oder height sind 0 oder das SignaturePad ist leer");
|
||||
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
showMessagePopupWithCallback("Unterschrift",
|
||||
"Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
||||
function () {
|
||||
$("#customer-container").show();
|
||||
$("#transaktionsunterschriftencontainer").removeClass("d-block");
|
||||
$("#transaktionsunterschriftencontainer").addClass("d-none");
|
||||
|
||||
signaturePad.clear();
|
||||
},
|
||||
false);
|
||||
} catch (error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function clearCustomerBargeldtransaktionsForm() {
|
||||
try {
|
||||
$("#bargeldtransaktionsbetragsinput").val("");
|
||||
$("#bargeldtransaktionsnotizinput").val("");
|
||||
$("#bargeldtransaktionsbelegnummerinput").val("");
|
||||
|
||||
if($("#bargeldtransaktionsarten-select-input").length) {
|
||||
$("#bargeldtransaktionsarten-select-input select").val("0");
|
||||
}
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteZahlungsbelegsunterschrift(transaktionsOid, zahlungsdatum, betrag, zahlungstyp) {
|
||||
@@ -382,13 +426,13 @@
|
||||
<i class="fas fa-plus"></i>
|
||||
Transaktion
|
||||
</button>
|
||||
<button class="btn btn-outline-primary" title="Kassenbuch Bearbeiten" type="button" modal="#customer-bargeldkassen-form-popup" onclick="editBtnClickTest(@bargeldkasse.BargeldkassenOid, '@bargeldkasse.Kassenname')">
|
||||
<button class="btn btn-outline-primary" title="Kassenbuch Bearbeiten" type="button" modal="#customer-bargeldkassen-form-popup" onclick="editBtnClickTest(@bargeldkasse.BargeldkassenOid, `@bargeldkasse.Kassenname`)">
|
||||
<i class="fas fa-edit"></i>
|
||||
</button>
|
||||
<button class="btn btn-outline-primary" title="Kassenbuch drucken" type="button" onclick="previewBargeldkassenReport(@bargeldkasse.BargeldkassenOid)">
|
||||
<i class="fas fa-file-download"></i>
|
||||
</button>
|
||||
<button class="btn btn-outline-danger" title="Kassenbuch löschen" type="button" onclick="deleteBtnClickTest(@bargeldkasse.BargeldkassenOid, '@bargeldkasse.Kassenname')">
|
||||
<button class="btn btn-outline-danger" title="Kassenbuch löschen" type="button" onclick="deleteBtnClickTest(@bargeldkasse.BargeldkassenOid, `@bargeldkasse.Kassenname`)">
|
||||
<i class="fas fa-trash-alt"></i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -617,7 +661,7 @@
|
||||
|
||||
@using(Html.BeginForm("DeleteBargeldkasse", "Customer", FormMethod.Post, new { id = "bargeldkassendeleteform" }))
|
||||
{
|
||||
<input type="hidden" id="bk-to-delete-oid" />
|
||||
<input type="hidden" id="bk-to-delete-oid" name="bk-to-delete-oid" />
|
||||
}
|
||||
|
||||
@if(AbstractModel.HasRightToCreateCustomerBargeldkassen || AbstractModel.HasRightToEditCustomerBargeldkassen)
|
||||
|
||||
@@ -62,27 +62,30 @@
|
||||
return /^-?\d*[.,]?\d*$/.test(value);
|
||||
});
|
||||
}
|
||||
|
||||
function clearCustomerBargeldtransaktionsForm() {
|
||||
try {
|
||||
$("#bargeldtransaktionsbetragsinput").val("");
|
||||
$("#bargeldtransaktionsnotizinput").val("");
|
||||
$("#bargeldtransaktionsbelegnummerinput").val("");
|
||||
|
||||
if($("#bargeldtransaktionsarten-select-input").length) {
|
||||
$("#bargeldtransaktionsarten-select-input select").val("0");
|
||||
}
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function submitBargeldtransaktionsform() {
|
||||
try {
|
||||
if(false === validateTransaktionsForm()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.get("@Url.Action("CheckForExistingSignature")").success(function(hasSignature) {
|
||||
if(hasSignature === "1") {
|
||||
//showMessagePopupWithCallback("Warnung", "Für diese Transaktion existiert bereits eine Unterschrift. Eine Änderung löscht die Unterschrift. Möchten Sie die Transaktion ändern?", doSubmitForm, false);
|
||||
$("#transaction-signature-warning-popup").modal("show");
|
||||
} else {
|
||||
doSubmitForm();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
} catch(error) {
|
||||
showErrorPopup(error);
|
||||
}
|
||||
}
|
||||
|
||||
function doSubmitForm() {
|
||||
try {
|
||||
showSpinner();
|
||||
|
||||
var rawDate = $("#customer-bargeldtransaktionsdatum-input").val();
|
||||
@@ -267,4 +270,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" tabindex="-1" role="dialog" id="transaction-signature-warning-popup">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"></h5>
|
||||
<button class="close" type="button" data-dismiss="modal" aria-label="close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body" id="modal-body">
|
||||
Diese Transaktion wurde bereits unterschrieben. Eine Änderung wird die Unterschrift ungültig machen und zur Löschung derselben führen!
|
||||
Möchten Sie wirklich die Transaktion ändern?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" type="button" data-dismiss="modal" onclick="doSubmitForm()">Ja</button>
|
||||
<button class="btn btn-secondary" type="button" data-dismiss="modal" onclick="">Abbrechen</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -13,12 +13,12 @@
|
||||
|
||||
<script defer src="~/Content/fontawesome/all.min.js"></script>
|
||||
|
||||
<!--
|
||||
Einbindereihenfolge der Skripte für Bootstrap:
|
||||
1. jQuery
|
||||
2. Popper
|
||||
3. Bootstrap
|
||||
-->
|
||||
@*
|
||||
Einbindereihenfolge der Skripte für Bootstrap:
|
||||
1. jQuery
|
||||
2. Popper
|
||||
3. Bootstrap
|
||||
*@
|
||||
|
||||
<link href="@Url.Content("~/node_modules/jquery-ui/dist/themes/base/jquery-ui.min.css")" rel="stylesheet" type="text/css" />
|
||||
|
||||
@@ -39,10 +39,9 @@
|
||||
new Script { ExtensionSuite = ExtensionSuite.Icons },
|
||||
new Script { ExtensionType = ExtensionType.WebDocumentViewer }
|
||||
)
|
||||
|
||||
|
||||
<script type="text/javascript" src="@Url.Content("~/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js")"></script>
|
||||
|
||||
@*<link rel="stylesheet" href="@Url.Content("~/Content/style.css")" />*@
|
||||
<link rel="stylesheet" href="~/Content/style.css" />
|
||||
<link rel="stylesheet" href="@Url.Content("~/Content/tempusdominus-bootstrap-4.min.css")" />
|
||||
|
||||
@@ -56,7 +55,7 @@
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/group-booking.js")" type="text/javascript"></script>
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/view-scripts/main.js")" type="text/javascript"></script>
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/signature.js")" type="text/javascript"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" href="@Url.Content("~/node_modules/bootstrap4-fullscreen-modal/dist/bootstrap4-modal-fullscreen.min.css")" />
|
||||
|
||||
|
||||
@@ -73,8 +72,7 @@
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/utils/service-record-time-calc.js")" type="text/javascript"></script>
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/utils/js-helper.js")" type="text/javascript"></script>
|
||||
<script src="@Url.Content("~/Scripts/ownSoft-Scripts/utils/logging.js")" type="text/javascript"></script>
|
||||
@*<script src="@Url.Content("~/Scripts/ownSoft-Scripts/utils/password-security.js")" type="text/javascript"></script>*@
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
class PasswordSecurity {
|
||||
numbers = "0123456789";
|
||||
@@ -103,19 +101,19 @@
|
||||
}
|
||||
|
||||
validatePassword(password) {
|
||||
if (false === isUndefinedOrNull(password) && password.length > 0) {
|
||||
if(false === isUndefinedOrNull(password) && password.length > 0) {
|
||||
var sx = "";
|
||||
var passwordStrength = -1;
|
||||
|
||||
for (var i = 0; i < password.length; i++) {
|
||||
for(var i = 0; i < password.length; i++) {
|
||||
sx += password[i];
|
||||
|
||||
if (sx.length < this.partialPassword.length) {
|
||||
if(sx.length < this.partialPassword.length) {
|
||||
this.isPartial = true;
|
||||
this.passwordLengthDifference = this.partialPassword.length - sx.length;
|
||||
}
|
||||
|
||||
if (this.partialPassword !== sx) {
|
||||
if(this.partialPassword !== sx) {
|
||||
this.partialPassword = sx;
|
||||
}
|
||||
|
||||
@@ -133,7 +131,7 @@
|
||||
}
|
||||
|
||||
getIntegerFromArray(arr, index) {
|
||||
if (arr === undefined || arr === null || arr.length < index) {
|
||||
if(arr === undefined || arr === null || arr.length < index) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -143,7 +141,7 @@
|
||||
}
|
||||
|
||||
getLastValue() {
|
||||
if (this.previousValues === undefined || this.previousValues === null || this.previousValues.length === 0) {
|
||||
if(this.previousValues === undefined || this.previousValues === null || this.previousValues.length === 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -154,12 +152,12 @@
|
||||
var passwordStrength = 0;
|
||||
this.previousValue = 0;
|
||||
|
||||
if (this.isPartial === true) {
|
||||
if (this.passwordLengthDifference === 1) {
|
||||
if(this.isPartial === true) {
|
||||
if(this.passwordLengthDifference === 1) {
|
||||
this.score -= this.getLastValue();
|
||||
this.previousValues.pop();
|
||||
} else {
|
||||
for (var i = 0; i < this.passwordLengthDifference; i++) {
|
||||
for(var i = 0; i < this.passwordLengthDifference; i++) {
|
||||
this.score -= this.getLastValue();
|
||||
this.previousValues.pop();
|
||||
}
|
||||
@@ -169,25 +167,25 @@
|
||||
} else {
|
||||
var passwordLength = passwordToValidate.length;
|
||||
|
||||
if (passwordLength >= 6 && passwordLength < 9) {
|
||||
if(passwordLength >= 6 && passwordLength < 9) {
|
||||
this.score += 1;
|
||||
this.previousValue = 1;
|
||||
this.schalter = true;
|
||||
}
|
||||
|
||||
if (passwordLength >= 9 && passwordLength < 12) {
|
||||
if(passwordLength >= 9 && passwordLength < 12) {
|
||||
this.score += 2;
|
||||
this.previousValue = 2;
|
||||
this.schalter = true;
|
||||
}
|
||||
|
||||
if (passwordLength >= 12 && passwordLength < 18) {
|
||||
if(passwordLength >= 12 && passwordLength < 18) {
|
||||
this.score += 3;
|
||||
this.previousValue = 3;
|
||||
this.schalter = true;
|
||||
}
|
||||
|
||||
if (passwordLength >= 18) {
|
||||
if(passwordLength >= 18) {
|
||||
this.score += 4;
|
||||
this.previousValue = 4;
|
||||
this.schalter = true;
|
||||
@@ -197,8 +195,8 @@
|
||||
|
||||
// Zahlen
|
||||
var containsNumbers = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.numbers.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.numbers.includes(passwordAsArray[i])) {
|
||||
containsNumbers = true;
|
||||
break;
|
||||
}
|
||||
@@ -206,8 +204,8 @@
|
||||
|
||||
// Kleinbuchstaben
|
||||
var containsLowercaseLetters = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.lowercaseLetters.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.lowercaseLetters.includes(passwordAsArray[i])) {
|
||||
containsLowercaseLetters = true;
|
||||
break;
|
||||
}
|
||||
@@ -215,8 +213,8 @@
|
||||
|
||||
// Großbuchstaben
|
||||
var containsUppercaseLetters = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.uppercaseLetters.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.uppercaseLetters.includes(passwordAsArray[i])) {
|
||||
containsUppercaseLetters = true;
|
||||
break;
|
||||
}
|
||||
@@ -224,8 +222,8 @@
|
||||
|
||||
// Kleinumlaute
|
||||
var containsLowercaseUmlauts = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.lowercaseUmlauts.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.lowercaseUmlauts.includes(passwordAsArray[i])) {
|
||||
containsLowercaseUmlauts = true;
|
||||
break;
|
||||
}
|
||||
@@ -233,8 +231,8 @@
|
||||
|
||||
// Großumlaute
|
||||
var containsUppercaseUmlauts = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.uppercaseUmlauts.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.uppercaseUmlauts.includes(passwordAsArray[i])) {
|
||||
containsUppercaseUmlauts = true;
|
||||
break;
|
||||
}
|
||||
@@ -242,105 +240,105 @@
|
||||
|
||||
// Sonderzeichen 1
|
||||
var containsSpecialCharacters1 = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.specialChars1.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.specialChars1.includes(passwordAsArray[i])) {
|
||||
containsSpecialCharacters1 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var containsSpecialCharacters2 = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.specialChars2.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.specialChars2.includes(passwordAsArray[i])) {
|
||||
containsSpecialCharacters2 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var containsSpecialCharacters3 = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.specialChars3.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.specialChars3.includes(passwordAsArray[i])) {
|
||||
containsSpecialCharacters3 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var containsSpecialCharacters4 = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.specialChars4.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.specialChars4.includes(passwordAsArray[i])) {
|
||||
containsSpecialCharacters4 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var containsSpecialCharacters5 = false;
|
||||
for (var i = 0; i < passwordAsArray.length; i++) {
|
||||
if (this.specialChars5.includes(passwordAsArray[i])) {
|
||||
for(var i = 0; i < passwordAsArray.length; i++) {
|
||||
if(this.specialChars5.includes(passwordAsArray[i])) {
|
||||
containsSpecialCharacters5 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (containsNumbers === true) {
|
||||
if(containsNumbers === true) {
|
||||
this.addScoreValue(3);
|
||||
}
|
||||
|
||||
if (containsLowercaseLetters === true) {
|
||||
if(containsLowercaseLetters === true) {
|
||||
this.addScoreValue(2);
|
||||
}
|
||||
|
||||
if (containsUppercaseLetters === true) {
|
||||
if(containsUppercaseLetters === true) {
|
||||
this.addScoreValue(3);
|
||||
}
|
||||
|
||||
if (containsLowercaseUmlauts === true) {
|
||||
if(containsLowercaseUmlauts === true) {
|
||||
this.addScoreValue(2);
|
||||
}
|
||||
|
||||
if (containsUppercaseUmlauts === true) {
|
||||
if(containsUppercaseUmlauts === true) {
|
||||
this.addScoreValue(2);
|
||||
}
|
||||
|
||||
if (containsSpecialCharacters1 === true) {
|
||||
if(containsSpecialCharacters1 === true) {
|
||||
this.addScoreValue(4);
|
||||
}
|
||||
|
||||
if (containsSpecialCharacters2 === true) {
|
||||
if(containsSpecialCharacters2 === true) {
|
||||
this.addScoreValue(4);
|
||||
}
|
||||
|
||||
if (containsSpecialCharacters3 === true) {
|
||||
if(containsSpecialCharacters3 === true) {
|
||||
this.addScoreValue(4);
|
||||
}
|
||||
|
||||
if (containsSpecialCharacters4 === true) {
|
||||
if(containsSpecialCharacters4 === true) {
|
||||
this.addScoreValue(4);
|
||||
}
|
||||
|
||||
if (containsSpecialCharacters5 === true) {
|
||||
if(containsSpecialCharacters5 === true) {
|
||||
this.addScoreValue(4);
|
||||
}
|
||||
|
||||
this.previousValues.push(this.previousValue);
|
||||
}
|
||||
|
||||
if (this.score <= 15) {
|
||||
if(this.score <= 15) {
|
||||
passwordStrength = 0;
|
||||
}
|
||||
|
||||
if (this.score > 15 && this.score <= 55) {
|
||||
if(this.score > 15 && this.score <= 55) {
|
||||
passwordStrength = 1;
|
||||
}
|
||||
|
||||
if (this.score > 55 && this.score <= 115) {
|
||||
if(this.score > 55 && this.score <= 115) {
|
||||
passwordStrength = 2;
|
||||
}
|
||||
|
||||
if (this.score > 115 && this.score <= 155) {
|
||||
if(this.score > 115 && this.score <= 155) {
|
||||
passwordStrength = 3;
|
||||
}
|
||||
|
||||
if (this.score > 155) {
|
||||
if(this.score > 155) {
|
||||
passwordStrength = 4;
|
||||
}
|
||||
|
||||
@@ -348,13 +346,13 @@
|
||||
}
|
||||
|
||||
addScoreValue(defaultValue) {
|
||||
if (defaultValue === undefined || defaultValue === null || false === $.isNumeric(defaultValue)) {
|
||||
if(defaultValue === undefined || defaultValue === null || false === $.isNumeric(defaultValue)) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.score += defaultValue;
|
||||
|
||||
if (this.schalter === true) {
|
||||
if(this.schalter === true) {
|
||||
this.previousValue += defaultValue;
|
||||
} else {
|
||||
this.previousValue = defaultValue;
|
||||
@@ -364,42 +362,42 @@
|
||||
displayPasswordStrength(passwordStrength) {
|
||||
var passwordLabel = $("#" + this.passwordLabelId);
|
||||
|
||||
if (passwordStrength === undefined || !$.isNumeric(passwordStrength) || !passwordLabel.length) {
|
||||
if(passwordStrength === undefined || !$.isNumeric(passwordStrength) || !passwordLabel.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
passwordLabel.removeClass("text-success text-danger text-warning");
|
||||
|
||||
switch (passwordStrength) {
|
||||
case -1:
|
||||
passwordLabel.addClass("d-none");
|
||||
passwordLabel.html("");
|
||||
break;
|
||||
case 0:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Sehr schwach");
|
||||
passwordLabel.addClass("text-danger");
|
||||
break;
|
||||
case 1:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Schwach");
|
||||
passwordLabel.addClass("text-danger");
|
||||
break;
|
||||
case 2:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Mittel");
|
||||
passwordLabel.addClass("text-warning");
|
||||
break;
|
||||
case 3:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Stark");
|
||||
passwordLabel.addClass("text-success");
|
||||
break;
|
||||
case 4:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Sehr stark");
|
||||
passwordLabel.addClass("text-success");
|
||||
break;
|
||||
switch(passwordStrength) {
|
||||
case -1:
|
||||
passwordLabel.addClass("d-none");
|
||||
passwordLabel.html("");
|
||||
break;
|
||||
case 0:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Sehr schwach");
|
||||
passwordLabel.addClass("text-danger");
|
||||
break;
|
||||
case 1:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Schwach");
|
||||
passwordLabel.addClass("text-danger");
|
||||
break;
|
||||
case 2:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Mittel");
|
||||
passwordLabel.addClass("text-warning");
|
||||
break;
|
||||
case 3:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Stark");
|
||||
passwordLabel.addClass("text-success");
|
||||
break;
|
||||
case 4:
|
||||
passwordLabel.removeClass("d-none");
|
||||
passwordLabel.html("Passwortstärke: Sehr stark");
|
||||
passwordLabel.addClass("text-success");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5870,12 +5870,28 @@ namespace BeWo.Data.Access
|
||||
|
||||
public Signature LoadSignatureByTransaktionsOid(long transaktionsOid)
|
||||
{
|
||||
var criteria = CreateCriteriaIsActive<Signature>()
|
||||
var criteria = CreateCriteria<Signature>()
|
||||
.Add(Restrictions.Eq(nameof(Signature.BargeldtransaktionsOid), transaktionsOid));
|
||||
|
||||
return criteria.List<Signature>().FirstOrDefault();
|
||||
}
|
||||
|
||||
public List<long> LoadSignatureOidsByTransaktionOid(long transactionOid)
|
||||
{
|
||||
var criteria = CreateCriteria<Signature>()
|
||||
.Add(Restrictions.Eq(nameof(Signature.BargeldtransaktionsOid), transactionOid));
|
||||
|
||||
return criteria.List<Signature>().Select(s => s.Oid.Value).ToList();
|
||||
}
|
||||
|
||||
public List<Signature> LoadSignaturesByTransactionOids(List<long> transactionOids)
|
||||
{
|
||||
var criteria = CreateCriteria<Signature>()
|
||||
.Add(Restrictions.In(nameof(Signature.BargeldtransaktionsOid), transactionOids));
|
||||
|
||||
return criteria.List<Signature>().ToList();
|
||||
}
|
||||
|
||||
public List<Bargeldtransaktionshistory> LoadBargeldtransaktionshistoryEntries(long transaktionsOid)
|
||||
{
|
||||
var criteria = CreateCriteria<Bargeldtransaktionshistory>()
|
||||
|
||||
@@ -4108,6 +4108,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
if(originalTransaction.SignatureOid.HasValue)
|
||||
{
|
||||
signatureOids2Delete.AddRangeIfElementsNotIn(DAOFactory.SearchDAO.LoadSignatureOidsByTransaktionOid(originalTransaction.BargeldtransaktionOid.Value));
|
||||
signatureOids2Delete.AddIfNotIn(originalTransaction.SignatureOid.Value);
|
||||
}
|
||||
|
||||
@@ -4129,14 +4130,20 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
var newSignatureState = SignatureStateType.None;
|
||||
|
||||
// Wenn die Transaktion eine Unterschrift vor der Änderung hatte, wird diese als ungültig gespeichert und die Transaktion gelöscht.
|
||||
// Wenn die Transaktion eine Unterschrift vor der Änderung hatte, wird diese als ungültig gespeichert und gelöscht.
|
||||
if(changedOrDeletedTransactionDC.SignatureOid.HasValue)
|
||||
{
|
||||
newSignatureState = SignatureStateType.Invalid;
|
||||
if(originalTransaction.BargeldtransaktionOid.HasValue)
|
||||
{
|
||||
deletedOids.AddIfNotIn(originalTransaction.BargeldtransaktionOid.Value);
|
||||
}
|
||||
|
||||
signatureOids2Delete.AddRangeIfElementsNotIn(DAOFactory.SearchDAO.LoadSignatureOidsByTransaktionOid(changedOrDeletedTransactionDC.BargeldtransaktionOid.Value));
|
||||
signatureOids2Delete.AddIfNotIn(changedOrDeletedTransactionDC.SignatureOid.Value);
|
||||
changedOrDeletedTransactionDC.SignatureOid = null;
|
||||
}
|
||||
// Die Unterschrift wurde gelöscht
|
||||
else if(changedOrDeletedTransactionDC.SignatureOid is null && originalTransaction.SignatureOid.HasValue)
|
||||
{
|
||||
signatureOids2Delete.AddRangeIfElementsNotIn(DAOFactory.SearchDAO.LoadSignatureOidsByTransaktionOid(changedOrDeletedTransactionDC.BargeldtransaktionOid.Value));
|
||||
newSignatureState = SignatureStateType.ManuallyDeleted;
|
||||
}
|
||||
|
||||
oids2ChangeTypes.AddIfNotIn(new KeyValuePair<long, KeyValuePair<StatementType, SignatureStateType>>(
|
||||
@@ -4152,6 +4159,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
var deletedTransactions = DAOFactory.GenericDAO.LoadByIDs<Bargeldtransaktion>(deletedOids);
|
||||
var signatures2Delete = new List<Signature>();
|
||||
|
||||
// Die Transaktion wurde gelöscht
|
||||
foreach(var deletedTransaction in deletedTransactions)
|
||||
{
|
||||
var signatureStateType = SignatureStateType.None;
|
||||
@@ -4167,19 +4175,19 @@ namespace BeWo.Service.ServiceImplementations
|
||||
transactionHistoryEntries.Add(CreateTransactionHistoryObject(deletedTransaction, StatementType.Delete, signatureStateType));
|
||||
}
|
||||
|
||||
|
||||
|
||||
MapperFactory.BargeldkassenDCBargeldkasseDC_BargeldkassenDCBargeldkasse.MergeWithEntity(pBargeldkasse, lOriginal);
|
||||
|
||||
var newTransactions = lOriginal.Bargeldtransaktionen.Where(transaction => transaction.Oid is null).ToList();
|
||||
|
||||
DAOFactory.GenericDAO.Update(lOriginal);
|
||||
|
||||
// Nach dem Insert der neuen Transaktionen haben diese eine Oid und es können die History-Einträge gemacht werden
|
||||
foreach(var newTransaction in newTransactions)
|
||||
{
|
||||
transactionHistoryEntries.Add(CreateTransactionHistoryObject(newTransaction, StatementType.Insert, SignatureStateType.None));
|
||||
}
|
||||
|
||||
// Die History-Einträge für die bearbeiteten werden gemacht
|
||||
foreach(var oid2ChangeTypes in oids2ChangeTypes)
|
||||
{
|
||||
var editedTransaction = lOriginal.Bargeldtransaktionen.FirstOrDefault(transaction => transaction.Oid.HasValue && transaction.Oid.Value.Equals(oid2ChangeTypes.Key));
|
||||
@@ -4194,7 +4202,9 @@ namespace BeWo.Service.ServiceImplementations
|
||||
|
||||
DAOFactory.GenericDAO.Insert(transactionHistoryEntries);
|
||||
|
||||
DAOFactory.GenericDAO.Delete(DAOFactory.GenericDAO.LoadByIDs<Signature>(signatures2Delete.Where(s => s.Oid.HasValue).Select(s => s.Oid.Value)));
|
||||
signatureOids2Delete.AddRangeIfElementsNotIn(signatures2Delete.Where(s => s.Oid.HasValue).Select(s => s.Oid.Value));
|
||||
|
||||
DAOFactory.GenericDAO.Delete(DAOFactory.GenericDAO.LoadByIDs<Signature>(signatureOids2Delete));
|
||||
|
||||
return MapperFactory.BargeldkassenDCBargeldkasseDC_BargeldkassenDCBargeldkasse.MapToNewDC(lOriginal);
|
||||
}
|
||||
@@ -4224,9 +4234,7 @@ namespace BeWo.Service.ServiceImplementations
|
||||
{
|
||||
var bargeldkasse = DAOFactory.GenericDAO.LoadByID<Bargeldkasse>(pOid);
|
||||
|
||||
var signatureOids2Delete = bargeldkasse.Bargeldtransaktionen.Where(transaction => transaction.SignatureOid.HasValue).Select(transaction => transaction.SignatureOid.Value).ToList();
|
||||
|
||||
var signatures2Delete = DAOFactory.GenericDAO.LoadByIDs<Signature>(signatureOids2Delete);
|
||||
var signatures2Delete = DAOFactory.SearchDAO.LoadSignaturesByTransactionOids(bargeldkasse.Bargeldtransaktionen.Where(transaction => transaction.SignatureOid.HasValue).Select(transaction => transaction.SignatureOid.Value).ToList());
|
||||
|
||||
var historyEntries = new List<Bargeldtransaktionshistory>();
|
||||
|
||||
@@ -4241,6 +4249,15 @@ namespace BeWo.Service.ServiceImplementations
|
||||
DAOFactory.GenericDAO.Insert(historyEntries);
|
||||
|
||||
ServiceLogic.SetActivationType<Bargeldkasse>(new Dictionary<long, long> { { pOid, pVersion } }, ActivationTypeId.Deleted);
|
||||
|
||||
// SignatureOids aus den Transaktionen löschen, da die Signature-Objekte gelöscht wurden
|
||||
bargeldkasse = DAOFactory.GenericDAO.LoadByID<Bargeldkasse>(pOid);
|
||||
foreach(var transaction in bargeldkasse.Bargeldtransaktionen)
|
||||
{
|
||||
transaction.SignatureOid = null;
|
||||
}
|
||||
|
||||
DAOFactory.GenericDAO.Update(bargeldkasse);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user