From 5a794c82ab42969b4f7b20631e5a6981fb1c2fb0 Mon Sep 17 00:00:00 2001 From: Lyndon Jetten Date: Mon, 11 Sep 2023 15:20:38 +0200 Subject: [PATCH] MoK: Bargeldkassen weiterentwickelt. Werden nur im Debug-Modus angezeigt. --- BeWo/Converter/BoolScaleTransformConverter.cs | 12 -- .../Controllers/CustomerController.cs | 74 +++++++ .../Scripts/ownSoft-Scripts/mobileUtils.js | 42 +++- .../Views/Customer/Customer.cshtml | 20 +- .../Customer/CustomerBargeldkassen.cshtml | 182 ++++++++++++++---- Service/Plugins/QueryService.cs | 8 +- 6 files changed, 277 insertions(+), 61 deletions(-) diff --git a/BeWo/Converter/BoolScaleTransformConverter.cs b/BeWo/Converter/BoolScaleTransformConverter.cs index d9632286e..889a5dcf0 100644 --- a/BeWo/Converter/BoolScaleTransformConverter.cs +++ b/BeWo/Converter/BoolScaleTransformConverter.cs @@ -4,9 +4,6 @@ using System.Globalization; using System.Linq; using System.Windows.Data; using System.Windows.Media; - -using BeWo.View; - using BS.Shared; using BS.Shared.Core; @@ -37,16 +34,7 @@ namespace BeWo.Converter var userRights = iEnumerable.ToList(); userRights.Remove(UserRightType.None); - foreach(var right in userRights) - { - if(!EnumTranslations.UserRightType2Translations.ContainsKey(right)) - { - - } - } - return userRights.Select(right => EnumTranslations.UserRightType2Translations.Single(right2Translation => right2Translation.Key == right)).OrderBy(right2Translation => right2Translation.Value).ToDictionary(right2Translation => right2Translation.Key, right2Translation => right2Translation.Value); - } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) diff --git a/BeWoPlanerMobil/Controllers/CustomerController.cs b/BeWoPlanerMobil/Controllers/CustomerController.cs index a156e3946..cf59e15be 100644 --- a/BeWoPlanerMobil/Controllers/CustomerController.cs +++ b/BeWoPlanerMobil/Controllers/CustomerController.cs @@ -427,6 +427,80 @@ namespace BeWoPlanerMobil.Controllers return LeerzeichenFuerGetMethoden; } + + #region Bargeldkassen + // GetBargeldkassenName + // SaveBargeldkassenName + // DeleteBargeldkasse + // DownloadBargeldkassenPdf + // DownloadTransactionPdf + // SaveTransactionSignature + + [Authorize] + public string GetBargeldkassenName(long oid) + { + if(Model is null) + { + Logout(); + return LeerzeichenFuerGetMethoden; + } + + var bargeldkassenname = Model.Bargeldkassen.FirstOrDefault(bargeldkasse => bargeldkasse.BargeldkassenOid.HasValue && bargeldkasse.BargeldkassenOid.Value.Equals(oid))?.Kassenname; + + return bargeldkassenname ?? LeerzeichenFuerGetMethoden; + } + + // ToDo: Erstmal durch Get + [Authorize] + public string SaveBargeldkassenName(string newName, long oid) + { + if(Model is null) + { + Logout(); + return LeerzeichenFuerGetMethoden; + } + + var bargeldkasse = Model.Bargeldkassen.FirstOrDefault(bk => bk.BargeldkassenOid.HasValue && bk.BargeldkassenOid.Value.Equals(oid)); + + if(bargeldkasse is null || string.IsNullOrWhiteSpace(newName) || newName.Equals(bargeldkasse.Kassenname) || Model.SelectedCustomerOid is null) + { + return LeerzeichenFuerGetMethoden; + } + + bargeldkasse.Kassenname = newName; + + OperationsService.UpdateBargeldkasse(bargeldkasse); + + Model.Bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, Model.SelectedCustomerOid.Value); + + return LeerzeichenFuerGetMethoden; + } + + [Authorize] + [HttpPost] + public ActionResult DeleteBargeldkasse(FormCollection formCollection) + { + if(Model is null || !long.TryParse(formCollection["bk-to-delete-oid"], out var bargeldkassenOid) || Model.SelectedCustomerOid is null) + { + return Logout(); + } + + var bargeldkasse = Model.Bargeldkassen.FirstOrDefault(f => f.BargeldkassenOid.HasValue && f.BargeldkassenOid.Value.Equals(bargeldkassenOid)); + + if(bargeldkasse?.BargeldkassenVersion is null) + { + return RedirectToActionPermanent("Customer"); + } + + var bargeldkassenVersion = bargeldkasse.BargeldkassenVersion.Value; + + OperationsService.DeactivateBargeldkasse(bargeldkassenOid, bargeldkassenVersion); + + Model.Bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, Model.SelectedCustomerOid.Value); + + return RedirectToActionPermanent("Customer"); + } + #endregion } public enum CustomerReportType diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js index e619ee5ab..82d900ba4 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js @@ -249,6 +249,42 @@ function cardHeaderClick(chevronId, cardBodyId) { } } +function cardHeaderClick2(element, callback) { + try { + if (element === undefined || element === null) { + return; + } + + logInfo("card header geklickt"); + + var jQElement = $(element); + + var icon = jQElement.find("svg.chevron-identifier-class"); + var collapse = jQElement.next(".collapse"); + + if (collapse.length) { + $(collapse).toggle(); + } + + if (icon.length && collapse.length) { + var isDown = $(collapse).css("display") !== "none"; + var chevron = $(icon); + var iconToRemove = isDown ? "fa-chevron-down" : "fa-chevron-up"; + var iconToAdd = isDown ? "fa-chevron-up" : "fa-chevron-down"; + + chevron.removeClass(iconToRemove); + chevron.addClass(iconToAdd); + } + + if (typeof callback === "function") { + callback(); + } + } catch (error) { + showErrorPopup(error); + } +} + + // Muss manuell im onclick-Event des Buttons aufgerufen werden function cardHeaderButtonClick(cardBodyId) { try { @@ -263,18 +299,12 @@ function cardHeaderButtonClick(cardBodyId) { function toggleChevron(chevronId, cardBodyId) { try { var isDown = $(cardBodyId).css("display") !== "none"; - logInfo3("toggleChevron: is chevron down. " + isDown); var chevron = $(chevronId); - logInfo3("toggleChevron: chevron exists: " + (chevron.length > 0)); var iconToRemove = isDown ? "fa-chevron-down" : "fa-chevron-up"; - logInfo3("toggleChevron: icon to remove: " + iconToRemove); var iconToAdd = isDown ? "fa-chevron-up" : "fa-chevron-down"; - logInfo3("toggleChevron: icon to add: " + iconToAdd); chevron.removeClass(iconToRemove); chevron.addClass(iconToAdd); - - logInfo3(`toggleChevron: removed ${iconToRemove} and added ${iconToAdd}`); } catch (error) { showErrorPopup(error); } diff --git a/BeWoPlanerMobil/Views/Customer/Customer.cshtml b/BeWoPlanerMobil/Views/Customer/Customer.cshtml index 8cfa23dfe..d7a31bbc5 100644 --- a/BeWoPlanerMobil/Views/Customer/Customer.cshtml +++ b/BeWoPlanerMobil/Views/Customer/Customer.cshtml @@ -952,7 +952,25 @@ {
- @Html.Partial("CustomerBargeldkassen", Model); +
+
+
+ +
+
+ +
+
+
+
+
+ @Html.Partial("CustomerBargeldkassen", Model) +
+
+
+
} diff --git a/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml b/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml index a611e22f8..eed4dbc8a 100644 --- a/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml +++ b/BeWoPlanerMobil/Views/Customer/CustomerBargeldkassen.cshtml @@ -1,40 +1,152 @@ @model BeWoPlanerMobil.Models.CustomerModel -
-
-
- -
-
- -
-
-
-
- @* - Name (editierbar) - Button "Zahlung hinzufügen" - Label Kassenbestand - Label Anfangsbestand - Datumsfeld Startdatum - Datumsfeld Enddatum - Link Kassenbuch drucken - Tabelle "Ein- und Auszahlungen" - Spalte "Datum" - Spalte "Art" - Spalte "Betrag" - Spalte "Belegnummer" - Spalte "Angelgt von" - Spalte "Notiz" - Spalte "Zahlungsbeleg drucken" - *@ - @foreach(var bargeldkasse in Model.Bargeldkassen) - { -

@bargeldkasse.Kassenname

- } +@* + Name (editierbar) + Button "Zahlung hinzufügen" + Label Kassenbestand + Label Anfangsbestand + Datumsfeld Startdatum + Datumsfeld Enddatum + Link Kassenbuch drucken (Button mit Druckerlogo) + + Tabelle "Ein- und Auszahlungen" + Spalte "Datum" + Spalte "Art" + Spalte "Betrag" + Spalte "Belegnummer" + Spalte "Angelgt von" + Spalte "Notiz" + Spalte "Zahlungsbeleg drucken" (Button mit Druckerlogo) + + ToDo: In einklappbaren Cards anzeigen + +
+
+
+ +
+
+ +
+
+
+
+ ToDo: Liste mit den Einträgen +
-
\ No newline at end of file +*@ + + + +@foreach(var bargeldkasse in Model.Bargeldkassen) +{ + +
+
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+ @{ + var kassenbestand = "Kommt noch!"; + var anfangsbestand = bargeldkasse.Anfangsbestand?.ToString("#.## €") ?? "0,00 €"; + } +
+
+ Kassenbestand: +
+
+ +
+
+
+
+ Anfangsbestand: +
+
+ @anfangsbestand +
+
+
+
+ Startdatum: +
+
+ +
+
+
+
+ Enddatum: +
+
+ 31.08.2023 +
+
+
+
+
+
+
+
+ +
+} diff --git a/Service/Plugins/QueryService.cs b/Service/Plugins/QueryService.cs index c785ec954..99bb9db36 100644 --- a/Service/Plugins/QueryService.cs +++ b/Service/Plugins/QueryService.cs @@ -1,16 +1,10 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using BeWo.Data.Access; -using BeWo.Data.Entities; -using BeWo.Service.DCEntityMapper; - using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts; -using BS.Shared.DataContracts.Compact; -using BS.Shared.Extensions; namespace BeWo.Service.Plugins {