From 80eaef3d779e3cc68f0eb04f4b5a891db9dcd30f Mon Sep 17 00:00:00 2001 From: Lyndon Jetten Date: Mon, 13 Nov 2023 11:33:08 +0100 Subject: [PATCH] =?UTF-8?q?Ambulant=20Betreutes=20Wohnen=20Astrid=20Pulm?= =?UTF-8?q?=20monatliche=20Mitarbeiterunterschrift=20auf=20Quittierungsbel?= =?UTF-8?q?eg=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MoK: PasswordSecurity in _Layout.cshtml verlegt, Meine Teams und Meine Klienten im Quittierungsbelegsmodul werden jetzt richtig geladen --- .../Controllers/CustomerController.cs | 234 ++- BeWoPlanerMobil/Controllers/MainController.cs | 5 +- .../Controllers/ReportController.cs | 29 +- BeWoPlanerMobil/Models/AbstractModel.cs | 7 +- BeWoPlanerMobil/Models/CustomerModel.cs | 4 +- .../Scripts/ownSoft-Scripts/mobileUtils.js | 27 + .../Views/Customer/Customer.cshtml | 1652 +++++++++-------- .../CustomerAbsenceTimeFormPartial.cshtml | 315 ++-- .../CustomerAbsenceTimePartial.cshtml | 107 +- .../QuittierungsbelegsResultPartial.cshtml | 2 +- BeWoPlanerMobil/Views/Shared/_Layout.cshtml | 334 +++- Report/DefaultReportCreator.cs | 13 +- .../Quittierungsbeleg.Designer.cs | 408 ++-- .../QuittierungsbelegMitDatum.Designer.cs | 337 ++-- .../QuittierungsbelegMitDatum.cs | 40 +- Service/Plugins/PluginLoader.cs | 4 +- 16 files changed, 2099 insertions(+), 1419 deletions(-) diff --git a/BeWoPlanerMobil/Controllers/CustomerController.cs b/BeWoPlanerMobil/Controllers/CustomerController.cs index 9b7da5895..61921e927 100644 --- a/BeWoPlanerMobil/Controllers/CustomerController.cs +++ b/BeWoPlanerMobil/Controllers/CustomerController.cs @@ -12,7 +12,6 @@ using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.Extensions; -using DevExpress.XtraReports.UI; namespace BeWoPlanerMobil.Controllers { @@ -44,7 +43,7 @@ namespace BeWoPlanerMobil.Controllers } [Authorize] - public ActionResult Customer() + public ActionResult Customer(long? id) { try { @@ -58,13 +57,20 @@ namespace BeWoPlanerMobil.Controllers Model.SelectedCustomerFilter = customerFilter; InitViewModel(); + + if(id.HasValue) + { + LoadCustomerToModel(id); + } + + } catch (Exception e) { - Log.Info($"Exception: " + e.Message + "\n" + e.StackTrace); + Log.Info("Exception: " + e.Message + "\n" + e.StackTrace); if (e.InnerException != null) { - Log.Info($"\n\nInnerException: " + e.InnerException.Message + "\n" + e.InnerException.StackTrace); + Log.Info("\n\nInnerException: " + e.InnerException.Message + "\n" + e.InnerException.StackTrace); } throw; @@ -98,30 +104,23 @@ namespace BeWoPlanerMobil.Controllers Model.AllAbsenceReasons = AbstractModel.HasRightToViewCustomerAbsenceTimes ? CustomerService.GetAllAbsenceReasons() : new List(); } - [Authorize] - public ActionResult PreselectCustomer(long? customerOid) + private void LoadCustomerToModel(long? customerOid) { - if (Model is null || !MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer")) - { - return Logout(); - } + if(!(customerOid > 0) || !Model.Customers.Any(c => c.CustomerOid.Equals(customerOid.Value))) return; + + Model.FolderTree = OperationsService.GetFolderTree(TableID.Customer, customerOid.Value); + Model.SelectedCustomerOid = customerOid; + var customer = CustomerService.LoadCustomer(customerOid.Value); - InitViewModel(); - - if(customerOid > 0 && Model.Customers.Any(customer => customer.CustomerOid.Equals(customerOid.Value))) + if(!(customer is null)) { - Model.SelectedCustomerOid = customerOid; - - Model.FolderTree = OperationsService.GetFolderTree(TableID.Customer, customerOid.Value); - var customer = CustomerService.LoadCustomer(customerOid.Value); Model.ICD10Diagnosen = OperationsService.GetDiagiosisStringsForICD10Codes(customer.ICD10DiagnosisCodes); - Model.SelectedCustomer = customer; - - var bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, customerOid.Value); - Model.Bargeldkassen = bargeldkassen; } - return RedirectToActionPermanent("Customer"); + Model.SelectedCustomer = customer; + + var bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, customerOid.Value); + Model.Bargeldkassen = bargeldkassen; } [Authorize] @@ -138,24 +137,7 @@ namespace BeWoPlanerMobil.Controllers var selectedCustomerOidString = formCollection[FormCollectionConstants.SelectedCustomerOidKey]; if (long.TryParse(selectedCustomerOidString, out var selectedCustomerOid)) { - var isCustomerInList = Model.Customers.Any(customer => customer.CustomerOid == selectedCustomerOid); - - if(isCustomerInList) - { - Model.FolderTree = OperationsService.GetFolderTree(TableID.Customer, selectedCustomerOid); - Model.SelectedCustomerOid = selectedCustomerOid == -1 ? (long?)null : selectedCustomerOid; - var customer = selectedCustomerOid != -1 ? CustomerService.LoadCustomer(selectedCustomerOid) : null; - - if(!(customer is null)) - { - Model.ICD10Diagnosen = OperationsService.GetDiagiosisStringsForICD10Codes(customer.ICD10DiagnosisCodes); - } - - Model.SelectedCustomer = customer; - - var bargeldkassen = OperationsService.LoadBargeldkassenForObject(TableID.Customer, selectedCustomerOid); - Model.Bargeldkassen = bargeldkassen; - } + LoadCustomerToModel(selectedCustomerOid); } return RedirectToActionPermanent("Customer"); @@ -301,24 +283,24 @@ namespace BeWoPlanerMobil.Controllers return Logout(); } - var firstname = formCollection["vorname"]?.RemoveUppercaseEsszett(); - var lastname = formCollection["nachname"]?.RemoveUppercaseEsszett(); + var firstname = formCollection["vorname"]?.RemoveUppercaseEsszett(); + var lastname = formCollection["nachname"]?.RemoveUppercaseEsszett(); var geburtdatum = formCollection["geburtstag"]?.RemoveUppercaseEsszett(); - var geschlecht = formCollection["geschlecht"]?.RemoveUppercaseEsszett(); + var geschlecht = formCollection["geschlecht"]?.RemoveUppercaseEsszett(); var adresszusatz = formCollection["adresszusatz"]?.RemoveUppercaseEsszett(); - var street = formCollection["strasse"]?.RemoveUppercaseEsszett(); - var postalCode = formCollection["plz"]?.RemoveUppercaseEsszett(); - var city = formCollection["ort"]?.RemoveUppercaseEsszett(); + var street = formCollection["strasse"]?.RemoveUppercaseEsszett(); + var postalCode = formCollection["plz"]?.RemoveUppercaseEsszett(); + var city = formCollection["ort"]?.RemoveUppercaseEsszett(); - var nameInvoiceAddress = formCollection["name-rechnungsadresse"]?.RemoveUppercaseEsszett(); - var streetInvoiceAddress = formCollection["strasse-rechnungsadresse"]?.RemoveUppercaseEsszett(); + var nameInvoiceAddress = formCollection["name-rechnungsadresse"]?.RemoveUppercaseEsszett(); + var streetInvoiceAddress = formCollection["strasse-rechnungsadresse"]?.RemoveUppercaseEsszett(); var postalCodeInvoiceAddress = formCollection["plz-rechnungsadresse"]?.RemoveUppercaseEsszett(); - var cityInvoiceAddress = formCollection["ort-rechnungsadresse"]?.RemoveUppercaseEsszett(); + var cityInvoiceAddress = formCollection["ort-rechnungsadresse"]?.RemoveUppercaseEsszett(); - var mobile = formCollection["handy"]?.RemoveUppercaseEsszett(); - var phone = formCollection["telefon"]?.RemoveUppercaseEsszett(); - var fax = formCollection["fax"]?.RemoveUppercaseEsszett(); + var mobile = formCollection["handy"]?.RemoveUppercaseEsszett(); + var phone = formCollection["telefon"]?.RemoveUppercaseEsszett(); + var fax = formCollection["fax"]?.RemoveUppercaseEsszett(); var eMailAddress = formCollection["mail"]?.RemoveUppercaseEsszett(); var notice = formCollection["notiz"]?.RemoveUppercaseEsszett(); @@ -391,7 +373,7 @@ namespace BeWoPlanerMobil.Controllers CustomerService.UpdateCustomer(customer); - return RedirectToActionPermanent("PreselectCustomer", new { customerOid = customer.CustomerOid }); + return RedirectToActionPermanent("Customer", new { id = customer.CustomerOid }); } [Authorize] @@ -503,6 +485,152 @@ namespace BeWoPlanerMobil.Controllers return RedirectToActionPermanent("Customer"); } #endregion + + #region Abwesenheiten + + // ToDo: Zu CreateOrUpdateAbsenceTime umbauen! + [Authorize] + [HttpPost] + public ActionResult CreateOrUpdateAbsenceTime(FormCollection formCollection) + { + var selectedAbsenceTime = Model.SelectedAbsenceTime; + var oid = selectedAbsenceTime?.AbsenceTimeOid; + + + + var isNew = oid is null; + + var startDateString = formCollection["customer-absence-time-start-date"]; + var startTimeString = formCollection["customer-absence-time-start-time"]; + var endDateString = formCollection["customer-absence-time-end-date"]; + var endTimeString = formCollection["customer-absence-time-end-time"]; + var category = formCollection["customer-absence-time-category"]; + var notice = formCollection["customer-absence-time-notice"]; + + var startString = $"{startDateString} {startTimeString ?? "00:00"}"; + var endString = $"{endDateString} {endTimeString ?? "00:00"}"; + + var start = DateTime.Parse(startString); + var end = string.IsNullOrWhiteSpace(endDateString) && string.IsNullOrWhiteSpace(endTimeString) ? null : (DateTime?) DateTime.Parse(endString); + + var categoryOid = long.Parse(category); + + var absenceReason = Model.AllAbsenceReasons.FirstOrDefault(ar => ar.AbsenceReasonOid.HasValue && ar.AbsenceReasonOid.Value.Equals(categoryOid)); + + var customer = Model.SelectedCustomer; + + if(isNew) + { + var absenceTime = new AbsenceTimeDC + { + CustomerOid = customer.CustomerOid, + Reason = absenceReason, + Start = start, + End = end, + Notice = notice + }; + + OperationsService.InsertNewCustomerAbsenceTime(customer.CustomerOid.Value, absenceTime); + } + else + { + selectedAbsenceTime.Start = start; + selectedAbsenceTime.End = end; + selectedAbsenceTime.Reason = absenceReason; + selectedAbsenceTime.Notice = notice; + + OperationsService.UpdateAbsenceTime(selectedAbsenceTime); + } + + LoadCustomerToModel(customer.CustomerOid); + + Model.SelectedAbsenceTime = null; + Model.SelectedAbsenceReason = -1; + + return RedirectToActionPermanent("Customer", new { id = customer.CustomerOid }); + } + + [Authorize] + [HttpPost] + public ActionResult DeleteAbsenceTime(FormCollection formCollection) + { + var customer = Model.SelectedCustomer; + + var isParsingSuccessful = long.TryParse(formCollection["customer-absence-time-to-delete-oid"], out var absenceTimeOid); + + if(isParsingSuccessful) + { + var absenceTime2Delete = customer.AbsenceTimes.FirstOrDefault(at => at.AbsenceTimeOid.HasValue && at.AbsenceTimeOid.Value.Equals(absenceTimeOid)); + + if(!(absenceTime2Delete is null)) + { + customer.AbsenceTimes.Remove(absenceTime2Delete); + + CustomerService.UpdateCustomer(customer); + } + } + + return RedirectToActionPermanent("Customer", new { id = customer?.CustomerOid }); + } + + // ToDo: Fehlermeldungen einbauen! + + [Authorize] + [HttpPost] + public ActionResult SelectAbsenceTime(long absenceTimeOid) + { + if(absenceTimeOid == 0) + { + return RedirectToActionPermanent("Customer", Model); + //return "Es ist ein Fehler bei der Auswahl der zu bearbeitenden Abwesenheit aufgetreten.
Bitte wenden Sie sich an Ihren Systemadministrator."; + } + + var selectedAbsenceTime = Model.SelectedCustomer.AbsenceTimes.FirstOrDefault(absenceTime => absenceTime.AbsenceTimeOid.HasValue && absenceTime.AbsenceTimeOid.Value.Equals(absenceTimeOid)); + + if(selectedAbsenceTime is null) + { + return RedirectToActionPermanent("Customer", Model); + //return "Es ist ein Fehler bei der Auswahl der zu bearbeitenden Abwesenheit aufgetreten.
Bitte wenden Sie sich an Ihren Systemadministrator."; + } + + Model.SelectedAbsenceTime = selectedAbsenceTime; + Model.SelectedAbsenceReason = selectedAbsenceTime.Reason.AbsenceReasonOid; + + //return LeerzeichenFuerGetMethoden; + return RedirectToActionPermanent("Customer", Model); + } + + [Authorize] + public string SetSelectedAbsenceTimeOid(long absenceTimeOid) + { + var selectedAbsenceTime = Model.SelectedCustomer.AbsenceTimes.FirstOrDefault(absenceTime => absenceTime.AbsenceTimeOid.HasValue && absenceTime.AbsenceTimeOid.Value.Equals(absenceTimeOid)); + + if(selectedAbsenceTime is null) + { + return "Es ist ein Fehler bei der Auswahl der zu bearbeitenden Abwesenheit aufgetreten.
Bitte wenden Sie sich an Ihren Systemadministrator."; + } + + Model.SelectedAbsenceTime = selectedAbsenceTime; + Model.SelectedAbsenceReason = selectedAbsenceTime.Reason.AbsenceReasonOid; + + return LeerzeichenFuerGetMethoden; + } + + [Authorize] + public ActionResult LoadAbsenceTimeToForm() + { + return PartialView("CustomerAbsenceTimeFormPartial", Model); + } + + [Authorize] + public string DeselectAbsenceTime() + { + Model.SelectedAbsenceTime = null; + Model.SelectedAbsenceReason = -1; + + return LeerzeichenFuerGetMethoden; + } + #endregion } public enum CustomerReportType diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index d58947611..badd234af 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -166,7 +166,7 @@ namespace BeWoPlanerMobil.Controllers AbstractModel.ShowServiceRecordInsertedOn = !UserSettingsUtils.GetSettingValueAsBool(mandatorSettings, SettingsKeys.HideServiceRecordInsertedByAndInsertedOn); - Model.ShowSignature = UserSettingsUtils.GetSettingValueAsBool(mandatorSettings, SettingsKeys.ShowSignature);// && AbstractModel.HasRightToProvideSingleSignature; + Model.ShowSignature = UserSettingsUtils.GetSettingValueAsBool(mandatorSettings, SettingsKeys.ShowSignature) && AbstractModel.HasRightToProvideSingleSignature; #if DEBUG //Model.ShowSignature = true; @@ -2629,7 +2629,8 @@ namespace BeWoPlanerMobil.Controllers { if(Model?.SelectedSupportConcept?.Customer?.Oid.HasValue ?? false) { - return RedirectToActionPermanent("PreselectCustomer", "Customer", new {Model.SelectedSupportConcept.Customer.CustomerOid}); + //return RedirectToActionPermanent("PreselectCustomer", "Customer", new {Model.SelectedSupportConcept.Customer.CustomerOid}); + return RedirectToActionPermanent("Customer", "Customer", new { id = Model.SelectedSupportConcept.Customer.Oid }); } if(Model?.SelectedSupportConcept is null && (CustomerModel)Session[ModelSessionConstants.CustomerModelKey] != null) diff --git a/BeWoPlanerMobil/Controllers/ReportController.cs b/BeWoPlanerMobil/Controllers/ReportController.cs index 706ad17da..097e815e7 100644 --- a/BeWoPlanerMobil/Controllers/ReportController.cs +++ b/BeWoPlanerMobil/Controllers/ReportController.cs @@ -14,6 +14,7 @@ using System.Collections.Specialized; using System.Linq; using System.Text; using System.Web.Mvc; +using BeWo.Service.Plugins; namespace BeWoPlanerMobil.Controllers { @@ -190,24 +191,26 @@ namespace BeWoPlanerMobil.Controllers var teamOid = Model.SelectedTeamOid; var customerOid = Model.SelectedCustomerOid ?? 0; + var creator = PluginLoader.FindClass() ?? new DefaultReportCreator(); + switch(Model.SelectedFilterItem?.FilterEnum) { case QBFilterEnum.AlleKlienten: reportObjects = ServicesOverviewRO.Create(reportTimeFrame.Month, reportTimeFrame.Year, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid); break; case QBFilterEnum.NurKlientenMeinesTeams: - var teamRelatedCustomerOids = GetTeamCustomerOids(); + var teamRelatedCustomerOids = creator.GetKlientenOidsMeinesTeams(null); reportObjects.AddRange(teamRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; case QBFilterEnum.MeineKlienten: - var myRelatedCustomerOids = DefaultReportCreator.GetMeineKlientenOids(); + var myRelatedCustomerOids = creator.GetMeineKlientenOids(); reportObjects.AddRange(myRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; case QBFilterEnum.KlientenAuswahl: reportObjects = new List { ServicesOverviewRO.Create(customerOid, reportTimeFrame.Month, reportTimeFrame.Year, false, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid) }; break; case QBFilterEnum.TeamAuswahl: - var customerOids = GetTeamCustomerOids(teamOid); + var customerOids = creator.GetKlientenOidsMeinesTeams(teamOid); reportObjects.AddRange(customerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; default: @@ -444,18 +447,6 @@ namespace BeWoPlanerMobil.Controllers return $"vom {vom}.{month}. bis {bis}.{month}.{year}"; } - private IEnumerable GetTeamCustomerOids(long? teamOid = null) - { - var customerOids = new List(); - - if(MobileSessionFacade.LoggedInEmployee?.EmployeeOid != null) - { - customerOids.AddRangeIfElementsNotIn(EmployeeService.GetTeamRelatedCustomerOids(MobileSessionFacade.LoggedInEmployee.EmployeeOid.Value, teamOid)); - } - - return customerOids; - } - [Authorize] public string SetCustomer(long customerOid) { @@ -867,24 +858,26 @@ namespace BeWoPlanerMobil.Controllers var teamOid = Model.SelectedTeamOid; var customerOid = Model.SelectedCustomerOid ?? 0; + var creator = PluginLoader.FindClass() ?? new DefaultReportCreator(); + switch(Model.SelectedFilterItem.FilterEnum) { case QBFilterEnum.AlleKlienten: reportObjects = ServicesOverviewRO.Create(reportTimeFrame.Month, reportTimeFrame.Year, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid); break; case QBFilterEnum.NurKlientenMeinesTeams: - var teamRelatedCustomerOids = GetTeamCustomerOids(); + var teamRelatedCustomerOids = creator.GetKlientenOidsMeinesTeams(null); reportObjects.AddRange(teamRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; case QBFilterEnum.MeineKlienten: - var myRelatedCustomerOids = DefaultReportCreator.GetMeineKlientenOids(); + var myRelatedCustomerOids = creator.GetMeineKlientenOids(); reportObjects.AddRange(myRelatedCustomerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; case QBFilterEnum.KlientenAuswahl: reportObjects = new List { ServicesOverviewRO.Create(customerOid, reportTimeFrame.Month, reportTimeFrame.Year, false, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid) }; break; case QBFilterEnum.TeamAuswahl: - var customerOids = GetTeamCustomerOids(teamOid); + var customerOids = creator.GetKlientenOidsMeinesTeams(teamOid); reportObjects.AddRange(customerOids.Select(cOid => ServicesOverviewRO.Create(cOid, reportTimeFrame.Month, reportTimeFrame.Year, true, organisationOid, employeeOid, reportTimeFrame.StartDay, reportTimeFrame.EndDay, serviceCategoryOid))); break; default: diff --git a/BeWoPlanerMobil/Models/AbstractModel.cs b/BeWoPlanerMobil/Models/AbstractModel.cs index ec5657694..6e13d258f 100644 --- a/BeWoPlanerMobil/Models/AbstractModel.cs +++ b/BeWoPlanerMobil/Models/AbstractModel.cs @@ -50,7 +50,7 @@ namespace BeWoPlanerMobil.Models #if DEBUG showEmployeeSignatureSetting = "1"; #endif - return CheckRight(UserRightType.Analysis_ServiceOverview_View) && showEmployeeSignatureSetting != null && showEmployeeSignatureSetting.Equals("1"); + return CheckRights(new List{ UserRightType.Analysis_ServiceOverview_View, UserRightType.Signature_ProvideMonthlySignature }) && showEmployeeSignatureSetting != null && showEmployeeSignatureSetting.Equals("1"); } } @@ -117,6 +117,11 @@ namespace BeWoPlanerMobil.Models return MobileSessionFacade.CheckForUserRight(userRightType); } + public static bool CheckRights(List userRightTypes) + { + return userRightTypes.All(MobileSessionFacade.CheckForUserRight); + } + public static bool CheckForAtLeastOneRight(UserRightType[] rights) { return rights.Any(MobileSessionFacade.CheckForUserRight); diff --git a/BeWoPlanerMobil/Models/CustomerModel.cs b/BeWoPlanerMobil/Models/CustomerModel.cs index 33a2cb05c..517998ad3 100644 --- a/BeWoPlanerMobil/Models/CustomerModel.cs +++ b/BeWoPlanerMobil/Models/CustomerModel.cs @@ -143,7 +143,7 @@ namespace BeWoPlanerMobil.Models { get { - var result = new List(); + var result = new List { new SelectListItem { Value = "-1", Text = string.Empty } }; foreach(var absenceReason in AllAbsenceReasons) { @@ -162,5 +162,7 @@ namespace BeWoPlanerMobil.Models return result; } } + + public AbsenceTimeDC SelectedAbsenceTime { get; set; } } } \ No newline at end of file diff --git a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js index 82d900ba4..72248a5eb 100644 --- a/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js +++ b/BeWoPlanerMobil/Scripts/ownSoft-Scripts/mobileUtils.js @@ -42,6 +42,33 @@ function showMessagePopupWithHtml(title, messageAsHtml) { ); } +function showMessagePopupWithHtmlAndCallback(title, messageAsHtml, callback, executeCallbackByBothButtons) { + $("#popupTitle").text(title); + + $("#modal-body").html(messageAsHtml); + + $("#message-popup-ok-btn").off("click"); + + $("#message-popup-ok-btn").on("click", function () { + callback(); + }); + + if(executeCallbackByBothButtons === true) { + $("#message-popup-close-btn, #message-popup-esc-btn").off("click"); + $("#message-popup-close-btn, #message-popup-esc-btn").on("click", + function () { + callback(); + }); + } + + $("#messagePopup").modal( + { + backdrop: "static", + keyboard: false + } + ); +} + function showMessagePopupWithCallback(title, message, callback, executeCallbackByBothButtons) { $("#popupTitle").text(title); diff --git a/BeWoPlanerMobil/Views/Customer/Customer.cshtml b/BeWoPlanerMobil/Views/Customer/Customer.cshtml index 042f30fc2..7e179ec50 100644 --- a/BeWoPlanerMobil/Views/Customer/Customer.cshtml +++ b/BeWoPlanerMobil/Views/Customer/Customer.cshtml @@ -128,6 +128,15 @@ showErrorPopup(error); } } + + $(window).ready(function() { + @if(ViewData["Testmeldung"] is string testMessage) + { + + showMessagePopupWithHtml("Fehler", ""); + + } + });
@@ -163,844 +172,845 @@ { var inputDisabled = !AbstractModel.HasRightToEditCustomers ? "disabled" : string.Empty; -
-
-
-
-
- Eigenschaften -
-
-
-
-
-
- Vorname -
-
- -
- Dieses Feld darf nicht leer sein! -
+
+
+
+
+
+ Eigenschaften
-
-
-
-
-
-
-
- Nachname -
-
- -
- Dieses Feld darf nicht leer sein! -
-
-
-
-
-
-
-
-
- Geburtstag -
-
- -
-
- -
-
-
-
-
-
-
-
-
-
- Geschlecht -
-
- @{ - var selectedMale = Model.SelectedJsonCustomer.CustomerSex == Sex.Male ? "selected" : string.Empty; - var selectedFemale = Model.SelectedJsonCustomer.CustomerSex == Sex.Female ? "selected" : string.Empty; - var selectedDiverse = Model.SelectedJsonCustomer.CustomerSex == Sex.Divers ? "selected" : string.Empty; - var selectedNull = Model.SelectedJsonCustomer.CustomerSex is null ? "selected" : string.Empty; - } - - -
-
-
-
-
-
-
-
-
-
- Adresse -
-
-
-
-
-
- Adresszusatz -
-
- -
-
-
-
-
-
-
-
- Straße -
-
- -
-
-
-
-
-
-
-
- PLZ -
-
- -
-
-
-
-
-
-
-
- Ort -
-
- -
-
-
-
-
-
-
-
-
-
- Rechnungsadresse -
-
-
-
-
-
- Name -
-
- -
-
-
-
-
-
-
-
- Straße -
-
- -
-
-
-
-
-
-
-
- PLZ -
-
- -
-
-
-
-
-
-
-
- Ort -
-
- -
-
-
-
-
-
-
-
-
-
- Kontakt -
-
-
-
-
-
- Handy -
-
- -
- -
-
-
-
-
-
-
-
-
- Telefon -
-
- -
- -
-
-
-
-
-
-
-
-
- Fax -
-
- -
-
-
-
-
-
-
-
- Mail -
-
- -
- -
-
-
-
-
-
-
- -
-
-
-
-
Kommentar
-
-
-
-
- -
-
-
-
- - @if(AbstractModel.HasRightToEditCustomers) - { -
- -
- } - - -
-
-
- - - @if(Model.SelectedJsonCustomer.ReferenceNumbers.Any()) - { -
-
-
-
- -
-
- -
-
-
-
-
- - - - - - - - - @foreach(var x in Model.SelectedJsonCustomer.ReferenceNumbers) - { - - - - - } - -
- Kostenträger - - Aktenzeichen -
- @x.Costbearer - - @x.ReferenceNumber -
-
-
-
-
-
- } - - - @if(Model.SelectedJsonCustomer.Umfeldpersonen.Any()) - { -
-
-
-
- -
-
- -
-
-
-
-
- @foreach(var umfeldPerson in Model.SelectedJsonCustomer.Umfeldpersonen) - { -
-
-
- -
-
- -
-
-
-
-
-
-
- Rolle: -
-
- @umfeldPerson.Rolle -
-
-
-
- Adresse: -
-
- @umfeldPerson.StrNameNr
@umfeldPerson.PLZOrt -
-
-
-
- Tel.: -
- -
-
-
- Mobil: -
- -
-
-
- E-Mail: -
- -
-
-
- Fax: -
-
- @umfeldPerson.Fax -
-
-
-
-
-
- } -
-
-
-
-
- } - - - @if(Model.SelectedJsonCustomer.Organisations.Any()) - { -
-
-
-
- -
-
- -
-
-
-
-
- @foreach(var organisation in Model.SelectedJsonCustomer.Organisations) - { -
-
-
- -
-
- -
-
-
-
-
-
-
- Ansprechpartner -
-
- @organisation.ContactPerson -
-
-
-
- Rolle -
-
- @organisation.Role -
-
-
-
- Adresse -
-
- @organisation.StreetName - @if(!string.IsNullOrEmpty(organisation.StreetName) && !string.IsNullOrEmpty(organisation.ZipCode2Town)) - { -
- } - @organisation.ZipCode2Town -
-
-
-
- Tel.: -
- -
-
-
- Fax: -
-
- @organisation.FaxNumber -
-
-
-
- E-Mail: -
- -
-
-
- Internet: -
- -
-
-
- Info -
-
- @organisation.Info -
-
-
-
- Notiz -
-
- @organisation.Notice -
-
-
-
-
-
- } -
-
-
-
-
- } - -
-
-
-
- -
-
- -
-
-
-
-
- @Html.Partial("DocumentPartial", Model) -
-
-
-
-
- - - @if(Html.IsInDebugMode() && AbstractModel.IsAllowedToSeeMedikamentenliste) - { -
-
-
-
Medikamentenverordnungen
-
-
-
-
- @Html.DropDownListFor(m => m.SelectedReportType, Model.ReportTypeItems, new { @class = "custom-select", id = "report-type-select", onchange = "changeReportTypeSelection()" }) -
-
- -
-
- @if(!(Model.SelectedCustomer is null)) - { - - - - - - - - - - @foreach(var list in Model.SelectedCustomer.Medikamentenverordnungslisten.Where(w => !w.Gueltig)) - { - var listName = $"{(list.MedListType ? "Medikamentenverordnungsliste" : "Bedarfsmedikamentenverordnungsliste")} vom {list.ErstellDatum}"; - var name = $"{listName} von {list.Ersteller}"; - - - - - - } - -
- Liste - - Ersteller -
- @listName - - @list.Ersteller - - - -
- } +
+
+
+
+ Vorname +
+
+ +
+ Dieses Feld darf nicht leer sein! +
+
-
-
-
-
- } - - - @if(AbstractModel.HasRightToViewDiagnosen && (Model.SelectedJsonCustomer.HasDiagnosen || Model.SelectedJsonCustomer.HasDisabilities || Model.SelectedJsonCustomer.HasSchwebi)) - { -
-
-
-
- -
-
- -
-
-
-
- @{ - var hasDiagnosen = Model.SelectedJsonCustomer.HasDiagnosen; - var hasDisabilities = Model.SelectedJsonCustomer.HasDisabilities; - var diagnosenCol = hasDiagnosen && hasDisabilities ? "col-lg-6" : "col-lg-12"; - var schwebiCol = hasDiagnosen ? "col-lg-6" : "col-lg-12"; - }
- @if(hasDiagnosen) - { -
-
Diagnosen
- - - - - - - - - @foreach(var code2Text in Model.SelectedJsonCustomer.ICD10Diagnosen) - { - - - - - } - - - - - - - - - -
ICD10Beschreibung
@code2Text.Key@code2Text.Value
Medikation@Model.SelectedCustomer.Medication
Bemerkungen@Model.SelectedCustomer.Diagnosis
-
- } - @if(Model.SelectedJsonCustomer.HasSchwebi) - { -
-
Schwerbehindertenausweis
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Aust. Vers. -amt@Model.SelectedJsonCustomer.SchwebiAusstAmt
Ausweis unbefristet gültig@Model.SelectedJsonCustomer.SchwebiIsUnlimited
Ausweis gültig von@Model.SelectedJsonCustomer.SchwebiGueltigVon
Ausweis gültig bis@Model.SelectedJsonCustomer.SchwebiGueltigBis
Beiblatt gültig bis@Model.SelectedJsonCustomer.SchwebiBeiblattGueltigBis
Grad der Behinderung@Model.SelectedJsonCustomer.SchwebiGradDerBehinderung
Merkzeichen@Model.SelectedJsonCustomer.SchwebiMerkzeichen
Behinderungsart@Model.SelectedJsonCustomer.SchwebiBehinderungsart
Pflegegrad@Model.SelectedJsonCustomer.SchwebiPflegegrad
Aktenzeichen@Model.SelectedJsonCustomer.SchwebiAktenzeichen
-
- } -
- @if(Model.SelectedJsonCustomer.HasDisabilities) - { -
-
-
Behinderungen
- - - @foreach(var behinderung in Model.SelectedCustomer.Disabilities) - { - - - - } - -
@behinderung.DisplayName
+
+
+
+
+ Nachname +
+
+ +
+ Dieses Feld darf nicht leer sein! +
- } +
+
+
+
+
+
+ Geburtstag +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ Geschlecht +
+
+ @{ + var selectedMale = Model.SelectedJsonCustomer.CustomerSex == Sex.Male ? "selected" : string.Empty; + var selectedFemale = Model.SelectedJsonCustomer.CustomerSex == Sex.Female ? "selected" : string.Empty; + var selectedDiverse = Model.SelectedJsonCustomer.CustomerSex == Sex.Divers ? "selected" : string.Empty; + var selectedNull = Model.SelectedJsonCustomer.CustomerSex is null ? "selected" : string.Empty; + } + + +
+
+
-
- } - - @{ - var isRelatedCustomer = Model.SelectedCustomerOid.HasValue && Model.Employee.RelatedCustomers.Any(cer => cer.Customer.CustomerOid.Equals(Model.SelectedCustomerOid.Value)); - - var isAllowedToViewBargeldkassen = AbstractModel.HasRightToViewAllCustomersBargeldkassen || (isRelatedCustomer && AbstractModel.HasRightToViewOwnCustomersBargeldkassen); - } - - @if(Html.IsInDebugMode() && isAllowedToViewBargeldkassen && !(Model.Bargeldkassen is null) && Model.Bargeldkassen.Any()) - { - -
-
-
-
- -
-
- +
+
+
+
+ Adresse +
+
+
+
+
+
+ Adresszusatz +
+
+ +
+
+
+
+
+
+
+
+ Straße +
+
+ +
+
+
+
+
+
+
+
+ PLZ +
+
+ +
+
+
+
+
+
+
+
+ Ort +
+
+ +
+
+
-
+
+
+
+
+
+ Rechnungsadresse +
+
+
+
+
+
+ Name +
+
+ +
+
+
+
+
+
+
+
+ Straße +
+
+ +
+
+
+
+
+
+
+
+ PLZ +
+
+ +
+
+
+
+
+
+
+
+ Ort +
+
+ +
+
+
+
+
+
+
+
+
+
+ Kontakt +
+
+
+
+
+
+ Handy +
+
+ +
+ +
+
+
+
+
+
+
+
+
+ Telefon +
+
+ +
+ +
+
+
+
+
+
+
+
+
+ Fax +
+
+ +
+
+
+
+
+
+
+
+ Mail +
+
+ +
+ +
+
+
+
+
+
+
+ +
+
+
+
+
Kommentar
+
+
- @Html.Partial("CustomerBargeldkassen", Model) +
-
- } - - @if(Html.IsInDebugMode() && AbstractModel.HasRightToViewCustomerAbsenceTimes) - { -
-
-
-
- -
-
- + + @if(AbstractModel.HasRightToEditCustomers) + { +
+ +
+ } + + +
+
+
+ + + @if(Model.SelectedJsonCustomer.ReferenceNumbers.Any()) + { +
+
+
+
+ +
+
+ +
+
+
+
+
+ + + + + + + + + @foreach(var x in Model.SelectedJsonCustomer.ReferenceNumbers) + { + + + + + } + +
+ Kostenträger + + Aktenzeichen +
+ @x.Costbearer + + @x.ReferenceNumber +
+
+
+
- -
-
- -
- @Html.Partial("CustomerAbsenceTimePartial", Model) + } + + + @if(Model.SelectedJsonCustomer.Umfeldpersonen.Any()) + { +
+
+
+
+ +
+
+ +
+
+
+
+
+ @foreach(var umfeldPerson in Model.SelectedJsonCustomer.Umfeldpersonen) + { +
+
+
+ +
+
+ +
+
+
+
+
+
+
+ Rolle: +
+
+ @umfeldPerson.Rolle +
+
+
+
+ Adresse: +
+
+ @umfeldPerson.StrNameNr
@umfeldPerson.PLZOrt +
+
+
+
+ Tel.: +
+ +
+
+
+ Mobil: +
+ +
+
+
+ E-Mail: +
+ +
+
+
+ Fax: +
+
+ @umfeldPerson.Fax +
+
+
+
+
+
+ } +
+
+
+
+
+ } + + + @if(Model.SelectedJsonCustomer.Organisations.Any()) + { +
+
+
+
+ +
+
+ +
+
+
+
+
+ @foreach(var organisation in Model.SelectedJsonCustomer.Organisations) + { +
+
+
+ +
+
+ +
+
+
+
+
+
+
+ Ansprechpartner +
+
+ @organisation.ContactPerson +
+
+
+
+ Rolle +
+
+ @organisation.Role +
+
+
+
+ Adresse +
+
+ @organisation.StreetName + @if(!string.IsNullOrEmpty(organisation.StreetName) && !string.IsNullOrEmpty(organisation.ZipCode2Town)) + { +
+ } + @organisation.ZipCode2Town +
+
+
+
+ Tel.: +
+ +
+
+
+ Fax: +
+
+ @organisation.FaxNumber +
+
+
+
+ E-Mail: +
+ +
+
+
+ Internet: +
+ +
+
+
+ Info +
+
+ @organisation.Info +
+
+
+
+ Notiz +
+
+ @organisation.Notice +
+
+
+
+
+
+ } +
+
+
+
+
+ } + +
+
+
+
+ +
+
+ +
+
+
+
+
+ @Html.Partial("DocumentPartial", Model) +
+
-
- } -
+ + @if(Html.IsInDebugMode() && AbstractModel.IsAllowedToSeeMedikamentenliste) + { +
+
+
+
Medikamentenverordnungen
+
+
+
+
+
+ @Html.DropDownListFor(m => m.SelectedReportType, Model.ReportTypeItems, new { @class = "custom-select", id = "report-type-select", onchange = "changeReportTypeSelection()" }) +
+
+ +
+
+ @if(!(Model.SelectedCustomer is null)) + { + + + + + + + + + + @foreach(var list in Model.SelectedCustomer.Medikamentenverordnungslisten.Where(w => !w.Gueltig)) + { + var listName = $"{(list.MedListType ? "Medikamentenverordnungsliste" : "Bedarfsmedikamentenverordnungsliste")} vom {list.ErstellDatum}"; + var name = $"{listName} von {list.Ersteller}"; + + + + + + } + +
+ Liste + + Ersteller +
+ @listName + + @list.Ersteller + + + +
+ } +
+
+
+
+
+
+ } + + + @if(AbstractModel.HasRightToViewDiagnosen && (Model.SelectedJsonCustomer.HasDiagnosen || Model.SelectedJsonCustomer.HasDisabilities || Model.SelectedJsonCustomer.HasSchwebi)) + { +
+
+
+
+ +
+
+ +
+
+
+
+ @{ + var hasDiagnosen = Model.SelectedJsonCustomer.HasDiagnosen; + var hasDisabilities = Model.SelectedJsonCustomer.HasDisabilities; + var diagnosenCol = hasDiagnosen && hasDisabilities ? "col-lg-6" : "col-lg-12"; + var schwebiCol = hasDiagnosen ? "col-lg-6" : "col-lg-12"; + } +
+ @if(hasDiagnosen) + { +
+
Diagnosen
+ + + + + + + + + @foreach(var code2Text in Model.SelectedJsonCustomer.ICD10Diagnosen) + { + + + + + } + + + + + + + + + +
ICD10Beschreibung
@code2Text.Key@code2Text.Value
Medikation@Model.SelectedCustomer.Medication
Bemerkungen@Model.SelectedCustomer.Diagnosis
+
+ } + @if(Model.SelectedJsonCustomer.HasSchwebi) + { +
+
Schwerbehindertenausweis
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Aust. Vers. -amt@Model.SelectedJsonCustomer.SchwebiAusstAmt
Ausweis unbefristet gültig@Model.SelectedJsonCustomer.SchwebiIsUnlimited
Ausweis gültig von@Model.SelectedJsonCustomer.SchwebiGueltigVon
Ausweis gültig bis@Model.SelectedJsonCustomer.SchwebiGueltigBis
Beiblatt gültig bis@Model.SelectedJsonCustomer.SchwebiBeiblattGueltigBis
Grad der Behinderung@Model.SelectedJsonCustomer.SchwebiGradDerBehinderung
Merkzeichen@Model.SelectedJsonCustomer.SchwebiMerkzeichen
Behinderungsart@Model.SelectedJsonCustomer.SchwebiBehinderungsart
Pflegegrad@Model.SelectedJsonCustomer.SchwebiPflegegrad
Aktenzeichen@Model.SelectedJsonCustomer.SchwebiAktenzeichen
+
+ } +
+ @if(Model.SelectedJsonCustomer.HasDisabilities) + { +
+
+
Behinderungen
+ + + @foreach(var behinderung in Model.SelectedCustomer.Disabilities) + { + + + + } + +
@behinderung.DisplayName
+
+
+ } +
+
+
+
+ } + + @{ + var isRelatedCustomer = Model.SelectedCustomerOid.HasValue && Model.Employee.RelatedCustomers.Any(cer => cer.Customer.CustomerOid.Equals(Model.SelectedCustomerOid.Value)); + + var isAllowedToViewBargeldkassen = AbstractModel.HasRightToViewAllCustomersBargeldkassen || (isRelatedCustomer && AbstractModel.HasRightToViewOwnCustomersBargeldkassen); + } + + @if(Html.IsInDebugMode() && isAllowedToViewBargeldkassen && !(Model.Bargeldkassen is null) && Model.Bargeldkassen.Any()) + { + +
+
+
+
+ +
+
+ +
+
+
+
+
+ @Html.Partial("CustomerBargeldkassen", Model) +
+
+
+
+
+ } + + @if(Html.IsInDebugMode() && AbstractModel.HasRightToViewCustomerAbsenceTimes) + { +
+
+
+
+ +
+
+ +
+
+
+
+ +
+ @Html.Partial("CustomerAbsenceTimePartial", Model) +
+
+
+
+ } + +
} }
@@ -1017,11 +1027,11 @@
- @@ -1064,4 +1074,14 @@ @using(Html.BeginForm("DeleteMedListFromHistoryList", "Customer", FormMethod.Post, new { id = "delete-history-med-list" })) { +} + +@using(Html.BeginForm("DeleteAbsenceTime", "Customer", FormMethod.Post, new { id = "customer-absence-delete-form" })) +{ + +} + +@using(Html.BeginForm("SelectAbsenceTime", "Customer", FormMethod.Post, new { id = "customer-absence-selection-form" })) +{ + } \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimeFormPartial.cshtml b/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimeFormPartial.cshtml index 7ec499111..5b102c7e5 100644 --- a/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimeFormPartial.cshtml +++ b/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimeFormPartial.cshtml @@ -1,16 +1,17 @@ @using BeWoPlanerMobil.Models; @using BeWoPlanerMobil.Util @using BS.Shared +@using BS.Shared.Extensions @model CustomerModel - + @* - ToDos: - 1. Formularvalidierung mittels Klassen und Bootstrap - 2. Ganztagsfunktionalität einbauen - 3. Controller-Funktionen implementieren: - 1. Bearbeiten einer existierenden Abwesenheit - 2. Anlegen einer neuen Abwesenheit + ToDos: + 1. Formularvalidierung + 2. Ganztagsfunktionalität einbauen + 3. Controller-Funktionen implementieren: + 1. Bearbeiten einer existierenden Abwesenheit + 2. Anlegen einer neuen Abwesenheit *@ -
-
-
-
-
-
- Startdatum -
-
- -
-
- -
-
-
-
-
-
-
-
-
-
- Enddatum -
-
- -
-
- -
-
-
-
-
- -
+@using(Html.BeginForm("CreateOrUpdateAbsenceTime", "Customer", FormMethod.Post, new { id = "create-absence-time-form" })) +{ + var isAllDay = Model.SelectedAbsenceTime?.Start?.IsTimeZero() ?? false; + var allDay = isAllDay ? "checked" : ""; + var isDisabled = isAllDay ? "disabled" : ""; + var startDate = Model.SelectedAbsenceTime?.Start?.ToString("dd.MM.yyyy"); + var endDate = Model.SelectedAbsenceTime?.End?.ToString("dd.MM.yyyy"); + var startTime = Model.SelectedAbsenceTime?.Start?.ToString("HH:mm"); + var endTime = Model.SelectedAbsenceTime?.End?.ToString("HH:mm"); -
-
-
-
-
-
- Von -
-
- -
-
- -
-
-
+ +
+
+
-
-
-
-
-
-
- Bis -
-
- -
-
- -
-
-
-
-
-
-
-
-
- - -
-
-
- -
-
-
-
-
-
- Kategorie +
+
+
+
+
+ Startdatum +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ Enddatum +
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+ Von +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ Bis +
+
+ +
+
+ +
- @Html.DropDownListFor(m => m.SelectedAbsenceReason, Model.AbsenceReasonItems, new { @class = "custom-select", Id = "absence-reason-select" })
-
-
-
-
-
-
-
- Erläuterung -
-
- +
+
+
+ +
-
\ No newline at end of file + +
+
+
+
+
+
+ Kategorie +
+
+ @Html.DropDownListFor(m => m.SelectedAbsenceReason, Model.AbsenceReasonItems, new { @class = "custom-select", Id = "absence-reason-select", Name = "customer-absence-time-category" }) +
+
+
+
+ +
+
+
+
+
+
+ Erläuterung +
+
+ +
+
+
+
+} \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimePartial.cshtml b/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimePartial.cshtml index 661538e9a..aca0492e5 100644 --- a/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimePartial.cshtml +++ b/BeWoPlanerMobil/Views/Customer/CustomerAbsenceTimePartial.cshtml @@ -4,19 +4,114 @@ @model CustomerModel -@foreach(var absenceTime in Model.SelectedCustomer.AbsenceTimes) +@foreach(var absenceTime in Model.SelectedCustomer.AbsenceTimes.OrderBy(at => at.Start)) { if(absenceTime.Start is null) { continue; } - @* - ToDo: Startdatum und -zeit, Enddatum und -zeit, Kategorie, Erläuterung - *@ - - +
+
+
+
+
+
+
+ +
+

+ @absenceTime.Start.Value.GetIntervalDescription(absenceTime.End) +

+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ Kategorie: +
+
+ @absenceTime.Reason.Description +
+
+
+
+ Erläuterung: +
+
+ @absenceTime.Notice +
+
+
+
+
+
+
} \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml b/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml index d7f387e2c..d6fceac20 100644 --- a/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml +++ b/BeWoPlanerMobil/Views/Report/QuittierungsbelegsResultPartial.cshtml @@ -110,7 +110,7 @@ @{ var employeeSignatureState = result.EmployeeSignatureState; var customerSignatureState = result.CustomerSignatureState; - + var canCustomerSign = customerSignatureState != SignatureState.All; var canEmployeeSign = employeeSignatureState != SignatureState.All; diff --git a/BeWoPlanerMobil/Views/Shared/_Layout.cshtml b/BeWoPlanerMobil/Views/Shared/_Layout.cshtml index be7940678..beac1038d 100644 --- a/BeWoPlanerMobil/Views/Shared/_Layout.cshtml +++ b/BeWoPlanerMobil/Views/Shared/_Layout.cshtml @@ -72,9 +72,339 @@ - + @**@ + + + +