From 06fc47296520f29efc0e02099bfa641311b20734 Mon Sep 17 00:00:00 2001 From: Husky Date: Sat, 6 Jun 2020 18:46:44 +0200 Subject: [PATCH] =?UTF-8?q?T=C3=A4tigkeiten=20=C3=BCberarbeitet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ILeistungsverzeichnisPositionViewModel.cs | 1 + .../Interfaces/UI/ITaetigkeitEditViewModel.cs | 1 + KanSan.ViewModel/KanSan.ViewModel.csproj.user | 4 ++ .../LeistungsverzeichnisPositionViewModel.cs | 14 +++++ KanSan.ViewModel/Schaeden/SchadenViewModel.cs | 54 +++++++++++++++++++ KanSan.ViewModel/SewerMainMenuViewModel.cs | 34 ++++++++++++ KanSan.ViewModel/TaetigkeitEditViewModel.cs | 7 +++ KanSan/App.xaml | 15 +++--- KanSan/IstFertigZuBackgroundConverter.cs | 25 +++++++++ KanSan/IstFertigZuTextConverter.cs | 26 +++++++++ KanSan/KanSan.csproj.user | 3 ++ KanSan/Resources.xaml | 16 ++++++ ...sverzeichnisPositionViewModelSampleData.cs | 3 ++ ...anierungskonzeptListViewModelSampleData.cs | 19 ++++++- .../UCLeistungsverzeichnisPosition.xaml | 12 ++++- .../UI/SanMaßnahmen/UCSanMaßnahmenList.xaml | 3 ++ KanSan/UI/SanMaßnahmen/UCTaetigkeitEdit.xaml | 5 +- .../UI/SanMaßnahmen/UCTaetigkeitEdit.xaml.cs | 12 +++++ KanSan/UI/UCSewerMainWindow.xaml | 18 ++++--- KanSan/UI/UCSewerMainWindow.xaml.cs | 4 ++ 20 files changed, 257 insertions(+), 19 deletions(-) create mode 100644 KanSan.ViewModel/KanSan.ViewModel.csproj.user create mode 100644 KanSan.ViewModel/Schaeden/SchadenViewModel.cs create mode 100644 KanSan/IstFertigZuBackgroundConverter.cs create mode 100644 KanSan/IstFertigZuTextConverter.cs create mode 100644 KanSan/Resources.xaml diff --git a/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs index 4412d16..3b724c5 100644 --- a/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs +++ b/KanSan.Base/Interfaces/UI/ILeistungsverzeichnisPositionViewModel.cs @@ -10,5 +10,6 @@ namespace KanSan.Base.Interfaces.UI public string Beschreibung { get; set; } public string Einheit { get; set; } public string Tag { get; set; } + public bool HatGüteschutzProtokoll { get; set; } } } diff --git a/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs b/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs index a59fc99..fbec723 100644 --- a/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs +++ b/KanSan.Base/Interfaces/UI/ITaetigkeitEditViewModel.cs @@ -14,6 +14,7 @@ namespace KanSan.Base.Interfaces.UI decimal Anzahl { get; set; } string Bemerkung { get; set; } bool HatGueteschutzProtokoll { get; } + void LöscheErledigt(); LeistungsverzeichnisPosition Leistungsverzeichnis { get; set; } } } diff --git a/KanSan.ViewModel/KanSan.ViewModel.csproj.user b/KanSan.ViewModel/KanSan.ViewModel.csproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/KanSan.ViewModel/KanSan.ViewModel.csproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/KanSan.ViewModel/LeistungsverzeichnisPositionViewModel.cs b/KanSan.ViewModel/LeistungsverzeichnisPositionViewModel.cs index ee1d52a..2e9a8ae 100644 --- a/KanSan.ViewModel/LeistungsverzeichnisPositionViewModel.cs +++ b/KanSan.ViewModel/LeistungsverzeichnisPositionViewModel.cs @@ -18,6 +18,7 @@ namespace KanSan.ViewModel string beschreibung; string einheit; string tag; + bool hatGüteschutzProtokoll; public string Positionsnummer { @@ -60,6 +61,17 @@ namespace KanSan.ViewModel } } + public bool HatGüteschutzProtokoll + { + get => hatGüteschutzProtokoll; + set + { + if (hatGüteschutzProtokoll == value) return; + hatGüteschutzProtokoll = value; + OnPropertyChanged(); + } + } + public LeistungsverzeichnisPositionViewModel(LeistungsverzeichnisPosition position) { this.model = position; @@ -67,6 +79,7 @@ namespace KanSan.ViewModel beschreibung = model.Beschreibung; einheit = model.Einheit; tag = model.Tag; + hatGüteschutzProtokoll = model.HatGueteschutzProtokol; } public void Speichern() @@ -75,6 +88,7 @@ namespace KanSan.ViewModel model.Beschreibung = beschreibung; model.Einheit = einheit; model.Tag = tag; + model.HatGueteschutzProtokol = hatGüteschutzProtokoll; unitOfWork.LeistungsverzeichnisRepository.Update(model); unitOfWork.Commit(); diff --git a/KanSan.ViewModel/Schaeden/SchadenViewModel.cs b/KanSan.ViewModel/Schaeden/SchadenViewModel.cs new file mode 100644 index 0000000..2ef7cf0 --- /dev/null +++ b/KanSan.ViewModel/Schaeden/SchadenViewModel.cs @@ -0,0 +1,54 @@ +using KanSan.Base.Models; +using System; +using System.Text; + +namespace KanSan.ViewModel +{ + public class SchaedenViewModel + { + Schaeden model; + + bool RissBruchScherbe; + bool WurzelInkrustationAblagerungen; + bool StutzenEinragend; + bool Infiltration; + /* + bool VorbehandeltHD; + bool VorbehandeltMech; + bool VorbehandeltFraeser; + bool SchadstelleFaekalienFrei; + */ + decimal Entfernung; + + public SchaedenViewModel(Schaeden schaden) + { + model = schaden; + + RissBruchScherbe = model.RissBruchScherbe; + WurzelInkrustationAblagerungen = model.WurzelInkrustationAblagerungen; + StutzenEinragend = model.StutzenEinragend; + Infiltration = model.Infiltration; + Entfernung = model.Entfernung; + } + + public override string ToString() + { + StringBuilder result = new StringBuilder(); + + result.Append(string.Format("Schaden bei {0} m",Entfernung)); + result.Append(" "); + if (RissBruchScherbe) + result.Append("Riss / Bruch / Scherbe "); + if (StutzenEinragend) + result.Append("& Einragende Stutzen "); + if (WurzelInkrustationAblagerungen) + result.Append("& Wurzeln / Inkrustationen / Ablagerungen "); + if (Infiltration) + result.Append("& Eindringen von Grundwasser"); + + return result.ToString(); + } + + + } +} \ No newline at end of file diff --git a/KanSan.ViewModel/SewerMainMenuViewModel.cs b/KanSan.ViewModel/SewerMainMenuViewModel.cs index edb0052..b143bab 100644 --- a/KanSan.ViewModel/SewerMainMenuViewModel.cs +++ b/KanSan.ViewModel/SewerMainMenuViewModel.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; using System.Text; namespace KanSan.ViewModel @@ -9,6 +10,9 @@ namespace KanSan.ViewModel public class SewerMainMenuViewModel : PropertyChangedClass,INotifyPropertyChanged { private Sewer model; + private SchaedenViewModel schadenViewModel; + private Schaeden schaden; + public Sewer Objekt { @@ -23,6 +27,36 @@ namespace KanSan.ViewModel } } + public Schaeden Schaden + { + set + { + if (schaden == value) return; + schaden = value; + schadenViewModel = new SchaedenViewModel(schaden); + OnPropertyChanged("SchadenEntfernung"); + } + } + + public string SchadenEntfernung + { + get + { + Trace.WriteLine("Entfernung Schaden abgerufen"); + if (schaden == null) return string.Empty; + return string.Format(schadenViewModel.ToString()); + } + /*set + { + schadenEntfernung = value; + Trace.WriteLine("Entfernung Schaden gesetzt"); + OnPropertyChanged(); + } + */ + } + + + public SewerMainMenuViewModel(Sewer model) { diff --git a/KanSan.ViewModel/TaetigkeitEditViewModel.cs b/KanSan.ViewModel/TaetigkeitEditViewModel.cs index b9942f9..f42765b 100644 --- a/KanSan.ViewModel/TaetigkeitEditViewModel.cs +++ b/KanSan.ViewModel/TaetigkeitEditViewModel.cs @@ -103,6 +103,7 @@ namespace KanSan.ViewModel bemerkung = model.Bemerkung; fahrzeug = model.Fahrzeug; leistungsverzeichnis = model.LeistungsverzeichnisPosition; + hatGueteschutzProtokoll = model.LeistungsverzeichnisPosition == null? false: model.LeistungsverzeichnisPosition.HatGueteschutzProtokol; IEnumerable baustelleLeistungsverzeichnis = unitOfWork.LeistungsverzeichnisReferenz.Get(x => x.Baustelle.Equals(MainWindowViewModel.Baustelle),includeProperties:"LVPosition"); lvPositionen = new List(); @@ -117,6 +118,12 @@ namespace KanSan.ViewModel var x = LVPositionen.Equals(leistungsverzeichnis); } + public void LöscheErledigt() + { + zeitStempel = DateTime.MinValue; + Mitarbeiter = String.Empty; + } + public void Speichern() { model.Mitarbeiter = mitarbeiter; diff --git a/KanSan/App.xaml b/KanSan/App.xaml index 6ba3ce5..95d8c7c 100644 --- a/KanSan/App.xaml +++ b/KanSan/App.xaml @@ -5,17 +5,14 @@ xmlns:local="clr-namespace:KanSan" StartupUri="MainWindow.xaml"> + + + + + - - - + diff --git a/KanSan/IstFertigZuBackgroundConverter.cs b/KanSan/IstFertigZuBackgroundConverter.cs new file mode 100644 index 0000000..3e097e3 --- /dev/null +++ b/KanSan/IstFertigZuBackgroundConverter.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Data; +using System.Windows.Media; + +namespace KanSan +{ + public class IstFertigZuBackgroundConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + var istFertig = (bool)value; + if (istFertig) + return Brushes.Green; + return Brushes.Blue; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/KanSan/IstFertigZuTextConverter.cs b/KanSan/IstFertigZuTextConverter.cs new file mode 100644 index 0000000..f879ae9 --- /dev/null +++ b/KanSan/IstFertigZuTextConverter.cs @@ -0,0 +1,26 @@ +using Syncfusion.Windows.Shared; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Data; + +namespace KanSan +{ + class IstFertigZuTextConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + DateTime dateTime = (DateTime)value; + if (dateTime != null && dateTime != DateTime.MinValue) + return string.Format("(Erledigt am {0})",dateTime.ToShortDateString()); + return ""; + + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/KanSan/KanSan.csproj.user b/KanSan/KanSan.csproj.user index 679e7e8..c5da6b8 100644 --- a/KanSan/KanSan.csproj.user +++ b/KanSan/KanSan.csproj.user @@ -75,6 +75,9 @@ Designer + + Designer + Designer diff --git a/KanSan/Resources.xaml b/KanSan/Resources.xaml new file mode 100644 index 0000000..c66c313 --- /dev/null +++ b/KanSan/Resources.xaml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs b/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs index 5b36cc5..31e0918 100644 --- a/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs +++ b/KanSan/SampleData/LeistungsverzeichnisPositionViewModelSampleData.cs @@ -11,10 +11,12 @@ namespace KanSan.SampleData string beschreibung; string einheit; string tag; + bool hatGüteschutzprotokoll; public string Positionsnummer { get => positionnummer; set => throw new NotImplementedException(); } public string Beschreibung { get => beschreibung; set => throw new NotImplementedException(); } public string Einheit { get => einheit; set => throw new NotImplementedException(); } public string Tag { get => tag; set => throw new NotImplementedException(); } + public bool HatGüteschutzProtokoll { get => hatGüteschutzprotokoll; set => throw new NotImplementedException(); } public LeistungsverzeichnisPositionViewModelSampleData() { @@ -22,6 +24,7 @@ namespace KanSan.SampleData beschreibung = "TV Inspektion DN200"; einheit = "M"; tag = "JMStandard"; + hatGüteschutzprotokoll = true; } } } diff --git a/KanSan/SampleData/SanierungskonzeptListViewModelSampleData.cs b/KanSan/SampleData/SanierungskonzeptListViewModelSampleData.cs index 58d4416..627afac 100644 --- a/KanSan/SampleData/SanierungskonzeptListViewModelSampleData.cs +++ b/KanSan/SampleData/SanierungskonzeptListViewModelSampleData.cs @@ -1,6 +1,7 @@ using KanSan.Base.Enums; using KanSan.Base.Interfaces.UI; using KanSan.Base.Models; +using Syncfusion.Windows.Shared; using System; using System.Collections.Generic; using System.Text; @@ -20,11 +21,27 @@ namespace KanSan.SampleData { for (int i = 0; i < 10; i++) { + DateTime timestamp; + if (i % 2 == 0) + { + timestamp = DateTime.Now; + } + else + { + timestamp = DateTime.MinValue; + } taetigkeiten.Add(new Base.Models.Taetigkeiten() { + GuidNr = Guid.NewGuid(), Anzahl = 2m, - Bemerkung = "Test" + ZeitStempel = timestamp, + Bemerkung = "Test", + LeistungsverzeichnisPosition = new LeistungsverzeichnisPosition() + { + Beschreibung = "TV Inspektion" + } + }) ; } diff --git a/KanSan/UI/Leistungsverzeichnis/UCLeistungsverzeichnisPosition.xaml b/KanSan/UI/Leistungsverzeichnis/UCLeistungsverzeichnisPosition.xaml index f7bf938..d2ee300 100644 --- a/KanSan/UI/Leistungsverzeichnis/UCLeistungsverzeichnisPosition.xaml +++ b/KanSan/UI/Leistungsverzeichnis/UCLeistungsverzeichnisPosition.xaml @@ -7,6 +7,13 @@ xmlns:sd="clr-namespace:KanSan.SampleData" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> + + + + + + + @@ -22,17 +29,20 @@ +