diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs index d364a12c3..b6c054db0 100644 --- a/BeWo/BeWoApp.xaml.cs +++ b/BeWo/BeWoApp.xaml.cs @@ -654,7 +654,6 @@ namespace BeWo _AppSettings.IsDirty = false; SetSettingValue(SettingsType.ApplicationSettings, "WindowStateType", ((int) _AppSettings.WindowState).ToString()); SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeInterval", ((int) _AppSettings.LastSelectedServiceRecordTimeInterval).ToString()); - SetSettingValue(SettingsType.ApplicationSettings, "NDays", _AppSettings.NDays.ToString()); SetSettingValue(SettingsType.ApplicationSettings, "ShowAllClients", _AppSettings.ShowAllClients ? "1" : "0"); SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMySupportConcepts", _AppSettings.ShowOnlyMySupportConcepts ? "1" : "0"); SetSettingValue(SettingsType.ApplicationSettings, "ShowOnlyMyClients", _AppSettings.ShowOnlyMyClients ? "1" : "0"); @@ -664,8 +663,9 @@ namespace BeWo SetSettingValue(SettingsType.ApplicationSettings, "HideServiceRecordInsertedByAndInsertedOn", _AppSettings.HideServiceRecordInsertedByAndInsertedOn ? "1" : "0"); SetSettingValue(SettingsType.ApplicationSettings, "DocumentationFontSize", _AppSettings.DocumentationFontSize.ToString()); SetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine", _AppSettings.ZeigeNurMeineTermine ? "1" : "0"); + SetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays", ((int)_AppSettings.LastSelectedServiceRecordTimeIntervalDays).ToString()); - string val = string.Empty; + string val = string.Empty; if (_AppSettings.StartupPanelOrder != null) { foreach (string item in _AppSettings.StartupPanelOrder) @@ -793,7 +793,7 @@ namespace BeWo val = GetSettingValue(SettingsType.ApplicationSettings, "ShowExpiredSupportConcepts"); _AppSettings.ShowExpiredSupportConcepts = val != "0"; - val = GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder"); + _AppSettings.StartupPanelMaximized = GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelMaximized"); @@ -801,9 +801,16 @@ namespace BeWo _AppSettings.ZeigeNurMeineTermine = GetSettingValue(SettingsType.ApplicationSettings, "ZeigeNurMeineTermine") == "1"; - _AppSettings.NDays = Convert.ToInt32(GetSettingValue(SettingsType.ApplicationSettings, "NDays")); + val = GetSettingValue(SettingsType.ApplicationSettings, "LastSelectedServiceRecordTimeIntervalDays"); + if (val != null) + { + _AppSettings.LastSelectedServiceRecordTimeIntervalDays = + Convert.ToInt32(GetSettingValue(SettingsType.ApplicationSettings, + "LastSelectedServiceRecordTimeIntervalDays")); + } - if (val != null) + val = GetSettingValue(SettingsType.ApplicationSettings, "StartupPanelOrder"); + if (val != null) { _AppSettings.StartupPanelOrder = new List(); string[] panels = val.Split(new[] {'|'}); diff --git a/BeWo/Core/BeWoUtils.cs b/BeWo/Core/BeWoUtils.cs index c2deb351c..3ad61dfaf 100644 --- a/BeWo/Core/BeWoUtils.cs +++ b/BeWo/Core/BeWoUtils.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Drawing; using System.IO; using System.Linq; using System.Net; @@ -10,9 +11,10 @@ using System.Text.RegularExpressions; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; +using System.Windows.Forms; using System.Windows.Forms.VisualStyles; using System.Windows.Input; -using System.Windows.Media; +using System.Windows.Media.Imaging; using BS.Shared; using BS.Shared.Core; using BS.Shared.DataContracts; @@ -38,6 +40,11 @@ using DevExpress.Xpf.Core.Native; using DevExpress.Xpf.Grid; using DevExpress.XtraReports.UI; using DevExpress.Xpf.Printing; +using Brushes = System.Windows.Media.Brushes; +using Image = System.Windows.Controls.Image; +using MessageBox = System.Windows.MessageBox; +using Panel = System.Windows.Controls.Panel; +using System.Windows.Media; namespace BeWo.Core { @@ -1377,7 +1384,7 @@ namespace BeWo.Core #endregion } } - + private static void UpdateSingleSupportConceptSelectionControl(SingleSupportConceptSelectionControl control, CompactCustomerDC updatedCustomer) { if (control.SelectedItem.SupportConceptTreeNodeDC == null) @@ -1945,5 +1952,84 @@ namespace BeWo.Core } + + public static void ShowImageForm(ImageSource source) + { + try + { + using (Form form = new Form()) + { + Image imgg = new Image(); + + + imgg.Source = source; + + BmpBitmapEncoder encoder = new BmpBitmapEncoder(); + using (MemoryStream ms = new MemoryStream()) + { + encoder.Frames.Add(BitmapFrame.Create((BitmapSource)imgg.Source)); + encoder.Save(ms); + System.Drawing.Image img = System.Drawing.Image.FromStream(ms); + + using (Bitmap imgbit = new Bitmap(img)) + { + + form.StartPosition = FormStartPosition.CenterScreen; + form.Size = imgbit.Size; + form.FormBorderStyle = FormBorderStyle.Sizable; + + using (PictureBox pb = new PictureBox()) + { + pb.Dock = DockStyle.Fill; + pb.Image = imgbit; + + pb.SizeMode = PictureBoxSizeMode.Zoom; + + form.Controls.Add(pb); + form.ShowDialog(); + } + } + } + + } + } + catch (Exception edf) + { + MessageBox.Show("Unbekannter Fehler: " + edf.Message + "\n" + edf.StackTrace, "Fehler", MessageBoxButton.OK); + } + } + + public static void CreateZeiterfassung(DateTime start, DateTime end, List customer, List employees, String notice) + { + + if (customer.Count == 0) + { + + //Normale Buchung + ChatDokumentationsView newView = new ChatDokumentationsView(notice, null, start, end); + + newView.ShowDialog(); + } + else if (customer.Count == 1 && employees.Count == 0) + { + var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer[0].CustomerOid)); + + //Normale Buchung + ChatDokumentationsView newView = new ChatDokumentationsView(notice, compactKlient, start, end); + + newView.ShowDialog(); + } + else + { + + //gruppenbuchungen + ChatDokumentationsView newView = new ChatDokumentationsView(notice, start, end, customer, employees); + + newView.ShowDialog(); + + } + } + } + } diff --git a/BeWo/Core/Config/AppSettings.cs b/BeWo/Core/Config/AppSettings.cs index 5ce863e34..bd56ad18b 100644 --- a/BeWo/Core/Config/AppSettings.cs +++ b/BeWo/Core/Config/AppSettings.cs @@ -24,6 +24,8 @@ namespace BeWo.Core.Config private ServiceRecordTimeInterval mLastSelectedServiceRecordTimeInterval = ServiceRecordTimeInterval.All; + private int mLastSelectedServiceRecordTimeIntervalDays = 7; + public enum WindowStateType { Default, @@ -223,23 +225,9 @@ namespace BeWo.Core.Config } } - private int _NDays; private bool mZeigeNurMeineTermine; - public int NDays - { - get { return _NDays; } - - set - { - if (_NDays != value) - { - _NDays = value; - IsDirty = true; - } - } - } - + private bool IsOrderDifferent(List oldOrder, List newOrder) { if (oldOrder == null && newOrder != null) @@ -290,6 +278,20 @@ namespace BeWo.Core.Config } } + public int LastSelectedServiceRecordTimeIntervalDays + { + get { return mLastSelectedServiceRecordTimeIntervalDays; } + + set + { + if (mLastSelectedServiceRecordTimeIntervalDays != value) + { + mLastSelectedServiceRecordTimeIntervalDays = value; + IsDirty = true; + } + } + } + public bool IsDirty { get; set; } public string TimeRecordingMenuName { get; set; } diff --git a/BeWo/Core/DocumentWatcher.cs b/BeWo/Core/DocumentWatcher.cs index 7a3381efb..a34ec8229 100644 --- a/BeWo/Core/DocumentWatcher.cs +++ b/BeWo/Core/DocumentWatcher.cs @@ -63,7 +63,7 @@ namespace BeWo.Core watcher = new FileSystemWatcher(fi.DirectoryName); watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite - | NotifyFilters.FileName | NotifyFilters.DirectoryName; + | NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Attributes; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; @@ -193,7 +193,7 @@ namespace BeWo.Core { try { - string file = "Möchten Sie das alte Dokument behalten?"; + string file = "Möchten Sie das alte Dokument löschen?"; int i = 3; var dialog = new UploadDialog(file, i); diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml b/BeWo/Scheduler/View/NewSchedulerView.xaml index 4f53b826b..9ee721a31 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml @@ -1025,13 +1025,13 @@ - + @@ -1043,6 +1043,14 @@ + + + + + + @@ -1052,6 +1060,8 @@ + + diff --git a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs index ffae3a92c..142938937 100644 --- a/BeWo/Scheduler/View/NewSchedulerView.xaml.cs +++ b/BeWo/Scheduler/View/NewSchedulerView.xaml.cs @@ -969,7 +969,19 @@ namespace BeWo.Scheduler.View private void scheduler_PopupMenuShowing(object sender, SchedulerMenuEventArgs e) { - var ZusageUntermenue = e.Menu.ItemLinks.FirstOrDefault(f=>f.GetType() == typeof(BarSubItemLink) && ((BarSubItemLink) f).Item.Name.Equals("TeilnahmeMenue")); + if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.KalenderMitarbeitertermineAnsehen) || + !BeWoApp.LoggedOnUser.HasRight(UserRightType.Mitarbeiterstundenkonto_ViewAll)) + { + var verfuegbarkeitMenue = e.Menu.ItemLinks.FirstOrDefault(f => f.GetType() == typeof(BarButtonItemLink) && ((BarButtonItemLink)f).Item.Name.Contains("MitarbeiterVerfuegbarkeitPruefenButtonItem")); + + if (verfuegbarkeitMenue != null) + { + e.Menu.ItemLinks.Remove(verfuegbarkeitMenue); + } + + } + + var ZusageUntermenue = e.Menu.ItemLinks.FirstOrDefault(f=>f.GetType() == typeof(BarSubItemLink) && ((BarSubItemLink) f).Item.Name.Equals("TeilnahmeMenue")); if (ZusageUntermenue == null || ((List)Scheduler.SelectedAppointments[0].CustomFields["EmployeeList"]).Any(a => a.Employee.EmployeeOid.Equals(BeWoApp.LoggedOnEmployee.EmployeeOid))) { @@ -977,7 +989,8 @@ namespace BeWo.Scheduler.View } e.Menu.ItemLinks.Remove(ZusageUntermenue); - } + + } private bool istNeu; private void scheduler_InitNewAppointment(object sender, AppointmentEventArgs e) @@ -1279,7 +1292,64 @@ namespace BeWo.Scheduler.View UpdateVM(true); } - private void MeinTB_OnChecked(object sender, RoutedEventArgs e) + private void ZeiterfassungButtonItem_OnItemClick(object sender, ItemClickEventArgs e) + { + if (Scheduler.SelectedAppointments.Count <= 0) + { + return; + } + + var app = Scheduler.SelectedAppointments[0]; + + var e2aList = app.CustomFields["EmployeeList"] as List; + List customerList = app.CustomFields["CustomerList"] as List; + + List empList = new List(); + foreach (var e2a in e2aList) + { + empList.Add(e2a.Employee); + } + + BeWoUtils.CreateZeiterfassung(app.Start, app.End, customerList, empList, app.Subject); + //var employ = SelectedMitarbeiter.Items; + //var y = SelectedKlient.Items; + + + //if (y.Count == 0) + //{ + // MessageBox.Show("Bitte wählen Sie mindestens einen Klienten aus!"); + //} + //else + //{ + // var startDate = StartDate.DateTime; + // var startTime = DateTime.Parse(StartTime.Text); + + // var endDate = EndDate.DateTime; + // var endTime = DateTime.Parse(EndTime.Text); + + // DateTime start = new DateTime(startDate.Year, startDate.Month, startDate.Day, startTime.Hour, startTime.Minute, startTime.Second); + // DateTime end = new DateTime(endDate.Year, endDate.Month, endDate.Day, endTime.Hour, endTime.Minute, endTime.Second); + + // List customerlist = new List(); + // List employeelist = new List(); + + // foreach (var employee in employ) + // { + // var xy = (Employee2SchedulerAppointmentDC)employee; + // employeelist.Add(xy.Employee); + // } + + // foreach (var klient in y) + // { + // var s = (CompactCustomerDC)klient; + // customerlist.Add(s); + // } + + // BeWoUtils.CreateZeiterfassung(start, end, customerlist, employeelist, Notice.Text); + //} + } + + private void MeinTB_OnChecked(object sender, RoutedEventArgs e) { var tb = (ToggleButton) sender; @@ -1648,8 +1718,8 @@ namespace BeWo.Scheduler.View } popup_content.Child = mviv; - popup_content.Height = 600; - popup_content.Width = 1000; + popup_content.Height = 400; + popup_content.Width = 400; popup_content.Visibility = Visibility.Visible; }))); } diff --git a/BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml.cs b/BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml.cs index 8ee47ffcd..f61d0a6a7 100644 --- a/BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml.cs +++ b/BeWo/Scheduler/View/SchedulerAppointmentEditForm.xaml.cs @@ -10,6 +10,7 @@ using System.Windows.Controls; using System.Windows.Input; using BeWo.Annotations; +using BeWo.Core; using BeWo.Scheduler.ViewModel; using BeWo.ServiceProxy; using BeWo.View; @@ -339,67 +340,42 @@ namespace BeWo.Scheduler.View private void button_CreatZeiterfassung_Click(object sender, RoutedEventArgs e) - { - var startDate = StartDate.DateTime; - var startTime = DateTime.Parse(StartTime.Text); - - var endDate = EndDate.DateTime; - var endTime = DateTime.Parse(EndTime.Text); - - DateTime start = new DateTime(startDate.Year,startDate.Month,startDate.Day,startTime.Hour,startTime.Minute,startTime.Second); - DateTime end = new DateTime(endDate.Year,endDate.Month,endDate.Day,endTime.Hour,endTime.Minute,endTime.Second); - - - var employ = SelectedMitarbeiter.Items; + { + var employ = SelectedMitarbeiter.Items; var y = SelectedKlient.Items; if (y.Count == 0) { - MessageBox.Show("Bitte wählen sie für die Zeiterfassung, mindestens einen Klienten aus !"); - } - else if (y.Count == 1 && employ.Count == 0) - { + MessageBox.Show("Bitte wählen Sie mindestens einen Klienten aus!"); + } + else + { + var startDate = StartDate.DateTime; + var startTime = DateTime.Parse(StartTime.Text); - long klientOid = 5; + var endDate = EndDate.DateTime; + var endTime = DateTime.Parse(EndTime.Text); - foreach (var klient in y) - { - var s = (CompactCustomerDC) klient; + DateTime start = new DateTime(startDate.Year, startDate.Month, startDate.Day, startTime.Hour, startTime.Minute, startTime.Second); + DateTime end = new DateTime(endDate.Year, endDate.Month, endDate.Day, endTime.Hour, endTime.Minute, endTime.Second); - - klientOid = s.CustomerOid; - } - - var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(klientOid)); - - //Normale Buchung - ChatDokumentationsView newView = new ChatDokumentationsView(Notice.Text, compactKlient, start, end); - - newView.ShowDialog(); - } - else if(y.Count != 0 && employ.Count != 0) - { List customerlist = new List(); List employeelist = new List(); foreach (var employee in employ) { - var xy = (Employee2SchedulerAppointmentDC) employee; + var xy = (Employee2SchedulerAppointmentDC)employee; employeelist.Add(xy.Employee); } foreach (var klient in y) { - var s = (CompactCustomerDC) klient; + var s = (CompactCustomerDC)klient; customerlist.Add(s); } - - //gruppenbuchungen - ChatDokumentationsView newView = new ChatDokumentationsView(Notice.Text,start, end,customerlist,employeelist); - - newView.ShowDialog(); + BeWoUtils.CreateZeiterfassung(start, end, customerlist, employeelist, Notice.Text); } } diff --git a/BeWo/UploadDialog.xaml b/BeWo/UploadDialog.xaml index 982187de4..c658c3f3a 100644 --- a/BeWo/UploadDialog.xaml +++ b/BeWo/UploadDialog.xaml @@ -15,12 +15,12 @@ - - + + - -