From 58b361498f4f59366bcc843725005d7b0c81e0e2 Mon Sep 17 00:00:00 2001 From: Lyndon Jetten Date: Fri, 30 Dec 2022 16:28:23 +0100 Subject: [PATCH] =?UTF-8?q?FaC:=20ServiceRecord-Fremdschl=C3=BCssel=20zu?= =?UTF-8?q?=20NewSchedulerAppointment-Tabelle=20hinzugef=C3=BCgt.=20Funkti?= =?UTF-8?q?onalit=C3=A4t=20ist=20noch=20nicht=20implementiert.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MoK: Ziele/Maßnahmen verbessert; Suche funktioniert jetzt richtig Mehrfachbuchung implementiert Kalender: Termine sind jetzt löschbar, wenn Recht zu bearbeiten vorhanden ist. Unterscheidung zwischen Mitarbeiter-, Klienten-, und Ressourcenauswahl bei Ansicht und Formular --- BeWo/Scheduler/Utils/AppointmentExtensions.cs | 9 +- BeWo/Scheduler/View/NewSchedulerView.xaml | 101 ++- BeWo/Scheduler/View/NewSchedulerView.xaml.cs | 360 +++----- .../Scheduler/ViewModel/CustomFieldStorage.cs | 7 +- .../ViewModel/NewSchedulerViewModel.cs | 43 +- .../ViewModel/SchedulerAppointmentVM.cs | 11 +- BeWo/ServiceProxy/Generated.cs | 43 + BeWo/View/Detail/BookingView.xaml.cs | 48 +- .../Zeiterfassung/ServiceRecordView2.xaml | 13 +- .../Zeiterfassung/ServiceRecordView2.xaml.cs | 13 +- BeWo/ViewModel/VMFactory.cs | 2 + BeWoDatabaseTerminator/bdt.ico | Bin 0 -> 2238 bytes BeWoDatabaseTerminator/bdt_icon.xcf | Bin 0 -> 28557 bytes BeWoDatabaseTerminator/bdt_log.xcf | Bin 0 -> 81742 bytes BeWoDatabaseTerminator/bdt_logo.png | Bin 0 -> 10804 bytes BeWoDatabaseTerminator/bdt_logo.xcf | Bin 0 -> 124722 bytes BeWoPlanerMobil/BeWoPlanerMobil.csproj | 13 + BeWoPlanerMobil/BeWoPlanerMobil.csproj.user | 7 +- BeWoPlanerMobil/Content/style.css | 137 +++ BeWoPlanerMobil/Content/style.css.map | 2 +- BeWoPlanerMobil/Content/style.scss | 2 +- BeWoPlanerMobil/Controllers/MainController.cs | 838 +++++++++++++++--- .../Controllers/SchedulerController.cs | 241 ++++- BeWoPlanerMobil/Models/AbstractModel.cs | 56 +- BeWoPlanerMobil/Models/MainModel.cs | 84 +- BeWoPlanerMobil/Models/SchedulerModel.cs | 26 +- BeWoPlanerMobil/Scripts/mobileUtils.js | 68 +- BeWoPlanerMobil/Scripts/utils/js-helper.js | 70 ++ BeWoPlanerMobil/Scripts/utils/list-utils.js | 46 +- BeWoPlanerMobil/Scripts/utils/logging.js | 27 + .../Scripts/utils/resources-list-utils.js | 7 +- .../Scripts/utils/service-record-time-calc.js | 114 +-- BeWoPlanerMobil/Scripts/view-scripts/main.js | 89 +- .../Service/ASPHibernateSessionManager.cs | 8 +- BeWoPlanerMobil/Util/AppointmentListItem.cs | 4 + .../Util/FormCollectionConstants.cs | 2 + BeWoPlanerMobil/Util/MobileUtils.cs | 2 +- BeWoPlanerMobil/Util/NullableDateTimeSpan.cs | 23 + .../Util/ServiceRecord2Validation.cs | 43 + .../Views/Main/GoalTreePartial.cshtml | 137 ++- .../Views/Main/GroupBookingPartial.cshtml | 16 +- BeWoPlanerMobil/Views/Main/Main.cshtml | 435 ++++++--- .../Views/Main/MultiBookingPartial.cshtml | 658 ++++++++++++++ .../Views/Main/SingleBookingPartial.cshtml | 323 ++++++- .../Scheduler/AppointmentFormPartial.cshtml | 730 +++++++++------ .../AppointmentIntervalFinderPartial.cshtml | 14 +- ...ointmentIntervalFinderResultPartial.cshtml | 14 - .../CustomerFilterSelectionPartial.cshtml | 122 +++ ...ustomerFilteringModalContentPartial.cshtml | 36 + ...mployeeFilteringModalContentPartial.cshtml | 64 ++ .../EmployeeForFilteringPartial.cshtml | 143 +++ .../Scheduler/OneDaySchedulerPartial.cshtml | 23 +- .../Views/Scheduler/Scheduler.cshtml | 267 +++++- BeWoPlanerMobil/Views/Shared/_Layout.cshtml | 64 +- BeWoPlanerMobil/Web.config | 4 +- BeWoPlanerMobil/favicon.ico | Bin 0 -> 40510 bytes Data/Access/SearchDAO.cs | 164 +++- Data/DefaultHibernateSessionManager.cs | 8 +- Data/WCFHibernateSessionManager.cs | 8 +- ...rviceRecord_In_NewSchedulerAppointment.txt | 2 + ...DailyAppointmentReportKalender.Designer.cs | 432 ++++----- Report/ReportObjects/KalenderRO.cs | 346 +++++++- .../Service/CustomAccountingService.cs | 23 +- .../DailyAppointmentReportKalender.cs | 17 +- .../Validation/ServiceRecordValidator.cs | 1 + .../ReportServiceImp.cs | 2 +- Service/Core/Utils.cs | 4 +- .../AbsenceTimeDC_AbsenceTime.cs | 2 + Service/Plugins/AccountingService.cs | 2 - Service/Plugins/PluginLoader.cs | 6 +- Service/ServiceContracts/IEmployeeService.cs | 8 +- .../ServiceContracts/IOperationsService.cs | 4 + Service/ServiceContracts/IResourceService.cs | 12 + .../EmployeeServiceImp.cs | 28 + .../OperationsServiceImp.cs | 18 + .../ResourceServiceImp.cs | 342 +++++-- Shared/BeWoEntityEnums.cs | 10 + Shared/Core/SchedulerUtils.cs | 102 +++ Shared/Core/UserSettingsUtils.cs | 15 +- .../ClientPartials/AbsenceTimeDC.cs | 2 + .../ClientPartials/TextModuleDC.cs | 1 - Shared/DataContracts/ServiceRecordDC.cs | 10 + .../ServiceRecordValidationResultDC.cs | 24 +- Shared/DataContracts/TextModuleDC.cs | 3 + Shared/Extensions/DateTimeExtensions.cs | 5 + Shared/Extensions/IListTExtensions.cs | 10 + Shared/Shared.csproj | 1 + 87 files changed, 5615 insertions(+), 1606 deletions(-) create mode 100644 BeWoDatabaseTerminator/bdt.ico create mode 100644 BeWoDatabaseTerminator/bdt_icon.xcf create mode 100644 BeWoDatabaseTerminator/bdt_log.xcf create mode 100644 BeWoDatabaseTerminator/bdt_logo.png create mode 100644 BeWoDatabaseTerminator/bdt_logo.xcf create mode 100644 BeWoPlanerMobil/Scripts/utils/js-helper.js create mode 100644 BeWoPlanerMobil/Scripts/utils/logging.js create mode 100644 BeWoPlanerMobil/Util/NullableDateTimeSpan.cs create mode 100644 BeWoPlanerMobil/Views/Main/MultiBookingPartial.cshtml create mode 100644 BeWoPlanerMobil/Views/Scheduler/CustomerFilterSelectionPartial.cshtml create mode 100644 BeWoPlanerMobil/Views/Scheduler/CustomerFilteringModalContentPartial.cshtml create mode 100644 BeWoPlanerMobil/Views/Scheduler/EmployeeFilteringModalContentPartial.cshtml create mode 100644 BeWoPlanerMobil/Views/Scheduler/EmployeeForFilteringPartial.cshtml create mode 100644 BeWoPlanerMobil/favicon.ico create mode 100644 Model/Changes_2022_12_15_ServiceRecord_In_NewSchedulerAppointment.txt create mode 100644 Shared/Core/SchedulerUtils.cs diff --git a/BeWo/Scheduler/Utils/AppointmentExtensions.cs b/BeWo/Scheduler/Utils/AppointmentExtensions.cs index 7ebf3ec34..4718321b1 100644 --- a/BeWo/Scheduler/Utils/AppointmentExtensions.cs +++ b/BeWo/Scheduler/Utils/AppointmentExtensions.cs @@ -106,6 +106,10 @@ namespace BeWo.Scheduler.Utils return appointment.GetCustomFieldStorage()?.AbsenceTimeOid; } + public static bool CF_IsCustomerAbsenceTime(this Appointment appointment) + { + return appointment.GetCustomFieldStorage()?.IsCustomerAbsenceTime ?? false; + } public static void CF_IsTask(this Appointment appointment, bool pIsTask) { @@ -132,7 +136,10 @@ namespace BeWo.Scheduler.Utils appointment.GetCustomFieldStorage().AbsenceTimeOid = absenceTimeOid; } - + public static void CF_IsCustomerAbsenceTime(this Appointment appointment, bool isCustomerAbsenceTime) + { + appointment.GetCustomFieldStorage().IsCustomerAbsenceTime = isCustomerAbsenceTime; + } public static void CF_EmployeeList(this Appointment appointment, ObservableCollection pEmployeeList) { diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml b/BeWo/Scheduler/View/NewSchedulerView.xaml index bc2de893e..c8eed3032 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml @@ -9,9 +9,8 @@ xmlns:dxschint="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/internal" xmlns:dxscht="http://schemas.devexpress.com/winfx/2008/xaml/scheduler/themekeys" xmlns:view="clr-namespace:BeWo.Scheduler.View" - xmlns:converter="clr-namespace:BeWo.Converter" xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" - xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" xmlns:controls="clr-namespace:BeWo.View.Controls" + xmlns:markup="clr-namespace:BeWo.MultiLanguage.Markup" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Focusable="True"> @@ -106,9 +105,9 @@ + DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}" + BorderBrush="Black" + Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" /> - + @@ -192,57 +190,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Background="{Binding Path=ViewInfo.CustomViewInfo, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource AppointmentBorderZusageConverter}}"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DefaultBorderThickness="2" ViewInfo="{TemplateBinding ViewInfo}" + BorderBrush="Black" + Visibility="{Binding ViewInfo.Selected, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" /> + Visibility="{Binding ViewInfo.CanResizeStart, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" + IsHitTestVisible="True" + dxsch:SchedulerControl.HitTestType="AppointmentResizingLeftEdge" + dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}" + Cursor="SizeWE"> + Visibility="{Binding Path=ViewInfo.CanResizeEnd, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource boolToVisibilityConverter}}" + dxsch:SchedulerControl.HitTestType="AppointmentResizingRightEdge" + dxsch:SchedulerControl.SelectableIntervalViewInfo="{TemplateBinding ViewInfo}" + Cursor="SizeWE"> @@ -276,7 +275,7 @@ - + @@ -329,7 +328,7 @@ - + diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs index e6f53f788..21180414e 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs @@ -484,27 +484,31 @@ namespace BeWo.Scheduler.View private void ConstructObject() { - IsEmployeeBrushVisible = true; - - InitializeComponent(); - InitViewModel(); - InitScheduler(); - - Scheduler.Storage.AppointmentStorage.ResourceSharing = false; - - DataContext = this; - - - - EditorLocalizer.Active = new GermanEditorLocalizer(); - - InitRights(); - - foreach(var item in from object item in TabControl.Items let ti = (TabItem) item where ti.Visibility.Equals(Visibility.Visible) select item) + ServiceFacade.DoResourceServiceAsync(s => s.ConvertResourceBookingsToResourceAppointments(), () => { - TabControl.SelectedIndex = TabControl.Items.IndexOf(item); - break; - } + this.Dispatch(() => + { + IsEmployeeBrushVisible = true; + + InitializeComponent(); + InitViewModel(); + InitScheduler(); + + Scheduler.Storage.AppointmentStorage.ResourceSharing = false; + + DataContext = this; + + EditorLocalizer.Active = new GermanEditorLocalizer(); + + InitRights(); + + foreach(var item in from object item in TabControl.Items let ti = (TabItem)item where ti.Visibility.Equals(Visibility.Visible) select item) + { + TabControl.SelectedIndex = TabControl.Items.IndexOf(item); + break; + } + }); + }); } //private void Synchronize() @@ -1094,7 +1098,7 @@ namespace BeWo.Scheduler.View private void NewSchedulerStorage_AppointmentDeleting(object sender, PersistentObjectCancelEventArgs e) { - var appointment = (Appointment)e.Object; + var appointment = (Appointment) e.Object; var items = Scheduler.Storage.AppointmentStorage.Items; @@ -1102,7 +1106,7 @@ namespace BeWo.Scheduler.View { var aptList = new List(); - foreach (var item in items) + foreach(var item in items) { var apt = item.GetSourceObject(Scheduler.GetCoreStorage()) as SchedulerAppointmentVM; @@ -1127,32 +1131,28 @@ namespace BeWo.Scheduler.View var selectedAppointmentCount = Scheduler.SelectedAppointments.Count; - if (_NumberOfAppointmentsToDelete == 0) + if(_NumberOfAppointmentsToDelete == 0) { _NumberOfAppointmentsToDelete = selectedAppointmentCount; } - var sourceObj = (SchedulerAppointmentVM) appointment.GetSourceObject(Scheduler.GetCoreStorage()); if(!(sourceObj is null)) { - ServiceFacade.DoEmployeeServiceAsync(s => s.LoadTeamsRelatedCustomerOids(BeWoApp.CompactLoggedOnEmployee.EmployeeOid), customerOids => - { - this.Dispatch(() => - { - if(!BeWoUtils.CheckSchedulerRights(appointment, sourceObj.IsNew, SchedulerRightsCheckType.Edit, customerOids, true)) - { - e.Cancel = true; - return; - } + var customerOids = new List(); + ServiceFacade.DoEmployeeServiceSync(s => customerOids = s.LoadTeamsRelatedCustomerOids(BeWoApp.CompactLoggedOnEmployee.EmployeeOid)); - if(e.Object is Appointment app) - { - e.Cancel = PrepareDeletion(app); - } - }); - }); + if(!BeWoUtils.CheckSchedulerRights(appointment, sourceObj.IsNew, SchedulerRightsCheckType.Edit, customerOids, true)) + { + e.Cancel = true; + return; + } + + if(e.Object is Appointment app) + { + e.Cancel = PrepareDeletion(app); + } } else { @@ -2054,90 +2054,95 @@ namespace BeWo.Scheduler.View ServiceFacade.DoResourceServiceAsync(s2 => s2.LoadFilteredAppointmentsMitAufgaben(BeWoApp.HasLoggedOnUserRight(new[] {UserRightType.KalenderMitarbeitertermineAnsehen}), BeWoApp.LoggedOnEmployee.EmployeeOid.Value, start, end, pSelectedEmployees, pSelectedCustomer, pSelectedResources, pEmployeesOnly, pCustomersOnly, pResourcesOnly, pPrivateAppointmentsOnly, pOnlyMyAppointments, IsTasksVisible), appointments => { - ServiceFacade.DoResourceServiceAsync(s3 => s3.GetAllActiveAbsenceTimesInInterval(start, end, BeWoApp.LoggedOnEmployee.EmployeeOid.Value, BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)), - absenceTimes => + ServiceFacade.DoResourceServiceAsync(s3 => s3.GetAllActiveEmployeeAbsenceTimesInInterval(start, end, BeWoApp.LoggedOnEmployee.EmployeeOid.Value, SelectedEmployees.Select(employee => employee.EmployeeOid).ToList()), + employeeAbsenceTimes => { - this.Dispatch(() => + ServiceFacade.DoResourceServiceAsync(s4 => s4.GetAllActiveCustomersAbsenceTimesInInterval(start, end, BeWoApp.LoggedOnEmployeeOid.Value, SelectedCustomers.Select(customer => customer.CustomerOid).ToList()), customerAbsenceTimes => { - var prefilteredAppointments = appointments.Where(w => (w.EmployeeList.Count == 0 && w.Originator.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) || - w.EmployeeList.Count > 0 && w.EmployeeList.Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)) || - BeWoUtils.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)) && (!w.EmployeeList.TrueForAll(e2a => e2a.ParticipationAnswer == ParticipationAnswer.Absage) || w.EmployeeList == null || w.EmployeeList.Count == 0)).ToList(); - - var anonymizedAppointments = appointments.Where(w => w.CanBeEdited == false && w.IsTask == false).ToList(); - - prefilteredAppointments.AddRangeIfElementsNotIn(anonymizedAppointments); - - if(!IsTasksVisible) + this.Dispatch(() => { - prefilteredAppointments = prefilteredAppointments.Where(app => !app.IsTask).ToList(); - } + var prefilteredAppointments = appointments.Where(w => (w.EmployeeList.Count == 0 && w.Originator.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid) || + w.EmployeeList.Count > 0 && w.EmployeeList.Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid)) || + BeWoUtils.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)) && (!w.EmployeeList.TrueForAll(e2a => e2a.ParticipationAnswer == ParticipationAnswer.Absage) || w.EmployeeList == null || w.EmployeeList.Count == 0)).ToList(); - var vm = new SchedulerAppointmentListVM(prefilteredAppointments, c, e, r); - if(pShouldShowAbsenceTimes) - { - vm.Appointments.AddRange(ViewModel.ConvertAbsenceTimesToAppointments(absenceTimes.Where(w => { return SelectedEmployees.Count == 0 || SelectedEmployees.Any(a => a.EmployeeOid == w.EmployeeOid); }), end, e)); - } + var anonymizedAppointments = appointments.Where(w => w.CanBeEdited == false && w.IsTask == false).ToList(); - ViewModel.ActiveAppointmentViewModel = vm; + prefilteredAppointments.AddRangeIfElementsNotIn(anonymizedAppointments); - ViewModel.SchedulerSettings = ViewModel.GetActiveSettings(); - ViewModel.SchedulerSettings.StartDate = pIntervalStart; - - GefilterteMitarbeiter = ViewModel.ActiveAppointmentViewModel.AllEmployees; - AllEmployees = ViewModel.ActiveAppointmentViewModel.AllEmployees; - GefilterteKlienten = ViewModel.ActiveAppointmentViewModel.AllCustomers; - AllCustomers = ViewModel.ActiveAppointmentViewModel.AllCustomers; - - Category2ResourcesDictionary = ViewModel.ActiveAppointmentViewModel.Categories2Resources; - - SelectedEmployees = AllEmployees.Where(w => SelectedEmployees.Any(a => a.EmployeeOid.Equals(w.EmployeeOid))).ToList(); - SelectedCustomers = AllCustomers.Where(w => SelectedCustomers.Any(a => a.CustomerOid.Equals(w.CustomerOid))).ToList(); - SelectedResources = AllResources.Where(w => SelectedResources.Any(a => a.ResourceOid.Equals(w.ResourceOid))).ToList(); - - var items = SelectedItems; - - var testtesttest = ViewModel.ActiveAppointmentViewModel; - - _ReloadingViewModel = false; - - // TODO: Hier tritt eine Exception auf, wenn man zu schnell löscht? - Scheduler.Storage.RefreshData(); - Scheduler.Storage.RefreshUI(); - - if(_IsComingFromHomeDragPanel && _SelectedAppointmentFromHomePanelView != null) - { - var apps = Scheduler.ActiveView.GetAppointments().ToList(); - - var oid = _SelectedAppointmentFromHomePanelView.SchedulerAppointmentOid; - Appointment appointmentToOpen; - - if(oid != null) + if(!IsTasksVisible) { - appointmentToOpen = apps.Find(app => - { - var oidValue = app.CF_SchedulerAppointmentOid(); - - return oidValue.HasValue && oidValue.Value == oid; - }); - - - if(appointmentToOpen != null) - { - Scheduler.ShowEditAppointmentForm(appointmentToOpen); - } - } - else if(_SelectedAppointmentFromHomePanelView.RecurrenceId != null && _SelectedAppointmentFromHomePanelView.RecurrenceIndex > 0) - { - appointmentToOpen = apps.Find(appointment => appointment.RecurrenceInfo.Id.ToString().Equals(_SelectedAppointmentFromHomePanelView.RecurrenceId)); - - if(appointmentToOpen != null) - { - Scheduler.ShowEditAppointmentForm(appointmentToOpen); - } + prefilteredAppointments = prefilteredAppointments.Where(app => !app.IsTask).ToList(); } - _IsComingFromHomeDragPanel = false; - } + var vm = new SchedulerAppointmentListVM(prefilteredAppointments, c, e, r); + if(pShouldShowAbsenceTimes) + { + vm.Appointments.AddRange(ViewModel.ConvertAbsenceTimesToAppointments(customerAbsenceTimes, end, e, c)); + vm.Appointments.AddRange(ViewModel.ConvertAbsenceTimesToAppointments(employeeAbsenceTimes, end, e, c)); + //vm.Appointments.AddRange(ViewModel.ConvertAbsenceTimesToAppointments(employeeAbsenceTimes.Where(w => { return SelectedEmployees.Count == 0 || SelectedEmployees.Any(a => a.EmployeeOid == w.EmployeeOid); }), end, e, c)); + } + + ViewModel.ActiveAppointmentViewModel = vm; + + ViewModel.SchedulerSettings = ViewModel.GetActiveSettings(); + ViewModel.SchedulerSettings.StartDate = pIntervalStart; + + GefilterteMitarbeiter = ViewModel.ActiveAppointmentViewModel.AllEmployees; + AllEmployees = ViewModel.ActiveAppointmentViewModel.AllEmployees; + GefilterteKlienten = ViewModel.ActiveAppointmentViewModel.AllCustomers; + AllCustomers = ViewModel.ActiveAppointmentViewModel.AllCustomers; + + Category2ResourcesDictionary = ViewModel.ActiveAppointmentViewModel.Categories2Resources; + + SelectedEmployees = AllEmployees.Where(w => SelectedEmployees.Any(a => a.EmployeeOid.Equals(w.EmployeeOid))).ToList(); + SelectedCustomers = AllCustomers.Where(w => SelectedCustomers.Any(a => a.CustomerOid.Equals(w.CustomerOid))).ToList(); + SelectedResources = AllResources.Where(w => SelectedResources.Any(a => a.ResourceOid.Equals(w.ResourceOid))).ToList(); + + var items = SelectedItems; + + var testtesttest = ViewModel.ActiveAppointmentViewModel; + + _ReloadingViewModel = false; + + // TODO: Hier tritt eine Exception auf, wenn man zu schnell löscht? + Scheduler.Storage.RefreshData(); + Scheduler.Storage.RefreshUI(); + + if(_IsComingFromHomeDragPanel && _SelectedAppointmentFromHomePanelView != null) + { + var apps = Scheduler.ActiveView.GetAppointments().ToList(); + + var oid = _SelectedAppointmentFromHomePanelView.SchedulerAppointmentOid; + Appointment appointmentToOpen; + + if(oid != null) + { + appointmentToOpen = apps.Find(app => + { + var oidValue = app.CF_SchedulerAppointmentOid(); + + return oidValue.HasValue && oidValue.Value == oid; + }); + + + if(appointmentToOpen != null) + { + Scheduler.ShowEditAppointmentForm(appointmentToOpen); + } + } + else if(_SelectedAppointmentFromHomePanelView.RecurrenceId != null && _SelectedAppointmentFromHomePanelView.RecurrenceIndex > 0) + { + appointmentToOpen = apps.Find(appointment => appointment.RecurrenceInfo.Id.ToString().Equals(_SelectedAppointmentFromHomePanelView.RecurrenceId)); + + if(appointmentToOpen != null) + { + Scheduler.ShowEditAppointmentForm(appointmentToOpen); + } + } + + _IsComingFromHomeDragPanel = false; + } + }); }); }); }); @@ -2334,8 +2339,6 @@ namespace BeWo.Scheduler.View var mehrTaegigeTermine = new List(); - // ToDo: Für Montag, 18.07.2022: - // ToDo: Serientermine kommen doppelt vor! Mehrtägige Serientermine aus den appointmentOids herausnehmen! foreach (var app in apps.Where(a => !a.SameDay && !(!a.SameDay && a.AllDay && a.Duration == new TimeSpan(1, 0, 0, 0)))) { var sourceObject = app.GetSourceObject(Scheduler.GetCoreStorage()); @@ -2354,126 +2357,8 @@ namespace BeWo.Scheduler.View } appointmentOidListe.RemoveRange(mehrTaegigeTermine.Where(w => w.SchedulerAppointmentOid.HasValue).Select(s => s.SchedulerAppointmentOid.Value)); - var neueTermine = new List(); - foreach(var termin in mehrTaegigeTermine) - { - var tage = termin.StartDate.Value.GetDayNumberBetweenTwoDates(termin.EndDate.Value); - if(tage > 31) - { - tage = 31; - } - - if(termin.AllDay) - { - tage -= 1; - } - - if(tage > 0) - { - if(termin.AllDay) - { - for(var i = 0; i <= tage; i++) - { - neueTermine.Add(new SchedulerAppointmentDC - { - AllDay = termin.AllDay, - CustomerList = termin.CustomerList, - Description = termin.Description, - EmployeeList = termin.EmployeeList, - EndDate = new DateTime(termin.StartDate.Value.AddDays(i + 1).Year, termin.StartDate.Value.AddDays(i + 1).Month, termin.StartDate.Value.AddDays(i + 1).Day), - FormerBookingSequenceOid = termin.FormerBookingSequenceOid, - IsPrivate = termin.IsPrivate, - LabelKey = termin.LabelKey, - Location = termin.Location, - Originator = termin.Originator, - RecurrenceInfo = termin.RecurrenceInfo, - ReminderInfo = termin.ReminderInfo, - ResourceList = termin.ResourceList, - StartDate = new DateTime(termin.StartDate.Value.AddDays(i).Year, termin.StartDate.Value.AddDays(i).Month, termin.StartDate.Value.AddDays(i).Day), - Status = termin.Status, - Subject = termin.Subject, - Type = termin.Type - }); - } - } - else - { - for(var i = 0; i <= tage; i++) - { - if(i == 0) - { - neueTermine.Add(new SchedulerAppointmentDC - { - AllDay = false, - CustomerList = termin.CustomerList, - Description = termin.Description, - EmployeeList = termin.EmployeeList, - EndDate = new DateTime(termin.StartDate.Value.AddDays(1).Year, termin.StartDate.Value.AddDays(1).Month, termin.StartDate.Value.AddDays(1).Day), - FormerBookingSequenceOid = termin.FormerBookingSequenceOid, - IsPrivate = termin.IsPrivate, - LabelKey = termin.LabelKey, - Location = termin.Location, - Originator = termin.Originator, - RecurrenceInfo = termin.RecurrenceInfo, - ReminderInfo = termin.ReminderInfo, - ResourceList = termin.ResourceList, - StartDate = termin.StartDate, - Status = termin.Status, - Subject = termin.Subject, - Type = termin.Type - }); - } - else if(i == tage) - { - neueTermine.Add(new SchedulerAppointmentDC - { - AllDay = false, - CustomerList = termin.CustomerList, - Description = termin.Description, - EmployeeList = termin.EmployeeList, - EndDate = termin.EndDate, - FormerBookingSequenceOid = termin.FormerBookingSequenceOid, - IsPrivate = termin.IsPrivate, - LabelKey = termin.LabelKey, - Location = termin.Location, - Originator = termin.Originator, - RecurrenceInfo = termin.RecurrenceInfo, - ReminderInfo = termin.ReminderInfo, - ResourceList = termin.ResourceList, - StartDate = new DateTime(termin.EndDate.Value.Year, termin.EndDate.Value.Month, termin.EndDate.Value.Day), - Status = termin.Status, - Subject = termin.Subject, - Type = termin.Type - }); - } - else - { - neueTermine.Add(new SchedulerAppointmentDC - { - AllDay = true, - CustomerList = termin.CustomerList, - Description = termin.Description, - EmployeeList = termin.EmployeeList, - EndDate = new DateTime(termin.StartDate.Value.AddDays(i + 1).Year, termin.StartDate.Value.AddDays(i + 1).Month, termin.StartDate.Value.AddDays(i + 1).Day), - FormerBookingSequenceOid = termin.FormerBookingSequenceOid, - IsPrivate = termin.IsPrivate, - LabelKey = termin.LabelKey, - Location = termin.Location, - Originator = termin.Originator, - RecurrenceInfo = termin.RecurrenceInfo, - ReminderInfo = termin.ReminderInfo, - ResourceList = termin.ResourceList, - StartDate = new DateTime(termin.StartDate.Value.AddDays(i).Year, termin.StartDate.Value.AddDays(i).Month, termin.StartDate.Value.AddDays(i).Day), - Status = termin.Status, - Subject = termin.Subject, - Type = termin.Type - }); - } - } - } - } - } + var neueTermine = SchedulerUtils.GenerateSeveralDaysAppointments(mehrTaegigeTermine); var variablenDictionary = new Dictionary { @@ -3120,6 +3005,11 @@ namespace BeWo.Scheduler.View farbe = Color.FromRgb(153, 59, 59); } + if(customFieldStorage.IsAbsenceTime && customFieldStorage.IsCustomerAbsenceTime) + { + farbe = Color.FromRgb(59, 119, 153); + } + var aptCustomers = customFieldStorage.CustomerList; var aptResources = customFieldStorage.ResourceList; diff --git a/BeWo/Scheduler/ViewModel/CustomFieldStorage.cs b/BeWo/Scheduler/ViewModel/CustomFieldStorage.cs index 3c6772f84..e86ce4163 100644 --- a/BeWo/Scheduler/ViewModel/CustomFieldStorage.cs +++ b/BeWo/Scheduler/ViewModel/CustomFieldStorage.cs @@ -27,11 +27,11 @@ namespace BeWo.Scheduler.ViewModel result += " erledigt am " + CompletedDate.Value.ToShortDateString(); } else if(DueDate.HasValue) { - result += " bis " + DueDate.Value.ToString("dd.MM.yyyy HH:mm"); + result += $" bis {DueDate.Value:dd.MM.yyyy HH:mm}"; } } - if (IsAbsenceTime && _AbsenceTimeStart.HasValue) + if(IsAbsenceTime && _AbsenceTimeStart.HasValue) { result += _AbsenceTimeStart.Value.GetIntervalDescription(_AbsenceTimeEnd); } @@ -77,6 +77,8 @@ namespace BeWo.Scheduler.ViewModel public long? AbsenceTimeOid { get; set; } + public bool IsCustomerAbsenceTime { get; set; } + public CustomFieldStorage() { @@ -114,6 +116,7 @@ namespace BeWo.Scheduler.ViewModel CanBeEdited = pAppointment.CanBeEdited; AbsenceTimeOid = pAppointment.AbsenceTimeOid; + IsCustomerAbsenceTime = pAppointment.IsCustomerAbsenceTime; } public CustomFieldStorage(SchedulerAppointmentDC pAppointment) diff --git a/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs b/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs index 3596489a9..76277d512 100644 --- a/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs +++ b/BeWo/Scheduler/ViewModel/NewSchedulerViewModel.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using BeWo.Scheduler.View; - +using BeWo.ServiceProxy; using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; @@ -56,22 +56,47 @@ namespace BeWo.Scheduler.ViewModel return ActiveAppointmentViewModel == null ? null : SchedulerSettings ?? ActiveAppointmentViewModel.GetDefaultSchedulerSettings(); } - public IEnumerable ConvertAbsenceTimesToAppointments(IEnumerable pAbsenceTimes, DateTime pIntervalEnd, List allEmployees) + public IEnumerable ConvertAbsenceTimesToAppointments(IEnumerable pAbsenceTimes, DateTime pIntervalEnd, List allEmployees, List allCustomers) { return pAbsenceTimes.Where(w => w.AbsenceTimeOid.HasValue && w.Start.HasValue).Select(abwesenheit => - { + { + var isEmployeeAbsenceTime = abwesenheit.EmployeeOid.HasValue; + var subject = $"{abwesenheit.Reason.Description}"; var employee = abwesenheit.EmployeeOid.HasValue ? allEmployees.FirstOrDefault(f => f.EmployeeOid == abwesenheit.EmployeeOid.Value) : null; + var customer = abwesenheit.CustomerOid.HasValue ? allCustomers.FirstOrDefault(f => f.CustomerOid == abwesenheit.CustomerOid.Value) : null; - if(!(employee is null)) - { - subject += $" ({employee.SimpleDescription})"; - } + IFilterableDC dc = employee; + var originator = employee; + if(!isEmployeeAbsenceTime) + { + dc = customer; + ServiceFacade.DoEmployeeServiceSync(s => originator = s.FindCompactEmployeeByFullname(abwesenheit.InsUser)); + } + + if(!(dc is null)) + { + subject += $" ({dc.SimpleDescription})"; + } var absenceTimeEnd = abwesenheit.End?.AddTicks(1); + + if(originator is null) + { + originator = BeWoApp.CompactLoggedOnEmployee; + } - return new SchedulerAppointmentVM(true, subject, abwesenheit.Start.Value, abwesenheit.End ?? pIntervalEnd, employee, abwesenheit.Start, absenceTimeEnd, abwesenheit.AbsenceTimeOid.Value); - }).ToList(); + return new SchedulerAppointmentVM( + true, + subject, + abwesenheit.Start.Value, + abwesenheit.End ?? pIntervalEnd, + originator, + abwesenheit.Start, + absenceTimeEnd, + abwesenheit.AbsenceTimeOid.Value, + !isEmployeeAbsenceTime); + }).ToList(); } } } diff --git a/BeWo/Scheduler/ViewModel/SchedulerAppointmentVM.cs b/BeWo/Scheduler/ViewModel/SchedulerAppointmentVM.cs index a726bee65..b2c1cba3d 100644 --- a/BeWo/Scheduler/ViewModel/SchedulerAppointmentVM.cs +++ b/BeWo/Scheduler/ViewModel/SchedulerAppointmentVM.cs @@ -61,6 +61,7 @@ namespace BeWo.Scheduler.ViewModel private bool _HasServiceRecordEntry; private bool _IsArchived; private long? _AbsenceTimeOid; + private bool _IsCustomerAbsenceTime; public bool HasServiceRecordEntry @@ -98,6 +99,8 @@ namespace BeWo.Scheduler.ViewModel public long? AbsenceTimeOid { get; set; } + public bool IsCustomerAbsenceTime { get; set; } + public object Id { get; set; } public Dictionary CustomFields @@ -126,6 +129,7 @@ namespace BeWo.Scheduler.ViewModel CompletedNotice = customFieldStorage.CompletedNotice; SupportConceptList = customFieldStorage.SupportConceptList; AbsenceTimeOid = customFieldStorage.AbsenceTimeOid; + IsCustomerAbsenceTime = customFieldStorage.IsCustomerAbsenceTime; } } @@ -580,6 +584,7 @@ namespace BeWo.Scheduler.ViewModel _ResourceList = appointment.CF_ResourceList(); _Originator = appointment.CF_Originator(); _AbsenceTimeOid = appointment.CF_AbsenceTimeOid(); + _IsCustomerAbsenceTime = appointment.CF_IsCustomerAbsenceTime(); if(!(appointment.RecurrenceInfo is null) && appointment.Type == AppointmentType.Occurrence) @@ -589,7 +594,7 @@ namespace BeWo.Scheduler.ViewModel } // Wird für Abwesenheiten genutzt - public SchedulerAppointmentVM(bool pAllDay, string pSubject, DateTime pStart, DateTime pEnd, CompactEmployeeDC pOriginator, DateTime? absenceTimeStart, DateTime? absenceTimeEnd, long absenceTimeOid) + public SchedulerAppointmentVM(bool pAllDay, string pSubject, DateTime pStart, DateTime pEnd, CompactEmployeeDC pOriginator, DateTime? absenceTimeStart, DateTime? absenceTimeEnd, long absenceTimeOid, bool isCustomerAbsenceTime) { _AllDay = pAllDay; _Subject = pSubject; @@ -599,10 +604,10 @@ namespace BeWo.Scheduler.ViewModel AbsenceTimeStart = absenceTimeStart; AbsenceTimeEnd = absenceTimeEnd; - IsAbsenceTime = true; + AbsenceTimeOid = absenceTimeOid; - AbsenceTimeOid = absenceTimeOid; + IsCustomerAbsenceTime = isCustomerAbsenceTime; UpdateCustomFields(); } diff --git a/BeWo/ServiceProxy/Generated.cs b/BeWo/ServiceProxy/Generated.cs index 18de8509e..0a6960ec4 100644 --- a/BeWo/ServiceProxy/Generated.cs +++ b/BeWo/ServiceProxy/Generated.cs @@ -314,6 +314,10 @@ namespace BeWo.ServiceProxy "iterBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] System.Collections.Generic.Dictionary, decimal> BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(System.Collections.Generic.List> empOids, int year, string reason); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/FindCompactEmployeeByFullname", ReplyAction="http://tempuri.org/IEmployeeService/FindCompactEmployeeByFullnameResponse")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/FindCompactEmployeeByFullnameBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + BS.Shared.DataContracts.Compact.CompactEmployeeDC FindCompactEmployeeByFullname(string fullname); + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IEmployeeService/ArchiveEmployee", ReplyAction="http://tempuri.org/IEmployeeService/ArchiveEmployeeResponse")] [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IEmployeeService/ArchiveEmployeeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] void ArchiveEmployee(long pOid, long pVersion); @@ -872,6 +876,11 @@ namespace BeWo.ServiceProxy return base.Channel.BerechneAnzEinerAbwesenheitFuerMehrereMitarbeiter(empOids, year, reason); } + public BS.Shared.DataContracts.Compact.CompactEmployeeDC FindCompactEmployeeByFullname(string fullname) + { + return base.Channel.FindCompactEmployeeByFullname(fullname); + } + public void ArchiveEmployee(long pOid, long pVersion) { base.Channel.ArchiveEmployee(pOid, pVersion); @@ -4796,6 +4805,25 @@ namespace BeWo.ServiceProxy [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/FindAppointmentsInRange", ReplyAction="http://tempuri.org/IResourceService/FindAppointmentsInRangeResponse")] [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/FindAppointmentsInRangeBeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] System.Collections.Generic.Dictionary> FindAppointmentsInRange(int duration, System.DateTime startDate, System.DateTime endDate, System.Collections.Generic.List resourceOids, System.Collections.Generic.List customerOids, System.Collections.Generic.List employeeOids, long loggedInEmployeeOid, int intervalBuffer, bool skipWeekends); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/ConvertResourceBookingsToResourceAppointments" + + "", ReplyAction="http://tempuri.org/IResourceService/ConvertResourceBookingsToResourceAppointments" + + "Response")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/ConvertResourceBookingsToResourceAppointments" + + "BeWoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + void ConvertResourceBookingsToResourceAppointments(); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/GetAllActiveCustomersAbsenceTimesInInterval", ReplyAction="http://tempuri.org/IResourceService/GetAllActiveCustomersAbsenceTimesInIntervalRe" + + "sponse")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/GetAllActiveCustomersAbsenceTimesInIntervalBe" + + "WoFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + System.Collections.Generic.List GetAllActiveCustomersAbsenceTimesInInterval(System.DateTime start, System.DateTime end, long employeeOid, System.Collections.Generic.List selectedCustomerOids); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IResourceService/GetAllActiveEmployeeAbsenceTimesInInterval", ReplyAction="http://tempuri.org/IResourceService/GetAllActiveEmployeeAbsenceTimesInIntervalRes" + + "ponse")] + [System.ServiceModel.FaultContractAttribute(typeof(BeWo.ServiceProxy.BeWoFault), Action="http://tempuri.org/IResourceService/GetAllActiveEmployeeAbsenceTimesInIntervalBeW" + + "oFaultFault", Name="BeWoFault", Namespace="http://schemas.datacontract.org/2004/07/BeWo.Service.ServiceContracts")] + System.Collections.Generic.List GetAllActiveEmployeeAbsenceTimesInInterval(System.DateTime start, System.DateTime end, long employeeOid, System.Collections.Generic.List selectedEmployeeOids); } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] @@ -5106,6 +5134,21 @@ namespace BeWo.ServiceProxy { return base.Channel.FindAppointmentsInRange(duration, startDate, endDate, resourceOids, customerOids, employeeOids, loggedInEmployeeOid, intervalBuffer, skipWeekends); } + + public void ConvertResourceBookingsToResourceAppointments() + { + base.Channel.ConvertResourceBookingsToResourceAppointments(); + } + + public System.Collections.Generic.List GetAllActiveCustomersAbsenceTimesInInterval(System.DateTime start, System.DateTime end, long employeeOid, System.Collections.Generic.List selectedCustomerOids) + { + return base.Channel.GetAllActiveCustomersAbsenceTimesInInterval(start, end, employeeOid, selectedCustomerOids); + } + + public System.Collections.Generic.List GetAllActiveEmployeeAbsenceTimesInInterval(System.DateTime start, System.DateTime end, long employeeOid, System.Collections.Generic.List selectedEmployeeOids) + { + return base.Channel.GetAllActiveEmployeeAbsenceTimesInInterval(start, end, employeeOid, selectedEmployeeOids); + } } [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] diff --git a/BeWo/View/Detail/BookingView.xaml.cs b/BeWo/View/Detail/BookingView.xaml.cs index 54b1855b5..d93a91cfb 100644 --- a/BeWo/View/Detail/BookingView.xaml.cs +++ b/BeWo/View/Detail/BookingView.xaml.cs @@ -65,12 +65,9 @@ namespace BeWo.View.Detail DependencyPropertyDescriptor.FromProperty(DateEdit.EditValueProperty, typeof(DateEdit)).AddValueChanged( this.EDIT_datepickerStartDate, (s, e) => - { - if (this.ViewModel.EditVM != null) - { - this.ViewModel.EditVM.UpdatePossibleFrequencies(this.EDIT_datepickerStartDate.DateTime); - } - }); + { + this.ViewModel.EditVM?.UpdatePossibleFrequencies(this.EDIT_datepickerStartDate.DateTime); + }); this.ReloadViewModel(); @@ -141,51 +138,30 @@ namespace BeWo.View.Detail } } - public override bool CanDelete - { - get - { - return !this.expander_new_booking.IsExpanded && this.expander_edit_booking.IsExpanded; - } - } + public override bool CanDelete => !expander_new_booking.IsExpanded && expander_edit_booking.IsExpanded; - public override bool IsDirty - { - get - { - return this.ViewModel != null ? this.ViewModel.IsDirty : false; - } - } + public override bool IsDirty => ViewModel?.IsDirty ?? false; - public override string Title - { - get - { - return "Ressourcenbuchung"; - } - } + public override string Title => "Ressourcenbuchung"; internal BookingVM ViewModel { - get - { - return this._ViewModel; - } + get => _ViewModel; set { - this._ViewModel = value; - this.grid_root.DataContext = value; - if (this.calendar.IsLoaded) + _ViewModel = value; + grid_root.DataContext = value; + if(calendar.IsLoaded) { - this.Refresh(); + Refresh(); } } } public override void Delete() { - this.DeleteBooking(); + DeleteBooking(); } protected override void Save() diff --git a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml index d6d2b7645..a888e6aa9 100644 --- a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml +++ b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml @@ -393,12 +393,11 @@ - - - - - + + + + @@ -543,12 +542,10 @@ ItemsSource="{x:Static core:EnumTranslations.ServiceRecordTimeIntervalTranslations}" Margin="3,3,3,3" EditValue="{Binding Path=ServiceRecordTimeInterval, UpdateSourceTrigger=PropertyChanged}" - DisplayMember="Value" ValueMember="Key" - IsTextEditable="False" + DisplayMember="Value" ValueMember="Key" IsTextEditable="False" x:Name="TimeIntervalComboBox" Width="120" SelectedIndexChanged="TimeIntervalComboBox_OnSelectedIndexChanged"/> - diff --git a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs index 78e2a3356..fa5c81277 100644 --- a/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs +++ b/BeWo/View/Detail/Zeiterfassung/ServiceRecordView2.xaml.cs @@ -1717,11 +1717,14 @@ namespace BeWo.View.Detail.Zeiterfassung } } - foreach (FlatSupportConceptTreeNodeDC node in from dc in multiSupportConceptControl.SelectedSupportConcepts - where lValid - select SupportConceptService.CreateFlatSupportConceptItem(dc, null)) - lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, true, - ViewModel.SelectedEmployee, employeeOids, cb2scOids); + foreach(var selectedSupportConcept in multiSupportConceptControl.SelectedSupportConcepts) + { + if(lValid) + { + FlatSupportConceptTreeNodeDC node = SupportConceptService.CreateFlatSupportConceptItem(selectedSupportConcept, null); + lValid = BeWoUtils.ValidateServiceRecordVM(ViewModel.PrototypeVM, null, node, true, ViewModel.SelectedEmployee, employeeOids, cb2scOids); + } + } //lValid = ValidateServiceRecordVMClientX(ViewModel.PrototypeVM, node, true); diff --git a/BeWo/ViewModel/VMFactory.cs b/BeWo/ViewModel/VMFactory.cs index 7dae94935..bed1c19a9 100644 --- a/BeWo/ViewModel/VMFactory.cs +++ b/BeWo/ViewModel/VMFactory.cs @@ -484,6 +484,8 @@ namespace BeWo.ViewModel s2 => s2.GetAllServiceCategories(), s3 => { + var x = r1.FirstOrDefault(tm => tm.TextModuleOid == 41); + pCallBack(new TextModuleListVM(r1.OrderBy(o => o.Name), s3)); })); } diff --git a/BeWoDatabaseTerminator/bdt.ico b/BeWoDatabaseTerminator/bdt.ico new file mode 100644 index 0000000000000000000000000000000000000000..6b833c942e41a81604b41a52cef51bdbe911389d GIT binary patch literal 2238 zcmeH^ZA^_}7{~wT++LFR;)uK)p(1aUl(&lL4HXIHVQc1tjW8K4i!aUC%*M>tQusid z<)wMqEF<&5*!tjuF)AmW4r^;EQ`ze8dY*HRp7X_5M*nBO`@XOHe_i);zW^5b>~=`& zhblk71|VFJDI^N|{O=U7%Yndr7i{~8AR%}^VJ{#;4-g>-iEtt6FcDEm#0YUmi0ETP z!ciirh=?sFQib&6L`Dgbb%Mw~NhFsNJB8h+W$r9-=sb~kktn=C6kQ_n%ZL(TZ#l82 zf+!G5D~VHAh%?uS;wqx7nmBixxGYrMA+FXC*B=l!9unn`h?_#?W1_m2xF!AFCq&It z;$9tb{~1yHf~b2%Jg+BSz9#D55bqmYa5x-z+eoxHU3k|-xLhuLa1ag6MB^u-+1Z1p z7UH9maI_N6&%MGAIKL3Bf~$>aYbV+}h|aEFbaWD5yJY;0_}(q_5Z%2*kI>gg^!E!S zC=6=w2L6^C(EfGh<`~+#%_Ae)K5*(Z<v%mQ&-0Wu?7b*YOYeh*)rAX(k z&$6r860WyebyLfX9scWnZ8qD)5lZ>Z3=0dJrIdsLL*z_LyzgV2Z{(yIruQ8>Jv!4^ N=YMZZkNro6KLP#f_nZI# literal 0 HcmV?d00001 diff --git a/BeWoDatabaseTerminator/bdt_icon.xcf b/BeWoDatabaseTerminator/bdt_icon.xcf new file mode 100644 index 0000000000000000000000000000000000000000..dff3247d5d39d1a859e0f5a5f1a9bbc914709699 GIT binary patch literal 28557 zcmeHw30zgxzCWUpIFAcdP((#QCB;a~Ec15rdHegiT$^usH9Y#P&A|ag5$`tv%-G0rev>0c`%UWAySJO0n|m+Ugrb{U5~dcI>eKX^18s!%|Hu~TE1`iqfM_SXIHys-} za*V0xm3wn2Y9=%_Fw0JurbxK(V&qLZ;qJ|6=UXVyBnK%fXTWFQzt4v@eU9k zz(mXGqn<_?{F}UuvXcxR=H8Fa^qU%Cbi1VP^RP6{5^mI9h>&w)hL79x=>l+ z58Sy{x#kL~sS{SwpZio7bGhbnqy6H~eXon(c+ubpgQE-3@&rAM;(J(7~IL=-UdHuaJa!E4Ib~}1~wOambtj`U>7%y zb8!pu1O8eX+`5HpUKn-|$6WJmPrKOXf{Q!8=3@WtE)Ga>aj@~ZVB>QkzOLoHjL-Km zJ|8yJwfy0H7e6}P#g7}8>A*7A{F7~6JV5IyJ`eYfrz% z^KrkbRAxu5!+rdREMOt~rFRst-+lZCEbznk(>+yL8qCy`{Sj5~9-_r{T*1e^hgiGb z^|azhbJVzT6JuiEinmOkoj7mNvXy~Wp;bptm~5FfZ)vihwS#6i$4#HRWOX}hXU!2g zDPeAsum)<*@s{_Nx3u=qoD-)nUenb2pyo7N7Ork&4b}9hcNTkE!!&*3yU8BbzM396 zbxA$zqnaaj{u-sK@`0iROWpfng zoZi22Ru`?Ea@caycP4h!Ix6Sgi+kp@*E%b`_}Fr9EkNm|hi0|W0+lW=z28dfu4LZ2 z7FtgwuPtb%g(zMBc3cy!my(6^8f(3ktX|(p3&j!lG}Ina>RV4OOsQ`gXb&s3`vIVo zn?1C?N>Ge;zTan@Naj?|?p! z4+(#HgrBK{u=|Dm?%9_k+L<~Fhxdbn{`jge1qx^90nfhH($qsZ1D|>!qN(XY;q)Ew zTtp*NsL(qMe9_YsCiK8R{Kdo6SLojTU#e$%R5*J7X_U$In9zg5M?Ef7Fzh5;cB-l< zE4p~!;u#sYS#N^B&^PMaDE*lC}qfSo>X zAYiAD9so+Y)I-2dm9Nwnu+wFqdZPAKWvT0CRr4OV>e{5mk6GO{Id%D?*1EV1X0PdI zt*^ZwWd+&AUYeR2VD;A2 zqOL$Wt+I=1tEnwrR69*&cLvItc7N4gQ(qIxsFF^~M^m2>%E&@L<*TX9gfgy`CNwW@;d0uh$+jc?#+C$3CV;LOwaFx2ds^eMa;$ zH4!r4)dx*Yh3xoZh^d*7ZHM(VH5bzRPd!X6h`O6v3hDJ+u&I@h?OzHqwHDIv)j(4l zAp=L!6)XFW3NU#I^>l#ATc{Vh0_6*LVHTm1U>2dy!Yo4m*#?6MwVhA~6u}@uttON{ zw_p&VmJ&*z+c1bwn+avVN*F|_LyR#ni%>UV5TSN3j)7T(Du7vp+7Gi(o21!C%G)gf z6B((iRn7O-ej|uyI_h#S(2bAcvY<)*$y;>&Z6Mk;sLQ=TvS2!{LB1m2QH|XC@Z@?z z&qbRcR5kkFMmIhRqj6lc32@y1ZLEFVnqC6Fi}{h`V&dWxX3S1pn7n?=j=iZzPG(%a zRb~rRLaQ7X@WIjVsrteZGIP&ms=japPuqQ&sxO=aSDdOq z^@Y=C>R0)wz9`V0_Ufv;)2`Da!o$09?6_;dB)m+mTWXbNTr6!ZE2P-_6Hx>q}HfR8RUJ;j=s;ef)o$*rLG<86zKuzwFtyPdFw>Vp=U`@VXO&6g|wzW__G`Ys!T=m3RI-02v zO@8QXsvg9ak}gj5RTI@)Q{OcPN^?#l6{^X&+YMD8P0p^OYgTRYRPtm(A5ER`RJ#4Z zcx)GSv!RkD8&R57)d(%18Q9O}#%MTgMIp0^k{NM0&eTej%9e#_>XUlPLiQZLzXbLa zy5&d(>?xf7Nf*hULLZ%a7xol-=-L~wr;u|l!=6H)l0o(qy7@HOQ^?7eVNW6F--11b z?z658_7wWS!(>k(-^!zBx9lBru$FS^w4E7W-1?(wgd>QO1 z{*$N!gsJ@+8`WfXa!0ou^~b&hdt>!tsUc_GM1q~d_Su2%Ua+c=#9f`_doTsSb)D5 z_#WKLSjPQh{fGtbVN9pq{bT(H3)FlM9#JZ_p7w~6j%n25Q)dXJKG$9Auha!Xr*7dk z;C{v;O&g%(a)LtyHwc^)(L7p<=^IREG2Osaj!9bFl~Oj83Nc;6bQ04Sn3C`@n;DQp zJ2*g)OfAh)KFT4+IU1crE}zOqcRIUVKF2k6al-0KJ&HnA&mvM=>mxFy&U#Ro>eeI= zv}NV(_y-WilEn!Pv_47}%am}?L zrB@uB(h|Wlr@Xc`sx?~CPMN!Zx|imM_*&NI3GKA@%Hb?Hn=-cpoyLxO0@ky?Kn+Iq zEuqxMx(l568A7KsoSTr_81scdMc*RWOK_FI5ej?E#uF0|;)(!eI>rte5wSCq=wYg*Buwm~&HOw4Y^eOcTV&^t&JX zH$})yulj0Ga{=p>?H=3`AvLFdab-YjG{RxVZ7+EVSg-u_`eE$^S?}hF4P!g}5EVlp zXdQ)vWVEwA8nY^o@i^nBjPnR(q@5bMDxWc%@i^li#t#`+FwS9|+zzc_rBj<&+1n~L z5udIG&j43~=Yi2;R!PP@Lb%F?`47QPVw_B5JEg4PN#Nz+MDPOe8t^ReR`3+?SA4`1 zj8_;-+tEqKNFueI>#>_LlkrY_ih#}HIN0Zm7k#KjA7dv{pHTB&W%*KDKh931zMzJ` zD(XO?HY*3*E_I~n+Y(8nF8fh*E{Qq|>RKlX+imry7+!1zkviF#Iu$GQ&I+Nv$)#OD zDzhs(9BO+2x~+1lJpjEBIla6a^+{s#0~JLMF9%Ua#hevPaj7{JoswbXC84e}?q^)Z z_y(c$v7z=tvvIr5TFZ*e_7VoYZ& zg_ndHP8H{iRH$=s4?aL%LQ9)tccSO9osC;-ysF@u9I}i5=87+xaCcGq6 z9Cbm|MR-Z56>yJ`1Imch0eDHsDdZ&~2NuCgLZ!n?LcI?!2^nL9mxO$&3|_)nB_|Jnp)ce{j(?( zF11kV99GS7qHqWcPPD|3cd(``Ezy5j8Vp5(ERCbF2$dbAwNYwMAW+&9yJ-R)g~$NS z3j^hZ(mt!J=B?Dlt{R$d8@m8y$@tEYF{pinvU0LNI#}ump|o3QL_-}Xl(slO%@=(j zLRlHj+Nj-(1tfk@$sGtY2&E(57yUK0mod**>!i?lB|OMjlybmW-#7ltn|XT zjEbYt8I{EN8RG$=k(ZJY$UO@$?L{Oxyb@meE}#d-lHr?k!3Z_`-$E%Xw7XF6!b{l! zD4d6LPGVJr1BE?UkP0uY3l=Jzyc81*J%lV8L_;R(Y>G8quUd1XUrj#`p|ahSE~0J zPcfFZ6Y$UIwuGA)Pcs&`r7_ZQ9w}YIxR3ENV>xL*RJa%6dyLx{(-^NaR(N6fNDZPv zB>0MOHDii!^MFwD~N#!!`XM8t6HNbAW z5*}f+63TJ*E*OncIgDR3F72Wkq7&Si@FHU>qm@v`=>9aOTgZ5paTnuaLK)@kgi$R8 z-2*V2@et!y#`%QO?DSJjun{B1T2MaCn98`7aXDkWA4bQNts`MEV{S*6Rc)~9*Rbld zHds~chgHSUYS>e#ZwTcG9rnbP&o~2C6)F$*6ly)845@@YG1|iT7OV<|1?(x*=Y;Yl z9hO8ljBz8O3@57!mBYA=aU`q?tp+S9)R&Ai2xYJhmJ}+RaXVuStSZ!9*bx0h#vP0^ z31vUBD)z*9oN*)L1VR}=R>cW2o@Lz2xPtLbLh0{-#jp|M1;(R{I~bE0-(nmBtD>h2 zdkR&^m;{6ieN)P%c6Vo0uV?fJwX|)c{S# zZ@1KY2iq5tB-ReCXK`U}PWJhe2lsxuZb2M1C#xN0H_jjaeB~5s@7XJFq@^T9QA^9= z$UU)Xaw{zuLFv3BNzF<6dM9l~6KG!b;%}xl#Q1>jIJbZmFfwZaiClF(Z3+*IRBowD zV;~vPJR)%`fd(q>EJg_4W~n<+p(a%~&+mUfHpE}JYEpf-tSIklX4-+24f7`qMook= zL#sL}O+w5v`YLK7>n($+ zO=PdQdU(U+0BVgm>^Z4R2DTDZlj~njZcgIV(!*1lK$WT&?i|_>v3lKc(#&EOc{-A0 zsJeb=Fb`2wB-O=$fHN(OM+a^^M}r2X6Ht?Cs!5G+NIII?9U>JOdA^5&taM^_Pdt`o zd~OJy;Bt2HgY;~-R`jBFz<#|q+7&YHQXgt%tSWs7?Gk{3`h4u?d10iTS$Rp4uuPwO z#?cFh)-9);A#_6TUFxZDmezcd(CCr7Y(W&So_)imq1opk4UJq-*pCd1c1@jxsEU~#44l&!RC^b zHR?F)YbF+XLDVIe>w;u9M+s$2c^jy0)b=(I+o)S;X|KoJs@Bw=N8ut0m26RWZ63oJQjB+?q$Zh0EA)m^CBZW*T zh9e=iNhL=@)KUmX3jL{rIvgqF2k@6JrhE@ao@GaVcNdNnK9s{AYpG@#PXdDQ2+z+TM+)@;iFwpPisZ|H%M|aILrYlF zW6?>{qxQ3~C$s>Lgg}TKDb!blvR@e-iKsgqDbx)(@;%HYz<;)Q6waY=cPuuZ40n~h zfWjpduAvL165*{KSdfPWjwmcx4KL*dKtB{(g;gJ8$uTS`3&r6r@E0v8!h$=rU@sPI z0>^-_V?}w>`w@MNW}pw3c^`jK3*3+B|AH2vr}N)O@+}^74JG#9ueta0KOSqRGyL&2 zzoiK5Z>yHv4y=Qimd878mIm)23iF?oaYfc%hq%~x9KF2En9o=tG}=#~QkUs1G?m48 zmhlwhw~PlF_cCr}T+g_ak>6lb(QPPBTFv_{X1var!FZhU3&xF%i2^NusYem1QVzIY zV@zk<&A5tjvKNJN%Q$d*h4B#M25$s?rJO>fiaF|=*_O`YC`SM@7;_o#AR6eZX(qi# zrcN^+XFSNbk8u~{X2z9_iHtFfuQ7(Tp(tY&@3)ZgGGiL!e#Va(=QEBL=ov^ofJhZ{ z(DD-F5ynl77RG^I6b>!n;Aa-&9>#gz2%Jhem`D|JZaHy%Bj3*ecGM06sK3t6KL;=Ec zI1mD*j4(LLTmBnnr^>piV#b?{E>mCSvdeU}jhw;D&oZ87Os|EmC9buuE&tvTLeZXu zy2ePxN86dPoDqEhEFrTCHGpgJ0^=Ku@r;WYH!$vGJiwUFNS7bl?u=!yH~I}^b|{Kq zSTyb#H!^<7n9i8PSO$AT$wOurDjr5g4}>w5@d9Hp%#Q8_%zi%>`>V-sa6cCN3tFHi z_Vg3tpZ72m!9USi{U3=V|C(dm|C4j8`5suBJfYN8glEr2Az&+0HAvrO#ry6g)6agp zF6CgTfZ!c3EILobdQkLQo}1l(qS=l!?=^(5T`xOmX{_O0M_cB`$fl6AJF7CcMz_#- z#}}~U69L$i zS9oK3iLyFnh!CNC7lkZ{F|H!` zTLRvQ`FL<4=05~)1|LQI@h0NOxlnM(B!rpc^i~-5!jdhdyqSc;8E8D5D-m=qhv;K3 zcn$arBs%Gkhg>$})lc(XC`PVDW6{PI(85E-bGZe*1Ugd^sUt1v#n9-xMC!{{^s?x< zJ49+%YkGk+x}1p48OKks6RC3o0dTd}OTqCG2wSGZ61&0gg9{Mx3@68r#R3Fa)duis z@F_4|8MndYs9{}%8Vp{7`BE(Z415)Q82lYL3%nnk5B?Zj4PJunL-4tH@H1d?p3Rb$1k43sZVI?R_)Rb!{aG-5${#!$N2$P3rhs$7^T3e8sMX*v z!JEOWz+Zvi0H?v9cM+|<0?u-UbJbQ<--jGO3LA_8=VL_@co%pVIesJxr{UlW2o~Q4 z&&T{T;G39V2wn>Q3XZ>ycykUpJ`Q2&L3n>x9mbL*67%#&;TSpIf*^Gn9KHoS9egZU zs3UNEra#_M^)H9xFNR^!d^nyYLmBWmvRLRu>PvVWs(xHI*y0m-9MXnTBDE17$C@%C zI%gdJIUA8W2_r&z*hZ-jmhyzl`^UOvb5y|JCfqcsJHrk+mbf8Dihg%8OqtXoa2x z?I;~P${3H{gKj?_=}uyk^4&x0;k{9(Gh=Ch2VNP~b3b{;6Dk#_er4;3#&}KCdFS-n zASrP2xlPm1nxR&=K^ zCi{@;yNp%e-!d-rB~kb-mWHQvfb>sR#}KLSIQF!tBT34yvao!uA8F0=S#kbpCz7Av zjwDiB{7IgEi$&@mbSB+;P8Vp{rH)PmT8t;UlCJ$OBuHouZVk}T#=F>!EbhkNF-kp8>CTtZCNl#?M6#G8BMZNXnyCQjdmpx3pSuo5R0a`xd@`~A`8~-LE$zE zGOn^IN^kc-PY8wFc;s$b;6&Ds^W#y9%tJ~Lc_0L>cghX&5mKzovLju{wP_Dx_YJ92 z7m3p6$R(1yuor|hwg%X2C$hARFL(f5z0>ib5WS!!pNM2GA9+%WmzhXOf`l(I1r0$8 z*-DTK=15~o3$v{W<%n5@3_du_lIo_EKV}|O>hR--Jbo~$Eoro&%Lb+~u5U-;ZTS+B z%4I$GUdGt=r1>sm&G#Y3sXn9&FJ@i%KE^0t0Y84v;_(d~1pHXlj|d@a!totRbbf)Q z=d=Atjh@Sz^i`cmpq}qTq?Y-Ufc*x`*yna8WqWoPsNAI!eE|3|wJRy#%OSvmACobh zf<}Kg63AB$BT{PuNjaY$L^Ar@1A+wkF*X>aHlg7h4?iA6YdRb5%ksg3c_`c*fR?p? zKHQfdj&+-if*b^aj=c43523zBA?KMMLPnAwPlcf5bB+9%5`xA!3U?PFwaaiD{CMew z2eEtd;|?E`*1?ZCQN5s}sfHi#et_&SA$jnl^XN07(7eEpqmV>q5&Vdj{$2PHLFYX9 z5pNa1k7)M8k3y}1A0ee7KjIbDD)>>zH!7OB^kC2mH^LPPbuz9g#!SXye-epLmPBeD zw9QB|#CVAjs&Y?FEn%Jce#R?ZNFZjeCQ`|yNmmCL^SVOAj`#o(dPam-0!ZB+1Nn~! zy0;{CR~g+%P!???!ql{(Bo^7ODxiR}rarR*a`GUPm>lQ%r<@K4BKB3CG~wYY+74Scsm6YNFRwO@xb% zFdNkrav0TCsLxo2B70Y7xQ>Z4CO;lTO5%-B-Fv@*zj!yNgdD`Qf@uOLLF|JSJ@^mfH`u~7fPovpC?58U-Hsl^& zZElT+t6i2}{Cf37Z#)rgwxY`?cCDJ^i`SJ%#A}C$w-6%UQwLHuEuCWV*noH&+A)#ID%%vVyq`ixrJaf@1Piqg&5&h14OIJ6sB0=7SDKq9RUER{^ zt5qS#?%OjG7bUIswt8xX=JCkHJAOh;Y+U@*gcK7zxkwBBLwq}S>fEhI@34N4J^Az>o*niga^U)z{>F^Bt0BJC6>kK2la_QH zw4_j$T9D(QGg7d&vqEz^tGyLTAuK*th*2l6_OT-QLv*q)vJA@!D>}d`a{Tg+R%BnD zkmP5Dq;=woPF7@ih)MRhBDX`_%Fdj|bxjxKca@Qe0hH}^!jf*3`*rH7Kr1D3crTc; z!%kVzol?e*o7u7?Wv&*Y~Ca60Dhj%g|A41Q+_?wUkA#7x4%E9{Ns4kS9 z)q7|FZ&yKLLXU+HJ6gG9oA81bk{KK>#q^|ubAIM9zpHGV^xSY2PB z|0I{_ZzEGG*P`|p5v`dY%~@J=U&QnONBdrXe_!-hNWFdXvqUe-y6GsqaQM>&k?koT zr?d1%#?jpy=AiokjlTnlD=R5&=ama*PafF4WzD>Ji^m(#h2Z9xuZ%KC~ zQ*_SUaqf->+Skr$+s>9WL|EPtxBkGzJ53R0x6l4CHLFCnL=G5R?BXp4GYjnA$lFpi zY0k<|_NQGgfDAfci;A9%Oy#p`(vluMm6=m;$8Pc1tZ=f`IR{pc_Cn*>X1{r6@2W_j z_LM!-S$s9^tB>YIpp8r?YpbfPpd_1FXHFbQ`6y}n8$)oi`1;~j`P{}#J8qTZcYRMM zE1Z8`cd`^GE1WN^IbMX56^^G8Q_hv*WQBdi!X2k?)5!|kfC)*v((~wKMOFU@%kpi9 zGH+JmWJN&Oz#-u;4IdR1pP00E%Z@J(rf27s^2ydb!O*Ljjo>wUKGRBD(D20cqLwr; zkyzG>h9nkOw5Gv`mDO!XhriJ-DC^}uj5*-8I{sW+lJ6(vwWG{J%gfu7zJEVt;kcJ3 zKtFjnx`ot>=Gt;1K$14k~vz(!5uj(3#a6S7m@K%LNS zIEOk3{h5PK)Cv4$73w7P=Th;`CDi(VK1_8I`n1zjC!zQI@FwbnT$=}~P$!|kuq_XD zT6a;WIy_l#)MT7Pf;zSh|r>)uRoZ4hPrUQX0lV?M@UV?E9NP;->c#_#Qz zeO=p`I~h#Bw}d})kik6-?rm_G!H*a`z~Cnh#yQfTd5FQr@Bf&?jrr#de%WB-yv-wx zdE@tf%tk%T#_#@^#~bU7dYR*l`KbmQ^)$~k=I0nZ&)`J{FEcpV;57!XGkBxHn+@J- z@OFb!4Bl(-K7+q8_^`pp3_fM>X@k!je8J$$246Ec*Wi4EiwrI^_^!b=gLM~2)iJof z!JY;;F}Q`nZ47Q}u&=?L4DM=hkik6-?rm_G!H*a`z~Cnh{=LCN3?6E5xWUgG{IZMx b8^2>jcb)(04)|N%=D)h@;%@j;?}GmhTCkhT literal 0 HcmV?d00001 diff --git a/BeWoDatabaseTerminator/bdt_log.xcf b/BeWoDatabaseTerminator/bdt_log.xcf new file mode 100644 index 0000000000000000000000000000000000000000..182c4fab69f351d8ae7d3b1c8449ed8db2b455bb GIT binary patch literal 81742 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 Vwi+Yv0= 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 + @@ -241,6 +242,7 @@ + @@ -269,6 +271,7 @@ + @@ -1327,7 +1330,9 @@ + + @@ -1377,6 +1382,11 @@ + + + + + @@ -1561,6 +1571,9 @@ 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + favicon.ico + diff --git a/BeWoPlanerMobil/BeWoPlanerMobil.csproj.user b/BeWoPlanerMobil/BeWoPlanerMobil.csproj.user index 2c93437fb..c0bfd0240 100644 --- a/BeWoPlanerMobil/BeWoPlanerMobil.csproj.user +++ b/BeWoPlanerMobil/BeWoPlanerMobil.csproj.user @@ -27,16 +27,15 @@ - Views/Login/Index.cshtml - CurrentPage + Views/Main/Main.cshtml + URL True False False False - - + http://localhost/BeWoPlanerMobil/ diff --git a/BeWoPlanerMobil/Content/style.css b/BeWoPlanerMobil/Content/style.css index a3e84c017..4d098d2ec 100644 --- a/BeWoPlanerMobil/Content/style.css +++ b/BeWoPlanerMobil/Content/style.css @@ -121,6 +121,7 @@ --danger: #dc3545; --light: #f8f9fa; --dark: #343a40; + --bewo-teams: #565999; --bewo-goal-rating: #0000ff; --bewo-dev: #00cf7c; --bewo-customers: #3b7799; @@ -1987,6 +1988,26 @@ pre code { background-color: #b9bbbe; } +.table-bewo-teams, +.table-bewo-teams > th, +.table-bewo-teams > td { + background-color: #d0d1e2; +} +.table-bewo-teams th, +.table-bewo-teams td, +.table-bewo-teams thead th, +.table-bewo-teams tbody + tbody { + border-color: #a7a9ca; +} + +.table-hover .table-bewo-teams:hover { + background-color: #c0c2d8; +} +.table-hover .table-bewo-teams:hover > td, +.table-hover .table-bewo-teams:hover > th { + background-color: #c0c2d8; +} + .table-bewo-goal-rating, .table-bewo-goal-rating > th, .table-bewo-goal-rating > td { @@ -3035,6 +3056,36 @@ fieldset:disabled a.btn { box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); } +.btn-bewo-teams { + color: #fff; + background-color: #565999; + border-color: #565999; +} +.btn-bewo-teams:hover { + color: #fff; + background-color: #484b81; + border-color: #444678; +} +.btn-bewo-teams:focus, .btn-bewo-teams.focus { + color: #fff; + background-color: #484b81; + border-color: #444678; + box-shadow: 0 0 0 0.2rem rgba(111, 114, 168, 0.5); +} +.btn-bewo-teams.disabled, .btn-bewo-teams:disabled { + color: #fff; + background-color: #565999; + border-color: #565999; +} +.btn-bewo-teams:not(:disabled):not(.disabled):active, .btn-bewo-teams:not(:disabled):not(.disabled).active, .show > .btn-bewo-teams.dropdown-toggle { + color: #fff; + background-color: #444678; + border-color: #3f4170; +} +.btn-bewo-teams:not(:disabled):not(.disabled):active:focus, .btn-bewo-teams:not(:disabled):not(.disabled).active:focus, .show > .btn-bewo-teams.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(111, 114, 168, 0.5); +} + .btn-bewo-goal-rating { color: #fff; background-color: #0000ff; @@ -3625,6 +3676,31 @@ fieldset:disabled a.btn { box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } +.btn-outline-bewo-teams { + color: #565999; + border-color: #565999; +} +.btn-outline-bewo-teams:hover { + color: #fff; + background-color: #565999; + border-color: #565999; +} +.btn-outline-bewo-teams:focus, .btn-outline-bewo-teams.focus { + box-shadow: 0 0 0 0.2rem rgba(86, 89, 153, 0.5); +} +.btn-outline-bewo-teams.disabled, .btn-outline-bewo-teams:disabled { + color: #565999; + background-color: transparent; +} +.btn-outline-bewo-teams:not(:disabled):not(.disabled):active, .btn-outline-bewo-teams:not(:disabled):not(.disabled).active, .show > .btn-outline-bewo-teams.dropdown-toggle { + color: #fff; + background-color: #565999; + border-color: #565999; +} +.btn-outline-bewo-teams:not(:disabled):not(.disabled):active:focus, .btn-outline-bewo-teams:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-bewo-teams.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(86, 89, 153, 0.5); +} + .btn-outline-bewo-goal-rating { color: #0000ff; border-color: #0000ff; @@ -5825,6 +5901,19 @@ a.badge-dark:focus, a.badge-dark.focus { box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); } +.badge-bewo-teams { + color: #fff; + background-color: #565999; +} +a.badge-bewo-teams:hover, a.badge-bewo-teams:focus { + color: #fff; + background-color: #444678; +} +a.badge-bewo-teams:focus, a.badge-bewo-teams.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(86, 89, 153, 0.5); +} + .badge-bewo-goal-rating { color: #fff; background-color: #0000ff; @@ -6135,6 +6224,18 @@ a.badge-bewo-report:focus, a.badge-bewo-report.focus { color: #040505; } +.alert-bewo-teams { + color: #2d2e50; + background-color: #dddeeb; + border-color: #d0d1e2; +} +.alert-bewo-teams hr { + border-top-color: #c0c2d8; +} +.alert-bewo-teams .alert-link { + color: #1b1b2f; +} + .alert-bewo-goal-rating { color: #000085; background-color: #ccccff; @@ -6648,6 +6749,20 @@ a.badge-bewo-report:focus, a.badge-bewo-report.focus { border-color: #1b1e21; } +.list-group-item-bewo-teams { + color: #2d2e50; + background-color: #d0d1e2; +} +.list-group-item-bewo-teams.list-group-item-action:hover, .list-group-item-bewo-teams.list-group-item-action:focus { + color: #2d2e50; + background-color: #c0c2d8; +} +.list-group-item-bewo-teams.list-group-item-action.active { + color: #fff; + background-color: #2d2e50; + border-color: #2d2e50; +} + .list-group-item-bewo-goal-rating { color: #000085; background-color: #b8b8ff; @@ -7662,6 +7777,16 @@ button.bg-dark:focus { background-color: #1d2124 !important; } +.bg-bewo-teams { + background-color: #565999 !important; +} + +a.bg-bewo-teams:hover, a.bg-bewo-teams:focus, +button.bg-bewo-teams:hover, +button.bg-bewo-teams:focus { + background-color: #444678 !important; +} + .bg-bewo-goal-rating { background-color: #0000ff !important; } @@ -7872,6 +7997,10 @@ button.bg-bewo-report:focus { border-color: #343a40 !important; } +.border-bewo-teams { + border-color: #565999 !important; +} + .border-bewo-goal-rating { border-color: #0000ff !important; } @@ -11507,6 +11636,14 @@ a.text-dark:hover, a.text-dark:focus { color: #121416 !important; } +.text-bewo-teams { + color: #565999 !important; +} + +a.text-bewo-teams:hover, a.text-bewo-teams:focus { + color: #3a3d68 !important; +} + .text-bewo-goal-rating { color: #0000ff !important; } diff --git a/BeWoPlanerMobil/Content/style.css.map b/BeWoPlanerMobil/Content/style.css.map index 6316102de..276e2b017 100644 --- a/BeWoPlanerMobil/Content/style.css.map +++ b/BeWoPlanerMobil/Content/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["style.scss","../node_modules/bootstrap/scss/bootstrap.scss","../node_modules/bootstrap/scss/_root.scss","../node_modules/bootstrap/scss/_reboot.scss","../node_modules/bootstrap/scss/vendor/_rfs.scss","../node_modules/bootstrap/scss/_variables.scss","../node_modules/bootstrap/scss/mixins/_hover.scss","../node_modules/bootstrap/scss/_type.scss","../node_modules/bootstrap/scss/mixins/_lists.scss","../node_modules/bootstrap/scss/_images.scss","../node_modules/bootstrap/scss/mixins/_image.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/_code.scss","../node_modules/bootstrap/scss/_grid.scss","../node_modules/bootstrap/scss/mixins/_grid.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../node_modules/bootstrap/scss/mixins/_grid-framework.scss","../node_modules/bootstrap/scss/_tables.scss","../node_modules/bootstrap/scss/mixins/_table-row.scss","../node_modules/bootstrap/scss/_forms.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../node_modules/bootstrap/scss/mixins/_forms.scss","../node_modules/bootstrap/scss/mixins/_gradients.scss","../node_modules/bootstrap/scss/_buttons.scss","../node_modules/bootstrap/scss/mixins/_buttons.scss","../node_modules/bootstrap/scss/_transitions.scss","../node_modules/bootstrap/scss/_dropdown.scss","../node_modules/bootstrap/scss/mixins/_caret.scss","../node_modules/bootstrap/scss/mixins/_nav-divider.scss","../node_modules/bootstrap/scss/_button-group.scss","../node_modules/bootstrap/scss/_input-group.scss","../node_modules/bootstrap/scss/_custom-forms.scss","../node_modules/bootstrap/scss/_nav.scss","../node_modules/bootstrap/scss/_navbar.scss","../node_modules/bootstrap/scss/_card.scss","../node_modules/bootstrap/scss/_breadcrumb.scss","../node_modules/bootstrap/scss/_pagination.scss","../node_modules/bootstrap/scss/mixins/_pagination.scss","../node_modules/bootstrap/scss/_badge.scss","../node_modules/bootstrap/scss/mixins/_badge.scss","../node_modules/bootstrap/scss/_jumbotron.scss","../node_modules/bootstrap/scss/_alert.scss","../node_modules/bootstrap/scss/mixins/_alert.scss","../node_modules/bootstrap/scss/_progress.scss","../node_modules/bootstrap/scss/_media.scss","../node_modules/bootstrap/scss/_list-group.scss","../node_modules/bootstrap/scss/mixins/_list-group.scss","../node_modules/bootstrap/scss/_close.scss","../node_modules/bootstrap/scss/_toasts.scss","../node_modules/bootstrap/scss/_modal.scss","../node_modules/bootstrap/scss/_tooltip.scss","../node_modules/bootstrap/scss/mixins/_reset-text.scss","../node_modules/bootstrap/scss/_popover.scss","../node_modules/bootstrap/scss/_carousel.scss","../node_modules/bootstrap/scss/mixins/_clearfix.scss","../node_modules/bootstrap/scss/_spinners.scss","../node_modules/bootstrap/scss/utilities/_align.scss","../node_modules/bootstrap/scss/mixins/_background-variant.scss","../node_modules/bootstrap/scss/utilities/_background.scss","../node_modules/bootstrap/scss/utilities/_borders.scss","../node_modules/bootstrap/scss/utilities/_display.scss","../node_modules/bootstrap/scss/utilities/_embed.scss","../node_modules/bootstrap/scss/utilities/_flex.scss","../node_modules/bootstrap/scss/utilities/_float.scss","../node_modules/bootstrap/scss/utilities/_overflow.scss","../node_modules/bootstrap/scss/utilities/_position.scss","../node_modules/bootstrap/scss/utilities/_screenreaders.scss","../node_modules/bootstrap/scss/mixins/_screen-reader.scss","../node_modules/bootstrap/scss/utilities/_shadows.scss","../node_modules/bootstrap/scss/utilities/_sizing.scss","../node_modules/bootstrap/scss/utilities/_stretched-link.scss","../node_modules/bootstrap/scss/utilities/_spacing.scss","../node_modules/bootstrap/scss/utilities/_text.scss","../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../node_modules/bootstrap/scss/mixins/_text-emphasis.scss","../node_modules/bootstrap/scss/mixins/_text-hide.scss","../node_modules/bootstrap/scss/utilities/_visibility.scss","../node_modules/bootstrap/scss/_print.scss"],"names":[],"mappings":";AAEA;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAKJ;EACI;AACI;;;EAGJ;IACI;;;EAGJ;IACI;;;EAGJ;IACI;;;AAIR;EACI;AACI;;;AAIR;EACI;AACI;;;EAGJ;AACI;;;EAGJ;IACI;IACA;;;EAGJ;IACI;IACA;;;EAGJ;IACI;;;AAIR;EACI;AACI;;;AAIR;EACI;EACA;;AAMJ;EACI;EACA;EACA;EACA;;;ACvGJ;AAAA;AAAA;AAAA;AAAA;AAAA;ACCA;EAGI;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAIA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAIA;EAAA;EAAA;EAAA;EAAA;EAKF;EACA;;;ACAF;AAAA;AAAA;EAGE;;;AAGF;EACE;EACA;EACA;EACA;;;AAMF;EACE;;;AAUF;EACE;EACA,aHgDuB;EIgCnB,WAtCa;EDxCjB,aEkP4B;EFjP5B,aEsP4B;EFrP5B,OEnCS;EFoCT;EACA,kBE9CS;;;AF0DX;EACE;;;AASF;EACE;EACA;EACA;;;AAaF;EACE;EACA,eEoN4B;;;AF7M9B;EACE;EACA,eEuF0B;;;AF5E5B;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE,aEqJ4B;;;AFlJ9B;EACE;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE,aEwI4B;;;AFrI9B;ECxFI;;;ADiGJ;AAAA;EAEE;ECnGE;EDqGF;EACA;;;AAGF;EAAM;;;AACN;EAAM;;;AAON;EACE,OERwC;EFSxC,iBERwC;EFSxC;;AGhLA;EHmLE,OEXsC;EFYtC,iBEXsC;;;AFoB1C;EACE;EACA;;AG/LA;EHkME;EACA;;;AASJ;AAAA;AAAA;AAAA;EAIE,aE6D4B;EDjN1B;;;ADwJJ;EAEE;EAEA;EAEA;;;AAQF;EAEE;;;AAQF;EACE;EACA;;;AAGF;EAGE;EACA;;;AAQF;EACE;;;AAGF;EACE,aEoF4B;EFnF5B,gBEmF4B;EFlF5B,OEnQS;EFoQT;EACA;;;AAGF;EAGE;;;AAQF;EAEE;EACA,eEqKsC;;;AF/JxC;EAEE;;;AAOF;EACE;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;ECrPE;EDuPF;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAMF;EACE;;;AAOF;AAAA;AAAA;AAAA;EAIE;;;AASE;AAAA;AAAA;AAAA;EACE;;;AAMN;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAIF;AAAA;AAAA;AAAA;EASE;;;AAGF;EACE;EAEA;;;AAGF;EAME;EAEA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;ECjSI,WAtCa;EDyUjB;EACA;EACA;;;AAGF;EACE;;;AAIF;AAAA;EAEE;;;AAGF;EAKE;EACA;;;AAOF;EACE;;;AAQF;EACE;EACA;;;AAOF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAKF;EACE;;;AI1dF;AAAA;EAEE,eFyS4B;EEvS5B,aFyS4B;EExS5B,aFyS4B;;;AErS9B;EHgHM,WAtCa;;;AGzEnB;EH+GM,WAtCa;;;AGxEnB;EH8GM,WAtCa;;;AGvEnB;EH6GM,WAtCa;;;AGtEnB;EH4GM,WAtCa;;;AGrEnB;EH2GM,WAtCa;;;AGnEnB;EHyGM,WAtCa;EGjEjB,aF2S4B;;;AEvS9B;EHmGM,WAtCa;EG3DjB,aF8R4B;EE7R5B,aFqR4B;;;AEnR9B;EH8FM,WAtCa;EGtDjB,aF0R4B;EEzR5B,aFgR4B;;;AE9Q9B;EHyFM,WAtCa;EGjDjB,aFsR4B;EErR5B,aF2Q4B;;;AEzQ9B;EHoFM,WAtCa;EG5CjB,aFkR4B;EEjR5B,aFsQ4B;;;AE9P9B;EACE,YFiFO;EEhFP,eFgFO;EE/EP;EACA;;;AAQF;AAAA;EHMI;EGHF,aF8N4B;;;AE3N9B;AAAA;EAEE,SFsQ4B;EErQ5B,kBF8Q4B;;;AEtQ9B;EC/EE;EACA;;;ADmFF;ECpFE;EACA;;;ADsFF;EACE;;AAEA;EACE,cFwP0B;;;AE9O9B;EHjCI;EGmCF;;;AAIF;EACE,eFwBO;EDTH,WAtCa;;;AG2BnB;EACE;EH7CE;EG+CF,OF1GS;;AE4GT;EACE;;;AEnHJ;ECIE;EAGA;;;ADDF;EACE,SJigCkC;EIhgClC,kBJRS;EIST;EEXE,eN6O0B;EKvO5B;EAGA;;;ADcF;EAEE;;;AAGF;EACE;EACA;;;AAGF;ELkCI;EKhCF,OJ3BS;;;AOZX;ERuEI;EQrEF,OPoCQ;EOnCR;;AAGA;EACE;;;AAKJ;EACE;ER0DE;EQxDF,OPTS;EOUT,kBPDS;EMXP,eN+O0B;;AO/N5B;EACE;ERkDA;EQhDA,aP4Q0B;;;AOtQ9B;EACE;ERyCE;EQvCF,OPjBS;;AOoBT;ERoCE;EQlCA;EACA;;;AAKJ;EACE,YP4jCkC;EO3jClC;;;ACxCA;ECDA;EACA;EACA;EACA;EACA;;ACmDE;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;;AQzMrB;ECPA;EACA;EACA;EACA;EACA;;;ACmDE;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AQzKrB;ECrBA;EACA;EACA;EACA;;;ADwBA;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;;AGlDJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;;;AAmBE;EACE;EACA;EACA;;;AF+BN;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AExBE;EFMJ;EACA;EACA;;;AEHM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;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AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;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;;ADIN;ECvDA;EFAE,kBjByEW;EmBvEb,cnBuEa;;ACnEb;EkBAE;EFNA,kBED2D;EAS3D,cATqG;;AAYvG;EAEE;EFbA,kBED2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADIN;ECvDA;EFAE,kBjByEW;EmBvEb,cnBuEa;;ACnEb;EkBAE;EFNA,kBED2D;EAS3D,cATqG;;AAYvG;EAEE;EFbA,kBED2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADUN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,On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c1Bqf4C;;A0B9e5C;EACE,O1B/CK;;A0BiDL;EACE,kB1BtDG;;;A0BgEX;EACE;EACA;EAEA;;AAIA;EACE;EACA;EACA;EACA;EACA,O1B4boC;E0B3bpC,Q1B2boC;E0B1bpC;EACA;EACA,kB1BnFO;E0BoFP;;AAKF;EACE;EACA;EACA;EACA;EACA,O1B6aoC;E0B5apC,Q1B4aoC;E0B3apC;EACA;;;AAUF;EpB7GE,eN6O0B;;A0B3H1B;EACE;;AAKF;EACE,c1B+HwB;EiBvP1B,kBjBuP0B;;A0B3H1B;EACE;;AAKF;EACE,kB1BwZ0C;;A0BtZ5C;EACE,kB1BqZ0C;;;A0B3Y9C;EAEE,e1B8Z4C;;A0B1Z5C;EACE;;AAKF;EACE,kB1B8X0C;;;A0BpXhD;EACE;;AAGE;EACE;EACA,O1BsY0C;E0BrY1C;EAEA,e1BoY0C;;A0BjY5C;EACE;EACA;EACA,O1B+X0C;E0B9X1C,Q1B8X0C;E0B7X1C,kB1BlLK;E0BoLL,e1B0X0C;EepjB1C,YW2LA;;AXtLF;EW8KA;IX7KE;;;AW0LF;EACE,kB1BhMK;E0BiML;;AAKF;EACE,kB1BmV0C;;;A0BvUhD;EACE;EACA;EACA,Q1ByRsC;E0BxRtC;E3B/FI,WAtCa;E2BwIjB,a1BkE4B;E0BjE5B,a1BsE4B;E0BrE5B,O1BrNS;E0BsNT;EACA;EACA;EpBjOE,eN6O0B;E0BT5B;;AAEA;EACE,c1B4PoC;E0B3PpC;EAIE,Y1BwW8B;;A0BrWhC;EAME,O1B5OK;E0B6OL,kB1BpPK;;A0BwPT;EAEE;EACA,e1BoI0B;E0BnI1B;;AAGF;EACE,O1B1PO;E0B2PP,kB1B/PO;;A0BmQT;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE,Q1B+NsC;E0B9NtC,a1BsH4B;E0BrH5B,gB1BqH4B;E0BpH5B,c1BqH4B;EDjRxB,WAtCa;;;A2BsMnB;EACE,Q1BwNsC;E0BvNtC,a1BmH4B;E0BlH5B,gB1BkH4B;E0BjH5B,c1BkH4B;EDtRxB,WAtCa;;;A2BmNnB;EACE;EACA;EACA;EACA,Q1BsMsC;E0BrMtC;;;AAGF;EACE;EACA;EACA;EACA,Q1B8LsC;E0B7LtC;EACA;;AAEA;EACE,c1B2KoC;E0B1KpC,Y1B+E0B;;A0B3E5B;EAEE,kB1B3TO;;A0B+TP;EACE,S1BiUa;;A0B7TjB;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,Q1B8JsC;E0B7JtC;EAEA,a1BxD4B;E0ByD5B,a1BpD4B;E0BqD5B,O1B/US;E0BgVT,kB1BvVS;E0BwVT;EpB1VE,eN6O0B;;A0BiH5B;EACE;EACA;EACA;EACA;EACA;EACA;EACA,Q1BwIoC;E0BvIpC;EACA,a1BpE0B;E0BqE1B,O1B/VO;E0BgWP;ETxWA,kBjBGO;E0BuWP;EpB3WA,eoB4WuB;;;AAU3B;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EAA0B,Y1B2Oe;;A0B1OzC;EAA0B,Y1B0Oe;;A0BzOzC;EAA0B,Y1ByOe;;A0BtO3C;EACE;;AAGF;EACE,O1B2NyC;E0B1NzC,Q1B0NyC;E0BzNzC;ET7YA,kBjBuP0B;E0BwJ1B,Q1B0NyC;EM1mBzC,eN2mByC;Ee1mBvC,YWkZF;EACA;;AX9YA;EWqYF;IXpYI;;;AW+YF;ETrZA,kBjB8mByC;;A0BpN3C;EACE,O1BoMgC;E0BnMhC,Q1BoMgC;E0BnMhC;EACA,Q1BmMgC;E0BlMhC,kB1B3ZO;E0B4ZP;EpBjaA,eNomBgC;;A0B9LlC;EACE,O1BgMyC;E0B/LzC,Q1B+LyC;EiBtmBzC,kBjBuP0B;E0BkL1B,Q1BgMyC;EM1mBzC,eN2mByC;Ee1mBvC,YW4aF;EACA;;AXxaA;EWgaF;IX/ZI;;;AWyaF;ET/aA,kBjB8mByC;;A0B1L3C;EACE,O1B0KgC;E0BzKhC,Q1B0KgC;E0BzKhC;EACA,Q1ByKgC;E0BxKhC,kB1BrbO;E0BsbP;EpB3bA,eNomBgC;;A0BpKlC;EACE,O1BsKyC;E0BrKzC,Q1BqKyC;E0BpKzC;EACA,c1B9D0B;E0B+D1B,a1B/D0B;EiBrY1B,kBjBuP0B;E0B+M1B,Q1BmKyC;EM1mBzC,eN2mByC;Ee1mBvC,YWycF;EACA;;AXrcA;EW0bF;IXzbI;;;AWscF;ET5cA,kBjB8mByC;;A0B7J3C;EACE,O1B6IgC;E0B5IhC,Q1B6IgC;E0B5IhC;EACA,Q1B4IgC;E0B3IhC;EACA;EACA;;AAIF;EACE,kB1BzdO;EMLP,eNomBgC;;A0BlIlC;EACE;EACA,kB1B/dO;EMLP,eNomBgC;;A0B3HhC;EACE,kB1BneK;;A0BseP;EACE;;AAGF;EACE,kB1B3eK;;A0B8eP;EACE;;AAGF;EACE,kB1BnfK;;;A0BwfX;AAAA;AAAA;EX9fM,YWigBJ;;AX5fE;EWyfJ;AAAA;AAAA;IXxfM;;;;AYPN;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;A1BCA;E0BEE;;AAIF;EACE,O3BVO;E2BWP;EACA;;;AAQJ;EACE;;AAEA;EACE;;AAGF;EACE;ErB3BA,wBNoO0B;EMnO1B,yBNmO0B;;AClO5B;E0B6BI,c3BqpB8B;;A2BlpBhC;EACE,O3BpCK;E2BqCL;EACA;;AAIJ;AAAA;EAEE,O3B3CO;E2B4CP,kB3BnDO;E2BoDP,c3B0oBgC;;A2BvoBlC;EAEE;ErBlDA,wBqBoD2B;ErBnD3B,yBqBmD2B;;;AAU7B;ErBvEE,eN6O0B;;A2BlK5B;AAAA;EAEE,O3B3EO;E2B4EP,kB3B0K0B;;;A2BhK5B;EACE;EACA;;;AAKF;EACE;EACA;EACA;;;AAUF;EACE;;AAEF;EACE;;;ACpGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAoBJ;EACE;EACA,a5BqqBkC;E4BpqBlC,gB5BoqBkC;E4BnqBlC,c5BiFO;EDTH,WAtCa;E6BhCjB;EACA;;A3B1CA;E2B6CE;;;AASJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;;AASJ;EACE;EACA,a5B4lBkC;E4B3lBlC,gB5B2lBkC;;;A4B/kBpC;EACE;EACA;EAGA;;;AAIF;EACE;E7BSI,WAtCa;E6B+BjB;EACA;EACA;EtBrHE,eN6O0B;;AClO5B;E2B8GE;;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AlBlEE;EkB8EI;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;IACA;;;AlB7FN;EkByFA;IAoBI;IACA;;EAEA;IACE;;EAEA;IACE;;EAGF;IACE,e5BgiBwB;I4B/hBxB,c5B+hBwB;;E4B1hB5B;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;;EAcF;IACE;IAGA;;EAGF;IACE;;;AlBxIN;EkB8EI;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;IACA;;;AlB7FN;EkByFA;IAoBI;IACA;;EAEA;IACE;;EAEA;IACE;;EAGF;IACE,e5BgiBwB;I4B/hBxB,c5B+hBwB;;E4B1hB5B;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;;EAcF;IACE;IAGA;;EAGF;IACE;;;AlBxIN;EkB8EI;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;IACA;;;AlB7FN;EkByFA;IAoBI;IACA;;EAEA;IACE;;EAEA;IACE;;EAGF;IACE,e5BgiBwB;I4B/hBxB,c5B+hBwB;;E4B1hB5B;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;;EAcF;IACE;IAGA;;EAGF;IACE;;;AlBxIN;EkB8EI;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;IACA;;;AlB7FN;EkByFA;IAoBI;IACA;;EAEA;IACE;;EAEA;IACE;;EAGF;IACE,e5BgiBwB;I4B/hBxB,c5B+hBwB;;E4B1hB5B;AAAA;AAAA;AAAA;AAAA;AAAA;IACE;;EAcF;IACE;IAGA;;EAGF;IACE;;;AA5DN;EAoBI;EACA;;AAnBA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;AAmBF;EACE;;AAEA;EACE;;AAGF;EACE,e5BgiBwB;E4B/hBxB,c5B+hBwB;;A4B1hB5B;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;;AAcF;EACE;EAGA;;AAGF;EACE;;;AAcR;EACE,O5B0gBgC;;AC1tBlC;E2BmNI,O5BugB8B;;A4BlgBhC;EACE,O5B+f8B;;ACxtBlC;E2B4NM,O5B6f4B;;A4B1f9B;EACE,O5B2f4B;;A4BvfhC;AAAA;AAAA;AAAA;EAIE,O5Bkf8B;;A4B9elC;EACE,O5B2egC;E4B1ehC,c5B+egC;;A4B5elC;EACE;;AAGF;EACE,O5BkegC;;A4BjehC;EACE,O5Bke8B;;AC1tBlC;E2B2PM,O5B+d4B;;;A4BvdlC;EACE,O5B7QO;;ACST;E2BuQI,O5BhRK;;A4BqRP;EACE,O5Boc8B;;ACjtBlC;E2BgRM,O5Bkc4B;;A4B/b9B;EACE,O5Bgc4B;;A4B5bhC;AAAA;AAAA;AAAA;EAIE,O5BrSK;;A4ByST;EACE,O5BgbgC;E4B/ahC,c5BobgC;;A4BjblC;EACE;;AAGF;EACE,O5BuagC;;A4BtahC;EACE,O5BrTK;;ACST;E2B+SM,O5BxTG;;;A6BHX;EACE;EACA;EACA;EACA;EAEA;EACA,kB7BJS;E6BKT;EACA;EvBRE,eN6O0B;;A6BlO5B;EACE;EACA;;AAIA;EvBRA,wBNoO0B;EMnO1B,yBNmO0B;;A6BtN1B;EvBAA,4BNsN0B;EMrN1B,2BNqN0B;;;A6BhN9B;EAGE;EAGA;EACA,S7BsxBkC;;;A6BlxBpC;EACE,e7BgxBkC;;;A6B7wBpC;EACE;EACA;;;AAGF;EACE;;;A5B3CA;E4BgDE;;AAGF;EACE,a7B+vBgC;;;A6BvvBpC;EACE;EACA;EAEA,kB7BwvBkC;E6BvvBlC;;AAEA;EvB1EE,euB2EuB;;AAIvB;EACE;;;AAKN;EACE;EACA,kB7BwuBkC;E6BvuBlC;;AAEA;EvB1FE,euB2FuB;;;AAS3B;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA,S7B8sBkC;;;A6B3sBpC;AAAA;AAAA;EAGE;EACA;;;AAGF;AAAA;EvBxHI,wBNqzBgC;EMpzBhC,yBNozBgC;;;A6BxrBpC;AAAA;EvB/GI,4BNuyBgC;EMtyBhC,2BNsyBgC;;;A6B/qBlC;EACE,e7BurBgC;;AUhxBhC;EmBuFJ;IAMI;IACA;IACA;IACA;;EAEA;IAEE;IACA,c7B2qB8B;I6B1qB9B;IACA,a7ByqB8B;;;;A6B5pBlC;EACE,e7B2pBgC;;AUhxBhC;EmBiHJ;IAQI;IACA;;EAGA;IAEE;IACA;;EAEA;IACE;IACA;;EAKA;IvBhLJ,yBuBiLmC;IvBhLnC,4BuBgLmC;;EAE7B;AAAA;IAGE;;EAEF;AAAA;IAGE;;EAIJ;IvBjLJ,wBuBkLkC;IvBjLlC,2BuBiLkC;;EAE5B;AAAA;IAGE;;EAEF;AAAA;IAGE;;;;AAcV;EACE,e7BglBgC;;AUlwBhC;EmBgLJ;IAMI,c7B6lBgC;I6B5lBhC,Y7B6lBgC;I6B5lBhC;IACA;;EAEA;IACE;IACA;;;;AAWJ;EACE;;AAEA;EACE;EvB5OF,4BuB6OgC;EvB5OhC,2BuB4OgC;;AAGhC;EvB9PA,wBuB+P6B;EvB9P7B,yBuB8P6B;;AAG7B;EvB3QA,euB4QyB;EACvB;;;AClRN;EACE;EACA;EACA;EACA,e9BiiCkC;E8B/hClC;EACA,kB9BES;EMJP,eN6O0B;;;A8BrO5B;EACE,c9BqhCgC;;A8BnhChC;EACE;EACA,e9BihC8B;E8BhhC9B,O9BNK;E8BOL;;AAUJ;EACE;;AAGF;EACE;;AAGF;EACE,O9B1BO;;;A+BbX;EACE;E5BGA;EACA;EGAE,eN6O0B;;;A+B5O9B;EACE;EACA;EACA;EACA;EACA,a/BmxBkC;E+BlxBlC,O/BsKwC;E+BrKxC,kB/BNS;E+BOT;;AAEA;EACE;EACA,O/BkKsC;E+BjKtC;EACA,kB/BXO;E+BYP,c/BXO;;A+BcT;EACE;EACA,S/B4wBgC;E+B3wBhC,Y/BkX0B;;;A+B5W1B;EACE;EzBCF,wBN+M0B;EM9M1B,2BN8M0B;;A+B3M1B;EzBlBA,yBN6N0B;EM5N1B,4BN4N0B;;A+BtM5B;EACE;EACA,O/BvCO;E+BwCP,kB/B8M0B;E+B7M1B,c/B6M0B;;A+B1M5B;EACE,O/BvCO;E+BwCP;EAEA;EACA,kB/BjDO;E+BkDP,c/B/CO;;;AgCPT;EACE;EjC2HE,WAtCa;EiCnFf,ahCsO0B;;AgCjOxB;E1BwBF,wBNgN0B;EM/M1B,2BN+M0B;;AgCnOxB;E1BKF,yBN8N0B;EM7N1B,4BN6N0B;;;AgChP5B;EACE;EjC2HE,WAtCa;EiCnFf,ahCuO0B;;AgClOxB;E1BwBF,wBNiN0B;EMhN1B,2BNgN0B;;AgCpOxB;E1BKF,yBN+N0B;EM9N1B,4BN8N0B;;;AiC/O9B;EACE;EACA;ElCiEE;EkC/DF,ajC2R4B;EiC1R5B;EACA;EACA;EACA;E3BRE,eN6O0B;Ee5OxB,YkBSJ;;AlBJE;EkBNJ;IlBOM;;;AdIJ;EgCGI;;;AAKJ;EACE;;;AAKJ;EACE;EACA;;;AAOF;EACE,ejC63BkC;EiC53BlC,cjC43BkC;EMh6BhC,eNm6BgC;;;AiCt3BlC;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ACbN;EACE;EACA,enCqzBkC;EmCnzBlC,kBnCKS;EMJP,eN8O0B;;AUvL1B;EyB5DJ;IAQI;;;;AAIJ;EACE;EACA;E7BTE,e6BUqB;;;ACXzB;EACE;EACA;EACA,epCq9BkC;EoCp9BlC;E9BHE,eN6O0B;;;AoCrO9B;EAEE;;;AAIF;EACE,apCgR4B;;;AoCxQ9B;EACE;;AAGA;EACE;EACA;EACA;EACA;EACA;;;AAUF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ACRF;EACE;IAAO;;EACP;IAAK;;;AAIT;EACE;EACA,QtC89BkC;EsC79BlC;EvCoHI,WAtCa;EuC5EjB,kBtCJS;EMJP,eN6O0B;;;AsChO9B;EACE;EACA;EACA;EACA;EACA,OtChBS;EsCiBT;EACA;EACA,kBtCo9BkC;Eex+B9B,YuBqBJ;;AvBhBE;EuBOJ;IvBNM;;;;AuBkBN;ErBaE;EqBXA;;;AAIA;EACE;;AAGE;EAJJ;IAKM;;;;ACzCR;EACE;EACA;;;AAGF;EACE;;;ACFF;EACE;EACA;EAGA;EACA;;;AASF;EACE;EACA,OxCPS;EwCQT;;AvCNA;EuCUE;EACA,OxCbO;EwCcP;EACA,kBxCrBO;;AwCwBT;EACE,OxCjBO;EwCkBP,kBxCzBO;;;AwCkCX;EACE;EACA;EACA;EAEA,kBxCzCS;EwC0CT;;AAEA;ElCrCE,wBNoO0B;EMnO1B,yBNmO0B;;AwC3L5B;ElC3BE,4BNsN0B;EMrN1B,2BNqN0B;;AwCvL5B;EAEE,OxChDO;EwCiDP;EACA,kBxCxDO;;AwC4DT;EACE;EACA,OxC9DO;EwC+DP,kBxCuL0B;EwCtL1B,cxCsL0B;;AwCnL5B;EACE;;AAEA;EACE;EACA,kBxCgKwB;;;AwClJ1B;EACE;;AAGE;ElCrCJ,2BNsL0B;EMlM1B,yBkCmDuC;;AAGnC;ElCtDJ,yBNkM0B;EMtL1B,2BkC4CyC;;AAGrC;EACE;;AAGF;EACE,kBxC+HoB;EwC9HpB;;AAEA;EACE;EACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AwC3G5B;EACE;EACA;ElCjIA,ekCkIuB;;AAEvB;EACE;;AAKF;EACE;;;AC7IJ;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;AE5J1E;EACE;E3C8HI,WAtCa;E2CtFjB,a1CiS4B;E0ChS5B;EACA,O1CYS;E0CXT,a1ColCkC;E0CnlClC;;AzCKA;EyCDE,O1CMO;E0CLP;;A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AEF;AAAA;IAEE;;;AxDTF;EwDlDI;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAQF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE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","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["style.scss","../node_modules/bootstrap/scss/bootstrap.scss","../node_modules/bootstrap/scss/_root.scss","../node_modules/bootstrap/scss/_reboot.scss","../node_modules/bootstrap/scss/vendor/_rfs.scss","../node_modules/bootstrap/scss/_variables.scss","../node_modules/bootstrap/scss/mixins/_hover.scss","../node_modules/bootstrap/scss/_type.scss","../node_modules/bootstrap/scss/mixins/_lists.scss","../node_modules/bootstrap/scss/_images.scss","../node_modules/bootstrap/scss/mixins/_image.scss","../node_modules/bootstrap/scss/mixins/_border-radius.scss","../node_modules/bootstrap/scss/_code.scss","../node_modules/bootstrap/scss/_grid.scss","../node_modules/bootstrap/scss/mixins/_grid.scss","../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../node_modules/bootstrap/scss/mixins/_grid-framework.scss","../node_modules/bootstrap/scss/_tables.scss","../node_modules/bootstrap/scss/mixins/_table-row.scss","../node_modules/bootstrap/scss/_forms.scss","../node_modules/bootstrap/scss/mixins/_transition.scss","../node_modules/bootstrap/scss/mixins/_forms.scss","../node_modules/bootstrap/scss/mixins/_gradients.scss","../node_modules/bootstrap/scss/_buttons.scss","../node_modules/bootstrap/scss/mixins/_buttons.scss","../node_modules/bootstrap/scss/_transitions.scss","../node_modules/bootstrap/scss/_dropdown.scss","../node_modules/bootstrap/scss/mixins/_caret.scss","../node_modules/bootstrap/scss/mixins/_nav-divider.scss","../node_modules/bootstrap/scss/_button-group.scss","../node_modules/bootstrap/scss/_input-group.scss","../node_modules/bootstrap/scss/_custom-forms.scss","../node_modules/bootstrap/scss/_nav.scss","../node_modules/bootstrap/scss/_navbar.scss","../node_modules/bootstrap/scss/_card.scss","../node_modules/bootstrap/scss/_breadcrumb.scss","../node_modules/bootstrap/scss/_pagination.scss","../node_modules/bootstrap/scss/mixins/_pagination.scss","../node_modules/bootstrap/scss/_badge.scss","../node_modules/bootstrap/scss/mixins/_badge.scss","../node_modules/bootstrap/scss/_jumbotron.scss","../node_modules/bootstrap/scss/_alert.scss","../node_modules/bootstrap/scss/mixins/_alert.scss","../node_modules/bootstrap/scss/_progress.scss","../node_modules/bootstrap/scss/_media.scss","../node_modules/bootstrap/scss/_list-group.scss","../node_modules/bootstrap/scss/mixins/_list-group.scss","../node_modules/bootstrap/scss/_close.scss","../node_modules/bootstrap/scss/_toasts.scss","../node_modules/bootstrap/scss/_modal.scss","../node_modules/bootstrap/scss/_tooltip.scss","../node_modules/bootstrap/scss/mixins/_reset-text.scss","../node_modules/bootstrap/scss/_popover.scss","../node_modules/bootstrap/scss/_carousel.scss","../node_modules/bootstrap/scss/mixins/_clearfix.scss","../node_modules/bootstrap/scss/_spinners.scss","../node_modules/bootstrap/scss/utilities/_align.scss","../node_modules/bootstrap/scss/mixins/_background-variant.scss","../node_modules/bootstrap/scss/utilities/_background.scss","../node_modules/bootstrap/scss/utilities/_borders.scss","../node_modules/bootstrap/scss/utilities/_display.scss","../node_modules/bootstrap/scss/utilities/_embed.scss","../node_modules/bootstrap/scss/utilities/_flex.scss","../node_modules/bootstrap/scss/utilities/_float.scss","../node_modules/bootstrap/scss/utilities/_overflow.scss","../node_modules/bootstrap/scss/utilities/_position.scss","../node_modules/bootstrap/scss/utilities/_screenreaders.scss","../node_modules/bootstrap/scss/mixins/_screen-reader.scss","../node_modules/bootstrap/scss/utilities/_shadows.scss","../node_modules/bootstrap/scss/utilities/_sizing.scss","../node_modules/bootstrap/scss/utilities/_stretched-link.scss","../node_modules/bootstrap/scss/utilities/_spacing.scss","../node_modules/bootstrap/scss/utilities/_text.scss","../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../node_modules/bootstrap/scss/mixins/_text-emphasis.scss","../node_modules/bootstrap/scss/mixins/_text-hide.scss","../node_modules/bootstrap/scss/utilities/_visibility.scss","../node_modules/bootstrap/scss/_print.scss"],"names":[],"mappings":"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8Q4B;;;AEtQ9B;EC/EE;EACA;;;ADmFF;ECpFE;EACA;;;ADsFF;EACE;;AAEA;EACE,cFwP0B;;;AE9O9B;EHjCI;EGmCF;;;AAIF;EACE,eFwBO;EDTH,WAtCa;;;AG2BnB;EACE;EH7CE;EG+CF,OF1GS;;AE4GT;EACE;;;AEnHJ;ECIE;EAGA;;;ADDF;EACE,SJigCkC;EIhgClC,kBJRS;EIST;EEXE,eN6O0B;EKvO5B;EAGA;;;ADcF;EAEE;;;AAGF;EACE;EACA;;;AAGF;ELkCI;EKhCF,OJ3BS;;;AOZX;ERuEI;EQrEF,OPoCQ;EOnCR;;AAGA;EACE;;;AAKJ;EACE;ER0DE;EQxDF,OPTS;EOUT,kBPDS;EMXP,eN+O0B;;AO/N5B;EACE;ERkDA;EQhDA,aP4Q0B;;;AOtQ9B;EACE;ERyCE;EQvCF,OPjBS;;AOoBT;ERoCE;EQlCA;EACA;;;AAKJ;EACE,YP4jCkC;EO3jClC;;;ACxCA;ECDA;EACA;EACA;EACA;EACA;;ACmDE;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;AUzJnB;EFtDF;ICWI,WToMiB;;;;AQzMrB;ECPA;EACA;EACA;EACA;EACA;;;ACmDE;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AUzJnB;EFrCE;IACE,WR6Le;;;AQzKrB;ECrBA;EACA;EACA;EACA;;;ADwBA;EACE;EACA;;AAEA;AAAA;EAEE;EACA;;;AGlDJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;EACA;EACA;;;AAmBE;EACE;EACA;EACA;;;AF+BN;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AAFF;EACE;EACA;;;AExBE;EFMJ;EACA;EACA;;;AEHM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;AEGM;EFPN;EAIA;;;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AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;ACvF/B;AAAA;AAAA;AAAA;EAIE,cDmFyE;;;AXxF/E;EYiBM,kBAJe;;AAMf;AAAA;EAEE,kBARa;;;AAnBnB;AAAA;AAAA;EAGE,kBD2F+B;;AC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2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADIN;ECvDA;EFAE,kBjByEW;EmBvEb,cnBuEa;;ACnEb;EkBAE;EFNA,kBED2D;EAS3D,cATqG;;AAYvG;EAEE;EFbA,kBED2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADIN;ECvDA;EFAE,kBjByEW;EmBvEb,cnBuEa;;ACnEb;EkBAE;EFNA,kBED2D;EAS3D,cATqG;;AAYvG;EAEE;EFbA,kBED2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADIN;ECvDA;EFAE,kBjByEW;EmBvEb,cnBuEa;;ACnEb;EkBAE;EFNA,kBED2D;EAS3D,cATqG;;AAYvG;EAEE;EFbA,kBED2D;EAgB3D,cAhBqG;EAqBnG;;AAKJ;EAEE;EACA,kBnB6CW;EmB5CX,cnB4CW;;AmBrCb;EAGE;EACA,kBAzC+I;EA6C/I,cA7CyL;;AA+CzL;EAKI;;;ADUN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;AD7BN;ECHA,OnBea;EmBdb,cnBca;;ACnEb;EkBwDE,OALgD;EAMhD,kBnBUW;EmBTX,cnBSW;;AmBNb;EAEE;;AAGF;EAEE,OnBDW;EmBEX;;AAGF;EAGE;EACA,kBnBTW;EmBUX,cnBVW;;AmBYX;EAKI;;;ADlBR;EACE,alBoN4B;EkBnN5B,OlBkGwC;EkBjGxC,iBlBkGwC;;ACvKxC;EiBwEE,OlBgGsC;EkB/FtC,iBlBgGsC;;AkB7FxC;EAEE,iBlB2FsC;EkB1FtC;;AAGF;EAEE,OlBnFO;EkBoFP;;;AAWJ;ECJE;EpBuBI,WAtCa;EoBiBjB,anBkI4B;EMvO1B,eN8O0B;;;AkBnI9B;ECRE;EpBuBI,WAtCa;EoBiBjB,anBmI4B;EMxO1B,eN+O0B;;;AkB3H9B;EACE;EACA;;AAGA;EACE,YlB6T0B;;;AkBrT5B;AAAA;AAAA;EACE;;;AExIJ;ELMM,YKLJ;;ALUE;EKXJ;ILYM;;;AKTJ;EACE;;;AAKF;EACE;;;AAIJ;EACE;EACA;EACA;ELXI,YKYJ;;ALPE;EKGJ;ILFM;;;;AMXN;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;;ACoBE;EACE;EACA,atBkOwB;EsBjOxB,gBtBgOwB;EsB/NxB;EAhCJ;EACA;EACA;EACA;;AAqDE;EACE;;;AD1CN;EACE;EACA;EACA;EACA,SrB4pBkC;EqB3pBlC;EACA;EACA,WrBkuBkC;EqBjuBlC;EACA;EtBsGI,WAtCa;EsB9DjB,OrBXS;EqBYT;EACA;EACA,kBrBvBS;EqBwBT;EACA;Ef3BE,eN6O0B;;;AqBzM1B;EACE;EACA;;;AAGF;EACE;EACA;;;AXYF;EWnBA;IACE;IACA;;;EAGF;IACE;IACA;;;AXYF;EWnBA;IACE;IACA;;;EAGF;IACE;IACA;;;AXYF;EWnBA;IACE;IACA;;;EAGF;IACE;IACA;;;AXYF;EWnBA;IACE;IACA;;;EAGF;IACE;IACA;;;AAQJ;EACE;EACA;EACA;EACA,erB+rBgC;;AsB9tBhC;EACE;EACA,atBkOwB;EsBjOxB,gBtBgOwB;EsB/NxB;EAzBJ;EACA;EACA;EACA;;AA8CE;EACE;;;ADWJ;EACE;EACA;EACA;EACA;EACA,arBirBgC;;AsB9tBhC;EACE;EACA,atBkOwB;EsBjOxB,gBtBgOwB;EsB/NxB;EAlBJ;EACA;EACA;EACA;;AAuCE;EACE;;ADqBF;EACE;;;AAMJ;EACE;EACA;EACA;EACA;EACA,crBgqBgC;;AsB9tBhC;EACE;EACA,atBkOwB;EsBjOxB,gBtBgOwB;EsB/NxB;;AAWA;EACE;;AAGF;EACE;EACA,ctB+MsB;EsB9MtB,gBtB6MsB;EsB5MtB;EA9BN;EACA;EACA;;AAiCE;EACE;;ADsCF;EACE;;;AAQJ;EAIE;EACA;;;AAKJ;EE9GE;EACA;EACA;EACA;;;AFkHF;EACE;EACA;EACA;EACA;EACA,arBoK4B;EqBnK5B,OrBhHS;EqBiHT;EACA;EACA;EACA;;ApBpHA;EoBmIE,OrBqnBgC;EqBpnBhC;EJ9IA,kBjBEO;;AqBgJT;EAEE,OrBnJO;EqBoJP;EJrJA,kBjBuP0B;;AqB9F5B;EAEE,OrBpJO;EqBqJP;EACA;;;AAQJ;EACE;;;AAIF;EACE;EACA;EACA;EtBpDI,WAtCa;EsB4FjB,OrBxKS;EqByKT;;;AAIF;EACE;EACA;EACA,OrB7KS;;;AwBbX;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;EACE;EACA;;AvBCF;AAAA;EuBII;;AAEF;AAAA;AAAA;AAAA;EAGE;;;AAMN;EACE;EACA;EACA;;AAEA;EACE;;;AAMF;AAAA;EAEE;;AAIF;AAAA;ElBxBE,yBkB0B6B;ElBzB7B,4BkByB6B;;AAG/B;AAAA;ElBfE,wBkBiB4B;ElBhB5B,2BkBgB4B;;;AAgBhC;EACE;EACA;;AAEA;EAGE;;AAGF;EACE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;;;AAoBF;EACE;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;AAAA;EAEE;;AAIF;AAAA;ElBlGE,4BkBoG8B;ElBnG9B,2BkBmG8B;;AAGhC;AAAA;ElBrHE,wBkBuH2B;ElBtH3B,yBkBsH2B;;;AAkB7B;AAAA;EAEE;;AAEA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;;ACzJN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAIE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAKJ;AAAA;AAAA;EAGE;;AAIF;EACE;;AAKA;AAAA;EnBtBA,yBmBsBkD;EnBrBlD,4BmBqBkD;;AAClD;AAAA;EnBTA,wBmBSkD;EnBRlD,2BmBQkD;;AAKpD;EACE;EACA;;AAEA;EnBhCA,yBmBiC4E;EnBhC5E,4BmBgC4E;;AAC5E;EnBpBA,wBmBoBqE;EnBnBrE,2BmBmBqE;;;AAWzE;AAAA;EAEE;;AAKA;AAAA;EACE;EACA;;AAEA;AAAA;EACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIE;;;AAIJ;EAAuB;;;AACvB;EAAsB;;;AAQtB;EACE;EACA;EACA;EACA;E1BwBI,WAtCa;E0BgBjB,azB0L4B;EyBzL5B,azB8L4B;EyB7L5B,OzB7FS;EyB8FT;EACA;EACA,kBzBrGS;EyBsGT;EnB1GE,eN6O0B;;AyB/H5B;AAAA;EAEE;;;AAUJ;AAAA;EAEE,QzBuXsC;;;AyBpXxC;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;E1BXI,WAtCa;E0BmDjB,azBgG4B;EMvO1B,eN8O0B;;;AyBnG9B;AAAA;EAEE,QzBqWsC;;;AyBlWxC;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;E1B5BI,WAtCa;E0BoEjB,azBgF4B;EMxO1B,eN+O0B;;;AyBnF9B;AAAA;EAEE;;;AAWF;AAAA;AAAA;AAAA;AAAA;AAAA;EnBzJI,yBmB+J2B;EnB9J3B,4BmB8J2B;;;AAG/B;AAAA;AAAA;AAAA;AAAA;AAAA;EnBpJI,wBmB0J0B;EnBzJ1B,2BmByJ0B;;;ACpL9B;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA,c1B6fsC;;;A0B1fxC;EACE;EACA;EACA;EACA,O1ByfsC;E0BxftC;EACA;;AAEA;EACE,O1BvBO;E0BwBP,c1B8N0B;EiBvP1B,kBjBuP0B;;A0BzN5B;EAKI,Y1BoWwB;;A0BhW5B;EACE,c1B0boC;;A0BvbtC;EACE,O1B3CO;E0B4CP,kB1Bsf4C;E0Brf5C,c1Bqf4C;;A0B9e5C;EACE,O1B/CK;;A0BiDL;EACE,kB1BtDG;;;A0BgEX;EACE;EACA;EAEA;;AAIA;EACE;EACA;EACA;EACA;EACA,O1B4boC;E0B3bpC,Q1B2boC;E0B1bpC;EACA;EACA,kB1BnFO;E0BoFP;;AAKF;EACE;EACA;EACA;EACA;EACA,O1B6aoC;E0B5apC,Q1B4aoC;E0B3apC;EACA;;;AAUF;EpB7GE,eN6O0B;;A0B3H1B;EACE;;AAKF;EACE,c1B+HwB;EiBvP1B,kBjBuP0B;;A0B3H1B;EACE;;AAKF;EACE,kB1BwZ0C;;A0BtZ5C;EACE,kB1BqZ0C;;;A0B3Y9C;EAEE,e1B8Z4C;;A0B1Z5C;EACE;;AAKF;EACE,kB1B8X0C;;;A0BpXhD;EACE;;AAGE;EACE;EACA,O1BsY0C;E0BrY1C;EAEA,e1BoY0C;;A0BjY5C;EACE;EACA;EACA,O1B+X0C;E0B9X1C,Q1B8X0C;E0B7X1C,kB1BlLK;E0BoLL,e1B0X0C;EepjB1C,YW2LA;;AXtLF;EW8KA;IX7KE;;;AW0LF;EACE,kB1BhMK;E0BiML;;AAKF;EACE,kB1BmV0C;;;A0BvUhD;EACE;EACA;EACA,Q1ByRsC;E0BxRtC;E3B/FI,WAtCa;E2BwIjB,a1BkE4B;E0BjE5B,a1BsE4B;E0BrE5B,O1BrNS;E0BsNT;EACA;EACA;EpBjOE,eN6O0B;E0BT5B;;AAEA;EACE,c1B4PoC;E0B3PpC;EAIE,Y1BwW8B;;A0BrWhC;EAME,O1B5OK;E0B6OL,kB1BpPK;;A0BwPT;EAEE;EACA,e1BoI0B;E0BnI1B;;AAGF;EACE,O1B1PO;E0B2PP,kB1B/PO;;A0BmQT;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE,Q1B+NsC;E0B9NtC,a1BsH4B;E0BrH5B,gB1BqH4B;E0BpH5B,c1BqH4B;EDjRxB,WAtCa;;;A2BsMnB;EACE,Q1BwNsC;E0BvNtC,a1BmH4B;E0BlH5B,gB1BkH4B;E0BjH5B,c1BkH4B;EDtRxB,WAtCa;;;A2BmNnB;EACE;EACA;EACA;EACA,Q1BsMsC;E0BrMtC;;;AAGF;EACE;EACA;EACA;EACA,Q1B8LsC;E0B7LtC;EACA;;AAEA;EACE,c1B2KoC;E0B1KpC,Y1B+E0B;;A0B3E5B;EAEE,kB1B3TO;;A0B+TP;EACE,S1BiUa;;A0B7TjB;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,Q1B8JsC;E0B7JtC;EAEA,a1BxD4B;E0ByD5B,a1BpD4B;E0BqD5B,O1B/US;E0BgVT,kB1BvVS;E0BwVT;EpB1VE,eN6O0B;;A0BiH5B;EACE;EACA;EACA;EACA;EACA;EACA;EACA,Q1BwIoC;E0BvIpC;EACA,a1BpE0B;E0BqE1B,O1B/VO;E0BgWP;ETxWA,kBjBGO;E0BuWP;EpB3WA,eoB4WuB;;;AAU3B;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EAA0B,Y1B2Oe;;A0B1OzC;EAA0B,Y1B0Oe;;A0BzOzC;EAA0B,Y1ByOe;;A0BtO3C;EACE;;AAGF;EACE,O1B2NyC;E0B1NzC,Q1B0NyC;E0BzNzC;ET7YA,kBjBuP0B;E0BwJ1B,Q1B0NyC;EM1mBzC,eN2mByC;Ee1mBvC,YWkZF;EACA;;AX9YA;EWqYF;IXpYI;;;AW+YF;ETrZA,kBjB8mByC;;A0BpN3C;EACE,O1BoMgC;E0BnMhC,Q1BoMgC;E0BnMhC;EACA,Q1BmMgC;E0BlMhC,kB1B3ZO;E0B4ZP;EpBjaA,eNomBgC;;A0B9LlC;EACE,O1BgMyC;E0B/LzC,Q1B+LyC;EiBtmBzC,kBjBuP0B;E0BkL1B,Q1BgMyC;EM1mBzC,eN2mByC;Ee1mBvC,YW4aF;EACA;;AXxaA;EWgaF;IX/ZI;;;AWyaF;ET/aA,kBjB8mByC;;A0B1L3C;EACE,O1B0KgC;E0BzKhC,Q1B0KgC;E0BzKhC;EACA,Q1ByKgC;E0BxKhC,kB1BrbO;E0BsbP;EpB3bA,eNomBgC;;A0BpKlC;EACE,O1BsKyC;E0BrKzC,Q1BqKyC;E0BpKzC;EACA,c1B9D0B;E0B+D1B,a1B/D0B;EiBrY1B,kBjBuP0B;E0B+M1B,Q1BmKyC;EM1mBzC,eN2mByC;Ee1mBvC,YWycF;EACA;;AXrcA;EW0bF;IXzbI;;;AWscF;ET5cA,kBjB8mByC;;A0B7J3C;EACE,O1B6IgC;E0B5IhC,Q1B6IgC;E0B5IhC;EACA,Q1B4IgC;E0B3IhC;EACA;EACA;;AAIF;EACE,kB1BzdO;EMLP,eNomBgC;;A0BlIlC;EACE;EACA,kB1B/dO;EMLP,eNomBgC;;A0B3HhC;EACE,kB1BneK;;A0BseP;EACE;;AAGF;EACE,kB1B3eK;;A0B8eP;EACE;;AAGF;EACE,kB1BnfK;;;A0BwfX;AAAA;AAAA;EX9fM,YWigBJ;;AX5fE;EWyfJ;AAAA;AAAA;IXxfM;;;;AYPN;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;A1BCA;E0BEE;;AAIF;EACE,O3BVO;E2BWP;EACA;;;AAQJ;EACE;;AAEA;EACE;;AAGF;EACE;ErB3BA,wBNoO0B;EMnO1B,yBNmO0B;;AClO5B;E0B6BI,c3BqpB8B;;A2BlpBhC;EACE,O3BpCK;E2BqCL;EACA;;AAIJ;AAAA;EAEE,O3B3CO;E2B4CP,kB3BnDO;E2BoDP,c3B0oBgC;;A2BvoBlC;EAEE;ErBlDA,wBqBoD2B;ErBnD3B,yBqBmD2B;;;AAU7B;ErBvEE,eN6O0B;;A2BlK5B;AAAA;EAEE,O3B3EO;E2B4EP,kB3B0K0B;;;A2BhK5B;EACE;EACA;;;AAKF;EACE;EACA;EACA;;;AAUF;EACE;;AAEF;EACE;;;ACpGJ;EA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2BN8M0B;;A+B3M1B;EzBlBA,yBN6N0B;EM5N1B,4BN4N0B;;A+BtM5B;EACE;EACA,O/BvCO;E+BwCP,kB/B8M0B;E+B7M1B,c/B6M0B;;A+B1M5B;EACE,O/BvCO;E+BwCP;EAEA;EACA,kB/BjDO;E+BkDP,c/B/CO;;;AgCPT;EACE;EjC2HE,WAtCa;EiCnFf,ahCsO0B;;AgCjOxB;E1BwBF,wBNgN0B;EM/M1B,2BN+M0B;;AgCnOxB;E1BKF,yBN8N0B;EM7N1B,4BN6N0B;;;AgChP5B;EACE;EjC2HE,WAtCa;EiCnFf,ahCuO0B;;AgClOxB;E1BwBF,wBNiN0B;EMhN1B,2BNgN0B;;AgCpOxB;E1BKF,yBN+N0B;EM9N1B,4BN8N0B;;;AiC/O9B;EACE;EACA;ElCiEE;EkC/DF,ajC2R4B;EiC1R5B;EACA;EACA;EACA;E3BRE,eN6O0B;Ee5OxB,YkBSJ;;AlBJE;EkBNJ;IlBOM;;;AdIJ;EgCGI;;;AAKJ;EACE;;;AAKJ;EACE;EACA;;;AAOF;EACE,ejC63BkC;EiC53BlC,cjC43BkC;EMh6BhC,eNm6BgC;;;AiCt3BlC;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ADqCJ;ECjDA;EACA,kBlC6Ea;;AC/Db;EiCVI;EACA;;AAGF;EAEE;EACA;;;ACbN;EACE;EACA,enCqzBkC;EmCnzBlC,kBnCKS;EMJP,eN8O0B;;AUvL1B;EyB5DJ;IAQI;;;;AAIJ;EACE;EACA;E7BTE,e6BUqB;;;ACXzB;EACE;EACA;EACA,epCq9BkC;EoCp9BlC;E9BHE,eN6O0B;;;AoCrO9B;EAEE;;;AAIF;EACE,apCgR4B;;;AoCxQ9B;EACE;;AAGA;EACE;EACA;EACA;EACA;EACA;;;AAUF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ADqCF;EC9CA,OD+CqH;EnB1CnH,kBmB0CuB;EC7CzB,cD6CqE;;AC3CrE;EACE;;AAGF;EACE;;;ACRF;EACE;IAAO;;EACP;IAAK;;;AAIT;EACE;EACA,QtC89BkC;EsC79BlC;EvCoHI,WAtCa;EuC5EjB,kBtCJS;EMJP,eN6O0B;;;AsChO9B;EACE;EACA;EACA;EACA;EACA,OtChBS;EsCiBT;EACA;EACA,kBtCo9BkC;Eex+B9B,YuBqBJ;;AvBhBE;EuBOJ;IvBNM;;;;AuBkBN;ErBaE;EqBXA;;;AAIA;EACE;;AAGE;EAJJ;IAKM;;;;ACzCR;EACE;EACA;;;AAGF;EACE;;;ACFF;EACE;EACA;EAGA;EACA;;;AASF;EACE;EACA,OxCPS;EwCQT;;AvCNA;EuCUE;EACA,OxCbO;EwCcP;EACA,kBxCrBO;;AwCwBT;EACE,OxCjBO;EwCkBP,kBxCzBO;;;AwCkCX;EACE;EACA;EACA;EAEA,kBxCzCS;EwC0CT;;AAEA;ElCrCE,wBNoO0B;EMnO1B,yBNmO0B;;AwC3L5B;ElC3BE,4BNsN0B;EMrN1B,2BNqN0B;;AwCvL5B;EAEE,OxChDO;EwCiDP;EACA,kBxCxDO;;AwC4DT;EACE;EACA,OxC9DO;EwC+DP,kBxCuL0B;EwCtL1B,cxCsL0B;;AwCnL5B;EACE;;AAEA;EACE;EACA,kBxCgKwB;;;AwClJ1B;EACE;;AAGE;ElCrCJ,2BNsL0B;EMlM1B,yBkCmDuC;;AAGnC;ElCtDJ,yBNkM0B;EMtL1B,2BkC4CyC;;AAGrC;EACE;;AAGF;EACE,kBxC+HoB;EwC9HpB;;AAEA;EACE;EACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AUnL1B;E8BiCA;IACE;;EAGE;IlCrCJ,2BNsL0B;IMlM1B,yBkCmDuC;;EAGnC;IlCtDJ,yBNkM0B;IMtL1B,2BkC4CyC;;EAGrC;IACE;;EAGF;IACE,kBxC+HoB;IwC9HpB;;EAEA;IACE;IACA,mBxC0HkB;;;AwC3G5B;EACE;EACA;ElCjIA,ekCkIuB;;AAEvB;EACE;;AAKF;EACE;;;AC7IJ;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;ACzJxE;EACE,ODwJsE;ECvJtE,kBDuJuC;;AvC5IzC;EwCPM,ODmJkE;EClJlE;;AAGF;EACE,OzCPG;EyCQH,kBD6IkE;EC5IlE,cD4IkE;;;AE5J1E;EACE;E3C8HI,WAtCa;E2CtFjB,a1CiS4B;E0ChS5B;EACA,O1CYS;E0CXT,a1ColCkC;E0CnlClC;;AzCKA;EyCDE,O1CMO;E0CLP;;AzCIF;EyCCI;;;AAWN;EACE;EACA;EACA;EACA;;;AAMF;EACE;;;ACvCF;EACE,W3Cy4BkC;E2Cx4BlC;E5C6HI,WAtCa;E4CpFjB,kB3C04BkC;E2Cz4BlC;EACA;EACA,Y3C24BkC;E2C14BlC;EACA;ErCLE,eN64BgC;;A2Cr4BlC;EACE,e3C63BgC;;A2C13BlC;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA,O3CtBS;E2CuBT,kB3Ck3BkC;E2Cj3BlC;EACA;;;AAGF;EACE,S3Ci2BkC;;;A4Cr4BpC;EAEE;;AAEA;EACE;EACA;;;AAKJ;EACE;EACA;EACA;EACA,S5C+pBkC;E4C9pBlC;EACA;EACA;EACA;EAGA;;;AAOF;EACE;EACA;EACA,Q5C64BkC;E4C34BlC;;AAGA;E7BrCI,Y6BsCF;EACA,W5Cm6BgC;;Aer8BhC;E6BgCF;I7B/BI;;;A6BmCJ;EACE,W5Ci6BgC;;A4C75BlC;EACE,W5C85BgC;;;A4C15BpC;EACE;EACA;;AAEA;EACE;EACA;;AAGF;AAAA;EAEE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;AAMN;EACE;EACA;EACA;EACA;EAGA;EACA,kB5C1GS;E4C2GT;EACA;EtC9GE,eN8O0B;E4C5H5B;;;AAIF;EACE;EACA;EACA;EACA,S5CojBkC;E4CnjBlC;EACA;EACA,kB5CjHS;;A4CoHT;EAAS;;AACT;EAAS,S5C4zByB;;;A4CvzBpC;EACE;EACA;EACA;EACA,S5C0zBkC;E4CzzBlC;EtClIE,wBN+6BgC;EM96BhC,yBN86BgC;;A4C1yBlC;EACE,S5CqzBgC;E4CnzBhC;;;AAKJ;EACE;EACA,a5C2I4B;;;A4CtI9B;EACE;EAGA;EACA,S5CuwBkC;;;A4CnwBpC;EACE;EACA;EACA;EACA;EACA;EACA;EtCrJE,4BNi6BgC;EMh6BhC,2BNg6BgC;;A4CrwBlC;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EACA;;;AlCvIE;EkC6IF;IACE,W5CmwBgC;I4ClwBhC;;;EAGF;IACE;;EAEA;IACE;;;EAIJ;IACE;;EAEA;IACE;;;EAQJ;IAAY,W5C4uBsB;;;AUl5BhC;EkC0KF;AAAA;IAEE,W5CouBgC;;;AUh5BhC;EkCiLF;IAAY,W5C8tBsB;;;A6C18BpC;EACE;EACA,S7CmrBkC;E6ClrBlC;EACA,Q7Cy1BkC;E8C71BlC,anD8FuB;EmD5FvB;EACA,a9C+R4B;E8C9R5B,a9CmS4B;E8ClS5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;E/CgHI,WAtCa;E8C9EjB;EACA;;AAEA;EAAS,S7C60ByB;;A6C30BlC;EACE;EACA;EACA,O7C60BgC;E6C50BhC,Q7C60BgC;;A6C30BhC;EACE;EACA;EACA;EACA;;;AAKN;EACE;;AAEA;EACE;;AAEA;EACE;EACA;EACA,kB7CvBK;;;A6C4BX;EACE;;AAEA;EACE;EACA,O7C+yBgC;E6C9yBhC,Q7C6yBgC;;A6C3yBhC;EACE;EACA;EACA,oB7CvCK;;;A6C4CX;EACE;;AAEA;EACE;;AAEA;EACE;EACA;EACA,qB7CrDK;;;A6C0DX;EACE;;AAEA;EACE;EACA,O7CixBgC;E6ChxBhC,Q7C+wBgC;;A6C7wBhC;EACE;EACA;EACA,mB7CrEK;;;A6C0FX;EACE,W7C2uBkC;E6C1uBlC;EACA,O7CvGS;E6CwGT;EACA,kB7C/FS;EMZP,eN6O0B;;;A+ClP9B;EACE;EACA;EACA;EACA,S/CirBkC;E+ChrBlC;EACA,W/C22BkC;E8Ch3BlC,anD8FuB;EmD5FvB;EACA,a9C+R4B;E8C9R5B,a9CmS4B;E8ClS5B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;E/CgHI,WAtCa;EgD7EjB;EACA,kB/CNS;E+COT;EACA;EzCVE,eN8O0B;;A+ChO5B;EACE;EACA;EACA,O/C22BgC;E+C12BhC,Q/C22BgC;E+C12BhC;;AAEA;EAEE;EACA;EACA;EACA;EACA;;;AAKN;EACE,e/C41BkC;;A+C11BlC;EACE;;AAEA;EACE;EACA;EACA,kB/Cu1B8B;;A+Cp1BhC;EACE,Q/C6LwB;E+C5LxB;EACA,kB/C7CK;;;A+CkDX;EACE,a/Cw0BkC;;A+Ct0BlC;EACE;EACA,O/Co0BgC;E+Cn0BhC,Q/Ck0BgC;E+Cj0BhC;;AAEA;EACE;EACA;EACA,oB/Cg0B8B;;A+C7zBhC;EACE,M/CsKwB;E+CrKxB;EACA,oB/CpEK;;;A+CyEX;EACE,Y/CizBkC;;A+C/yBlC;EACE;;AAEA;EACE;EACA;EACA,qB/C4yB8B;;A+CzyBhC;EACE,K/CkJwB;E+CjJxB;EACA,qB/CxFK;;A+C6FT;EACE;EACA;EACA;EACA;EACA,O/CwxBgC;E+CvxBhC;EACA;EACA;;;AAIJ;EACE,c/CixBkC;;A+C/wBlC;EACE;EACA,O/C6wBgC;E+C5wBhC,Q/C2wBgC;E+C1wBhC;;AAEA;EACE;EACA;EACA,mB/CywB8B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;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAgC;;;AAChC;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAQF;EAAwB;;;AACxB;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAwB;;;AACxB;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAwB;;;AACxB;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAEF;AAAA;EAEE;;;AAfF;EAAwB;;;AACx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;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAgC;;;EAChC;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAQF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAfF;IAAwB;;;EACxB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAMN;IAAmB;;;EACnB;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;EAEF;AAAA;IAEE;;;AC/DN;EAAkB;;;AAIlB;EAAiB;;;AACjB;EAAiB;;;AACjB;EAAiB;;;AACjB;ECTE;EACA;EACA;;;ADeE;EAAwB;;;AACxB;EAAwB;;;AACxB;EAAwB;;;AzDqCxB;EyDvCA;IAAwB;;;EACxB;IAAwB;;;EACxB;IAAwB;;;AzDqCxB;EyDvCA;IAAwB;;;EACxB;IAAwB;;;EACxB;IAAwB;;;AzDqCxB;EyDvCA;IAAwB;;;EACxB;IAAwB;;;EACxB;IAAwB;;;AzDqCxB;EyDvCA;IAAwB;;;EACxB;IAAwB;;;EACxB;IAAwB;;;AAM5B;EAAmB;;;AACnB;EAAmB;;;AACnB;EAAmB;;;AAInB;EAAuB;;;AACvB;EAAuB;;;AACvB;EAAuB;;;AACvB;EAAuB;;;AACvB;EAAuB;;;AACvB;EAAuB;;;AAIvB;EAAc;;;AEvCZ;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AANN;EACE;;;ApEUF;EoELM;;;AFuCR;EAAa;;;AACb;EAAc;;;AAEd;EAAiB;;;AACjB;EAAiB;;;AAIjB;EGvDE;EACA;EACA;EACA;EACA;;;AHuDF;EAAwB;;;AAExB;EACE;EACA;;;AAKF;EAAc;;;AIjEd;EACE;;;AAGF;EACE;;;ACAA;EACE;AAAA;AAAA;IAKE;IAEA;;;EAIA;IACE;;;EASJ;IACE;;;EAcF;IACE;;;EAEF;AAAA;IAEE;IACA;;;EAQF;IACE;;;EAGF;AAAA;IAEE;;;EAGF;AAAA;AAAA;IAGE;IACA;;;EAGF;AAAA;IAEE;;;EAQF;IACE,MxE4hC8B;;EwE1hChC;IACE;;;EAEF;IACE;;;EAIF;IACE;;;EAEF;IACE;;;EAGF;IACE;;EAEA;AAAA;IAEE;;;EAKF;AAAA;IAEE;;;EAIJ;IACE;;EAEA;AAAA;AAAA;AAAA;IAIE,cxEvHG;;;EwE2HP;IACE;IACA,cxE7HK","file":"style.css"} \ No newline at end of file diff --git a/BeWoPlanerMobil/Content/style.scss b/BeWoPlanerMobil/Content/style.scss index d00b34d3b..5d86d4c42 100644 --- a/BeWoPlanerMobil/Content/style.scss +++ b/BeWoPlanerMobil/Content/style.scss @@ -1,4 +1,4 @@ -$theme-colors: ( "bewo-goal-rating": #0000ff,"bewo-dev": #00cf7c, "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B, "bewo-report": #995E3B); +$theme-colors: ("bewo-teams": #565999, "bewo-goal-rating": #0000ff,"bewo-dev": #00cf7c, "primary": #FF5A00, "bewo-customers": #3b7799, "bewo-service-records": #c80000, "bewo-calendar": #04b4d0, "bewo-is-about-to-expire": #FF0000, "bewo-expires-in-three-months": #FF9400, "bewo-group-booking": #f9e79f, "bewo-customer-card-header": #AB4A07, "bewo-employee": #45993B, "bewo-resource": #04B4D0, "bewo-task-red": #993B3B, "bewo-report": #995E3B); .no-underline { text-decoration: none !important diff --git a/BeWoPlanerMobil/Controllers/MainController.cs b/BeWoPlanerMobil/Controllers/MainController.cs index de51a7934..958d035b7 100644 --- a/BeWoPlanerMobil/Controllers/MainController.cs +++ b/BeWoPlanerMobil/Controllers/MainController.cs @@ -1,12 +1,10 @@ using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Web.Mvc; -using System.Web.Services.Description; using System.Windows.Forms; using BeWo.Service.ServiceImplementations; using BeWo.View.Navigation.Filter; @@ -101,35 +99,7 @@ namespace BeWoPlanerMobil.Controllers Model.ShowExpiredSupportConcepts = UserSettingsUtils.GetSettingValueAsBool(userSettings, SettingsKeys.ShowExpiredSupportConcepts); Model.ShowOnlyOwnSupportConcepts = UserSettingsUtils.GetSettingValueAsBool(userSettings, SettingsKeys.ShowOnlyMySupportConcepts); - if(Model.Zeitraum < 0) - { - int zeitraum; - var serviceRecordTimeInterval = MobileUserSettingsUtils.GetSettingValueAsEnum(userSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, ServiceRecordTimeInterval.LastWeek); - - switch(serviceRecordTimeInterval) - { - case ServiceRecordTimeInterval.LastWeek: - zeitraum = 7; - break; - case ServiceRecordTimeInterval.LastMonth: - zeitraum = 30; - break; - case ServiceRecordTimeInterval.Last3Month: - zeitraum = 7; - break; - case ServiceRecordTimeInterval.All: - zeitraum = 7; - break; - case ServiceRecordTimeInterval.ZeitraumWaehlen: - zeitraum = -1; - break; - default: - zeitraum = 7; - break; - } - - Model.Zeitraum = zeitraum; - } + InitializeInterval(userSettings); var customerFilter = MobileUserSettingsUtils.GetSettingValueAsEnum(userSettings, SettingsKeys.CustomerFilterInZeiterfassung, CustomerFilterEnum.MyCustomer); @@ -163,9 +133,9 @@ namespace BeWoPlanerMobil.Controllers Model.Dokutypes = Model.Dokutypes.OrderBy(s => s.ValueListEntryOid).ToArray(); } - if(MainModel.AllEmployees is null) + if(Model.AllEmployees is null) { - MainModel.AllEmployees = EmployeeService.GetAllActiveEmployeesCompact().OrderBy(e => e.LastName).ToList(); + Model.AllEmployees = EmployeeService.GetAllActiveEmployeesCompact().OrderBy(e => e.LastName).ToList(); } if (MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees)) @@ -211,7 +181,11 @@ namespace BeWoPlanerMobil.Controllers { Model.SelectedConceptCostBearerRelations = new List(); } - + + if(Model.MultiBookingSelectedConceptCostBearerRelations is null) + { + Model.MultiBookingSelectedConceptCostBearerRelations = new List(); + } if(Model.SelectedEmployee is null) { @@ -249,7 +223,7 @@ namespace BeWoPlanerMobil.Controllers Model.HasAnyRatingTypes = OperationsService.GetAllRatingTypes().Any(); } - if(!(Model.CostBearer2SupportConceptOid is null)) + if(!(Model.CostBearer2SupportConceptOid is null) && Model.CostBearer2SupportConceptOid != -1) { LoadRecordsToModel(); } @@ -272,6 +246,31 @@ namespace BeWoPlanerMobil.Controllers return View(Model); } + [Authorize] + private void InitializeInterval(string userSettings) + { + Model.LastSelectedServiceRecordMonth = UserSettingsUtils.GetSettingValueAsDateTime(userSettings, SettingsKeys.LastSelectedServiceRecordMonth) ?? DateTime.Today; + + var serviceRecordTimeInterval = MobileUserSettingsUtils.GetSettingValueAsEnum(userSettings, SettingsKeys.LastSelectedServiceRecordTimeInterval, ServiceRecordTimeInterval.LastWeek); + + if(serviceRecordTimeInterval == ServiceRecordTimeInterval.ZeitraumWaehlen && (Model.SelectedZeitraum?.StartDate is null || Model.SelectedZeitraum.EndDate is null)) + { + var today = DateTime.Today; + Model.SelectedZeitraum = new NullableDateTimeSpan(today.GetFirstOfMonth(), today); + } + + Model.LastSelectedServiceRecordTimeIntervalDays = UserSettingsUtils.GetSettingValueAsInteger(userSettings, SettingsKeys.LastSelectedServiceRecordTimeIntervalDays); + + Model.ServiceRecordTimeInterval = serviceRecordTimeInterval; + + if(Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.Monatsauswahl) + { + Model.SelectedZeitraum = new NullableDateTimeSpan(Model.LastSelectedServiceRecordMonth.Date.GetFirstOfMonth(), Model.LastSelectedServiceRecordMonth.Date.GetLastOfMonth()); + } + + CalculateSelectedDayCount(Model.LastSelectedServiceRecordTimeIntervalDays, Model.LastSelectedServiceRecordMonth, Model.SelectedZeitraum?.StartDate, Model.SelectedZeitraum?.EndDate); + } + [Authorize] public void LoadGoalRatings() { @@ -297,12 +296,14 @@ namespace BeWoPlanerMobil.Controllers { var rating = Model.GoalRatingTypes.FirstOrDefault(ratingType => ratingType.RatingTypeOid == ratingTypeOid); - var goal = Model.GetGoalByOid(goalOid.Value); + var allGoals = GetAllGoalsForSelectedSupportConcept(); - goal.RatingTypeOid = ratingTypeOid; - - if(Model.IsInEditingMode && Model.SelectedGoals.Any(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == goal.ValueListEntryOid)) + var goal = allGoals.FirstOrDefault(g => g.ValueListEntryOid?.Equals(goalOid.Value) ?? false); + + if(!(goal is null) && Model.SelectedGoals.Any(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == goal.ValueListEntryOid)) { + goal.RatingTypeOid = ratingTypeOid; + var selectedGoal = Model.SelectedGoals.FirstOrDefault(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == goal.ValueListEntryOid); if(!(selectedGoal is null)) { @@ -310,12 +311,46 @@ namespace BeWoPlanerMobil.Controllers } } - return SerializeObject(new GoalRating(rating?.DisplayName ?? string.Empty, goal.ValueListEntryOid ?? 0)); + return SerializeObject(new GoalRating(rating?.DisplayName ?? string.Empty, goal?.ValueListEntryOid ?? 0)); } return null; } + private List _AllGoals; + private List GetAllGoalsForSelectedSupportConcept() + { + if(Model?.SelectedSupportConcept?.Goals is null) + { + return new List(); + } + + if(_AllGoals is null) + { + _AllGoals = new List(Model.SelectedSupportConcept.Goals); + } + + LoadParentGoals(Model.SelectedSupportConcept.Goals); + + return _AllGoals; + } + + private void LoadParentGoals(IEnumerable goals) + { + var parentGoalOids = goals.Where(goal => goal.ParentOid.HasValue).Select(goal => goal.ParentOid.Value).Distinct().ToList(); + + var parentGoals = CustomerService.GetSupportConceptGoalParents(parentGoalOids); + + _AllGoals.AddRangeIfElementsNotIn(parentGoals); + + var nextParentGoalOids = parentGoals.Where(goal => goal.ParentOid.HasValue).Select(goal => goal.ParentOid.Value).Distinct().ToList(); + + if(nextParentGoalOids.Any()) + { + LoadParentGoals(parentGoals); + } + } + [HttpPost] [Authorize] public ActionResult SetShowExpiredSupportConcepts(FormCollection pCollection) @@ -979,10 +1014,15 @@ namespace BeWoPlanerMobil.Controllers } } - Model.NewServiceRecord.DurationInStunden = ZeiterfassungsDauer.Minuten; + Model.NewServiceRecord.DurationInStunden = Model.IsShowingDurationInHours ? ZeiterfassungsDauer.Stunden : ZeiterfassungsDauer.Minuten; Model.NewServiceRecord.ServiceRecordFormat = ServiceRecordFormate.OriginaleZeiterfassung; + if(Model.IsEndDateVisible) + { + Model.NewServiceRecord.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitEndDatum; + } + Model.NewServiceRecord.Notice = string.IsNullOrEmpty(doku1) ? null : doku1; Model.NewServiceRecord.Notice2 = string.IsNullOrEmpty(doku2) ? null : doku2; @@ -1016,7 +1056,7 @@ namespace BeWoPlanerMobil.Controllers Model.NewServiceRecord.InsUser = $"{MobileSessionFacade.LoggedInEmployee.FirstName} {MobileSessionFacade.LoggedInEmployee.LastName}"; Model.NewServiceRecord.IsCreatedInMobileClient = true; - if(Model.IsInGroupBookingMode && Model.SelectedSupportConcepts.Count > 1) + if(Model.IsInGroupBookingMode && Model.GroupBookingSelectedSupportConcepts.Count > 1) { return Model.NewServiceRecord.ServiceRecordOid.HasValue ? SaveGroupBooking() : UpdateGroupBooking(); } @@ -1052,18 +1092,13 @@ namespace BeWoPlanerMobil.Controllers } Model.NewServiceRecord = new ServiceRecordDC(); - - if(selectedCostbearerSCRelOid.HasValue) - { - Model.ServiceRecords = OperationsService.FindServiceRecordsForLastDays(selectedCostbearerSCRelOid, Model.Zeitraum, Model.Employee.EmployeeOid).ToList(); - } } catch (Exception e) { Log.Error(e.Message, e); } - ResetGroupBookingMode(Model.IsInGroupBookingMode); + ResetBookingMode(Model.IsInGroupBookingMode ? BookingMode.GroupBookingMode : BookingMode.SingleBookingMode); return ResetEditingMode(); } @@ -1071,10 +1106,10 @@ namespace BeWoPlanerMobil.Controllers [Authorize] private ActionResult SaveGroupBooking() { - var employeeCount = Model.SelectedEmployees.Count; - var personCount = Model.SelectedSupportConcepts.Count; + var employeeCount = Model.GroupBookingSelectedEmployees.Count; + var personCount = Model.GroupBookingSelectedSupportConcepts.Count; - var cb2ScOids = (from scDc in Model.SelectedSupportConcepts + var cb2ScOids = (from scDc in Model.GroupBookingSelectedSupportConcepts where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0 let costBearer2SupportConceptOid = scDc.CostBearerRelations[0].CostBearer2SupportConceptOid where costBearer2SupportConceptOid != null select costBearer2SupportConceptOid.Value).ToList(); @@ -1084,9 +1119,9 @@ namespace BeWoPlanerMobil.Controllers foreach(var dc in list) { - foreach(var emp in Model.SelectedEmployees) + foreach(var emp in Model.GroupBookingSelectedEmployees) { - var newDC = CloneServiceRecordForGroupBooking(dc); + var newDC = CloneServiceRecord(dc); newDC.Employee = emp; newDC.InsertedOn = DateTime.Now; @@ -1136,8 +1171,8 @@ namespace BeWoPlanerMobil.Controllers var group = OperationsService.GetServiceRecordGroup(dc.GroupOid.Value); UpdateServiceRecordGroup(group); - var employeeCount = Model.SelectedEmployees.Count; - var customerCount = Model.SelectedSupportConcepts.Count; + var employeeCount = Model.GroupBookingSelectedEmployees.Count; + var customerCount = Model.GroupBookingSelectedSupportConcepts.Count; group.EmployeeCount = employeeCount; group.CustomerCount = customerCount; @@ -1149,7 +1184,7 @@ namespace BeWoPlanerMobil.Controllers var cb2ScOids = new List(); - foreach(var scdc in Model.SelectedSupportConcepts) + foreach(var scdc in Model.GroupBookingSelectedSupportConcepts) { if(scdc.CostBearerRelations.Count > 0) { @@ -1194,7 +1229,7 @@ namespace BeWoPlanerMobil.Controllers } groupDuration = lRoundedDuration; - roundedDuration = Math.Round(groupDuration / Model.SelectedSupportConcepts.Count, 0 , MidpointRounding.AwayFromZero); + roundedDuration = Math.Round(groupDuration / Model.GroupBookingSelectedSupportConcepts.Count, 0 , MidpointRounding.AwayFromZero); } Model.NewServiceRecord.RoundedDuration = roundedDuration; @@ -1245,10 +1280,10 @@ namespace BeWoPlanerMobil.Controllers Model.NewServiceRecord = null; Model.SelectedServiceRecord = null; - Model.SelectedSupportConcepts = new List(); - Model.SelectedEmployees = new List(); + Model.GroupBookingSelectedSupportConcepts = new List(); + Model.GroupBookingSelectedEmployees = new List(); - ResetGroupBookingMode(false); + ResetBookingMode(BookingMode.SingleBookingMode); Model.IsInEditingMode = false; return ResetEditingMode(); @@ -1257,14 +1292,14 @@ namespace BeWoPlanerMobil.Controllers [Authorize] private IEnumerable CalculateGroupBookingDuration(int pEmployeeCount, int pCustomerCount, ICollection cb2ScOids) { - var compactSupportConcepts = CustomerServiceImp.GetCompactSupportConcepts((from sc in Model.SelectedSupportConcepts where sc.SupportConceptOid != null select sc.SupportConceptOid.Value).ToList(), GetUser().Employee.EmployeeOid); + var compactSupportConcepts = CustomerServiceImp.GetCompactSupportConcepts((from sc in Model.GroupBookingSelectedSupportConcepts where sc.SupportConceptOid != null select sc.SupportConceptOid.Value).ToList(), GetUser().Employee.EmployeeOid); - var nodes = (from supportConcept in Model.SelectedSupportConcepts let cb = supportConcept.CostBearerRelations.FirstOrDefault(f => cb2ScOids.Contains(f.CostBearer2SupportConceptOid.Value)) let sc = compactSupportConcepts.FirstOrDefault(f => f.SupportConceptOid == supportConcept.SupportConceptOid) where cb != null && sc != null select SupportConceptService.CreateFlatSupportConceptItem(sc, CustomerService.LoadOrganisationCompact(cb.CostBearer.OrganisationOid))).ToList(); + var nodes = (from supportConcept in Model.GroupBookingSelectedSupportConcepts let cb = supportConcept.CostBearerRelations.FirstOrDefault(f => cb2ScOids.Contains(f.CostBearer2SupportConceptOid.Value)) let sc = compactSupportConcepts.FirstOrDefault(f => f.SupportConceptOid == supportConcept.SupportConceptOid) where cb != null && sc != null select SupportConceptService.CreateFlatSupportConceptItem(sc, CustomerService.LoadOrganisationCompact(cb.CostBearer.OrganisationOid))).ToList(); var list = new List(); foreach(var node in nodes) { - var sc = CloneServiceRecordForGroupBooking(Model.NewServiceRecord); + var sc = CloneServiceRecord(Model.NewServiceRecord); if(Model.NewServiceRecord.RoundedDuration == 0) { @@ -1302,7 +1337,7 @@ namespace BeWoPlanerMobil.Controllers { roundDuration = true; - foreach(var org in from dc in Model.SelectedSupportConcepts where dc.CostBearerRelations.Count > 0 select dc.CostBearerRelations.First().CostBearer) + foreach(var org in from dc in Model.GroupBookingSelectedSupportConcepts where dc.CostBearerRelations.Count > 0 select dc.CostBearerRelations.First().CostBearer) { if(org != null) { @@ -1376,9 +1411,9 @@ namespace BeWoPlanerMobil.Controllers var oldEmps = new Dictionary(); var newKeys = new Dictionary(); - foreach(var sc in Model.SelectedSupportConcepts) + foreach(var sc in Model.GroupBookingSelectedSupportConcepts) { - foreach(var emp in Model.SelectedEmployees) + foreach(var emp in Model.GroupBookingSelectedEmployees) { var key = emp.EmployeeOid + "_" + sc.SupportConceptOid; if(sc.CostBearerRelations != null && sc.CostBearerRelations.Count > 0) @@ -1426,9 +1461,9 @@ namespace BeWoPlanerMobil.Controllers { if(newKeys.Count > 0) { - foreach(var sc in Model.SelectedSupportConcepts) + foreach(var sc in Model.GroupBookingSelectedSupportConcepts) { - foreach(var emp in Model.SelectedEmployees) + foreach(var emp in Model.GroupBookingSelectedEmployees) { var key = emp.EmployeeOid + "_" + sc.SupportConceptOid; @@ -1450,7 +1485,7 @@ namespace BeWoPlanerMobil.Controllers } else { - newServiceRecord = CloneServiceRecordForGroupBooking(Model.NewServiceRecord); + newServiceRecord = CloneServiceRecord(Model.NewServiceRecord); pGroupDC.ServiceRecordList.Add(newServiceRecord); } @@ -1621,7 +1656,13 @@ namespace BeWoPlanerMobil.Controllers var splitOids = pGoalOids.Trim(';').Split(';'); var selectedGoalOids = splitOids.Select(long.Parse).ToList(); - var goals = sc.Goals.Where(w => w.ValueListEntryOid.HasValue && selectedGoalOids.Contains(w.ValueListEntryOid.Value)).ToList(); + var allGoals = sc.Goals; + var parents = CustomerService.GetSupportConceptGoalParents(allGoals.Where(w => w.ParentOid.HasValue).Select(s => s.ParentOid.Value).ToList()); + + allGoals.AddRangeIfElementsNotIn(parents); + + var goals = allGoals.Where(w => w.ValueListEntryOid.HasValue && selectedGoalOids.Contains(w.ValueListEntryOid.Value)).ToList(); + // ToDo: Hier liegt der Bug! // ToDo: vorhandene Bewertungen beachten! @@ -1652,27 +1693,102 @@ namespace BeWoPlanerMobil.Controllers [Authorize] public ActionResult LoadServiceRecords(FormCollection formCollection) { - if (Model is null) + if(Model is null) { return Logout(); } - var zeitraum = int.Parse(formCollection[FormCollectionConstants.RecordsKey]); - if (zeitraum < 0) - { - zeitraum = 7; - } + int.TryParse(formCollection["day-count-number"], out var dayCountNumber); + var successfullStartParsing = DateTime.TryParse(formCollection["von"], out var parsedVon); + var successfullEndParsing = DateTime.TryParse(formCollection["bis"], out var parsedBis); + int.TryParse(formCollection["month-select"], out var month); + int.TryParse(formCollection["year-select"], out var year); - Model.Zeitraum = zeitraum; + var lastSelectedServiceRecordMonth = new DateTime(year, month, 1); + + if(Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.ZeitraumWaehlen) + { + if(!successfullStartParsing) + { + parsedVon = DateTime.Today.GetFirstOfMonth(); + } + + if(!successfullEndParsing) + { + parsedBis = DateTime.Today; + } + + if(parsedVon > parsedBis) + { + (parsedVon, parsedBis) = (parsedBis, parsedVon); + } + + Model.SelectedZeitraum = new NullableDateTimeSpan(parsedVon, parsedBis); + } + + var serviceRecordTimeInterval = (ServiceRecordTimeInterval) int.Parse(formCollection[FormCollectionConstants.RecordsKey]); + + Model.ServiceRecordTimeInterval = serviceRecordTimeInterval; + + CalculateSelectedDayCount(dayCountNumber, lastSelectedServiceRecordMonth, parsedVon, parsedBis); + + UpdateUserSettingsWithoutReload(SettingsKeys.LastSelectedServiceRecordTimeInterval, ((int) serviceRecordTimeInterval).ToString()); LoadRecordsToModel(); return RedirectToActionPermanent("Main"); } + private void CalculateSelectedDayCount(int? dayCountNumber, DateTime? lastSelectedServiceRecordMonth, DateTime? von, DateTime? bis) + { + if(dayCountNumber is null) + { + dayCountNumber = 0; + } + + if(lastSelectedServiceRecordMonth is null) + { + lastSelectedServiceRecordMonth = DateTime.Today.AddMonths(-1); + } + + if(von is null || bis is null) + { + von = DateTime.Today.GetFirstOfMonth(); + bis = DateTime.Today; + } + + Model.SelectedDayCount = 0; + + switch(Model.ServiceRecordTimeInterval) + { + case ServiceRecordTimeInterval.LastWeek: + Model.SelectedDayCount = 7; + break; + case ServiceRecordTimeInterval.LastMonth: + Model.SelectedDayCount = 30; + break; + case ServiceRecordTimeInterval.Last3Month: + Model.SelectedDayCount = 90; + break; + case ServiceRecordTimeInterval.XTage: + Model.SelectedDayCount = dayCountNumber.Value; + Model.LastSelectedServiceRecordTimeIntervalDays = dayCountNumber.Value; + UpdateUserSettingsWithoutReload(SettingsKeys.LastSelectedServiceRecordTimeIntervalDays, dayCountNumber.ToString()); + break; + case ServiceRecordTimeInterval.Monatsauswahl: + Model.LastSelectedServiceRecordMonth = lastSelectedServiceRecordMonth.Value; + Model.SelectedDayCount = lastSelectedServiceRecordMonth.Value.Date.GetDaysInMonth(); + UpdateUserSettingsWithoutReload(SettingsKeys.LastSelectedServiceRecordMonth, lastSelectedServiceRecordMonth.Value.ToString("dd.MM.yyyy HH:mm:ss")); + break; + case ServiceRecordTimeInterval.ZeitraumWaehlen: + Model.SelectedZeitraum = new NullableDateTimeSpan(von.Value, bis.Value); + break; + } + } + private void LoadRecordsToModel() { - if (Model is null) + if(Model?.Employee?.EmployeeOid is null) { Logout(); return; @@ -1680,12 +1796,35 @@ namespace BeWoPlanerMobil.Controllers Model.ServiceRecords = new List(); - if (Model.Zeitraum < 0 || Model.CostBearer2SupportConceptOid.HasValue && Model.CostBearer2SupportConceptOid.Value == -1) + if(Model.CostBearer2SupportConceptOid.HasValue && Model.CostBearer2SupportConceptOid.Value == -1) { return; } - var records = OperationsService.FindServiceRecordsForLastDays(Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid, Model.Zeitraum, Model.Employee.EmployeeOid); + var records = new List(); + + if(Model.SelectedZeitraum?.StartDate is null || Model.SelectedZeitraum.EndDate is null) + { + Model.SelectedZeitraum = new NullableDateTimeSpan(DateTime.Today.GetFirstOfMonth(), DateTime.Today); + } + + var selectedDayCount = (long?) (Model.SelectedDayCount == 0 ? null : (int?) Model.SelectedDayCount); + + // Ohne Hilfeplan + if(Model.CostBearer2SupportConceptOid is null || Model.CostBearer2SupportConceptOid < 1) + { + records = Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.ZeitraumWaehlen || Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.Monatsauswahl ? + OperationsService.GetEmployeesServiceRecordsWithStartEndDate(Model.Employee.EmployeeOid.Value, Model.SelectedZeitraum.StartDate.Value, Model.SelectedZeitraum.EndDate.Value).ToList() : + OperationsService.GetEmployeesServiceRecords2(Model.Employee.EmployeeOid.Value, selectedDayCount).ToList(); + } + else + { + records = Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.ZeitraumWaehlen || Model.ServiceRecordTimeInterval == ServiceRecordTimeInterval.Monatsauswahl ? + OperationsService.GetCustomerServiceRecordsWithStartEndDate(Model.SelectedSupportConcept.Customer.CustomerOid, Model.CostBearer2SupportConceptOid.Value, Model.SelectedZeitraum.StartDate.Value, Model.SelectedZeitraum.EndDate.Value) : + OperationsService.FindServiceRecordsForLastDays(Model.CostBearer2SupportConceptOid, Model.SelectedDayCount, Model.Employee.EmployeeOid.Value).ToList(); + } + + //records = OperationsService.FindServiceRecordsForLastDays(Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid, dayCount, Model.Employee.EmployeeOid).ToList(); var recordsOhneDuplikate = new List(); foreach(var r in records.Where(r => !recordsOhneDuplikate.Any(a => a.GroupOid.HasValue && a.GroupOid.Value.Equals(r.GroupOid)))) @@ -1756,7 +1895,7 @@ namespace BeWoPlanerMobil.Controllers var employees = group.ServiceRecordList.Select(serviceRecord => serviceRecord.Employee).Distinct().ToList(); - Model.SelectedEmployees = employees; + Model.GroupBookingSelectedEmployees = employees; var cb2ScOids = group.ServiceRecordList.Where(w => w.CostBearer2SupportConceptOid.HasValue).Select(s => s.CostBearer2SupportConceptOid.Value).ToList(); Model.SelectedConceptCostBearerRelations.AddRangeIfElementsNotIn(OperationsService.GetSupportConceptCostBearerRelDCsByOids(cb2ScOids)); @@ -1764,7 +1903,7 @@ namespace BeWoPlanerMobil.Controllers var selectedSupportConcepts = new List(); selectedSupportConcepts.AddRangeIfElementsNotIn(OperationsService.GetSupportConceptsById(group.ServiceRecordList.Select(s => s.SupportConcept.SupportConceptOid))); - Model.SelectedSupportConcepts = selectedSupportConcepts; + Model.GroupBookingSelectedSupportConcepts = selectedSupportConcepts; } return RedirectToActionPermanent("Main"); @@ -1864,7 +2003,7 @@ namespace BeWoPlanerMobil.Controllers checkServiceRecord.Employee = Model.SelectedEmployee ?? MobileSessionFacade.LoggedInCompactEmployee; - if (Model.SelectedEmployee != null && !Model.IsInGroupBookingMode) + if (Model.SelectedEmployee != null && !Model.IsInGroupBookingMode && !Model.IsInMultiBookingMode) { var sc = Model.SupportConcepts.FirstOrDefault(fod => fod.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.HasValue && a.CostBearer2SupportConceptOid.Value.Equals(Model.CostBearer2SupportConceptOid))); @@ -1916,12 +2055,18 @@ namespace BeWoPlanerMobil.Controllers stats = OperationsService.CreateSupportConceptStatistics(Model.CostBearer2SupportConceptOid.Value, DateTime.Now); } - var employees = new List {checkServiceRecord.Employee.EmployeeOid}; + var employeeOids = new List {checkServiceRecord.Employee.EmployeeOid}; var validationResults = new List(); checkServiceRecord.ServiceRecordFormat = ServiceRecordFormate.OriginaleZeiterfassung; - checkServiceRecord.DurationInStunden = ZeiterfassungsDauer.Minuten; + + if(Model.IsEndDateVisible) + { + checkServiceRecord.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitEndDatum; + } + + checkServiceRecord.DurationInStunden = Model.IsShowingDurationInHours ? ZeiterfassungsDauer.Stunden : ZeiterfassungsDauer.Minuten; string dateRangeString = null; @@ -1931,11 +2076,11 @@ namespace BeWoPlanerMobil.Controllers { var serviceRecordGroup = OperationsService.GetServiceRecordGroup(checkServiceRecord.GroupOid.Value); - serviceRecordGroup.ServiceRecordList.DoForEach(sr => employees.AddIfNotIn(sr.Employee.EmployeeOid)); + serviceRecordGroup.ServiceRecordList.DoForEach(sr => employeeOids.AddIfNotIn(sr.Employee.EmployeeOid)); } else { - Model.SelectedEmployees.DoForEach(e => employees.AddIfNotIn(e.EmployeeOid)); + Model.GroupBookingSelectedEmployees.DoForEach(e => employeeOids.AddIfNotIn(e.EmployeeOid)); } var cb2ScOids = Model.SelectedConceptCostBearerRelations.Where(w => w.CostBearer2SupportConceptOid.HasValue).Select(s => s.CostBearer2SupportConceptOid.Value).ToList(); @@ -1944,20 +2089,19 @@ namespace BeWoPlanerMobil.Controllers foreach (var rel in relations) { - var sr = CloneServiceRecordForGroupBooking(checkServiceRecord); + var sr = CloneServiceRecord(checkServiceRecord); sr.SupportConcept = rel.SupportConcept; sr.CostBearer = rel.CostBearer; sr.CostBearer2SupportConceptOid = rel.CostBearer2SupportConceptOid; - - var result = OperationsService.ValidateServiceRecord(sr, null, maxDaysEditSRsAllowed, employees, cb2ScOids); + var result = OperationsService.ValidateServiceRecord(sr, null, maxDaysEditSRsAllowed, employeeOids, cb2ScOids); dateRangeString = rel.DateRangeString; validationResults.Add(new ServiceRecord2Validation(sr, result, dateRangeString)); } } - else + else if(!Model.IsInMultiBookingMode) { if (Model.SelectedSupportConcept != null) { @@ -1965,9 +2109,37 @@ namespace BeWoPlanerMobil.Controllers dateRangeString = node?.SupportConceptTreeNodeDC != null ? node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC.DateRangeString : ""; } - var result = OperationsService.ValidateServiceRecordEntry(checkServiceRecord, stats, maxDaysEditSRsAllowed, checkServiceRecord.GroupOid.HasValue, employees); + var result = OperationsService.ValidateServiceRecordEntry(checkServiceRecord, stats, maxDaysEditSRsAllowed, checkServiceRecord.GroupOid.HasValue, employeeOids); validationResults.Add(new ServiceRecord2Validation(checkServiceRecord, result, dateRangeString ?? "")); } + else if(Model.IsInMultiBookingMode && !Model.IsInGroupBookingMode) + { + employeeOids.AddRangeIfElementsNotIn(Model.MultiBookingSelectedEmployees.Select(e => e.EmployeeOid)); + + var cb2ScOids = Model.MultiBookingSelectedConceptCostBearerRelations.Where(w => w.CostBearer2SupportConceptOid.HasValue).Select(s => s.CostBearer2SupportConceptOid.Value).ToList(); + var relations = CustomerService.GetSupportConceptCostBearerRelationsById(cb2ScOids); + + foreach(var costBearer2SupportConceptRel in relations) + { + dateRangeString = costBearer2SupportConceptRel.DateRangeString ?? string.Empty; + var prototype = CloneServiceRecord(checkServiceRecord); + prototype.Customer = costBearer2SupportConceptRel.SupportConcept.Customer; + prototype.SupportConcept = costBearer2SupportConceptRel.SupportConcept; + prototype.CostBearer = costBearer2SupportConceptRel.CostBearer; + prototype.CostBearer2SupportConceptOid = costBearer2SupportConceptRel.CostBearer2SupportConceptOid; + + var organisation = CustomerService.LoadOrganisationCompact(costBearer2SupportConceptRel.CostBearer.OrganisationOid); + if(!(organisation is null)) + { + var calculations = Calculations.GetInstance(organisation.CostBearerID); + prototype.RoundedDuration = calculations.GetRoundedDuration(organisation, dauer); + } + + var multiBookingValidationResults = OperationsService.ValidateServiceRecord(prototype, null, maxDaysEditSRsAllowed, employeeOids, cb2ScOids); + + validationResults.Add(new ServiceRecord2Validation(prototype, multiBookingValidationResults, dateRangeString)); + } + } var allowOverlappingFLS = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS); var allowOverlappingFLSForEmployee = MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee); @@ -2175,7 +2347,7 @@ namespace BeWoPlanerMobil.Controllers return _LeerzeichenFuerGetMethoden; } - Model.SelectedEmployee = MainModel.AllEmployees.First(f => f.EmployeeOid.Equals(employeeOid)); + Model.SelectedEmployee = Model.AllEmployees.First(f => f.EmployeeOid.Equals(employeeOid)); return _LeerzeichenFuerGetMethoden; } catch (Exception e) @@ -2183,15 +2355,15 @@ namespace BeWoPlanerMobil.Controllers Log.Info("Error in SetServiceRecordEmployee:"); Log.Error(e.Message, e); - if (MainModel.AllEmployees is null) + if (Model.AllEmployees is null) { Log.Info("Weitere Infos: AllEmployees = null!"); } else { - Log.Info($"Weitere Infos: AllEmployees enthält {MainModel.AllEmployees.Count} Elemente: "); + Log.Info($"Weitere Infos: AllEmployees enthält {Model.AllEmployees.Count} Elemente: "); var stringBuilder = new StringBuilder(); - foreach (var ce in MainModel.AllEmployees) + foreach (var ce in Model.AllEmployees) { if (stringBuilder.Length > 0) { @@ -2276,9 +2448,9 @@ namespace BeWoPlanerMobil.Controllers return Logout(); } - var isInGroupBookingMode = "true,false" == pFormCollection[FormCollectionConstants.IsInGroupBookingModeKey]; + var bookingMode = "true,false" == pFormCollection[FormCollectionConstants.IsInGroupBookingModeKey] ? BookingMode.GroupBookingMode : BookingMode.SingleBookingMode; - ResetGroupBookingMode(isInGroupBookingMode); + ResetBookingMode(bookingMode); return RedirectToAction("Main"); } @@ -2289,7 +2461,7 @@ namespace BeWoPlanerMobil.Controllers /// /// Wenn true, wird davon ausgegangen, dass man von der Einzelbuchung in eine Gruppenbuchung wechselt und es wird sich der vorher ausgewählte Mitarbeiter und Hilfeplan gemerkt. /// Bei false wird davon ausgegangen, dass man von der Gruppenbuchung in eine Einzelbuchung wechselt und der vorher ausgewählte Mitarbeiter und Hilfeplan wird automatisch ausgewählt. - private void ResetGroupBookingMode(bool pIsInGroupBookingMode) + private void ResetBookingMode(BookingMode bookingMode) { if (Model is null) { @@ -2297,10 +2469,13 @@ namespace BeWoPlanerMobil.Controllers return; } - Model.IsInGroupBookingMode = pIsInGroupBookingMode; + Model.IsInGroupBookingMode = bookingMode == BookingMode.GroupBookingMode; + Model.IsInMultiBookingMode = bookingMode == BookingMode.MultiBookingMode; - if (pIsInGroupBookingMode) + if(bookingMode == BookingMode.GroupBookingMode) { + ResetMultiBookingMode(); + Model.PreviouslySelectedEmployee = Model.SelectedEmployee; Model.PreviouslySelectedSupportConcept = Model.SelectedSupportConcept; @@ -2309,23 +2484,43 @@ namespace BeWoPlanerMobil.Controllers Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions()); - Model.SelectedEmployees.AddIfNotIn(MobileSessionFacade.LoggedInCompactEmployee); + Model.GroupBookingSelectedEmployees.AddIfNotIn(MobileSessionFacade.LoggedInCompactEmployee); Model.IsInEditingMode = false; Model.SelectedServiceRecord = null; } - else + + if(bookingMode == BookingMode.MultiBookingMode) { - Model.SelectedEmployee = Model.PreviouslySelectedEmployee; + ResetGroupBookingMode(); + + Model.PreviouslySelectedEmployee = Model.SelectedEmployee; + Model.PreviouslySelectedSupportConcept = Model.SelectedSupportConcept; + + Model.SelectedSupportConcept = null; + Model.SelectedEmployee = null; + + Model.ServiceCategories = CreateServiceCategoryModels(OperationsService.GetAllServiceDescriptions()); + + Model.MultiBookingSelectedEmployees.AddIfNotIn(MobileSessionFacade.LoggedInCompactEmployee); + + Model.IsInEditingMode = false; + Model.SelectedServiceRecord = null; + + Model.GroupBookingSelectedCostbearerRelOids.Clear(); + Model.GroupBookingSelectedEmployees.Clear(); + Model.GroupBookingSelectedSupportConcepts.Clear(); + Model.SelectedConceptCostBearerRelations.Clear(); + } + + if(bookingMode == BookingMode.SingleBookingMode) + { + ResetMultiBookingMode(); + + Model.SelectedEmployee = Model.PreviouslySelectedEmployee ?? MobileSessionFacade.LoggedInCompactEmployee; Model.SelectedSupportConcept = Model.PreviouslySelectedSupportConcept; - Model.ServiceCategories.Clear(); - Model.SelectedCostbearerRelOids.Clear(); - Model.SelectedEmployees.Clear(); - Model.SelectedSupportConcepts.Clear(); - Model.SelectedConceptCostBearerRelations.Clear(); - - Model.SelectedEmployee = MobileSessionFacade.LoggedInCompactEmployee; + ResetGroupBookingMode(); if (Model.SelectedSupportConcept != null) { @@ -2345,6 +2540,26 @@ namespace BeWoPlanerMobil.Controllers } } + private void ResetMultiBookingMode() + { + Model.ServiceCategories.Clear(); + Model.MultiBookingSelectedConceptCostBearerRelations.Clear(); + Model.MultiBookingSelectedEmployees.Clear(); + Model.MultiBookingSelectedGroupOfPeopleOids.Clear(); + Model.MultiBookingSelectedCostbearerRelOids.Clear(); + Model.MultiBookingSelectedSupportConcepts.Clear(); + Model.MultiBookingSupportConceptListObjects.Clear(); + } + + private void ResetGroupBookingMode() + { + Model.ServiceCategories.Clear(); + Model.GroupBookingSelectedCostbearerRelOids.Clear(); + Model.GroupBookingSelectedEmployees.Clear(); + Model.GroupBookingSelectedSupportConcepts.Clear(); + Model.SelectedConceptCostBearerRelations.Clear(); + } + [HttpPost] [Authorize] public ActionResult ResetEditingMode() @@ -2357,12 +2572,15 @@ namespace BeWoPlanerMobil.Controllers Model.NewServiceRecord = new ServiceRecordDC(); Model.SelectedServiceRecord = null; Model.IsInEditingMode = false; - Model.SelectedSupportConcepts.Clear(); + Model.GroupBookingSelectedSupportConcepts.Clear(); Model.SelectedConceptCostBearerRelations.Clear(); - Model.SelectedCostbearerRelOids.Clear(); - Model.SelectedGroupOfPeopleOids.Clear(); - Model.SelectedEmployees = new List { MobileSessionFacade.LoggedInCompactEmployee }; + Model.GroupBookingSelectedCostbearerRelOids.Clear(); + Model.GroupBookingSelectedGroupOfPeopleOids.Clear(); + Model.GroupBookingSelectedEmployees = new List { MobileSessionFacade.LoggedInCompactEmployee }; Model.SelectedEmployee = MobileSessionFacade.LoggedInCompactEmployee; + Model.IsInMultiBookingMode = false; + Model.MultiBookingSelectedCostbearerRelOids.Clear(); + Model.MultiBookingSelectedEmployees.Clear(); LoadServiceCategoriesToModel(Model.CostBearer2SupportConceptOid); @@ -2398,7 +2616,7 @@ namespace BeWoPlanerMobil.Controllers rawRelOids.DoForEach(s => relOids.AddIfNotIn(long.Parse(s))); - Model.SelectedGroupOfPeopleOids.Clear(); + Model.GroupBookingSelectedGroupOfPeopleOids.Clear(); rawGroupOids.DoForEach(s => { @@ -2412,10 +2630,10 @@ namespace BeWoPlanerMobil.Controllers group.SupportConceptList.DoForEach(f => relOids.AddRangeIfElementsNotIn(f.CostBearerRelOids)); }); - Model.SelectedSupportConcepts.Clear(); + Model.GroupBookingSelectedSupportConcepts.Clear(); - Model.SelectedCostbearerRelOids.Clear(); - Model.SelectedCostbearerRelOids.AddRangeIfElementsNotIn(relOids); + Model.GroupBookingSelectedCostbearerRelOids.Clear(); + Model.GroupBookingSelectedCostbearerRelOids.AddRangeIfElementsNotIn(relOids); var selectedSupportConcepts = Model.SupportConcepts.Where(w => w != null && w.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.HasValue && relOids.Contains(a.CostBearer2SupportConceptOid.Value))).ToList(); @@ -2424,7 +2642,7 @@ namespace BeWoPlanerMobil.Controllers Model.SelectedConceptCostBearerRelations.Clear(); Model.SelectedConceptCostBearerRelations.AddRangeIfElementsNotIn(groupCostBearerRelations); - Model.SelectedSupportConcepts.AddRangeIfElementsNotIn(selectedSupportConcepts); + Model.GroupBookingSelectedSupportConcepts.AddRangeIfElementsNotIn(selectedSupportConcepts); foreach (var gruppe in groups.Where(g => g.GroupOfPeopleOid.HasValue)) { @@ -2440,11 +2658,11 @@ namespace BeWoPlanerMobil.Controllers if (relOids.ContainsItems(groupRelOids)) { - Model.SelectedGroupOfPeopleOids.AddIfNotIn(groupOid); + Model.GroupBookingSelectedGroupOfPeopleOids.AddIfNotIn(groupOid); } - else if (Model.SelectedGroupOfPeopleOids.Contains(groupOid)) + else if (Model.GroupBookingSelectedGroupOfPeopleOids.Contains(groupOid)) { - Model.SelectedGroupOfPeopleOids.Remove(groupOid); + Model.GroupBookingSelectedGroupOfPeopleOids.Remove(groupOid); } } @@ -2462,18 +2680,18 @@ namespace BeWoPlanerMobil.Controllers long.TryParse(pRelOid, out var supportConceptCostBearerRelationOid); - var supportConcept = Model.SelectedSupportConcepts.FirstOrDefault(f => f.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid)); + var supportConcept = Model.GroupBookingSelectedSupportConcepts.FirstOrDefault(f => f.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid)); var relation = Model.SelectedConceptCostBearerRelations.FirstOrDefault(f => f.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid); - Model.SelectedSupportConcepts.Remove(supportConcept); + Model.GroupBookingSelectedSupportConcepts.Remove(supportConcept); Model.SelectedConceptCostBearerRelations.Remove(relation); - var selectedGroups = Model.GroupsOfPeople.Where(group => group.GroupOfPeopleOid.HasValue && Model.SelectedGroupOfPeopleOids.Contains(group.GroupOfPeopleOid.Value)).ToList(); + var selectedGroups = Model.GroupsOfPeople.Where(group => group.GroupOfPeopleOid.HasValue && Model.GroupBookingSelectedGroupOfPeopleOids.Contains(group.GroupOfPeopleOid.Value)).ToList(); - var groups = selectedGroups.Where(group => group.SupportConceptList.All(a => Model.SelectedSupportConcepts.Where(w => w.SupportConceptOid.HasValue).Select(s => s.SupportConceptOid.Value).Contains(a.SupportConceptOid))); + var groups = selectedGroups.Where(group => group.SupportConceptList.All(a => Model.GroupBookingSelectedSupportConcepts.Where(w => w.SupportConceptOid.HasValue).Select(s => s.SupportConceptOid.Value).Contains(a.SupportConceptOid))); - Model.SelectedGroupOfPeopleOids = groups.Where(group => group.GroupOfPeopleOid.HasValue).Select(group => group.GroupOfPeopleOid.Value).ToList(); + Model.GroupBookingSelectedGroupOfPeopleOids = groups.Where(group => group.GroupOfPeopleOid.HasValue).Select(group => group.GroupOfPeopleOid.Value).ToList(); return SerializeObject(Model.GroupBookingSelectionObject); } @@ -2489,8 +2707,8 @@ namespace BeWoPlanerMobil.Controllers if(string.IsNullOrEmpty(pEmployeeOids)) { - Model.SelectedEmployees.Clear(); - return JsonConvert.SerializeObject(Model.SelectedEmployees.Count); + Model.GroupBookingSelectedEmployees.Clear(); + return JsonConvert.SerializeObject(Model.GroupBookingSelectedEmployees.Count); } var rawEmployeeOids = pEmployeeOids.Split(','); @@ -2500,10 +2718,10 @@ namespace BeWoPlanerMobil.Controllers var employees = Model.Employees.Where(w => oids.Contains(w.EmployeeOid)); - Model.SelectedEmployees.Clear(); - Model.SelectedEmployees.AddRangeIfElementsNotIn(employees); + Model.GroupBookingSelectedEmployees.Clear(); + Model.GroupBookingSelectedEmployees.AddRangeIfElementsNotIn(employees); - return JsonConvert.SerializeObject(Model.SelectedEmployees.Count); + return JsonConvert.SerializeObject(Model.GroupBookingSelectedEmployees.Count); } [Authorize] @@ -2567,7 +2785,7 @@ namespace BeWoPlanerMobil.Controllers { if(Model.SelectedConceptCostBearerRelations.Count == 1) { - var cb2ScOids = (from scDc in Model.SelectedSupportConcepts + var cb2ScOids = (from scDc in Model.GroupBookingSelectedSupportConcepts where scDc.CostBearerRelations != null && scDc.CostBearerRelations.Count > 0 let costBearer2SupportConceptOid = scDc.CostBearerRelations[0].CostBearer2SupportConceptOid where costBearer2SupportConceptOid != null @@ -2728,10 +2946,15 @@ namespace BeWoPlanerMobil.Controllers } } - Model.NewServiceRecord.DurationInStunden = ZeiterfassungsDauer.Minuten; + Model.NewServiceRecord.DurationInStunden = Model.IsZeiterfassungInStdMin ? ZeiterfassungsDauer.Stunden : ZeiterfassungsDauer.Minuten; Model.NewServiceRecord.ServiceRecordFormat = ServiceRecordFormate.OriginaleZeiterfassung; + if(Model.IsEndDateVisible) + { + Model.NewServiceRecord.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitEndDatum; + } + Model.NewServiceRecord.Notice = string.IsNullOrEmpty(doku1) ? null : doku1; Model.NewServiceRecord.Notice2 = string.IsNullOrEmpty(doku2) ? null : doku2; @@ -2803,5 +3026,350 @@ namespace BeWoPlanerMobil.Controllers return _LeerzeichenFuerGetMethoden; } + + + + #region Mehrfachbuchung + + [Authorize] + [HttpPost] + public ActionResult SetMultiBookingMode(FormCollection formCollection) + { + if(Model is null) + { + return Logout(); + } + + try + { + var isInMultiBookingMode = "true,false" == formCollection[FormCollectionConstants.IsInMultiBookingModeKey]; + + Model.IsInMultiBookingMode = isInMultiBookingMode; + + ResetBookingMode(isInMultiBookingMode ? BookingMode.MultiBookingMode : BookingMode.SingleBookingMode); + } + catch(Exception exception) + { + Log.Error(exception.Message, exception); + } + + return RedirectToAction("Main"); + } + + [Authorize] + [HttpPost] + public ActionResult CreateMultiBooking(FormCollection formCollection) + { + if(Model is null) + { + return Logout(); + } + + try + { + string doku1; + + if(Model.Dokutypes != null && Model.Dokutypes.Length > 0) + { + doku1 = formCollection[FormCollectionConstants.Dokumentation1Key]; + } + else + { + doku1 = formCollection[FormCollectionConstants.Dokumentation6Key]; + } + + // Wenn kein Datum angegeben wurde, wird die Main-Seite geladen und abgebrochen + if(string.IsNullOrEmpty(formCollection[FormCollectionConstants.DateKey])) + { + return View("Main", Model); + } + + var distanz = formCollection[FormCollectionConstants.DistanceKey]; + var distanceInMeters = 0; + + if(!string.IsNullOrEmpty(distanz)) + { + if(int.TryParse(distanz, out var parsedDistance)) + { + distanceInMeters = parsedDistance; + } + } + + var selectedCostbearer2SupportConceptRelOid = Model.CostBearer2SupportConceptOid < 1 ? null : Model.CostBearer2SupportConceptOid; + var datum = Convert.ToDateTime(formCollection[FormCollectionConstants.DateKey]); + + var enddatum = datum; + + var endDateString = formCollection[FormCollectionConstants.EndDateKey]; + if(endDateString != null) + { + enddatum = Convert.ToDateTime(endDateString); + } + + var start = formCollection[FormCollectionConstants.StartKey]; + var ende = formCollection[FormCollectionConstants.EndKey]; + var dauer = 0; + + if(datum > enddatum) + { + enddatum = datum; + } + + if(!string.IsNullOrEmpty(formCollection[FormCollectionConstants.DurationKey])) + { + int.TryParse(formCollection[FormCollectionConstants.DurationKey], out dauer); + } + + var doku2 = formCollection[FormCollectionConstants.Dokumentation2Key]; + var doku3 = formCollection[FormCollectionConstants.Dokumentation3Key]; + var doku4 = formCollection[FormCollectionConstants.Dokumentation4Key]; + var doku5 = formCollection[FormCollectionConstants.Dokumentation5Key]; + + var zeitenFeld = new DateTime[2]; + + if(start == string.Empty && ende == string.Empty) + { + zeitenFeld[0] = new DateTime(datum.Year, datum.Month, datum.Day, 0, 0, 1); + + if(enddatum == datum) + { + zeitenFeld[1] = new DateTime(datum.Year, datum.Month, datum.Day, 0, 0, 1).AddMinutes(dauer); + } + else + { + zeitenFeld[1] = new DateTime(enddatum.Year, enddatum.Month, enddatum.Day, 0, 0, 1).AddMinutes(dauer); + } + } + else + { + zeitenFeld = enddatum == datum ? ConvertRecordTimes(start, ende, datum, dauer) : ConvertRecordTimesWithEndDate(start, ende, datum, enddatum, dauer); + } + + if(dauer == 0 || zeitenFeld[1] != zeitenFeld[0]) + { + dauer = (int)(zeitenFeld[1] - zeitenFeld[0]).TotalMinutes; + } + + var serviceRecordsToInsert = new List(); + + if(Model.MultiBookingSelectedConceptCostBearerRelations.Any() && Model.MultiBookingSelectedEmployees.Any()) + { + foreach(var sc2cbRel in Model.MultiBookingSelectedConceptCostBearerRelations) + { + var roundedDuration = dauer; + + var organisation = CustomerService.LoadOrganisationCompact(sc2cbRel.CostBearer.OrganisationOid); + if(!(organisation is null)) + { + var calculations = Calculations.GetInstance(organisation.CostBearerID); + roundedDuration = calculations.GetRoundedDuration(organisation, dauer); + } + + // ToDo: Leere Dokufelder werden als Leerstring gespeichert + // ToDo: Validierungsergebnisse treten mehrfach auf + + foreach(var employee in Model.MultiBookingSelectedEmployees) + { + var newServiceRecord = new ServiceRecordDC + { + IP = Request.UserHostAddress, + Start = zeitenFeld[0], + End = zeitenFeld[1], + DistanceInMeter = distanceInMeters, + RoundedDuration = roundedDuration, + SupportConcept = sc2cbRel.SupportConcept, + CostBearer2SupportConceptOid = sc2cbRel.CostBearer2SupportConceptOid, + CostBearer = sc2cbRel.CostBearer, + DurationInStunden = Model.IsShowingDurationInHours ? ZeiterfassungsDauer.Stunden : ZeiterfassungsDauer.Minuten, + Customer = sc2cbRel.SupportConcept.Customer, + Notice = doku1, + Notice2 = doku2, + Notice3 = doku3, + Notice4 = doku4, + Notice5 = doku5, + InsertedOn = DateTime.Now, + InsUser = $"{MobileSessionFacade.LoggedInEmployee.FirstName} {MobileSessionFacade.LoggedInEmployee.LastName}", + IsCreatedInMobileClient = true, + Employee = employee, + ServiceRecordFormat = ServiceRecordFormate.OriginaleZeiterfassung, + ServiceDescription = OperationsService.GetServiceDescription(Model.SelectedServiceDescriptionOid.Value) + }; + + if(Model.IsEndDateVisible) + { + newServiceRecord.ServiceRecordFormat = ServiceRecordFormate.ZeiterfassungMitEndDatum; + } + + serviceRecordsToInsert.Add(newServiceRecord); + } + } + + OperationsService.InsertNewServiceRecords(serviceRecordsToInsert); + } + } + catch(Exception exception) + { + Log.Error(exception.Message, exception); + } + + return ResetEditingMode(); + } + + [Authorize] + public string AddSupportConceptCostBearerRelationsToMultiBooking(string pRelOids, string pGroupOids) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var rawRelOids = string.IsNullOrEmpty(pRelOids) ? Array.Empty() : pRelOids.Split(','); + var rawGroupOids = string.IsNullOrEmpty(pGroupOids) ? Array.Empty() : pGroupOids.Split(','); + + var relOids = new List(); + var groups = new List(); + + rawRelOids.DoForEach(s => relOids.AddIfNotIn(long.Parse(s))); + + Model.MultiBookingSelectedGroupOfPeopleOids.Clear(); + + rawGroupOids.DoForEach(s => + { + var group = Model.GroupsOfPeople.FirstOrDefault(f => f.GroupOfPeopleOid.HasValue && f.GroupOfPeopleOid.Value.Equals(long.Parse(s))); + if(group is null) + { + return; + } + + groups.AddIfNotIn(group); + group.SupportConceptList.DoForEach(f => relOids.AddRangeIfElementsNotIn(f.CostBearerRelOids)); + }); + + Model.MultiBookingSelectedSupportConcepts.Clear(); + + Model.MultiBookingSelectedCostbearerRelOids.Clear(); + Model.MultiBookingSelectedCostbearerRelOids.AddRangeIfElementsNotIn(relOids); + + var selectedSupportConcepts = Model.SupportConcepts.Where(w => w != null && w.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid.HasValue && relOids.Contains(a.CostBearer2SupportConceptOid.Value))).ToList(); + + var multiBookingCostBearerRelations = CustomerService.GetSupportConceptCostBearerRelationsById(relOids); + + Model.MultiBookingSelectedConceptCostBearerRelations.Clear(); + Model.MultiBookingSelectedConceptCostBearerRelations.AddRangeIfElementsNotIn(multiBookingCostBearerRelations); + + Model.MultiBookingSelectedSupportConcepts.AddRangeIfElementsNotIn(selectedSupportConcepts); + + foreach(var gruppe in groups.Where(g => g.GroupOfPeopleOid.HasValue)) + { + var groupRelOids = new List(); + gruppe.SupportConceptList.ForEach(f => groupRelOids.AddRange(f.CostBearerRelOids)); + + if(!gruppe.GroupOfPeopleOid.HasValue) + { + continue; + } + + var groupOid = gruppe.GroupOfPeopleOid.Value; + + if(relOids.ContainsItems(groupRelOids)) + { + Model.MultiBookingSelectedGroupOfPeopleOids.AddIfNotIn(groupOid); + } + else if(Model.MultiBookingSelectedGroupOfPeopleOids.Contains(groupOid)) + { + Model.MultiBookingSelectedGroupOfPeopleOids.Remove(groupOid); + } + } + + return SerializeObject(Model.MultiBookingSelectionObject); + } + + [Authorize] + public string RemoveSupportConceptCostBearerRelationFromMultiBooking(string pRelOid) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + long.TryParse(pRelOid, out var supportConceptCostBearerRelationOid); + + var supportConcept = Model.MultiBookingSelectedSupportConcepts.FirstOrDefault(f => f.CostBearerRelations.Any(a => a.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid)); + + var relation = Model.MultiBookingSelectedConceptCostBearerRelations.FirstOrDefault(f => f.CostBearer2SupportConceptOid == supportConceptCostBearerRelationOid); + + Model.MultiBookingSelectedSupportConcepts.Remove(supportConcept); + Model.MultiBookingSelectedConceptCostBearerRelations.Remove(relation); + + var selectedGroups = Model.GroupsOfPeople.Where(group => group.GroupOfPeopleOid.HasValue && Model.MultiBookingSelectedGroupOfPeopleOids.Contains(group.GroupOfPeopleOid.Value)).ToList(); + + var groups = selectedGroups.Where(group => group.SupportConceptList.All(a => Model.MultiBookingSelectedSupportConcepts.Where(w => w.SupportConceptOid.HasValue).Select(s => s.SupportConceptOid.Value).Contains(a.SupportConceptOid))); + + Model.MultiBookingSelectedGroupOfPeopleOids = groups.Where(group => group.GroupOfPeopleOid.HasValue).Select(group => group.GroupOfPeopleOid.Value).ToList(); + + return SerializeObject(Model.MultiBookingSelectionObject); + } + + [Authorize] + public string AddEmployeesToMultiBooking(string pEmployeeOids) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + if(string.IsNullOrEmpty(pEmployeeOids)) + { + Model.MultiBookingSelectedEmployees.Clear(); + return JsonConvert.SerializeObject(Model.MultiBookingSelectedEmployees.Count); + } + + var rawEmployeeOids = pEmployeeOids.Split(','); + var oids = new List(); + + rawEmployeeOids.DoForEach(s => oids.AddIfNotIn(long.Parse(s))); + + var employees = Model.Employees.Where(w => oids.Contains(w.EmployeeOid)); + + Model.MultiBookingSelectedEmployees.Clear(); + Model.MultiBookingSelectedEmployees.AddRangeIfElementsNotIn(employees); + + return JsonConvert.SerializeObject(Model.MultiBookingSelectedEmployees.Count); + } + + [Authorize] + public string MultiBookingHasSelectedSupportConcepts() + { + try + { + return JsonConvert.SerializeObject(Model.MultiBookingSelectedConceptCostBearerRelations.Any()); + } + catch(Exception exception) + { + Log.Error(exception.Message, exception); + } + + return JsonConvert.SerializeObject(false); + } + + [Authorize] + public string MultiBookingHasSelectedEmployees() + { + try + { + return JsonConvert.SerializeObject(Model.MultiBookingSelectedEmployees.Any()); + } + catch(Exception exception) + { + Log.Error(exception.Message, exception); + } + + return JsonConvert.SerializeObject(false); + } + + #endregion } } diff --git a/BeWoPlanerMobil/Controllers/SchedulerController.cs b/BeWoPlanerMobil/Controllers/SchedulerController.cs index 0b8ac6d66..6f0972bef 100644 --- a/BeWoPlanerMobil/Controllers/SchedulerController.cs +++ b/BeWoPlanerMobil/Controllers/SchedulerController.cs @@ -49,7 +49,7 @@ namespace BeWoPlanerMobil.Controllers [Authorize] public ActionResult Scheduler() { - if (!MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeScheduler) + if(!MobileSessionFacade.IsUserLoggedIn() || Request.Browser.Browser.Equals("InternetExplorer") || !AbstractModel.IsAllowedToSeeScheduler) { return Logout(); } @@ -68,6 +68,22 @@ namespace BeWoPlanerMobil.Controllers Model.ResourceCategories2Resources = categories2Resources; } + if(Model?.Employee?.EmployeeOid.HasValue ?? false) + { + var compactEmployee = EmployeeService.GetActiveCompactEmployeeWithOid(Model.Employee.EmployeeOid.Value); + + Model.MyTeamEmployees = EmployeeService.GetAllTeamMember(compactEmployee); + } + else if(!(Model is null)) + { + Model.MyTeamEmployees = new List(); + } + + if(AbstractModel.HasRightToViewTeams && (Model?.Employee?.EmployeeOid.HasValue ?? false)) + { + Model.MyTeams = EmployeeService.GetAllActiveCompactTeamsForEmployee(Model.Employee.EmployeeOid.Value); + } + LoadAppointmentsForDate(); return View(Model); @@ -98,23 +114,21 @@ namespace BeWoPlanerMobil.Controllers end = sunday; } - var selectedCustomers = Model.SelectedCustomers?.Select(s => s.CustomerOid).ToList() ?? new List(); - var selectedEmployees = Model.SelectedEmployees?.Select(s => s.EmployeeOid).ToList() ?? new List(); - var selectedResources = Model.SelectedResources?.Where(w => w.ResourceOid.HasValue).Select(s => s.ResourceOid.Value).ToList() ?? new List(); + var selectedCustomers = Model.SelectedCustomersForFiltering?.Select(s => s.CustomerOid).ToList() ?? new List(); + var selectedEmployees = Model.SelectedEmployeesForFiltering?.Select(s => s.EmployeeOid).ToList() ?? new List(); + var selectedResources = Model.SelectedResourcesForFiltering?.Where(w => w.ResourceOid.HasValue).Select(s => s.ResourceOid.Value).ToList() ?? new List(); - var appointments = KalenderService.LoadFilteredAppointmentsMitAufgaben(AbstractModel.HasRightToSeeAllEmployeeAppointments, Model.Employee.EmployeeOid.Value, start.Date, end, selectedEmployees, selectedCustomers, selectedResources, false, false, false, false, true, true).ToList(); + var appointments = KalenderService.LoadFilteredAppointmentsMitAufgaben(AbstractModel.HasRightToViewEmployeeAppointments, Model.Employee.EmployeeOid.Value, start.Date, end, selectedEmployees, selectedCustomers, selectedResources, false, false, false, false, true, true).ToList(); - var tasks = appointments.Where(w => w.IsTask).ToList(); - - var zuErledigen = tasks.Where(t => t.DueDate.HasValue && t.DueDate.Value.Date >= DateTime.Today && !t.CompletedDate.HasValue); + var tasks = appointments.Where(w => w.IsTask && w.CompletedDate is null).ToList(); // Nur eigene Kliententermine ansehen - if(!AbstractModel.HasRightToSeeAllCustomerAppointments) + if(!AbstractModel.HasRightToViewCustomerAppointments) { appointments = appointments.Where(a => a.CustomerList.All(c => MobileSessionFacade.LoggedInEmployee.RelatedCustomers.Any(rc => rc.Customer.Equals(c)))).ToList(); } - if(!AbstractModel.HasRightToSeeAllResourceAppointments) + if(!AbstractModel.HasRightToViewAllResourceAppointments) { appointments = appointments.Where(a => a.ResourceList.Count == 0).ToList(); } @@ -141,7 +155,7 @@ namespace BeWoPlanerMobil.Controllers holySweetFlyingFuck.AddRangeIfElementsNotIn(CalculateRecurrences(appointments, start, end, changedOccurrences, deletedOccurrences)); - holySweetFlyingFuck.AddRange(zuErledigen); + holySweetFlyingFuck.AddRange(tasks); // Wenn es ein ganztägiger Termin ist, eine Sekunde abziehen und beim Speichern wieder draufaddieren? foreach(var app in holySweetFlyingFuck.Where(a => a.AllDay)) @@ -149,17 +163,16 @@ namespace BeWoPlanerMobil.Controllers app.EndDate = app.EndDate.Value.AddMinutes(-1); } - - Model.Appointments = holySweetFlyingFuck.OrderBy(appointment => appointment.StartDate).ToList(); + Model.Appointments = holySweetFlyingFuck.Where(w => w.IsTask == Model.ShouldLoadTasks).OrderBy(appointment => appointment.StartDate).ToList(); Model.WeekViewObject = new WeekViewObject(Model.Appointments, Model.SelectedDate.GetInSameCalendarWeek(DayOfWeek.Monday)); - if(AbstractModel.HasRightToInsertEmployeeAppointments) + if(AbstractModel.HasRightToViewCustomerSelectionInScheduler) { Model.AllCustomers = EmployeeService.GetActiveCompactCustomersForEmployee(Model.Employee.EmployeeOid).OrderBy(o => o.DetailDescription).ToList(); } - if(AbstractModel.HasRightToInsertCustomerAppointments) + if(AbstractModel.HasRightToViewEmployeeAppointments) { Model.AllEmployees = EmployeeService.GetActiveCompactEmployeesForEmployee(Model.Employee.EmployeeOid.Value).OrderBy(o => o.DetailDescription).ToList(); } @@ -319,13 +332,17 @@ namespace BeWoPlanerMobil.Controllers appointmentToInsert.EndDate = endDate.AddMinutes(1); } - if (!isNew) + // ToDo: Rechte beachten! + if(appointmentToInsert.CanBeEdited) { - KalenderService.UpdateSchedulerAppointments(new List {appointmentToInsert}); - } - else - { - KalenderService.InsertSchedulerAppointments(new List {appointmentToInsert}); + if(!isNew) + { + KalenderService.UpdateSchedulerAppointments(new List {appointmentToInsert}); + } + else + { + KalenderService.InsertSchedulerAppointments(new List {appointmentToInsert}); + } } } } @@ -376,7 +393,7 @@ namespace BeWoPlanerMobil.Controllers Model.SelectedDate = Model.SelectedDate.AddDays(1); - if(Model != null) + if(!(Model is null)) { Model.SelectedAppointment = null; //Model.SelectedResources.Clear(); @@ -776,5 +793,185 @@ namespace BeWoPlanerMobil.Controllers return PartialView("OneDaySchedulerPartial", Model); } + + [Authorize] + public string SelectResourcesForAppointmentFiltering(string resourceOids) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var oidList = ConvertOidStringToList(resourceOids); + + var list = new List(); + + Model.ResourceCategories2Resources.Values.DoForEach(l => l.DoForEach(s => list.AddIfNotIn(s))); + + Model.SelectedResourcesForFiltering = list.Where(resource => resource.ResourceOid.HasValue && oidList.Contains(resource.ResourceOid.Value)).ToList(); + + return JsonConvert.SerializeObject(Model.SelectedResourcesForFiltering); + } + + [Authorize] + public string SelectEmployeesForAppointmentFiltering(string oidString) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var oidList = ConvertOidStringToList(oidString); + + Model.SelectedEmployeesForFiltering = Model.AllEmployees.Where(employee => oidList.Contains(employee.EmployeeOid)).ToList(); + + return Model.SelectedEmployeesForFiltering.Count.ToString(); + } + + [Authorize] + public string SelectCustomersForAppointmentFiltering(string oidString) + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var oidList = ConvertOidStringToList(oidString); + + Model.SelectedCustomersForFiltering = Model.AllCustomers.Where(customer => oidList.Contains(customer.CustomerOid)).ToList(); + + return Model.SelectedCustomersForFiltering.Count.ToString(); + } + + [Authorize] + public ActionResult FetchSelectedEmployeesForPopup() + { + return PartialView("EmployeeForFilteringPartial", Model); + } + + [Authorize] + public ActionResult FetchEmployeeFilteringModalBody() + { + return PartialView("EmployeeFilteringModalContentPartial", Model); + } + + [Authorize] + public string SelectTeamForFiltering(string teamOidString) + { + if(Model?.Employee?.EmployeeOid is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + if(long.TryParse(teamOidString, out var teamOid)) + { + var team = EmployeeService.FindTeamByOid(teamOid, Model.Employee.EmployeeOid.Value); + if(!(team is null)) + { + Model.SelectedEmployeesForFiltering.AddRangeIfElementsNotIn(team.Member); + } + } + + return _LeerzeichenFuerGetMethoden; + } + + [Authorize] + public string SelectTeamForAppointment(string teamOidString) + { + if(Model?.Employee?.EmployeeOid is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var teamMemberOids = new List(); + + if(long.TryParse(teamOidString, out var teamOid)) + { + var team = EmployeeService.FindTeamByOid(teamOid, Model.Employee.EmployeeOid.Value); + if(!(team is null)) + { + Model.SelectedEmployees.AddRangeIfElementsNotIn(team.Member); + teamMemberOids.AddRangeIfElementsNotIn(team.Member.Select(member => member.EmployeeOid)); + } + } + + return JsonConvert.SerializeObject(teamMemberOids); + } + + [Authorize] + public ActionResult FetchCustomersForFiltering() + { + return PartialView("CustomerFilterSelectionPartial", Model); + } + + [Authorize] + public ActionResult FetchCustomerFilteringModalBody() + { + return PartialView("CustomerFilteringModalContentPartial", Model); + } + + [Authorize] + public string SetShouldLoadTasks(bool isChecked) + { + try + { + if(Model is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + Model.ShouldLoadTasks = isChecked; + + return _LeerzeichenFuerGetMethoden; + } + catch(Exception exception) + { + Log.Error(exception.Message, exception); + } + + return _LeerzeichenFuerGetMethoden; + } + + [Authorize] + public string DeleteAppointment(long appointmentOid) + { + if(Model?.Employee?.EmployeeOid is null) + { + Logout(); + return _LeerzeichenFuerGetMethoden; + } + + var appointment = Model.Appointments.FirstOrDefault(app => app.SchedulerAppointmentOid?.Equals(appointmentOid) ?? false); + + if(!(appointment is null)) + { + var teamMemberCustomerOids = EmployeeService.LoadTeamsRelatedCustomerOids(Model.Employee.EmployeeOid.Value); + + var customerList = appointment.CustomerList; + var employeeList = appointment.EmployeeList; + var resourceList = appointment.ResourceList; + var originator = appointment.Originator; + var isNew = false; + var checkType = SchedulerRightsCheckType.Edit; + var loggedOnUser = MobileSessionFacade.LoggedInUserDC; + + var isAllowedToDelete = BS.Shared.Core.Utils.CheckSchedulerRights(customerList, resourceList, employeeList, originator, isNew, checkType, loggedOnUser, teamMemberCustomerOids); + + if(isAllowedToDelete && appointment.SchedulerAppointmentOid.HasValue && appointment.NewSchedulerAppointmentVersion.HasValue) + { + var oid2Version = new Dictionary {{appointment.SchedulerAppointmentOid.Value, appointment.NewSchedulerAppointmentVersion.Value}}; + + KalenderService.DeactivateSchedulerAppointments(oid2Version); + } + } + + return _LeerzeichenFuerGetMethoden; + } } } diff --git a/BeWoPlanerMobil/Models/AbstractModel.cs b/BeWoPlanerMobil/Models/AbstractModel.cs index faae2a311..58830eec8 100644 --- a/BeWoPlanerMobil/Models/AbstractModel.cs +++ b/BeWoPlanerMobil/Models/AbstractModel.cs @@ -10,33 +10,33 @@ namespace BeWoPlanerMobil.Models { public class AbstractModel { - public static bool IsDeleteBtnVisible => MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecordView_Delete); + public static bool IsDeleteBtnVisible => CheckRight(UserRightType.ServiceRecordView_Delete); - public static bool IsAllowedToSeeScheduler => MobileSessionFacade.LoggedInUser != null && MobileSessionFacade.CheckForUserRight(UserRightType.KalenderAnsehen) || MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll); + public static bool IsAllowedToSeeScheduler => MobileSessionFacade.LoggedInUser != null && CheckRight(UserRightType.KalenderAnsehen) || CheckRight(UserRightType.ViewAll); - public static bool IsAllowedToSeeCustomers => MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll) || MobileSessionFacade.CheckForUserRight(UserRightType.CustomerView_View) || MobileSessionFacade.CheckForUserRight(UserRightType.Customer_ViewMyCustomers); + public static bool IsAllowedToSeeCustomers => CheckRight(UserRightType.ViewAll) || CheckRight(UserRightType.CustomerView_View) || CheckRight(UserRightType.Customer_ViewMyCustomers); - public static bool IsEmployeeSelectionVisible => MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees) || MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreationForOtherTeamMember); + public static bool IsEmployeeSelectionVisible => CheckRight(UserRightType.ServiceRecord_AllowCreationForOtherEmployees) || CheckRight(UserRightType.ServiceRecord_AllowCreationForOtherTeamMember); - public static bool HasRightForGroupBookings => MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecord_AllowCreatingGroupBooking); + public static bool HasRightForGroupBookings => CheckRight(UserRightType.ServiceRecord_AllowCreatingGroupBooking); - public static bool HasRightToSeeAllCustomerAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderKliententermineAlleAnsehen) && MobileSessionFacade.CheckForUserRight(UserRightType.CustomerView_View) || MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll); - public static bool HasRightToSeeAllEmployeeAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderMitarbeitertermineAnsehen) || MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll); - public static bool HasRightToSeeAllResourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAnsehen) || MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll); + public static bool HasRightToViewCustomerAppointments => CheckRight(UserRightType.KalenderKliententermineAlleAnsehen) && CheckRight(UserRightType.CustomerView_View) || CheckRight(UserRightType.ViewAll); + public static bool HasRightToViewEmployeeAppointments => CheckRight(UserRightType.KalenderMitarbeitertermineAnsehen) || CheckRight(UserRightType.ViewAll); + public static bool HasRightToViewAllResourceAppointments => CheckRight(UserRightType.KalenderRessourcentermineAnsehen) || CheckRight(UserRightType.ViewAll); public EmployeeDC Employee { get; set; } public string LoggedInEmplyeeFirstNameLastName => Employee != null ? $"{Employee.FirstName} {Employee.LastName}" : "BeWoPlaner"; - public static bool HasRightToSeeAllSupportConcepts => MobileSessionFacade.CheckForUserRight(UserRightType.SupportConcept_ViewAllSupportConcepts) || MobileSessionFacade.CheckForUserRight(UserRightType.ViewAll); + public static bool HasRightToSeeAllSupportConcepts => CheckRight(UserRightType.SupportConcept_ViewAllSupportConcepts) || CheckRight(UserRightType.ViewAll); - public static bool HasRightToSeeTextModules => MobileSessionFacade.CheckForUserRight(UserRightType.TextbausteineNurEigeneAnsehen) || MobileSessionFacade.CheckForUserRight(UserRightType.TextbausteineAlleAnsehen); + public static bool HasRightToSeeTextModules => CheckRight(UserRightType.TextbausteineNurEigeneAnsehen) || CheckRight(UserRightType.TextbausteineAlleAnsehen); - public static bool HasRightToSeeServiceRecords => MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecordView_View) && MobileSessionFacade.CheckForUserRight(UserRightType.ServiceRecordView_Create); + public static bool HasRightToSeeServiceRecords => CheckRight(UserRightType.ServiceRecordView_View) && CheckRight(UserRightType.ServiceRecordView_Create); public static string TimeOfLastAction { get; set; } - public static bool HasRightToInsertRessourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAnlegen) || MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll); + public static bool HasRightToInsertRessourceAppointments => CheckRight(UserRightType.KalenderRessourcentermineAnlegen) || CheckRight(UserRightType.CreateAll); public static bool IsAllowedToSeeBills { @@ -46,7 +46,7 @@ namespace BeWoPlanerMobil.Models var showEmployeeSignatureSetting = MobileUtils.GetSettingValue(mandator.Settings, SettingsKeys.ShowEmployeeSignature); - return MobileSessionFacade.CheckForUserRight(UserRightType.Analysis_ServiceOverview_View) && showEmployeeSignatureSetting != null && showEmployeeSignatureSetting.Equals("1"); + return CheckRight(UserRightType.Analysis_ServiceOverview_View) && showEmployeeSignatureSetting != null && showEmployeeSignatureSetting.Equals("1"); } } @@ -103,22 +103,38 @@ namespace BeWoPlanerMobil.Models var hasSetting = MobileUtils.GetSettingValue(mandator.Settings, SettingsKeys.ShowMedication) == "1"; - var hasRight = MobileSessionFacade.CheckForUserRight(UserRightType.Customer_ViewMedication); + var hasRight = CheckRight(UserRightType.Customer_ViewMedication); return hasSetting && hasRight; } } - public static bool HasRightToInsertEmployeeAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderMitarbeitertermineAnlegen) || MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll); + public static bool CheckRight(UserRightType userRightType) + { + return MobileSessionFacade.CheckForUserRight(userRightType); + } - public static bool HasRightToEditEmployeeAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderMitarbeitertermineAendern) || MobileSessionFacade.CheckForUserRight(UserRightType.EditAll); + public static bool HasRightToInsertEmployeeAppointments => CheckRight(UserRightType.KalenderMitarbeitertermineAnlegen) || + CheckRight(UserRightType.CreateAll); - public static bool HasRightToEditResourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAendern) || MobileSessionFacade.CheckForUserRight(UserRightType.EditAll); - public static bool HasRightToEditOthersResourceAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderRessourcentermineAndererAendern) || MobileSessionFacade.CheckForUserRight(UserRightType.EditAll); + public static bool HasRightToEditEmployeeAppointments => CheckRight(UserRightType.KalenderMitarbeitertermineAendern) || CheckRight(UserRightType.EditAll); - public static bool HasRightToInsertCustomerAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderKliententermineAnlegen) || MobileSessionFacade.CheckForUserRight(UserRightType.CreateAll); - public static bool HasRightToEditCustomerAppointments => MobileSessionFacade.CheckForUserRight(UserRightType.KalenderKliententermineAendern) || MobileSessionFacade.CheckForUserRight(UserRightType.EditAll); + public static bool HasRightToEditResourceAppointments => CheckRight(UserRightType.KalenderRessourcentermineAendern) || CheckRight(UserRightType.EditAll); + public static bool HasRightToEditOthersResourceAppointments => CheckRight(UserRightType.KalenderRessourcentermineAndererAendern) || CheckRight(UserRightType.EditAll); + + public static bool HasRightToInsertCustomerAppointments => CheckRight(UserRightType.KalenderKliententermineAnlegen) && + (CheckRight(UserRightType.CustomerView_View) || + CheckRight(UserRightType.Customer_ViewMyCustomers) || + CheckRight(UserRightType.Customer_ViewMyTeams)) || + CheckRight(UserRightType.CreateAll); + public static bool HasRightToEditCustomerAppointments => CheckRight(UserRightType.KalenderKliententermineAendern) || CheckRight(UserRightType.EditAll); public static bool ShowServiceRecordInsertedOn { get; set; } + + public static bool HasRightToViewCustomerSelectionInScheduler => CheckRight(UserRightType.CustomerView_View) || CheckRight(UserRightType.Customer_ViewMyCustomers) || CheckRight(UserRightType.Customer_ViewMyTeams); + + public static bool HasRightToViewTeams => CheckRight(UserRightType.TeamView_ViewMyTeams) || CheckRight(UserRightType.TeamView_ViewAll); + + public static bool HasRightForMultiBooking => CheckRight(UserRightType.ServiceRecord_AllowCreatingMultiBooking); } } \ No newline at end of file diff --git a/BeWoPlanerMobil/Models/MainModel.cs b/BeWoPlanerMobil/Models/MainModel.cs index 68ccfebce..8a32a47b5 100644 --- a/BeWoPlanerMobil/Models/MainModel.cs +++ b/BeWoPlanerMobil/Models/MainModel.cs @@ -6,10 +6,12 @@ using System.ComponentModel.DataAnnotations; using System.Diagnostics; using System.Linq; using System.Web.Mvc; +using BeWo.Service.Plugins; using BeWo.View.Navigation.Filter; using BeWoPlanerMobil.Service; using BeWoPlanerMobil.Util; using BS.Shared; +using BS.Shared.Core; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.Extensions; @@ -234,7 +236,6 @@ namespace BeWoPlanerMobil.Models { NewServiceRecord = new ServiceRecordDC(); ShowOnlyOwnSupportConcepts = true; - Zeitraum = -1; ErrorWert = 1; } @@ -288,7 +289,7 @@ namespace BeWoPlanerMobil.Models public List SelectedConceptCostBearerRelations { get; set; } - public GroupBookingSelectionObject GroupBookingSelectionObject => new GroupBookingSelectionObject(SelectedConceptCostBearerRelations, SelectedGroupOfPeopleOids); + public GroupBookingSelectionObject GroupBookingSelectionObject => new GroupBookingSelectionObject(SelectedConceptCostBearerRelations, GroupBookingSelectedGroupOfPeopleOids); public IEnumerable SupportConceptListObjectsForGroupBooking { @@ -333,7 +334,7 @@ namespace BeWoPlanerMobil.Models public List Employees { get; set; } - public static List AllEmployees { get; set; } + public List AllEmployees { get; set; } [Display(Name = "Mitarbeiter")] public long? SelectedEmployeeOid => SelectedEmployee?.EmployeeOid; @@ -342,7 +343,7 @@ namespace BeWoPlanerMobil.Models public List GroupsOfPeople { get; set; } = new List(); - public List SelectedGroupOfPeopleOids { get; set; } = new List(); + public List GroupBookingSelectedGroupOfPeopleOids { get; set; } = new List(); public IEnumerable EmployeeListItems { @@ -376,11 +377,11 @@ namespace BeWoPlanerMobil.Models return maxDate; } - public List SelectedSupportConcepts { get; set; } = new List(); + public List GroupBookingSelectedSupportConcepts { get; set; } = new List(); - public List SelectedCostbearerRelOids { get; set; } = new List(); + public List GroupBookingSelectedCostbearerRelOids { get; set; } = new List(); - public List SelectedEmployees { get; set; } = new List(); + public List GroupBookingSelectedEmployees { get; set; } = new List(); [Display(Name = "Gruppenbuchung")] public bool IsInGroupBookingMode @@ -393,14 +394,16 @@ namespace BeWoPlanerMobil.Models if(!_IsInGroupBookingMode) { - SelectedSupportConcepts?.Clear(); - SelectedEmployees?.Clear(); + GroupBookingSelectedSupportConcepts?.Clear(); + GroupBookingSelectedEmployees?.Clear(); } } } private bool _IsInGroupBookingMode; + + public bool IsInEditingMode { get; set; } public List GetServiceDesctiptions() @@ -640,6 +643,69 @@ namespace BeWoPlanerMobil.Models public bool IsShowingDurationInHours { get; set; } public string SelectedDurationUnit => IsShowingDurationInHours ? "Stunden" : "Minuten"; + + public DateTime LastSelectedServiceRecordMonth { get; set; } + public int LastSelectedServiceRecordTimeIntervalDays { get; set; } + + public ServiceRecordTimeInterval ServiceRecordTimeInterval { get; set; } + public int SelectedDayCount { get; set; } + public NullableDateTimeSpan SelectedZeitraum { get; set; } + + + #region Mehrfachbuchung + + private bool _IsInMultiBookingMode; + + [Display(Name = "Mehrfachbuchung")] + public bool IsInMultiBookingMode + { + get => _IsInMultiBookingMode; + + set + { + _IsInMultiBookingMode = value; + + if(!_IsInMultiBookingMode) + { + + } + } + } + + public List MultiBookingSelectedSupportConcepts { get; set; } = new List(); + + public List MultiBookingSelectedGroupOfPeopleOids { get; set; } = new List(); + + public List MultiBookingSelectedConceptCostBearerRelations { get; set; } + + public GroupBookingSelectionObject MultiBookingSelectionObject => new GroupBookingSelectionObject(MultiBookingSelectedConceptCostBearerRelations, MultiBookingSelectedGroupOfPeopleOids); + + public List MultiBookingSelectedCostbearerRelOids { get; set; } = new List(); + public List MultiBookingSelectedEmployees { get; set; } = new List(); + + public List MultiBookingSupportConceptListObjects + { + get + { + var allCostbearerRelations = new List(); + + foreach(var sc in SupportConcepts.OrderBy(sc => sc.Customer.LastName)) + { + allCostbearerRelations.AddRange(sc.CostBearerRelations.Where(w => ShowExpiredSupportConcepts || w.EndDate == null || w.EndDate.Value >= DateTime.Now).Select( + cb => new SupportConceptListObject( + $"{sc.Customer.LastNameFirstName} {(sc.Customer.DateOfBirth.HasValue ? "*" + sc.Customer.DateOfBirth.Value.ToString("dd.MM.yyyy") : string.Empty)}", + $"{cb.StartDate?.ToShortDateString().Remove(6, 2) ?? string.Empty}-{cb.EndDate?.ToShortDateString().Remove(6, 2) ?? string.Empty} {cb.CostBearer.Name}", + cb.CostBearer2SupportConceptOid.ToString(), + cb.SupportConcept.IsAboutToExpire, + cb.SupportConcept.ExpiresIn3MonthOrLess)) + ); + } + + return allCostbearerRelations; + } + } + + #endregion } public class CustomSelectListItem diff --git a/BeWoPlanerMobil/Models/SchedulerModel.cs b/BeWoPlanerMobil/Models/SchedulerModel.cs index c35f3fca6..9fde270a1 100644 --- a/BeWoPlanerMobil/Models/SchedulerModel.cs +++ b/BeWoPlanerMobil/Models/SchedulerModel.cs @@ -97,7 +97,20 @@ namespace BeWoPlanerMobil.Models public string LocationToEdit => SelectedAppointment?.Location ?? string.Empty; - public List AllResources { get; set; } = new List(); + public List AllResources + { + get + { + var allResources = new List(); + + foreach(var cat2res in ResourceCategories2Resources) + { + allResources.AddRangeIfElementsNotIn(cat2res.Value); + } + + return allResources; + } + } public List SelectedResources { get; set; } = new List(); @@ -134,6 +147,7 @@ namespace BeWoPlanerMobil.Models public bool IsInEditMode => SelectedAppointment != null; + // ToDo: Überarbeiten? Es kam das Ansehen hinzu public bool HasResourcesEmployeesOrCustomers { get @@ -183,6 +197,16 @@ namespace BeWoPlanerMobil.Models [Display(Name = "Privat")] public bool IsPrivate { get; set; } + + public List MyTeamEmployees { get; set; } + + public List SelectedResourcesForFiltering { get; set; } = new List(); + public List SelectedEmployeesForFiltering { get; set; } = new List(); + public List SelectedCustomersForFiltering { get; set; } = new List(); + + public List MyTeams { get; set; } = new List(); + + public bool ShouldLoadTasks { get; set; } } public class WeekViewObject diff --git a/BeWoPlanerMobil/Scripts/mobileUtils.js b/BeWoPlanerMobil/Scripts/mobileUtils.js index 1bbfe1e2d..7f5adb7e9 100644 --- a/BeWoPlanerMobil/Scripts/mobileUtils.js +++ b/BeWoPlanerMobil/Scripts/mobileUtils.js @@ -81,34 +81,6 @@ function submitForm(submitButton) { submitButton.form.submit(); } -function isEmptyOrSpaces(str) { - return str === null || str === undefined || str.match(/^ *$/) !== null; -} - -function isInArray(value, array) { - if(value === undefined || value === null || array === undefined || array === null) { - return false; - } - - if(!Array.isArray(array)) { - return false; - } - - var intValue = parseInt(value, 10); - - if(isNaN(intValue)) { - return false; - } - - for (var i = 0; i < array.length; i++) { - if (array[i] === intValue) { - return true; - } - } - - return false; -} - function showMessagePopupWithHtml(title, html) { $("#popupTitle").text(title); @@ -175,6 +147,24 @@ function cloneCanvas(oldCanvas) { return newCanvas; } +function showAlertMessageBoxWithoutCallback(title, message) { + $("#popupTitle").text(title); + + $("#messagePopup .modal-body").html('"); + + $("#popupMessage").text(message); + + $("#message-popup-ok-btn").off("click"); + $("#message-popup-close-btn").off("click"); + + $("#messagePopup").modal( + { + backdrop: "static", + keyboard: false + } + ); +} + function showAlertMessageBox(title, message, callback, executeCallbackByBothButtons) { $("#popupTitle").text(title); @@ -225,26 +215,6 @@ function showWarningMessageBox(title, message, callback, executeCallbackByBothBu ); } -function logInfo(message) { - logColorfulMessage(message, "purple"); -} - -function logWarning(message) { - logColorfulMessage(message, "darkorange"); -} - -function logError(message) { - logColorfulMessage(message, "red"); -} - -function logDebug(message) { - logColorfulMessage(message, "darkgreen"); -} - -function logColorfulMessage(message, color) { - console.log("%c" + message, "font-size: 12px; font-weight: bold; color: " + color); -} - function isUndefinedOrNull(obj) { return obj == null; } @@ -349,7 +319,7 @@ function treeSearchOnChange(searchInputId, textClass, cardClass, nameLabelClass, $.each(entries, function (index, entry) { var checkbox = $(entry); var treeCard = checkbox.closest("." + cardClass); - var header = treeCard.find("h5"); + var header = treeCard.find(".goal-card-header"); var list = treeCard.find(".collapse"); var treeItemName = checkbox.find("." + nameLabelClass).text().toLowerCase(); var includesText = treeItemName.includes(text) || header.html().toLowerCase().includes(text); diff --git a/BeWoPlanerMobil/Scripts/utils/js-helper.js b/BeWoPlanerMobil/Scripts/utils/js-helper.js new file mode 100644 index 000000000..f5bba4118 --- /dev/null +++ b/BeWoPlanerMobil/Scripts/utils/js-helper.js @@ -0,0 +1,70 @@ +function arrayContainsAllItems(a1, a2) { + var result = true; + + if (a1 !== null && a2 !== null && Array.isArray(a1) && Array.isArray(a2)) { + for (var i = 0; i < a2.length; i++) { + if (!a1.includes(a2[i])) { + result = false; + break; + } + } + } else { + result = false; + } + + return result; +} + +function isEmptyOrSpaces(str) { + return str === null || str === undefined || str.match(/^ *$/) !== null; +} + +function isInArray(value, array) { + if (value === undefined || value === null || array === undefined || array === null) { + return false; + } + + if (!Array.isArray(array)) { + return false; + } + + var intValue = parseInt(value, 10); + + if (isNaN(intValue)) { + return false; + } + + for (var i = 0; i < array.length; i++) { + if (array[i] === intValue) { + return true; + } + } + + return false; +} + +function checkArraysForEquality(a1, a2) { + try { + if (Array.isArray(a1) && Array.isArray(a2) && a1.length === a2.length) { + a1 = a1.sort(); + a2 = a2.sort(); + + for(var i = 0; i < a1.length; i++) { + var obj1 = a1[i]; + var obj2 = a2[i]; + + if(typeof obj1 !== typeof obj2 || obj1 !== obj2) { + return false; + } + } + + return true; + } + + return false; + } catch(error) { + logError(error); + } finally { + return false; + } +} \ No newline at end of file diff --git a/BeWoPlanerMobil/Scripts/utils/list-utils.js b/BeWoPlanerMobil/Scripts/utils/list-utils.js index 1350c6ca7..070dd96c9 100644 --- a/BeWoPlanerMobil/Scripts/utils/list-utils.js +++ b/BeWoPlanerMobil/Scripts/utils/list-utils.js @@ -1,18 +1,42 @@ -function changeItemListSelection(url, popupId, listId, itemIdPrefix, isCustomer, checkBoxIdSuffix, filterAppointmentsUrl) { +// Wird aufgerufen, wenn sich der Wert der CheckBox ändert. +function changeItemListSelection(url, popupId, listId, itemIdPrefix, isCustomer, checkBoxIdSuffix, filterAppointmentsUrl, allItemsCheckBoxSuffix, teamMemberOids) { try { if (url === undefined || url === null) { + logError("url ist undefined oder null"); return; } var oidStr = ""; + var oids = []; + var allChecked = true; - $("#" + popupId + " input:checked").each(function() { + $("#" + popupId + " input[type=checkbox]").each(function () { var id = $(this).attr("id").split("-")[1]; - oidStr += id + ","; + + if($.isNumeric(id) === false) { + return; + } + + if ($(this).prop("checked")) { + oids.push(id); + oidStr += id + ","; + } else { + allChecked = false; + } }); + if(!isCustomer) { + $("#my-teams-checkbox" + allItemsCheckBoxSuffix).prop("checked", arrayContainsAllItems(oids, teamMemberOids)); + } + + if (allChecked === true) { + $("#all-" + (isCustomer ? "customers" : "employees") + "-checkbox" + allItemsCheckBoxSuffix).prop("checked", true); + } else { + $("#all-" + (isCustomer ? "customers" : "employees") + "-checkbox" + allItemsCheckBoxSuffix).prop("checked", false); + } + $.get(url, { oidString: oidStr }).done(function (jsonResult) { - updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupId, checkBoxIdSuffix, url, filterAppointmentsUrl); + updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupId, checkBoxIdSuffix, url, filterAppointmentsUrl, allItemsCheckBoxSuffix, teamMemberOids); $("#one-day-scheduler-partial-container").load(filterAppointmentsUrl); }); @@ -21,10 +45,10 @@ } } -// Col-Value berechnen -function updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupId, checkBoxIdSuffix, url, filterAppointmentsUrl) { +// Wird aufgerufen, um die Liste mit den ausgewählten Objekten zu aktualisieren +function updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupId, checkBoxIdSuffix, url, filterAppointmentsUrl, allItemsCheckBoxSuffix, teamMemberOids) { try { - if(isEmptyOrSpaces(jsonResult)) { + if (isEmptyOrSpaces(jsonResult)) { return; } @@ -50,7 +74,7 @@ function updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupI var id = itemIdPrefix + oid; - var removeParams = oid + ", '" + checkBoxIdSuffix + "', " + isCustomer + ", '" + url + "', '" + popupId + "', '" + listId + "', '" + itemIdPrefix + "', '" + filterAppointmentsUrl + "'"; + var removeParams = oid + ", '" + checkBoxIdSuffix + "', " + isCustomer + ", '" + url + "', '" + popupId + "', '" + listId + "', '" + itemIdPrefix + "', '" + filterAppointmentsUrl + "', '" + allItemsCheckBoxSuffix + "', " + teamMemberOids; var html = "
" + @@ -78,17 +102,17 @@ function updateSelectedList(jsonResult, listId, itemIdPrefix, isCustomer, popupI } } -function removeSelectedItem(itemOid, itemSuffix, isCustomer, url, popupId, listId, itemIdPrefix, filterAppointmentsUrl) { +function removeSelectedItem(itemOid, itemSuffix, isCustomer, url, popupId, listId, itemIdPrefix, filterAppointmentsUrl, allItemsCheckBoxSuffix, teamMemberOids) { try { var prefix = isCustomer ? "customer-" : "employee-"; - var checkBox = $("#" + prefix + itemOid + itemSuffix).remove(); + var checkBox = $("#" + prefix + itemOid + itemSuffix); if(checkBox.length) { checkBox.prop("checked", false); } - changeItemListSelection(url, popupId, listId, itemIdPrefix, isCustomer, itemSuffix, filterAppointmentsUrl); + changeItemListSelection(url, popupId, listId, itemIdPrefix, isCustomer, itemSuffix, filterAppointmentsUrl, allItemsCheckBoxSuffix, teamMemberOids); } catch(error) { logError(error); } diff --git a/BeWoPlanerMobil/Scripts/utils/logging.js b/BeWoPlanerMobil/Scripts/utils/logging.js new file mode 100644 index 000000000..91aa1ded6 --- /dev/null +++ b/BeWoPlanerMobil/Scripts/utils/logging.js @@ -0,0 +1,27 @@ +function logInfo(message) { + logColorfulMessage(message, "purple"); +} + +function logWarning(message) { + logColorfulMessage(message, "darkorange"); +} + +function logError(message) { + logColorfulMessage(message, "red"); +} + +function logDebug(message) { + logColorfulMessage(message, "green"); +} + +function logColorfulMessage(message, color) { + console.log("%c" + message, "font-size: 16px; font-weight: bold; color: " + color); +} + +function logInfo2(message) { + logColorfulMessage(message, "#DBFF8C"); +} + +function logInfo3(message) { + logColorfulMessage(message, "#00F2FF"); +} \ No newline at end of file diff --git a/BeWoPlanerMobil/Scripts/utils/resources-list-utils.js b/BeWoPlanerMobil/Scripts/utils/resources-list-utils.js index c87864adc..01205c437 100644 --- a/BeWoPlanerMobil/Scripts/utils/resources-list-utils.js +++ b/BeWoPlanerMobil/Scripts/utils/resources-list-utils.js @@ -15,6 +15,12 @@ $.get(url, { resourceOids: oidString }).done(function (jsonResult) { updateSelectedResourceList(jsonResult, listId, listItemIdPrefix, popupId, checkBoxIdPrefix, url, filterAppointmentsUrl); + if(popupId === "resources-popup2") { + var selectedResources = $.parseJSON(jsonResult); + + $("#resource-count2").text(selectedResources.length); + } + $("#one-day-scheduler-partial-container").load(filterAppointmentsUrl); }); } @@ -53,7 +59,6 @@ function updateSelectedResourceList(jsonResult, listId, listItemIdPrefix, popupI }); } -// ToDo: FetchAppointments-Url hinzufügen function removeSelectedResource(listItemId, checkBoxId, popupId, url, listId, fetchAppointmentsUrl) { $("#" + listItemId).remove(); diff --git a/BeWoPlanerMobil/Scripts/utils/service-record-time-calc.js b/BeWoPlanerMobil/Scripts/utils/service-record-time-calc.js index 5dde47dcd..bb2a61a30 100644 --- a/BeWoPlanerMobil/Scripts/utils/service-record-time-calc.js +++ b/BeWoPlanerMobil/Scripts/utils/service-record-time-calc.js @@ -1,4 +1,4 @@ -function calculateTimeWithDuration(timeInputValue, timeElement, startDate, duration) { +function calculateTimeWithDuration(timeInputValue, timeElement, startDate, duration, hoursMinutesDropdownBtnId) { var hoursToMinutes = parseTimeInputToIntegerArray(timeInputValue); var hours = parseInt(hoursToMinutes[0]); var minutes = parseInt(hoursToMinutes[1]); @@ -6,7 +6,7 @@ startDate.hours(hours); startDate.minutes(minutes); - var durationFormat = $("#hours-minutes-dropdown-btn").length && $("#hours-minutes-dropdown-btn").text().replaceAll(/\s/g, "") === "Stunden" ? "h" : "m"; + var durationFormat = $("#" + hoursMinutesDropdownBtnId).length && $("#" + hoursMinutesDropdownBtnId).text().replaceAll(/\s/g, "") === "Stunden" ? "h" : "m"; startDate.add(duration, durationFormat); @@ -15,66 +15,71 @@ timeElement.val(timeInputValue); } -function onDurationChange() { - var startTime = $("#start-time").val(); - var endTime = $("#end-time").val(); - var duration = $("#duration").val(); +function onDurationChange(startTimeId, endTimeId, startDateId, endDateId, durationId, hoursMinutesDropdownBtnId, startDatePickerId, endDatePickerId) { + try { + var startTime = $("#" + startTimeId).val(); + var endTime = $("#" + endTimeId).val(); + var duration = $("#" + durationId).val(); + var hoursMinutesDropdownButton = $("#" + hoursMinutesDropdownBtnId); - var hoursMinutesDropdownButton = $("#hours-minutes-dropdown-btn"); - var hoursMinutesText = hoursMinutesDropdownButton.length ? hoursMinutesDropdownButton.text().replaceAll(/\s/g, "") : ""; - var startTimeCondition = startTime !== undefined && startTime !== null && startTime.length > 0; - var endTimeCondition = endTime !== undefined && endTime !== null && endTime.length > 0; - var durationNumber = parseFloat(duration.replace(",", ".")); - var durationCondition = !isNaN(durationNumber); + var hoursMinutesText = hoursMinutesDropdownButton.length ? hoursMinutesDropdownButton.text().replaceAll(/\s/g, "") : ""; - if ((false === startTimeCondition && false === endTimeCondition) || durationCondition === false) { - return; - } + var startTimeCondition = startTime !== undefined && startTime !== null && startTime.length > 0; + var endTimeCondition = endTime !== undefined && endTime !== null && endTime.length > 0; + var durationNumber = parseFloat(duration.replace(",", ".")); + var durationCondition = !isNaN(durationNumber); - var startDateString = $("#start-date-picker").datetimepicker("date"); - var endDate = moment(new Date()); - var startDate = moment(new Date()); + if ((false === startTimeCondition && false === endTimeCondition) || durationCondition === false) { + return; + } - if (startDateString.length !== 0) { - startDate = moment(startDateString); - endDate = startDate.clone(); - } + var startDateString = $("#" + startDatePickerId).datetimepicker("date"); + var endDate = moment(new Date()); + var startDate = moment(new Date()); - if ($("#end-date-picker").length !== 0) { - var endDateString = $("#end-date-picker").datetimepicker("date"); - endDate = moment(endDateString); - } + if (startDateString.length !== 0) { + startDate = moment(startDateString); + endDate = startDate.clone(); + } - var h2m = [0, 0]; + if ($("#" + endDatePickerId).length !== 0) { + var endDateString = $("#" + endDatePickerId).datetimepicker("date"); + endDate = moment(endDateString); + } - var durationFormat = hoursMinutesText === "Stunden" ? "h" : "m"; + var h2m = [0, 0]; - if (startTimeCondition === true) { - h2m = parseTimeInputToIntegerArray(startTime); + var durationFormat = hoursMinutesText === "Stunden" ? "h" : "m"; - startDate = startDate.hours(h2m[0]).minutes(h2m[1]); - endDate = startDate.clone().add(durationNumber, durationFormat); + if (startTimeCondition === true) { + h2m = parseTimeInputToIntegerArray(startTime); - $("#end-time").val(endDate.format("HH:mm")); - $("#end-date").val(endDate.format("DD.MM.yyyy")); - } else { - h2m = parseTimeInputToIntegerArray(endTime); + startDate = startDate.hours(h2m[0]).minutes(h2m[1]); + endDate = startDate.clone().add(durationNumber, durationFormat); - endDate = endDate.hours(h2m[0]).minutes(h2m[1]); - startDate = endDate.clone().add(durationNumber * -1, durationFormat); + $("#" + endTimeId).val(endDate.format("HH:mm")); + $("#" + endDateId).val(endDate.format("DD.MM.yyyy")); + } else { + h2m = parseTimeInputToIntegerArray(endTime); - $("#start-time").val(startDate.format("HH:mm")); - $("#start-date").val(startDate.format("DD.MM.yyyy")); + endDate = endDate.hours(h2m[0]).minutes(h2m[1]); + startDate = endDate.clone().add(durationNumber * -1, durationFormat); + + $("#" + startTimeId).val(startDate.format("HH:mm")); + $("#" + startDateId).val(startDate.format("DD.MM.yyyy")); + } + } catch(error) { + logError(error); } } -function calculateDuration(isInvocatedByHoursMinutesButton) { - var startTime = $("#start-time").val(); - var endTime = $("#end-time").val(); - var duration = $("#duration").val(); +function calculateDuration(isInvocatedByHoursMinutesButton, startTimeId, endTimeId, durationId, hoursMinutesDropdownBtnId, startDatePickerId, endDatePickerId) { + var startTime = $("#" + startTimeId).val(); + var endTime = $("#" + endTimeId).val(); + var duration = $("#" + durationId).val(); - var hoursMinutesDropdownButton = $("#hours-minutes-dropdown-btn"); + var hoursMinutesDropdownButton = $("#" + hoursMinutesDropdownBtnId); var hoursMinutesText = hoursMinutesDropdownButton.length ? hoursMinutesDropdownButton.text().replaceAll(/\s/g, "") : ""; @@ -87,7 +92,7 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { var endTimeCondition = endTime !== undefined && endTime !== null && endTime.length > 0; var durationNumber = parseFloat(duration.replace(",", ".")); var durationCondition = !isNaN(durationNumber); - var startDateString = $("#start-date-picker").datetimepicker("date"); + var startDateString = $("#" + startDatePickerId).datetimepicker("date"); var endDate = moment(new Date()); var startDate = moment(new Date()); @@ -97,8 +102,8 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { } // Es gibt ein Enddatumsfeld - if ($("#end-date-picker").length !== 0) { - var endDateString = $("#end-date-picker").datetimepicker("date"); + if ($("#" + endDatePickerId).length !== 0) { + var endDateString = $("#" + endDatePickerId).datetimepicker("date"); if (endDateString !== null && endDateString.length !== 0) { endDate = moment(endDateString); @@ -107,6 +112,7 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { var newDurationValue = 0; + // Start- und Enddatum sind vorhanden und das Event wurde nicht vom Stunden/Minuten-Dropdown aufgerufen if (startTimeCondition && endTimeCondition && isInvocatedByHoursMinutesButton === false) { var startHHmm = parseTimeInputToIntegerArray(startTime); var endHHmm = parseTimeInputToIntegerArray(endTime); @@ -124,7 +130,8 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { newDurationValue = momentDuration.asMinutes(); } - $("#duration").val(newDurationValue); + $("#" + durationId).val(newDurationValue); + // Startdatum und Dauer sind vorhanden } else if (startTimeCondition && durationCondition) { if (hoursMinutesDropdownButton.length) { if (hoursMinutesText === "Stunden") { @@ -133,10 +140,11 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { durationNumber *= 60; } - $("#duration").val(durationNumber); + $("#" + durationId).val(durationNumber); } - calculateTimeWithDuration(startTime, $("#end-time"), startDate, durationNumber); + calculateTimeWithDuration(startTime, $("#" + endTimeId), startDate, durationNumber, hoursMinutesDropdownBtnId); + // Enddatum und Dauer sind vorhanden } else if (endTimeCondition && durationCondition) { if (hoursMinutesDropdownButton.length) { if (hoursMinutesText === "Stunden") { @@ -145,9 +153,9 @@ function calculateDuration(isInvocatedByHoursMinutesButton) { durationNumber *= 60; } - $("#duration").val(durationNumber); + $("#" + durationId).val(durationNumber); } - calculateTimeWithDuration(endTime, $("#start-time"), startDate, durationNumber * -1); + calculateTimeWithDuration(endTime, $("#" + startTimeId), startDate, durationNumber * -1, hoursMinutesDropdownBtnId); } } \ No newline at end of file diff --git a/BeWoPlanerMobil/Scripts/view-scripts/main.js b/BeWoPlanerMobil/Scripts/view-scripts/main.js index 030d8711a..8f4d94e87 100644 --- a/BeWoPlanerMobil/Scripts/view-scripts/main.js +++ b/BeWoPlanerMobil/Scripts/view-scripts/main.js @@ -25,9 +25,9 @@ function checkJson(str) return true; } -function serviceDescriptionSelectOnReset() { +function serviceDescriptionSelectOnReset(categorySelectId, leistungSelectId, textmoduleContainerId, treeId) { setTimeout(function () { - loadServiceDescriptions(); + loadServiceDescriptions(categorySelectId, leistungSelectId, textmoduleContainerId, treeId); }, 100); } @@ -63,19 +63,19 @@ function resetSingleBookingForm() { function submitSingleBookingForm() { showSpinner(); - validateForm($("#singleBookingForm")); + validateForm($("#singleBookingForm"), null); } function submitCreateForm() { showSpinner(); - validateForm($("#serviceRecordCreationForm")); + validateForm($("#serviceRecordCreationForm"), null); } function submitEditForm() { showSpinner(); - validateForm($("#serviceRecordEditForm")); + validateForm($("#serviceRecordEditForm"), null); } function resetGroupBookingForm() { @@ -85,19 +85,19 @@ function resetGroupBookingForm() { function submitGroupBookingForm() { showSpinner(); - validateForm($("#groupBookingCreationForm")); + validateForm($("#groupBookingCreationForm"), null); } function submitGroupBookingEditForm() { showSpinner(); - validateForm($("#groupBookingEditingForm")); + validateForm($("#groupBookingEditingForm"), null); } function submitGroupBookingForm() { showSpinner(); - validateForm($("#groupBookingForm")); + validateForm($("#groupBookingForm"), null); } function deactivateGroupBookingForm() { @@ -164,12 +164,16 @@ function deleteServiceRecord(serviceRecordOid) { }, false); } -function validateForm(form) { +function validateForm(form, prefix) { if (form === undefined || form === null) { hideSpinner(); return; } - + + if(prefix === undefined || prefix === null) { + prefix = ""; + } + var errorMessage = ""; var isNoticeMandatory = getIsDocumentationMandatory(); var numberOfNoticeTextareas = getNumberOfDokutypes(); @@ -178,12 +182,12 @@ function validateForm(form) { if (isNoticeMandatory) { if (numberOfNoticeTextareas === 0) { - var doku = $("#dokufeld").val(); + var doku = $("#" + prefix + "dokufeld").val(); isValid = doku.length > 0; } else { for (var i = 0; i < numberOfNoticeTextareas; i++) { - var d = $("#doku-textarea-" + i).val(); + var d = $("#" + prefix + "doku-textarea-" + i).val(); isValid = d.length > 0; @@ -198,7 +202,7 @@ function validateForm(form) { } } - var startAndEndDates = getStartAndEndDate(); + var startAndEndDates = getStartAndEndDate(prefix); if (startAndEndDates === null && isValid) { isValid = false; @@ -220,21 +224,28 @@ function validateForm(form) { return; } + logDebug("startAndEndDates !== null && isValid: " + (startAndEndDates !== null && isValid)); + if(startAndEndDates !== null && isValid) { var start = startAndEndDates[0]; var end = startAndEndDates[1]; - $.get(getCheckRightsUrl(), { von: start.format("DD.MM.YYYY"), bis: end.format("DD.MM.YYYY"), inEditMode: isInEditingMode, dateString: start.format("DD.MM.YYYY"), startString: start.format("HH:mm"), endString: end.format("HH:mm") }).done(function(result) { + logDebug("Validiere Eingaben auf dem Server"); + $.get(getCheckRightsUrl(), { von: start.format("DD.MM.YYYY"), bis: end.format("DD.MM.YYYY"), inEditMode: isInEditingMode, dateString: start.format("DD.MM.YYYY"), startString: start.format("HH:mm"), endString: end.format("HH:mm") }).done(function (result) { + logDebug("Eingaben auf dem Server validiert"); var message = $.parseJSON(result); - if(message.Message === null) { + if (message.Message === null) { + logDebug("Message-Eigenschaft der Serverantwort ist null. Schicke Formular zum Server"); form.submit(); } else { + logDebug("Message-Eigenschaft der Serverantwort hat einen Wert. Beende Warteanimation"); hideSpinner(); var kannTrotzdemGespeichertWerden = message.KannTrotzdemGespeichertWerden; - var testCallback = function() { + var testCallback = function () { + logDebug("Kann trotzdem gespeichert werden: " + kannTrotzdemGespeichertWerden); $("#messagePopup .modal-body").html(); if(kannTrotzdemGespeichertWerden) { showSpinner(); @@ -343,15 +354,19 @@ function checkNumberInput(inputId) { } // Wird bei der Validierung des Formulars benutzt -function getStartAndEndDate() { - var startTimePicker = $("#start-time-picker"); - var endTimePicker = $("#end-time-picker"); - var startDatePicker = $("#start-date-picker"); - var endDatePicker = $("#end-date-picker"); +function getStartAndEndDate(prefix) { + if (prefix === undefined || prefix === null) { + prefix = ""; + } + + var startTimePicker = $("#" + prefix + "start-time-picker"); + var endTimePicker = $("#" + prefix + "end-time-picker"); + var startDatePicker = $("#" + prefix + "start-date-picker"); + var endDatePicker = $("#" + prefix + "end-date-picker"); // Bei leeren Start- und Endfeldern. Muss ein Dummydate zurückgeben, // damit das Speichern ohne Angabe der Start- und Endzeit möglich ist. - if($("#start-time").val().length === 0 || $("#end-time").val().length === 0) { + if ($("#" + prefix + "start-time").val().length === 0 || $("#" + prefix + "end-time").val().length === 0) { var bareDate = new Date(); bareDate.setHours(0); @@ -421,36 +436,6 @@ function textCategoryOnClick(categoryId) { childrenContainer.toggle(); } -function textModuleOnClick(textModuleOid) { - var focusedDokuFeld; - - $.get(getLoadCompleteTextbausteinByOidUrl(), { pTextbausteinOid: textModuleOid }).done(function(textModuleText) { - if ($("#dokufeld").length > 0) { - focusedDokuFeld = $("#dokufeld"); - } else { - var numberOfDokutypes = getNumberOfDokutypes(); - - for (var i = 0; i < numberOfDokutypes; i++) { - var currentElement = $("#doku_" + i); - - if (currentElement.css("display") !== "none") { - focusedDokuFeld = $("#doku-textarea-" + i); - break; - } - } - } - - var cursorPosition = focusedDokuFeld.prop("selectionStart"); - var v = focusedDokuFeld.val(); - var textBefore = v.substring(0, cursorPosition); - var textAfter = v.substring(cursorPosition, v.length); - - focusedDokuFeld.val(textBefore + textModuleText + textAfter); - - $("#textbausteine-popup").modal("hide"); - }); -} - function supportConceptSearchOnChange() { try { var text = $("#support-concept-search-input").val().toLowerCase(); diff --git a/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs b/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs index f4df999c9..e6a7a5ec2 100644 --- a/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs +++ b/BeWoPlanerMobil/Service/ASPHibernateSessionManager.cs @@ -40,10 +40,10 @@ namespace BeWoPlanerMobil.Service if (!_SessionFactories.ContainsKey(MobileSessionFacade.Tenant)) { #if DEBUG - var hierarchy = (Hierarchy)LogManager.GetRepository(); - var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL"); - logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() }); - hierarchy.Configured = true; + //var hierarchy = (Hierarchy)LogManager.GetRepository(); + //var logger = (Logger)hierarchy.GetLogger("NHibernate.SQL"); + //logger.AddAppender(new TraceAppender { Layout = new SimpleLayout() }); + //hierarchy.Configured = true; #endif var serverPath = HttpContext.Current.Server.MapPath(""); diff --git a/BeWoPlanerMobil/Util/AppointmentListItem.cs b/BeWoPlanerMobil/Util/AppointmentListItem.cs index 898cfd111..90a03d4be 100644 --- a/BeWoPlanerMobil/Util/AppointmentListItem.cs +++ b/BeWoPlanerMobil/Util/AppointmentListItem.cs @@ -28,6 +28,8 @@ namespace BeWoPlanerMobil.Util public bool IsException { get; } + public bool CanBeEdited { get; } + public int ColSize { get @@ -64,6 +66,8 @@ namespace BeWoPlanerMobil.Util { Identifier = Guid.NewGuid(); + CanBeEdited = schedulerAppointment.CanBeEdited; + Oid = schedulerAppointment.SchedulerAppointmentOid; AllDay = schedulerAppointment.AllDay; IsTask = schedulerAppointment.IsTask; diff --git a/BeWoPlanerMobil/Util/FormCollectionConstants.cs b/BeWoPlanerMobil/Util/FormCollectionConstants.cs index 1827b2dbb..3119a9bc0 100644 --- a/BeWoPlanerMobil/Util/FormCollectionConstants.cs +++ b/BeWoPlanerMobil/Util/FormCollectionConstants.cs @@ -25,6 +25,8 @@ public static string ServiceRecordOidHolder2Key => "service-record-oid-holder"; public static string IsInGroupBookingModeKey => "IsInGroupBookingMode"; + public static string IsInMultiBookingModeKey => "IsInMultiBookingMode"; + // Kalender public static string AppointmentStartDateKey => "StartDate"; diff --git a/BeWoPlanerMobil/Util/MobileUtils.cs b/BeWoPlanerMobil/Util/MobileUtils.cs index 8b2554627..60d204919 100644 --- a/BeWoPlanerMobil/Util/MobileUtils.cs +++ b/BeWoPlanerMobil/Util/MobileUtils.cs @@ -302,7 +302,7 @@ namespace BeWoPlanerMobil.Util return flatNode; } - public static ServiceRecordDC CloneServiceRecordForGroupBooking(ServiceRecordDC pOriginal) + public static ServiceRecordDC CloneServiceRecord(ServiceRecordDC pOriginal) { var m = pOriginal; diff --git a/BeWoPlanerMobil/Util/NullableDateTimeSpan.cs b/BeWoPlanerMobil/Util/NullableDateTimeSpan.cs new file mode 100644 index 000000000..2accc5f16 --- /dev/null +++ b/BeWoPlanerMobil/Util/NullableDateTimeSpan.cs @@ -0,0 +1,23 @@ +using System; +using System.Diagnostics; + +namespace BeWoPlanerMobil.Util +{ + [DebuggerDisplay("{StartDate} - {EndDate}")] + public class NullableDateTimeSpan + { + public DateTime? StartDate { get; set; } + public DateTime? EndDate { get; set; } + + public NullableDateTimeSpan() + { + + } + + public NullableDateTimeSpan(DateTime startDate, DateTime endDate) + { + StartDate = startDate; + EndDate = endDate; + } + } +} \ No newline at end of file diff --git a/BeWoPlanerMobil/Util/ServiceRecord2Validation.cs b/BeWoPlanerMobil/Util/ServiceRecord2Validation.cs index 64d7e3498..d99ba4b71 100644 --- a/BeWoPlanerMobil/Util/ServiceRecord2Validation.cs +++ b/BeWoPlanerMobil/Util/ServiceRecord2Validation.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using BS.Shared.DataContracts; +using BS.Shared.Extensions; namespace BeWoPlanerMobil.Util { @@ -16,5 +17,47 @@ namespace BeWoPlanerMobil.Util ValidationResults = pValidationResults; HilfePlanZeitraum = pHilfePlanZeitraum; } + + public override bool Equals(object obj) + { + if(obj is ServiceRecord2Validation serviceRecord2Validation) + { + var listEquals = false; + + if(ValidationResults is null && serviceRecord2Validation.ValidationResults is null) + { + listEquals = true; + } + else if(!(ValidationResults is null)) + { + listEquals = ValidationResults.AreListEqual(serviceRecord2Validation.ValidationResults); + } + + var sr2 = serviceRecord2Validation.ServiceRecord; + + var srEqual = ServiceRecord.Employee.Equals(sr2.Employee) && + ServiceRecord.CostBearer.Equals(sr2.CostBearer) && + ServiceRecord.CostBearer2SupportConceptOid.Equals(sr2.CostBearer2SupportConceptOid) && + ServiceRecord.SupportConcept.Equals(sr2.SupportConcept) && + ServiceRecord.Customer.Equals(sr2.Customer) && + ServiceRecord.DistanceInMeter.Equals(sr2.DistanceInMeter) && + (ServiceRecord.Goals is null && sr2.Goals is null || (!(ServiceRecord.Goals is null) && ServiceRecord.Goals.AreListEqual(sr2.Goals))) && + ServiceRecord.RoundedDuration.Equals(sr2.RoundedDuration) && + ServiceRecord.Notice.Equals(sr2.Notice) && + ServiceRecord.Notice2.Equals(sr2.Notice2) && + ServiceRecord.Notice3.Equals(sr2.Notice3) && + ServiceRecord.Notice4.Equals(sr2.Notice4) && + ServiceRecord.Notice5.Equals(sr2.Notice5) && + ServiceRecord.ServiceDescription.Equals(sr2.ServiceDescription) && + ServiceRecord.ServiceRecordType.Equals(sr2.ServiceRecordType) && + ServiceRecord.ServiceRecordFormat.Equals(sr2.ServiceRecordFormat) && + (ServiceRecord.End?.Equals(sr2.End) ?? false) && + (ServiceRecord.Start?.Equals(sr2.Start) ?? false); + + return listEquals;// && srEqual && (HilfePlanZeitraum?.Equals(serviceRecord2Validation.HilfePlanZeitraum) ?? false); + } + + return false; + } } } \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Main/GoalTreePartial.cshtml b/BeWoPlanerMobil/Views/Main/GoalTreePartial.cshtml index b83df0a27..cd5cd57b4 100644 --- a/BeWoPlanerMobil/Views/Main/GoalTreePartial.cshtml +++ b/BeWoPlanerMobil/Views/Main/GoalTreePartial.cshtml @@ -3,16 +3,128 @@ @using BS.Shared.DataContracts @model MainModel + + @helper BuildGoalTreeBranch(GoalTreeItem goalTreeItem) { + var isChecked = Model.SelectedGoals.Any(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == goalTreeItem.ValueListEntryOid); + var isCheckedValue = isChecked ? "checked" : string.Empty; + + RatingTypeDC ratingType = null; + + if(isChecked) + { + var selectedGoal = Model.SelectedGoals.FirstOrDefault(f => f.ValueListEntryOid.HasValue && f.ValueListEntryOid.Value == goalTreeItem.ValueListEntryOid); + + if(!(selectedGoal is null)) + { + ratingType = Model.GoalRatingTypes.FirstOrDefault(f => f.RatingTypeOid.HasValue && f.RatingTypeOid.Value == selectedGoal.RatingTypeOid); + } + } + if(!goalTreeItem.IsLeaf) // Ziel {
-
-
-
@goalTreeItem.Header
-
- +
+
+
+ + + + @(ratingType?.DisplayName ?? goalTreeItem.RatingName) + +
+
+
@@ -28,21 +140,6 @@ } else // Maßnahme { - var isChecked = Model.SelectedGoals.Any(a => a.ValueListEntryOid.HasValue && a.ValueListEntryOid.Value == goalTreeItem.ValueListEntryOid); - var isCheckedValue = isChecked ? "checked" : string.Empty; - - RatingTypeDC ratingType = null; - - if(isChecked) - { - var selectedGoal = Model.SelectedGoals.FirstOrDefault(f => f.ValueListEntryOid.HasValue && f.ValueListEntryOid.Value == goalTreeItem.ValueListEntryOid); - - if(!(selectedGoal is null)) - { - ratingType = Model.GoalRatingTypes.FirstOrDefault(f => f.RatingTypeOid.HasValue && f.RatingTypeOid.Value == selectedGoal.RatingTypeOid); - } - } -
diff --git a/BeWoPlanerMobil/Views/Main/GroupBookingPartial.cshtml b/BeWoPlanerMobil/Views/Main/GroupBookingPartial.cshtml index 821ebcb10..9399d7f3e 100644 --- a/BeWoPlanerMobil/Views/Main/GroupBookingPartial.cshtml +++ b/BeWoPlanerMobil/Views/Main/GroupBookingPartial.cshtml @@ -18,11 +18,11 @@ var buttonText = $(this).text(); $("#hours-minutes-dropdown-btn").text(buttonText); - setInputFilter(); + setInputFilter('duration', 'distance', 'hours-minutes-dropdown-btn'); $.get('@Url.Action("ToggleDurationUnit")', { isInHoursMode: buttonText === "Stunden" }); - calculateDuration(true); + calculateDuration(true, 'start-time', 'end-time', 'duration', 'hours-minutes-dropdown-btn', 'start-date-picker', 'end-date-picker'); }); }); @@ -33,7 +33,7 @@ { var submitButtonText = Model.IsInEditingMode ? "Speichern" : "Anlegen"; - using(Html.BeginForm("CreateOrUpdateGroupBooking", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset()", id = "groupBookingForm" })) + using(Html.BeginForm("CreateOrUpdateGroupBooking", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset('category-select', 'leistung-select', 'textmodule-container', 'tree')", id = "groupBookingForm" })) { var startDate = Model.SelectedServiceRecord?.Start?.ToShortDateString() ?? DateTime.Today.ToShortDateString(); var endDate = Model.SelectedServiceRecord?.End?.ToShortDateString() ?? DateTime.Today.ToShortDateString(); @@ -105,7 +105,7 @@
@@ -115,7 +115,7 @@
@Html.LabelFor(m => m.SelectedServiceCategoryOid) - @Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions()", @class = "custom-select", Id = "category-select" }) + @Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions('category-select', 'leistung-select', 'textmodule-container', 'tree')", @class = "custom-select", Id = "category-select" })
@@ -211,7 +211,7 @@
- +
@if (Model.IsZeiterfassungInStdMin) @@ -367,7 +367,7 @@ long groupOid; var wasSuccessful = long.TryParse(group.Value, out groupOid); - var shouldBeChecked = wasSuccessful ? Model.SelectedGroupOfPeopleOids.Contains(groupOid) : wasSuccessful; + var shouldBeChecked = wasSuccessful ? Model.GroupBookingSelectedGroupOfPeopleOids.Contains(groupOid) : wasSuccessful; var attribute = shouldBeChecked ? "checked=\"checked\"" : string.Empty; } @@ -409,7 +409,7 @@ @foreach (var employee in Model.Employees) { - var checkedValue = Model.SelectedEmployees.Contains(employee) ? "checked=\"checked\"" : string.Empty; + var checkedValue = Model.GroupBookingSelectedEmployees.Contains(employee) ? "checked=\"checked\"" : string.Empty;
diff --git a/BeWoPlanerMobil/Views/Main/Main.cshtml b/BeWoPlanerMobil/Views/Main/Main.cshtml index 33e3cdaf4..b3cea6585 100644 --- a/BeWoPlanerMobil/Views/Main/Main.cshtml +++ b/BeWoPlanerMobil/Views/Main/Main.cshtml @@ -16,53 +16,93 @@ } + + + +
+
+ @if(!(Model is null)) + { + using(Html.BeginForm("CreateMultiBooking", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset('mb-category-select', 'mb-leistung-select', 'textmodule-container', 'tree')", id = "multiBookingForm" })) + { +
+ +
+
+ +
+
+ + +
+
+
+
+ @foreach(var selectedCb2ScRelation in Model.MultiBookingSelectionObject.SelectedRelations) + { +
+
+
+ + @selectedCb2ScRelation.Text1 +
+ + @selectedCb2ScRelation.Text2 + +
+
+
+ +
+
+
+ } +
+
+
+
+ + +
+
+
+ +
+
+
+ + +
+
+
+
+
+
Kategorie
+
+ @Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions('mb-category-select', 'mb-leistung-select', 'textmodule-container', 'tree')", @class = "custom-select", Id = "mb-category-select" }) +
+
+
+
+ + +
+
+
+
+
+
Leistung
+
+ +
+ + @**@ + +
+
+
+ + +
+
+
+
+
+
Startdatum
+
+ +
+
+
+
+
+
+ + @if(Model.IsEndDateVisible) + { +
+
+ @**@ +
+
+
Enddatum
+
+ +
+
+
+
+
+
+ } +
+ + +
+ @{ + var startTimeValue = Model.StartTimeToEdit; + var endTimeValue = Model.EndTimeToEdit; + + var divisor = Model.SelectedDurationUnit == "Stunden" ? 60 : 1; + + var durationValue = string.Empty; + + if(Model.SetStartTimeToEndTimeAfterSave && !Model.IsInEditingMode) + { + startTimeValue = Model.NewStartTime; + endTimeValue = Model.NewEndTime; + if(Model.NewDuration.HasValue) + { + durationValue = (Model.NewDuration / divisor).ToString(); + } + } + } +
+
+ @**@ +
+
+
Von
+
+ +
+
+
+
+
+
+
+
+ @**@ +
+
+
Bis
+
+ +
+
+
+
+
+
+
+ + +
+
+
+ @**@ +
+
+
Dauer
+
+ + @if(Model.IsZeiterfassungInStdMin) + { +
+ + +
+ } +
+ +
+
+ +
+ + + @if(Model.ShowDistanceField) + { +
+
+
+ @**@ +
+
+
Gefahrene Kilometer
+
+ +
+
+
+
+ } + + + @if(AbstractModel.HasRightToSeeTextModules) + { +
+
+ +
+
+ } + + +
+
+ @if(Model.NumberOfDokuTypes == 0) + { +
+ + +
+ } + else + { + +
+ @for(var i = 0; i < Model.Dokutypes.Length; i++) + { + var textareaName = i + 1 < 1 ? "Dokumentation" : "Dokumentation" + (i + 1); + +
+ +
+ } +
+ } +
+
+
+ } +
+
+ +
+
+ @using(Html.BeginForm("ResetEditingMode", "Main", FormMethod.Post)) + { + + } +
+
+ +
+
+ } +
+
+ + + + + + \ No newline at end of file diff --git a/BeWoPlanerMobil/Views/Main/SingleBookingPartial.cshtml b/BeWoPlanerMobil/Views/Main/SingleBookingPartial.cshtml index 45bfa35bb..1a9934c21 100644 --- a/BeWoPlanerMobil/Views/Main/SingleBookingPartial.cshtml +++ b/BeWoPlanerMobil/Views/Main/SingleBookingPartial.cshtml @@ -1,5 +1,7 @@ @using BeWoPlanerMobil.Models @using BeWoPlanerMobil.Util +@using BS.Shared +@using BS.Shared.Extensions @model MainModel @@ -113,7 +115,7 @@ } - using(Html.BeginForm("CreateOrUpdateServiceRecord", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset()", id = "singleBookingForm" })) + using(Html.BeginForm("CreateOrUpdateServiceRecord", "Main", FormMethod.Post, new { onreset = "serviceDescriptionSelectOnReset('category-select', 'leistung-select', 'textmodule-container', 'tree')", id = "singleBookingForm" })) {
@@ -146,7 +148,7 @@
@Html.LabelFor(m => m.SelectedServiceCategoryOid) - @Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions()", @class = "custom-select", Id = "category-select" }) + @Html.DropDownListFor(m => m.SelectedServiceCategoryOid, Model.ServiceCategoryListItems, new { onchange = "loadServiceDescriptions('category-select', 'leistung-select', 'textmodule-container', 'tree')", @class = "custom-select", Id = "category-select" })
@@ -240,7 +242,7 @@
- +
@if(Model.IsZeiterfassungInStdMin) @@ -360,29 +362,291 @@
@using(Html.BeginForm("LoadServiceRecords", "Main", FormMethod.Post, new { id = "selectServiceRecordForm" })) { - +
+
+
+ + +
+
+
+ +
+
+ +
+
+
+
+
+ Anzahl Tage: +
+ +
+
+
+
+ + + + var defaultStartDate = DateTime.Now.GetFirstOfMonth().ToShortDateString(); + var defaultEndDate = DateTime.Today.ToShortDateString(); +
+
+
+
+
+
+
+
+ Von +
+ +
+
+
+
+
+
+
+
+
+
+ Bis +
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ Monat +
+ +
+
+
+
+
+
+
+ Jahr +
+ +
+
+
+
}
} + +
@{ @@ -620,22 +884,23 @@ }
- + +