Quittierungsbeleg von Prof. Dr. Eggers Stiftung angepasst.

This commit is contained in:
2023-12-06 18:14:34 +01:00
parent 3515318e10
commit a42653c045
17 changed files with 420 additions and 204 deletions

View File

@@ -248,22 +248,22 @@ namespace BeWo.Scheduler.View
private bool CheckCats2ResourcesForEqualitiy(Dictionary<ValueListEntryDC, List<ResourceDC>> dic2)
{
if(_Category2ResourcesDictionary == null && dic2 != null || dic2 == null && _Category2ResourcesDictionary != null)
if(_Category2ResourcesDictionary is null && dic2 != null || dic2 is null && _Category2ResourcesDictionary != null)
{
return false;
}
return _Category2ResourcesDictionary == null && dic2 == null || _Category2ResourcesDictionary != null && dic2 != null && _Category2ResourcesDictionary.Count == dic2.Count && _Category2ResourcesDictionary.Except(dic2).Any();
return _Category2ResourcesDictionary is null && dic2 is null || _Category2ResourcesDictionary != null && dic2 != null && _Category2ResourcesDictionary.Count == dic2.Count && _Category2ResourcesDictionary.Except(dic2).Any();
}
private static bool ListEquals<T>(IReadOnlyCollection<T> list1, ICollection<T> list2)
{
if(list1 == null && list2 == null)
if(list1 is null && list2 is null)
{
return true;
}
if(list1 == null && list2 != null || list1 != null && list2 == null)
if(list1 is null && list2 != null || list1 != null && list2 is null)
{
return false;
}
@@ -636,20 +636,20 @@ namespace BeWo.Scheduler.View
var ausnahmen = item.GetExceptions();
foreach(var exc in ausnahmen)
{
var b = exc.GetSourceObject(Scheduler.GetCoreStorage()) as IBeWoAppointment;
if(b?.CustomFields == null)
var beWoAppointment = exc.GetSourceObject(Scheduler.GetCoreStorage()) as IBeWoAppointment;
if(beWoAppointment?.CustomFields is null)
{
continue;
}
foreach(var field in b.CustomFields)
foreach(var field in beWoAppointment.CustomFields)
{
exc.CustomFields[field.Key] = field.Value;
}
}
}
if(bapp?.CustomFields == null)
if(bapp?.CustomFields is null)
{
continue;
}
@@ -1313,14 +1313,14 @@ namespace BeWo.Scheduler.View
if(_IsNew)
{
var n = new ObservableCollection<Employee2SchedulerAppointmentDC>(SelectedEmployees.Select(item => new Employee2SchedulerAppointmentDC {Employee = item, ParticipationAnswer = ParticipationAnswer.Offen}).ToList());
e.Appointment.CF_EmployeeList(n);
var employees2Appointments = new ObservableCollection<Employee2SchedulerAppointmentDC>(SelectedEmployees.Select(item => new Employee2SchedulerAppointmentDC {Employee = item, ParticipationAnswer = ParticipationAnswer.Offen}).ToList());
e.Appointment.CF_EmployeeList(employees2Appointments);
e.Appointment.CF_CustomerList(new List<CompactCustomerDC>(SelectedCustomers));
e.Appointment.CF_ResourceList(new List<ResourceDC>(SelectedResources));
}
var form = ViewModel.GetEditAppointmentForm(control, e.Appointment);
if(form == null)
if(form is null)
{
if(_IsNew)
{
@@ -1955,14 +1955,14 @@ namespace BeWo.Scheduler.View
private void MeinTB_OnChecked(object sender, RoutedEventArgs e)
{
var tb = (ToggleButton) sender;
var toggleButton = (ToggleButton) sender;
if(tb?.IsChecked == null)
if(toggleButton?.IsChecked is null)
{
return;
}
if(!tb.IsChecked.Value)
if(!toggleButton.IsChecked.Value)
{
MitarbeiterSuchGrid.Visibility = Visibility.Collapsed;
MitarbeiterSuchTextBox.Clear();
@@ -1976,14 +1976,14 @@ namespace BeWo.Scheduler.View
private void MeinTB2_OnChecked(object sender, RoutedEventArgs e)
{
var tb = (ToggleButton) sender;
var toggleButton = (ToggleButton) sender;
if(tb?.IsChecked == null)
if(toggleButton?.IsChecked is null)
{
return;
}
if(!tb.IsChecked.Value)
if(!toggleButton.IsChecked.Value)
{
KlientenSuchGrid.Visibility = Visibility.Collapsed;
KlientenSuchTextBox.Clear();
@@ -2021,12 +2021,21 @@ namespace BeWo.Scheduler.View
_ReloadingViewModel = true;
if(ViewModel == null)
if(ViewModel is null)
{
_ReloadingViewModel = false;
return;
}
var stopwatch = new Stopwatch();
stopwatch.Start();
#if DEBUG
var stackTrace = new StackTrace();
var callingMethodName = stackTrace.GetFrame(1).GetMethod().Name;
BeWoApp.LogMessage(callingMethodName + "->ReloadVM");
#endif
var range = Scheduler.ActiveView.GetVisibleIntervals();
var start = range.Start;
var end = range.End;
@@ -2051,10 +2060,11 @@ namespace BeWo.Scheduler.View
_LastFetchedInterval = FetchingInterval;
ReloadAppointmentViewModel(start, end, selectedEmployeeOids, selectedCustomerOids, selectedResourceOids, employeesOnly, customersOnly, resourcesOnly, onlyPrivateAppointments, showOnlyMyAppointments, showAbsenceTimes);
ReloadAppointmentViewModel(start, end, selectedEmployeeOids, selectedCustomerOids, selectedResourceOids, employeesOnly, customersOnly, resourcesOnly, onlyPrivateAppointments, showOnlyMyAppointments, showAbsenceTimes,
delegate { this.Dispatch(() => { stopwatch.Stop(); BeWoApp.LogMessage($"Das Laden der Termine und Abwesenheiten dauerte {stopwatch.ElapsedMilliseconds}ms."); }); });
}
public void ReloadAppointmentViewModel(DateTime pIntervalStart, DateTime pIntervalEnd, List<long> pSelectedEmployees, List<long> pSelectedCustomer, List<long> pSelectedResources, bool pEmployeesOnly, bool pCustomersOnly, bool pResourcesOnly, bool pPrivateAppointmentsOnly, bool pOnlyMyAppointments, bool pShouldShowAbsenceTimes)
public void ReloadAppointmentViewModel(DateTime pIntervalStart, DateTime pIntervalEnd, List<long> pSelectedEmployees, List<long> pSelectedCustomer, List<long> pSelectedResources, bool pEmployeesOnly, bool pCustomersOnly, bool pResourcesOnly, bool pPrivateAppointmentsOnly, bool pOnlyMyAppointments, bool pShouldShowAbsenceTimes, Action callback = null)
{
ResetDeletionMode();
@@ -2086,7 +2096,7 @@ namespace BeWo.Scheduler.View
{
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();
BeWoUtils.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen)) && (!w.EmployeeList.TrueForAll(e2a => e2a.ParticipationAnswer == ParticipationAnswer.Absage) || w.EmployeeList is null || w.EmployeeList.Count == 0)).ToList();
var anonymizedAppointments = appointments.Where(w => w.CanBeEdited == false && w.IsTask == false).ToList();
@@ -2121,9 +2131,9 @@ namespace BeWo.Scheduler.View
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 items = SelectedItems;
var testtesttest = ViewModel.ActiveAppointmentViewModel;
//var testtesttest = ViewModel.ActiveAppointmentViewModel;
_ReloadingViewModel = false;
@@ -2165,6 +2175,8 @@ namespace BeWo.Scheduler.View
_IsComingFromHomeDragPanel = false;
}
callback?.Invoke();
});
});
});
@@ -2183,7 +2195,9 @@ namespace BeWo.Scheduler.View
var dialog = new SaveFileDialog {Filter = "iCalendar files (*.ics)|*.ics", FilterIndex = 1};
if(dialog.ShowDialog() != true)
{
return;
}
using(var stream = dialog.OpenFile())
{
@@ -2193,11 +2207,14 @@ namespace BeWo.Scheduler.View
private void ExportAppointmentsAs_iCal(Stream stream)
{
if(stream == null)
if(stream is null)
{
return;
}
try
{
var productIdentifier = string.Format("-//{0}//DXScheduler iCalendarExchange Example//DE", BeWoApp.Mandator);
var productIdentifier = $"-//{BeWoApp.Mandator}//DXScheduler iCalendarExchange Example//DE";
var exporter = new iCalendarExporter(Scheduler.GetCoreStorage()) {ProductIdentifier = productIdentifier};
exporter.AppointmentExporting += OnAppointmentExporting;
@@ -2205,7 +2222,7 @@ namespace BeWo.Scheduler.View
}
catch(Exception e)
{
MessageBox.Show(string.Format("Der Kalender konnte leider nicht exportiert werden.\n{0}", e.Message), "Fehler beim Export", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show($"Der Kalender konnte leider nicht exportiert werden.\n{e.Message}", "Fehler beim Export", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
@@ -2308,7 +2325,7 @@ namespace BeWo.Scheduler.View
var neu = new List<Appointment>();
foreach (var app in kollektionOhneAusnahmen.Where(w => !ausnahmen.Select(s => s.RecurrenceIndex).Contains(w.RecurrenceIndex)))
foreach(var app in kollektionOhneAusnahmen.Where(w => !ausnahmen.Select(s => s.RecurrenceIndex).Contains(w.RecurrenceIndex)))
{
var recurrenceId = app.RecurrenceInfo.Id.ToString();
@@ -2320,7 +2337,7 @@ namespace BeWo.Scheduler.View
neu.AddIfNotIn(app);
}
if (ausnahmen.Count > 0)
if(ausnahmen.Count > 0)
{
kollektionOhneAusnahmen = kollektionOhneAusnahmen.Where(w => !ausnahmen.Select(s => s.RecurrenceIndex).Contains(w.RecurrenceIndex)).ToList();
}
@@ -2330,7 +2347,7 @@ namespace BeWo.Scheduler.View
var recurrenceId = appointment.RecurrenceInfo.Id.ToString();
var recurrenceIndex = appointment.RecurrenceIndex;
if (!(appointment.IsOccurrence && deletedOccurrences.Any(a => a.RecurrenceIdReference == recurrenceId && a.RecurrenceIndexReference == recurrenceIndex)))
if(!(appointment.IsOccurrence && deletedOccurrences.Any(a => a.RecurrenceIdReference == recurrenceId && a.RecurrenceIndexReference == recurrenceIndex)))
{
serienTermine.AddIfNotIn(new SchedulerAppointmentDC
{
@@ -2400,14 +2417,16 @@ namespace BeWo.Scheduler.View
public void PreselectCustomer(long pCustomerOid)
{
if(AllCustomers.Any(c => c.CustomerOid.Equals(pCustomerOid)))
if(!AllCustomers.Any(c => c.CustomerOid.Equals(pCustomerOid)))
{
SelectedCustomers = new List<CompactCustomerDC> {AllCustomers.Find(f => f.CustomerOid.Equals(pCustomerOid))};
OnPropertyChanged(nameof(SelectedCustomers));
OnPropertyChanged(nameof(SelectedItems));
OnPropertyChanged(nameof(GefilterteKlienten));
return;
}
SelectedCustomers = new List<CompactCustomerDC> {AllCustomers.Find(f => f.CustomerOid.Equals(pCustomerOid))};
OnPropertyChanged(nameof(SelectedCustomers));
OnPropertyChanged(nameof(SelectedItems));
OnPropertyChanged(nameof(GefilterteKlienten));
}
private void DateNavigator_OnSelectedDatesChanged(object sender, EventArgs e)
@@ -2419,6 +2438,7 @@ namespace BeWo.Scheduler.View
var selectedDates = navigator.SelectedDates;
var isSelectedDateFetched = _LastFetchedInterval.ContainsEveryDateFromList(selectedDates);
if(!isSelectedDateFetched && !(_LastFetchedInterval.Start.Equals(new DateTime(1, 1, 1, 0, 0, 0)) && _LastFetchedInterval.End.Equals(new DateTime(1, 1, 1, 0, 30, 0))))
{
ReloadVM();
@@ -2467,26 +2487,28 @@ namespace BeWo.Scheduler.View
private void NurMeineTermineEinAusCheckBox_OnChecked(object sender, RoutedEventArgs e)
{
var cb = (CheckBox) sender;
var checkBox = (CheckBox) sender;
if(CheckBoxConverter != null && BeWoApp.CompactLoggedOnEmployee != null)
if(CheckBoxConverter is null || BeWoApp.CompactLoggedOnEmployee is null)
{
if(cb.IsChecked != null && cb.IsChecked.Value)
{
SelectedEmployees = new List<CompactEmployeeDC> {BeWoApp.CompactLoggedOnEmployee};
CheckBoxConverter.AktuellerMitarbeiter = BeWoApp.CompactLoggedOnEmployee;
}
else if(cb.IsChecked != null && !cb.IsChecked.Value && SelectedEmployees.Count == 1)
{
SelectedEmployees.Remove(BeWoApp.CompactLoggedOnEmployee);
CheckBoxConverter.AktuellerMitarbeiter = null;
}
OnPropertyChanged(nameof(SelectedEmployees));
OnPropertyChanged(nameof(SelectedItems));
ReloadVM(true);
return;
}
if(checkBox.IsChecked != null && checkBox.IsChecked.Value)
{
SelectedEmployees = new List<CompactEmployeeDC> {BeWoApp.CompactLoggedOnEmployee};
CheckBoxConverter.AktuellerMitarbeiter = BeWoApp.CompactLoggedOnEmployee;
}
else if(checkBox.IsChecked != null && !checkBox.IsChecked.Value && SelectedEmployees.Count == 1)
{
SelectedEmployees.Remove(BeWoApp.CompactLoggedOnEmployee);
CheckBoxConverter.AktuellerMitarbeiter = null;
}
OnPropertyChanged(nameof(SelectedEmployees));
OnPropertyChanged(nameof(SelectedItems));
ReloadVM(true);
}
private void AbwesenheitenEinAusCheckBox_OnChecked(object sender, RoutedEventArgs e)
@@ -2529,15 +2551,17 @@ namespace BeWo.Scheduler.View
private void Scheduler_OnInplaceEditorShowing(object sender, InplaceEditorEventArgs e)
{
if(_IsNew)
if(!_IsNew)
{
var n = new ObservableCollection<Employee2SchedulerAppointmentDC>(SelectedEmployees.Select(item => new Employee2SchedulerAppointmentDC {Employee = item, ParticipationAnswer = ParticipationAnswer.Offen}).ToList());
e.Appointment.CF_EmployeeList(n);
e.Appointment.CF_CustomerList(new List<CompactCustomerDC>(SelectedCustomers));
e.Appointment.CF_ResourceList(new List<ResourceDC>(SelectedResources));
_IsNew = false;
return;
}
var n = new ObservableCollection<Employee2SchedulerAppointmentDC>(SelectedEmployees.Select(item => new Employee2SchedulerAppointmentDC {Employee = item, ParticipationAnswer = ParticipationAnswer.Offen}).ToList());
e.Appointment.CF_EmployeeList(n);
e.Appointment.CF_CustomerList(new List<CompactCustomerDC>(SelectedCustomers));
e.Appointment.CF_ResourceList(new List<ResourceDC>(SelectedResources));
_IsNew = false;
}
private void ButtonDeleteAppointmentsInInterval_Click(object sender, RoutedEventArgs e)
@@ -2633,14 +2657,14 @@ namespace BeWo.Scheduler.View
var appointmentDC = appointmentVM?.CommitToDataContract();
if(appointmentDC?.SchedulerAppointmentOid == null || appointmentDC.NewSchedulerAppointmentVersion == null || appointmentToRestore.Type != AppointmentType.ChangedOccurrence)
if(appointmentDC?.SchedulerAppointmentOid is null || appointmentDC.NewSchedulerAppointmentVersion is null || appointmentToRestore.Type != AppointmentType.ChangedOccurrence)
{
return;
}
ServiceFacade.DoResourceServiceAsync(s => s.GetSchedulerAppointmentByid(appointmentDC.SchedulerAppointmentOid.Value), appointment =>
{
if(appointment.SchedulerAppointmentOid == null || appointment.NewSchedulerAppointmentVersion == null)
if(appointment.SchedulerAppointmentOid is null || appointment.NewSchedulerAppointmentVersion is null)
{
return;
}
@@ -2671,8 +2695,8 @@ namespace BeWo.Scheduler.View
private void ShowTasksCheckBox_OnClick(object sender, RoutedEventArgs e)
{
var cb = (CheckBox) sender;
IsTasksVisible = cb.IsChecked ?? false;
var checkBox = (CheckBox) sender;
IsTasksVisible = checkBox.IsChecked ?? false;
ReloadVM(true);
}
@@ -2712,15 +2736,15 @@ namespace BeWo.Scheduler.View
{
var storageAppointments = Scheduler.Storage.AppointmentStorage.Items.ToList();
var sb = new StringBuilder();
sb.Append("AppointmentStorage-Inhalt:\n");
var stringBuilder = new StringBuilder();
stringBuilder.Append("AppointmentStorage-Inhalt:\n");
foreach(var app in storageAppointments)
{
sb.Append($"{app.Subject} {app.Start:dd.MM.yyyy HH:mm}-{app.End:dd.MM.yyyy HH:mm}\n");
stringBuilder.Append($"{app.Subject} {app.Start:dd.MM.yyyy HH:mm}-{app.End:dd.MM.yyyy HH:mm}\n");
}
WriteToDebug(sb.ToString());
WriteToDebug(stringBuilder.ToString());
}
private void Scheduler_OnAppointmentDrop(object sender, AppointmentDragEventArgs e)
@@ -2833,9 +2857,9 @@ namespace BeWo.Scheduler.View
public static class ViewTypeConvert
{
public static AppointmentViewType ToAppointmentViewType(SchedulerViewType svt)
public static AppointmentViewType ToAppointmentViewType(SchedulerViewType schedulerViewType)
{
switch(svt)
switch(schedulerViewType)
{
case SchedulerViewType.Day:
return AppointmentViewType.Day;
@@ -2893,7 +2917,7 @@ namespace BeWo.Scheduler.View
{
var customFieldStorage = (CustomFieldStorage)customFields[nameof(CustomFieldStorage)];
if (customFieldStorage != null && parameter != null && parameter.Equals("AlleRessourcen"))
if(customFieldStorage != null && parameter != null && parameter.Equals("AlleRessourcen"))
{
return customFieldStorage.ResourceList;
}
@@ -3155,7 +3179,7 @@ namespace BeWo.Scheduler.View
{
var customFields = (CustomFieldCollection) value;
if(customFields == null)
if(customFields is null)
{
return new SolidColorBrush(Color.FromRgb(192, 255, 208));
}
@@ -3185,32 +3209,32 @@ namespace BeWo.Scheduler.View
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value is Employee2SchedulerAppointmentDC employee2SchedulerAppointment)
if(!(value is Employee2SchedulerAppointmentDC employee2SchedulerAppointment))
{
if (parameter != null && parameter.Equals("GibName"))
{
return employee2SchedulerAppointment.Employee.DetailDescription;
}
var color = Color.FromRgb(255, 255, 255);
switch (employee2SchedulerAppointment.ParticipationAnswer)
{
case ParticipationAnswer.Vorbehalt:
color = Color.FromRgb(185, 39, 217);
break;
case ParticipationAnswer.Zusage:
color = Color.FromRgb(72, 212, 78);
break;
case ParticipationAnswer.Absage:
color = Color.FromRgb(171, 0, 48);
break;
}
return new SolidColorBrush(color);
return null;
}
return null;
if(parameter != null && parameter.Equals("GibName"))
{
return employee2SchedulerAppointment.Employee.DetailDescription;
}
var color = Color.FromRgb(255, 255, 255);
switch(employee2SchedulerAppointment.ParticipationAnswer)
{
case ParticipationAnswer.Vorbehalt:
color = Color.FromRgb(185, 39, 217);
break;
case ParticipationAnswer.Zusage:
color = Color.FromRgb(72, 212, 78);
break;
case ParticipationAnswer.Absage:
color = Color.FromRgb(171, 0, 48);
break;
}
return new SolidColorBrush(color);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
@@ -3223,19 +3247,13 @@ namespace BeWo.Scheduler.View
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (BeWoApp.AppSettings.ShowInfoButtonInCalender == true)
{
return Visibility.Visible;
}
else
return Visibility.Collapsed;
return BeWoApp.AppSettings.ShowInfoButtonInCalender ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
#endregion
}

View File

@@ -70,13 +70,13 @@ namespace BeWo.View.Detail
public DebugWindowMessage(string messageText)
{
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}: {messageText}";
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss.fff}: {messageText}";
CustomColor = Colors.Black;
}
public DebugWindowMessage(string messageText, Color customColor)
{
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss}: {messageText}";
MessageText = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss.fff}: {messageText}";
CustomColor = customColor;
}
}

View File

@@ -8,7 +8,7 @@
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<ProjectView>ShowAllFiles</ProjectView>
<WebStackScaffolding_ViewDialogWidth>600</WebStackScaffolding_ViewDialogWidth>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
@@ -28,7 +28,7 @@
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<StartPageUrl>Views/Login/Index.cshtml</StartPageUrl>
<StartPageUrl>http://localhost/BeWoPlanerMobil/</StartPageUrl>
<StartAction>CurrentPage</StartAction>
<AspNetDebugging>True</AspNetDebugging>
<SilverlightDebugging>False</SilverlightDebugging>

View File

@@ -62,8 +62,6 @@ namespace BeWoPlanerMobil.Controllers
{
LoadCustomerToModel(id);
}
}
catch (Exception e)
{
@@ -218,13 +216,16 @@ namespace BeWoPlanerMobil.Controllers
Model.Report = null;
if(int.TryParse(formCollection["report-type-input"], out var selectedReportTypeInt))
if(!int.TryParse(formCollection["report-type-input"], out var selectedReportTypeInt))
{
var selectedReportType = (CustomerReportType) selectedReportTypeInt;
SelectReport(selectedReportType);
return RedirectToActionPermanent("Customer");
}
var selectedReportType = (CustomerReportType) selectedReportTypeInt;
SelectReport(selectedReportType);
//return RedirectToActionPermanent("Customer", Model);
return RedirectToActionPermanent("Customer");
}
@@ -235,6 +236,18 @@ namespace BeWoPlanerMobil.Controllers
GenerateMobileMedListForSelectedCustomer();
}
public string SelectReportType(int reportType)
{
if(Model is null)
{
return "Die Auswahl des Berichts ist fehlgeschlagen. Bitte wenden Sie sich an den Administrator.";
}
Model.SelectedReportType = (CustomerReportType) reportType;
return LeerzeichenFuerGetMethoden;
}
public void GenerateMobileMedListForSelectedCustomer(long? selectedMedListOid = null)
{
if(Model.SelectedCustomerOid is null)
@@ -373,6 +386,8 @@ namespace BeWoPlanerMobil.Controllers
CustomerService.UpdateCustomer(customer);
LoadCustomerToModel(customer.CustomerOid);
return RedirectToActionPermanent("Customer", new { id = customer.CustomerOid });
}
@@ -380,13 +395,15 @@ namespace BeWoPlanerMobil.Controllers
[HttpPost]
public ActionResult ViewMedListFromHistoryList(FormCollection formCollection)
{
if(long.TryParse(formCollection["med-list-oid"], out var medListOid))
if(!long.TryParse(formCollection["med-list-oid"], out var medListOid))
{
Model.SelectedReportType = CustomerReportType.Historie;
GenerateMobileMedListForSelectedCustomer(medListOid);
return RedirectToActionPermanent("Customer");
}
Model.SelectedReportType = CustomerReportType.Historie;
GenerateMobileMedListForSelectedCustomer(medListOid);
return RedirectToActionPermanent("Customer");
}
@@ -394,13 +411,15 @@ namespace BeWoPlanerMobil.Controllers
[HttpPost]
public ActionResult DeleteMedListFromHistoryList(FormCollection formCollection)
{
if(long.TryParse(formCollection["med-list-oid"], out var medListOid))
if(!long.TryParse(formCollection["med-list-oid"], out var medListOid))
{
Model.SelectedReportType = CustomerReportType.Historie;
CustomerService.DeleteMedikamentenverordnungsliste(medListOid);
return RedirectToActionPermanent("Customer");
}
Model.SelectedReportType = CustomerReportType.Historie;
CustomerService.DeleteMedikamentenverordnungsliste(medListOid);
return RedirectToActionPermanent("Customer");
}

View File

@@ -3950,6 +3950,12 @@ namespace BeWoPlanerMobil.Controllers
return RedirectToActionPermanent("Main");
}
[Authorize]
public string ProvokeJsonError()
{
return "<!DOCTYPE html>\r\n<html lang=\"en\">\r\n <head>\r\n <meta charset=\"UTF-8\">\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\r\n <title>HTML 5 Boilerplate</title>\r\n <link rel=\"stylesheet\" href=\"style.css\">\r\n </head>\r\n <body>\r\n\t<script src=\"index.js\"></script>\r\n </body>\r\n</html>";
}
}
public class ServiceRecord2Monatsunterschrift

View File

@@ -14,6 +14,8 @@ using System.Linq;
using System.Text;
using System.Web.Mvc;
using BeWo.Service.Plugins;
using DevExpress.Mvvm.Native;
using NHibernate.Util;
namespace BeWoPlanerMobil.Controllers
{
@@ -1266,15 +1268,76 @@ namespace BeWoPlanerMobil.Controllers
var endDate = Model.SelectedEndDay ?? date.GetLastOfMonth().Day;
var filterType = Model.SelectedFilterItem;
Model.QuittierungsbelegsReportObject = Model.ReportCreator.CreateServiceOverviewReportNew(month, year, filterType.FilterEnum, customerOid, teamOid, employeeOid, organisationOid, serviceCategoryOid, startDate, endDate, false);
var report = Model.ReportCreator.CreateServiceOverviewReportNew(month, year, filterType.FilterEnum, customerOid, teamOid, employeeOid, organisationOid, serviceCategoryOid, startDate, endDate, false);
//var employeeOid = Model.Employee.EmployeeOid;
//var report = Model.ReportCreator.CreateEmployeeHourReport(employeeOid, null, new DateTime(2023, 10, 1), new DateTime(2023, 10, 31), 0);
report.ExportOptions.PrintPreview.DefaultFileName = CreateFileName();
report.DisplayName = CreateFileName();
//Model.QuittierungsbelegsReportObject = report;
Model.QuittierungsbelegsReportObject = report;
return RedirectToActionPermanent("InitReports");
}
private string CreateFileName()
{
// Quittierungsbeleg_AlleKlienten_Jetten-Lyndon_LWL_Oktober-01-15-2023.pdf
var fileName = "Quittierungsbeleg_";
var selectedFilter = Model.SelectedFilterItem.FilterEnum;
var filterText = string.Empty;
switch(selectedFilter)
{
case QBFilterEnum.AlleKlienten:
filterText = "AlleKlienten";
break;
case QBFilterEnum.NurKlientenMeinesTeams:
filterText = "KlientenMeinerTeams";
break;
case QBFilterEnum.MeineKlienten:
filterText = "MeineKlienten";
break;
case QBFilterEnum.KlientenAuswahl:
filterText = "KlientenAuswahl";
break;
case QBFilterEnum.TeamAuswahl:
filterText = "TeamAuswahl";
break;
}
fileName += $"{filterText}_";
if(Model.IsForSelectedEmployeesOnly)
{
var selectedEmployee = Model.SelectedEmployee;
var employeeName = $"{selectedEmployee.LastName}-{selectedEmployee.FirstName}_";
fileName += $"{employeeName}_";
}
if(Model.IsForSelectedCostbearersOnly)
{
var selectedCostbearer = Model.SelectedOrganisation;
fileName += $"{selectedCostbearer.Name}_";
}
if(Model.IsForSelectedCategoryOnly)
{
var selectedServiceCategory = Model.SelectedServiceCategory;
fileName += $"{selectedServiceCategory.Name}_";
}
if(!Model.SelectedMonth.HasValue || !Model.SelectedYear.HasValue || !Model.SelectedStartDay.HasValue || !Model.SelectedEndDay.HasValue)
{
return fileName;
}
var start = new DateTime(Model.SelectedYear.Value, Model.SelectedMonth.Value, Model.SelectedStartDay.Value);
var end = new DateTime(Model.SelectedYear.Value, Model.SelectedMonth.Value, Model.SelectedEndDay.Value);
fileName += $"{start:MMMM}-{start:dd}-{end:dd}-{start:yyyy}";
return fileName;
}
}
public class ConfirmationReceiptSignatureObject

View File

@@ -1,4 +1,5 @@
@using BeWoPlanerMobil.Models;
@using BeWoPlanerMobil.Controllers
@using BeWoPlanerMobil.Models;
@using BeWoPlanerMobil.Util
@using BS.Shared
@@ -105,6 +106,11 @@
var historyList = $("#med-list-history-list");
$("#show-med-list-btn").prop("disabled", selectedReportType === "2");
$.get("@Url.Action("SelectReportType")", {reportType: selectedReportType}).success(function(result) {
if(result.length > 1) {
showErrorMessagePopup(result);
}
});
if (selectedReportType !== "2") {
historyList.hide();
@@ -175,7 +181,7 @@
var inputDisabled = !AbstractModel.HasRightToEditCustomers ? "disabled" : string.Empty;
<div class="row my-3" id="stammdaten-container">
<div class="col-sm-6 col-md-6 col-lg-3 mt-3">
<div class="col-sm-6 col-md-6 col-lg-6 mt-3">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
@@ -255,7 +261,7 @@
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-3 mt-3">
<div class="col-sm-6 col-md-6 col-lg-6 mt-3">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
@@ -312,7 +318,7 @@
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-3 mt-3">
<div class="col-sm-6 col-md-6 col-lg-6 mt-3">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
@@ -369,7 +375,7 @@
</div>
</div>
</div>
<div class="col-sm-6 col-md-6 col-lg-3 mt-3">
<div class="col-sm-6 col-md-6 col-lg-6 mt-3">
<div class="card">
<div class="card-body pb-0">
<div class="card-title text-bewo-customer-card-header">
@@ -432,7 +438,7 @@
<input type="text" @inputDisabled class="form-control" id="mail" name="mail" value="@Model.SelectedJsonCustomer.EMail" />
<div class="input-group-append">
<button type="button" class="btn btn-primary px-2" onclick="window.open('mailto:@Model.SelectedJsonCustomer.EMail')">
<i class="fas fa-at"></i>
<i class="fas fa-envelope"></i>
</button>
</div>
</div>
@@ -772,12 +778,17 @@
@Html.DropDownListFor(m => m.SelectedReportType, Model.ReportTypeItems, new { @class = "custom-select", id = "report-type-select", onchange = "changeReportTypeSelection()" })
</div>
<div class="col-sm-6 col-lg-auto mb-3">
<button class="btn btn-primary" type="button" onclick="submitReportTypeSelectionForm();" id="show-med-list-btn">Bericht anzeigen</button>
@{
var showReportBtnDisabledValue = Model.SelectedReportType == CustomerReportType.Historie ? "disabled" : string.Empty;
}
<button @showReportBtnDisabledValue class="btn btn-primary" type="button" onclick="submitReportTypeSelectionForm();" id="show-med-list-btn">Bericht anzeigen</button>
</div>
<div class="col-sm-12 col-lg">
@if(!(Model.SelectedCustomer is null))
{
<table class="table d-none" id="med-list-history-list" style="table-layout: fixed !important;">
var displayValue = Model.SelectedReportType == CustomerReportType.Historie ? string.Empty : "d-none";
<table class="table @displayValue" id="med-list-history-list" style="table-layout: fixed !important;">
<thead>
<tr>
<th class="px-0">
@@ -1046,7 +1057,7 @@
@if(!(Model?.Report is null) && Html.IsInDebugMode())
{
<div class="modal" data-backdrop="static" tabindex="-1" role="dialog" id="report-popup">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-dialog modal-xl modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">@Model.ReportName</h5>

View File

@@ -589,9 +589,35 @@
function getRateSelectedGoalUrl() {
return "@Url.Action("RateSelectedGoal")";
}
@if(Html.IsInDebugMode())
{
<text>
function provokeJsonError() {
try {
$.get("@Url.Action("ProvokeJsonError")").success(function (data) {
var test = $.parseJSON(data);
});
} catch (error) {
}
}
</text>
}
</script>
<div class="container mt-3" id="checkbox-container">
@if(Html.IsInDebugMode())
{
<text>
<div class="row">
<div class="col-md">
<button class="btn btn-bewo-dev" type="button" onclick="provokeJsonError()">JSON-Fehler provozieren</button>
</div>
</div>
</text>
}
<div class="row">
@if(AbstractModel.IsAllowedToSeeSupportConceptFilter)
{

View File

@@ -380,7 +380,7 @@
{
<div class="form-group">
<label for="dokufeld">Dokumentation</label>
<textarea class="form-control" name="Dokumentation6" id="dokufeld">@Model.NoticeToEdit</textarea>
<textarea class="form-control" style="overflow: scroll;" name="Dokumentation6" id="dokufeld">@Model.NoticeToEdit</textarea>
</div>
}
else
@@ -403,7 +403,7 @@
var textareaName = i + 1 < 1 ? "Dokumentation" : "Dokumentation" + (i + 1);
<div class="tab-pane show@(i == 0 ? " active" : string.Empty)" id="doku_@i" role="tabpanel" aria-labelledby="doku_@i-tab">
<textarea class="form-control doku-form-control" id="doku-textarea-@i" name="@textareaName">@Model.NoticeListToEdit[i]</textarea>
<textarea class="form-control doku-form-control" style="overflow: scroll;" id="doku-textarea-@i" name="@textareaName">@Model.NoticeListToEdit[i]</textarea>
</div>
}
</div>

View File

@@ -1,5 +1,18 @@
@model BeWoPlanerMobil.Models.ReportModel
<script type="text/javascript">
function quittierungsbelegsViewerInit(s, e) {
try {
s.UpdateLocalization({
'Page': 'Seite',
'of': 'von'
});
} catch (error) {
showErrorPopup(error);
}
}
</script>
@if(Model.QuittierungsbelegsReportObject != null)
{
@Html.DevExpress().WebDocumentViewer(settings =>
@@ -10,5 +23,6 @@
settings.MobileMode = true;
settings.SettingsMobile.ReaderMode = true;
settings.SettingsMobile.AnimationEnabled = false;
settings.ClientSideEvents.Init = "quittierungsbelegsViewerInit";
}).Bind(Model.QuittierungsbelegsReportObject).GetHtml()
}

View File

@@ -182,58 +182,60 @@
{
<input type="hidden" name="deleteEmployeeSignatureInfo" value="@result.Identifier" />
}
<div class="btn-toolbar">
<div class="btn-group pr-1 w-auto customer-sig-group" role="group">
@if(AbstractModel.HasRightToDeleteReceiptSignatures && result.CustomerSignatureOids.Any())
{
<button class="btn btn-danger mx-0" type="button" onclick="deleteCustomerSignatures('#collapse-result-@result.Identifier', '@result.Identifier', '@result.CustomerName', '@timeSpan_ssp')">
<span class="fas fa-trash"></span>
</button>
}
<button class="btn btn-bewo-customers" type="button" onclick="loadConfirmationReceiptSignatures('@cardBodyId_ssp', '@result.Identifier', false, @result.HasCustomerSignature.ToString().ToLower(), @canCustomerSign.ToString().ToLower(), @result.CustomerOid)">
<span class="fas fa-signature mr-0 pr-0"></span>
@if(customerSignatureState != SignatureState.All)
{
<span class="fa-stack align-middle mx-0 px-0" style="height: auto !important">
<i class="fas fa-check fa-stack-1x mx-0 px-0"></i>
<i class="fas fa-slash fa-stack-1x mx-0 px-0" style="color: tomato;"></i>
</span>
}
else
{
<span class="fas fa-check-double" style="color: yellowgreen !important"></span>
}
K
<div class="btn-toolbar">
<!-- w-auto -->
<div class="btn-group pr-1" role="group" style="width: 150px !important;">
@if(AbstractModel.HasRightToDeleteReceiptSignatures && result.CustomerSignatureOids.Any())
{
<button class="btn btn-danger mx-0" type="button" onclick="deleteCustomerSignatures('#collapse-result-@result.Identifier', '@result.Identifier', '@result.CustomerName', '@timeSpan_ssp')">
<span class="fas fa-trash"></span>
</button>
</div>
<div class="btn-group w-auto employee-sig-group" role="group">
@if(AbstractModel.HasRightToDeleteReceiptSignatures && result.EmployeeSignatureOids.Any())
}
<button class="btn btn-bewo-customers" type="button" onclick="loadConfirmationReceiptSignatures('@cardBodyId_ssp', '@result.Identifier', false, @result.HasCustomerSignature.ToString().ToLower(), @canCustomerSign.ToString().ToLower(), @result.CustomerOid)">
<span class="fas fa-signature mr-0 pr-0"></span>
@if(customerSignatureState != SignatureState.All)
{
<button class="btn btn-danger mx-0" type="button" onclick="deleteEmployeeSignature('#collapse-result-@result.Identifier', '@result.Identifier', '@employeeName', '@result.CustomerName', '@timeSpan_ssp')">
<span class="fas fa-trash"></span>
</button>
<span class="fa-stack align-middle mx-0 px-0" style="height: auto !important">
<i class="fas fa-check fa-stack-1x mx-0 px-0"></i>
<i class="fas fa-slash fa-stack-1x mx-0 px-0" style="color: tomato;"></i>
</span>
}
<button class="btn btn-bewo-employee" @disabledString type="button" onclick="loadConfirmationReceiptSignatures('@cardBodyId_ssp', '@result.Identifier', true, @overwrite_ssp, @canEmployeeSign.ToString().ToLower(), @result.CustomerOid)">
<span class="fas fa-signature mr-0 pr-0"></span>
@if(employeeSignatureState == SignatureState.Some || employeeSignatureState == SignatureState.None)
{
<span class="fa-stack align-middle mx-0 px-0" style="height: auto !important">
<i class="fas fa-check fa-stack-1x mx-0 px-0"></i>
<i class="fas fa-slash fa-stack-1x mx-0 px-0" style="color: tomato;"></i>
</span>
}
else if(employeeSignatureState == SignatureState.AllOwnServiceRecords && !AbstractModel.HasRightToProvideEmployeeSignatureForOthers)
{
<span class="fas fa-ban" style="color: tomato;"></span>
}
else
{
<span class="fas fa-check-double" style="color: yellowgreen !important"></span>
}
M
</button>
</div>
else
{
<span class="fas fa-check-double" style="color: yellowgreen !important"></span>
}
K
</button>
</div>
<!-- w-auto -->
<div class="btn-group role="group" style="width: 150px !important;">
@if(AbstractModel.HasRightToDeleteReceiptSignatures && result.EmployeeSignatureOids.Any())
{
<button class="btn btn-danger mx-0" type="button" onclick="deleteEmployeeSignature('#collapse-result-@result.Identifier', '@result.Identifier', '@employeeName', '@result.CustomerName', '@timeSpan_ssp')">
<span class="fas fa-trash"></span>
</button>
}
<button class="btn btn-bewo-employee" @disabledString type="button" onclick="loadConfirmationReceiptSignatures('@cardBodyId_ssp', '@result.Identifier', true, @overwrite_ssp, @canEmployeeSign.ToString().ToLower(), @result.CustomerOid)">
<span class="fas fa-signature mr-0 pr-0"></span>
@if(employeeSignatureState == SignatureState.Some || employeeSignatureState == SignatureState.None)
{
<span class="fa-stack align-middle mx-0 px-0" style="height: auto !important">
<i class="fas fa-check fa-stack-1x mx-0 px-0"></i>
<i class="fas fa-slash fa-stack-1x mx-0 px-0" style="color: tomato;"></i>
</span>
}
else if(employeeSignatureState == SignatureState.AllOwnServiceRecords && !AbstractModel.HasRightToProvideEmployeeSignatureForOthers)
{
<span class="fas fa-ban" style="color: tomato;"></span>
}
else
{
<span class="fas fa-check-double" style="color: yellowgreen !important"></span>
}
M
</button>
</div>
</div>
</div>
</div>
</div>

View File

@@ -367,6 +367,7 @@
</div>
<!-- /Container für die Mitarbeiterunterschrift -->
<!-- Container für die Unterschrift -->
<div class="container-fluid d-none my-3" id="report-signature-container-div">
<div class="container-fluid">
@@ -402,6 +403,7 @@
</div>
</div>
<!-- /Container für die Unterschrift -->
<!-- Popup der Legende -->
<div class="modal" tabindex="-1" role="dialog" id="qb-info-popup">
<div class="modal-dialog" role="document">
@@ -471,6 +473,11 @@
</span>
- Dieser Zeiterfassungseinträge kann von Ihnen nicht unterschrieben werden, da Ihnen das dazu notwendige Recht "Unterschriften für den Quittierungsbeleg stellvertretend leisten (monatlich)." fehlt.
</p>
<br />
<hr />
<p>Um einen Quittierungsbeleg aus der Vorschau herunterzuladen, klicken oder tippen Sie auf den Bericht. Dann erscheint ein Button zur Formatsauswahl.</p>
</div>
<div class="modal-footer">
<div class="clearfix">

View File

@@ -1,6 +1,7 @@
@using BeWoPlanerMobil.Controllers
@using BeWoPlanerMobil.Models
@using BeWoPlanerMobil.Service
@using BeWoPlanerMobil.Util
<!DOCTYPE html>
<html>
<head>
@@ -451,6 +452,13 @@
$(document).ready(function() {
try {
@if(Html.IsInDebugMode())
{
<text>
logColorfulMessage(`Browser JavaScript engine: ${navigator.userAgent}`, "#59FF00");
</text>
}
$("textarea").each(function () {
var id = this.getAttribute("id");
@@ -459,7 +467,8 @@
return;
}
this.setAttribute("style", "height:" + (this.scrollHeight) + "px;overflow-y:hidden;");
//this.setAttribute("style", "height:" + (this.scrollHeight) + "px;overflow-y:hidden;");
this.setAttribute("style", "height:"+(this.scrollHeight) + "px;overflow-y:scroll;");
}).on("input", function () {
this.style.height = 0;
this.style.height = (this.scrollHeight) + "px";

View File

@@ -4792,8 +4792,12 @@ namespace BeWo.Data.Access
var result = new List<SchedulerAppointment>();
var intervals = IntervalFinderHelper.CreateIntervals(duration, intervalStart, intervalEnd, skipWeekends, intervalBuffer);
// Das subset enthält die zu prüfenden Tage im angegebenen Intervall.
// 04.12.2023 15:00 bis 06.12.2023 12:00 wären 04.12.2023, 05.12.2023, 06.12.2023 im subset.
var subset = IntervalFinderHelper.GenereateIntervalsForChecking(intervalStart, intervalEnd);
// Es werden im subset nach überschneidenden Terminen gesucht.
//
foreach (var dts in subset)
{
var start = dts.StartDate.MergeDatesByDate(intervalStart);

View File

@@ -152,7 +152,11 @@ namespace BeWo.Data.Utils
}
DateTime e;
var end = start.MergeDatesByDate(intervalEnd);
// Beim Intervall (z.B. 04.12.2023 15:00 und 06.12.2023 12:00) wird nur zwischen Start- und Enduhrzeit geprüft.
// Startdatum+Enduhrzeit
// -> end = 04.12.2023 12:00
//var end = start.MergeDatesByDate(intervalEnd);
var end = intervalEnd;
while ((e = start.AddMinutes(duration)) <= end && start <= end.AddMinutes(-1 * duration))
{
@@ -166,6 +170,13 @@ namespace BeWo.Data.Utils
return result;
}
/// <summary>
/// Liefert DateTimeSpan-Objekte für ganze Tage zwischen zwei Datumsangaben zurück.
/// Z.B. 04.12.2023 bis 06.12.2023 liefert drei DateTimeSpan für den 04.12., 05.12. und 06.12. zurück.
/// </summary>
/// <param name="intervalStart">Intervallstart</param>
/// <param name="intervalEnd">Intervallende</param>
/// <returns>Liste der DateTimeSpan-Objekte für die Anzahl der Tage im angegebenen Intervall.</returns>
public static List<DateTimeSpan> GenereateIntervalsForChecking(DateTime intervalStart, DateTime intervalEnd)
{
var start = intervalStart.Date;

View File

@@ -68,9 +68,9 @@ namespace ProfEggersStiftung
this.xrTableCell15 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell14 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell2 = new DevExpress.XtraReports.UI.XRTableCell();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrTableCell28 = new DevExpress.XtraReports.UI.XRTableCell();
this.xrTableCell11 = new DevExpress.XtraReports.UI.XRTableCell();
this.picSignature = new DevExpress.XtraReports.UI.XRPictureBox();
this.GroupHeader1 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.GroupFooter4 = new DevExpress.XtraReports.UI.GroupFooterBand();
this.xrLabel8 = new DevExpress.XtraReports.UI.XRLabel();
@@ -135,6 +135,8 @@ namespace ProfEggersStiftung
this.fieldTeilnehmerZahl = new DevExpress.XtraReports.UI.CalculatedField();
this.fieldBetreuerZahl = new DevExpress.XtraReports.UI.CalculatedField();
this.GroupHeader2 = new DevExpress.XtraReports.UI.GroupHeaderBand();
this.xrPictureBox2 = new DevExpress.XtraReports.UI.XRPictureBox();
this.xrPictureBox1 = new DevExpress.XtraReports.UI.XRPictureBox();
((System.ComponentModel.ISupportInitialize)(this.xrTableServiceRecords1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tableGroup1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tableGroup2)).BeginInit();
@@ -524,6 +526,18 @@ namespace ProfEggersStiftung
this.xrTableCell2.Name = "xrTableCell2";
this.xrTableCell2.Weight = 0.15151510307201618D;
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(121F, 18F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// xrTableCell28
//
this.xrTableCell28.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
@@ -541,18 +555,6 @@ namespace ProfEggersStiftung
this.xrTableCell11.Name = "xrTableCell11";
this.xrTableCell11.Weight = 0.18939388291629064D;
//
// picSignature
//
this.picSignature.Borders = DevExpress.XtraPrinting.BorderSide.None;
this.picSignature.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Tag", null, "Services.Signature")});
this.picSignature.LocationFloat = new DevExpress.Utils.PointFloat(0F, 0F);
this.picSignature.Name = "picSignature";
this.picSignature.SizeF = new System.Drawing.SizeF(121F, 18F);
this.picSignature.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
this.picSignature.StylePriority.UseBorders = false;
this.picSignature.BeforePrint += new System.Drawing.Printing.PrintEventHandler(this.picSignature_BeforePrint);
//
// GroupHeader1
//
this.GroupHeader1.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
@@ -704,6 +706,8 @@ namespace ProfEggersStiftung
// GroupFooter5
//
this.GroupFooter5.Controls.AddRange(new DevExpress.XtraReports.UI.XRControl[] {
this.xrPictureBox1,
this.xrPictureBox2,
this.xrLabel18,
this.xrLabel20,
this.xrTableAbwesenheiten,
@@ -1258,6 +1262,25 @@ namespace ProfEggersStiftung
this.GroupHeader2.Name = "GroupHeader2";
this.GroupHeader2.RepeatEveryPage = true;
//
// xrPictureBox2
//
this.xrPictureBox2.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Image", null, "CustomerSignature")});
this.xrPictureBox2.LocationFloat = new DevExpress.Utils.PointFloat(518.7495F, 95.45823F);
this.xrPictureBox2.Name = "xrPictureBox2";
this.xrPictureBox2.SizeF = new System.Drawing.SizeF(261.2503F, 36.54176F);
this.xrPictureBox2.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// xrPictureBox1
//
this.xrPictureBox1.DataBindings.AddRange(new DevExpress.XtraReports.UI.XRBinding[] {
new DevExpress.XtraReports.UI.XRBinding("Image", null, "EmployeeSignature")});
this.xrPictureBox1.LocationFloat = new DevExpress.Utils.PointFloat(788.7497F, 95.45822F);
this.xrPictureBox1.Name = "xrPictureBox1";
this.xrPictureBox1.Scripts.OnBeforePrint = "xrPictureBox1_BeforePrint";
this.xrPictureBox1.SizeF = new System.Drawing.SizeF(261.2503F, 36.54175F);
this.xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
//
// Stundenzettel
//
this.Bands.AddRange(new DevExpress.XtraReports.UI.Band[] {
@@ -1407,5 +1430,7 @@ namespace ProfEggersStiftung
private DevExpress.XtraReports.UI.XRLabel xrLabel18;
private DevExpress.XtraReports.UI.XRLabel xrLabel20;
private DevExpress.XtraReports.UI.XRPictureBox picSignature;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox2;
private DevExpress.XtraReports.UI.XRPictureBox xrPictureBox1;
}
}

View File

@@ -31,7 +31,7 @@ namespace BeWo.Service.Plugins
//t = "1076891970"; // Assistenza
//t = "0216265667"; // LH Hannover
//t = "1774789565"; // LH Essen
t = "9342168675"; // ABC Betreuungen - jetzt Schubkraft
//t = "9342168675"; // ABC Betreuungen - jetzt Schubkraft
//t = "1193188501"; // Aids Hilfe Dortmund
//t = "7860351957"; // SKF Alsdorf
//t = "3311520228"; // Die Düne
@@ -53,7 +53,7 @@ namespace BeWo.Service.Plugins
//t = "7375324044"; // Diakonie KK Kleve
//t = "1441747891"; // BeWo Mobil Köln
//t = "5120047701"; // Trialog
t = "3629696651"; // Soziale Dienste Niederrhein (SDN)
//t = "3629696651"; // Soziale Dienste Niederrhein (SDN)
//t = "9893557471"; // Caritas Frankfurt
//t = "2918696314"; // Caritas Frankfurt 2
//t = "6923790936"; // Integra e.V.
@@ -147,7 +147,7 @@ namespace BeWo.Service.Plugins
//t = "9975231461"; // Selwo
//t = "8181286349"; // BeWo am Rhein
//t = "4595275645"; // Eigenständig
//t = "7912635399"; // Prof. Dr. Eggers Stiftung
t = "7912635399"; // Prof. Dr. Eggers Stiftung
//t = "3549726254"; // Socia
//t = "1992495802"; // Monvita
//t = "7381352241"; // Ressource e.V.
@@ -173,7 +173,7 @@ namespace BeWo.Service.Plugins
//t = "6586058528"; // Freundeskreis Suchtkrankenhilfe e.V. (FFS)
//t = "2632162696"; // Hand in Hand (ehemals Pro BeWo Düren)
//t = "6340891020"; // Caritas Ahlen
t = "3659854106"; // alpha e.V.
//t = "3659854106"; // alpha e.V.
//t = "5809130435"; // Lebenshilfe Kusel
//t = "3367947706"; // PaS Mönchengladbach
//t = "2331203795"; // BeWo für dich
@@ -197,7 +197,7 @@ namespace BeWo.Service.Plugins
//t = "9883255779"; // VKM Menden (mobil GmbH)
//t = "9556218062"; // Diakonie Landshut
//t = "2279593936"; // Diakonie Mülheim
t = "3623837005"; // Betreuwo Wesel
//t = "3623837005"; // Betreuwo Wesel
//t = "8407321888"; // AWO Wesel
//t = "8454426692"; // Mit-Menschen Wuppertal
//t = "0629004412"; // BeWo-Colonia Basaran (Projekt
@@ -371,7 +371,8 @@ namespace BeWo.Service.Plugins
//t = "1143768898"; // Diakonisches Werk im Ev. Kirchenkreis Dinslaken - Soziotherapie
//t = "8164797250"; // Diakonisches Werk im Ev. Kirchenkreis Dinslaken - Ambulante Jugendhilfe JUDI
//t = "4431610343"; // B-B-C-Terwort GmbH
t = "2235342307"; // Suchtkrankenhilfe Ostfriesland
//t = "2235342307"; // Suchtkrankenhilfe Ostfriesland
//t = "1733934665"; // Auf eigenen Füßen stehen (Birgit Apel de Santos & Stefan Haefs)
return t;
#else
if (MultitenancyOperationContextExt.Current != null)