Tätigkeiten überarbeitet.

This commit is contained in:
Husky
2020-06-06 18:46:44 +02:00
parent 4d5d5082a7
commit 06fc472965
20 changed files with 257 additions and 19 deletions

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@@ -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();

View File

@@ -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();
}
}
}

View File

@@ -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)
{

View File

@@ -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<BaustelleLeistungsverzeichnisReferenz> baustelleLeistungsverzeichnis = unitOfWork.LeistungsverzeichnisReferenz.Get(x => x.Baustelle.Equals(MainWindowViewModel.Baustelle),includeProperties:"LVPosition");
lvPositionen = new List<LeistungsverzeichnisPosition>();
@@ -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;

View File

@@ -5,17 +5,14 @@
xmlns:local="clr-namespace:KanSan"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<Style TargetType="{x:Type UserControl}">
<Setter Property="FontFamily" Value="Comic Sans MS"/>
<Setter Property="FontSize" Value="20" />
</Style>
<Style TargetType="{x:Type Window}">
<Setter Property="FontFamily" Value="Comic Sans MS"/>
<Setter Property="FontSize" Value="20" />
</Style>
</Application.Resources>
</Application>

View File

@@ -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();
}
}
}

View File

@@ -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();
}
}
}

View File

@@ -75,6 +75,9 @@
<Page Update="my_controls.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Resources.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="UI\Leistungsverzeichnis\UCLeistungsverzeichnisPositionenBaustelle.xaml">
<SubType>Designer</SubType>
</Page>

16
KanSan/Resources.xaml Normal file
View File

@@ -0,0 +1,16 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:KanSan"
xmlns:l="clr-namespace:KanSan">
<l:IstFertigZuBackgroundConverter x:Key="IstFertigZuBackgroundConverter" />
<l:IstFertigZuTextConverter x:Key="IstFertigZuTextConverter" />
<Style TargetType="{x:Type UserControl}">
<Setter Property="FontFamily" Value="Comic Sans MS"/>
<Setter Property="FontSize" Value="20" />
</Style>
<Style TargetType="{x:Type Window}">
<Setter Property="FontFamily" Value="Comic Sans MS"/>
<Setter Property="FontSize" Value="20" />
</Style>
</ResourceDictionary>

View File

@@ -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;
}
}
}

View File

@@ -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"
}
}) ;
}

View File

@@ -7,6 +7,13 @@
xmlns:sd="clr-namespace:KanSan.SampleData"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="./../../my_controls.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<d:UserControl.DataContext>
<sd:LeistungsverzeichnisPositionViewModelSampleData />
</d:UserControl.DataContext>
@@ -22,17 +29,20 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="Positionsnummer" />
<Label Grid.Column="0" Grid.Row="1" Content="Beschreibung" />
<Label Grid.Column="0" Grid.Row="2" Content="Einheit" />
<Label Grid.Column="0" Grid.Row="3" Content="Tag" />
<TextBox Grid.Column="1" Grid.Row="0" Text="{Binding Positionsnummer}" />
<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding Beschreibung}" />
<TextBox Grid.Column="1" Grid.Row="2" Text="{Binding Einheit}" />
<TextBox Grid.Column="1" Grid.Row="3" Text="{Binding Tag}" />
<Button Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Content="Speichern" Name="Save" Click="Save_Click" />
<CheckBox Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Content="Güteschutzprotokoll erforderlich" IsChecked="{Binding HatGüteschutzProtokoll}" Style="{StaticResource checkBoxCircle}" HorizontalAlignment="Center" />
<Button Grid.Column="0" Grid.Row="5" Grid.ColumnSpan="2" Content="Speichern" Name="Save" Click="Save_Click" />
</Grid>
</UserControl>

View File

@@ -23,8 +23,11 @@
<DataTemplate DataType="{x:Type model:Taetigkeiten}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding LeistungsverzeichnisPosition.Beschreibung}" />
<TextBlock Text=" " />
<TextBlock Text="{Binding ZeitStempel, Converter={StaticResource IstFertigZuTextConverter}}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>

View File

@@ -18,7 +18,7 @@
<ControlTemplate TargetType="{x:Type Calendar}">
<StackPanel HorizontalAlignment="Center" Name="PART_Root">
<CalendarItem Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Name="PART_CalendarItem" Style="{TemplateBinding Calendar.CalendarItemStyle}" />
<Button Content="Heute" Command="local:CalendarCommands.SelectToday" CommandParameter="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
<Button Content="Heute" Background="{Binding Erledigt, Converter={StaticResource IstFertigZuBackgroundConverter}}" Command="local:CalendarCommands.SelectToday" CommandParameter="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
@@ -51,6 +51,7 @@
<TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Mitarbeiter}" />
<Calendar Style="{StaticResource DefaultCalendar}" Grid.Row="2" Grid.Column="1" Name="Calender" SelectedDate="{Binding ZeitStempel}" Margin="-220,0,0,0"/>
<Button Grid.Row="2" Grid.Column="1" Content="Löschen" Margin="400,100,10,20" Name="ErledigtLöschen" Click="ErledigtLöschen_Click" />
<ComboBox Grid.Row="3" Grid.Column="1" ItemsSource="{Binding LVPositionen}" DisplayMemberPath="Beschreibung" SelectedValuePath="Beschreibung" SelectedItem="{Binding Leistungsverzeichnis, Mode=TwoWay}">
<!--<ComboBox.ItemTemplate>
<DataTemplate>
@@ -62,7 +63,7 @@
<TextBox Grid.Row="4" Grid.Column="1" Text="{Binding Anzahl}" />
<TextBox Grid.Row="5" Grid.Column="1" Text="{Binding Bemerkung}"/>
<Button Grid.Row="6" Grid.ColumnSpan="2" Content="Speichern" Name="Speichern" Click="Speichern_Click" />
<Button Grid.Row="7" Grid.ColumnSpan="2" Content="Güteschutzprotokoll" IsEnabled="{Binding HatGueteschutzProtokoll}" />
<Button Grid.Row="7" Grid.ColumnSpan="2" Content="Güteschutzprotokoll" IsEnabled="{Binding HatGueteschutzProtokoll}" Name="Güteschutzprotokoll" Click="Güteschutzprotokoll_Click" />
</Grid>
</UserControl>

View File

@@ -37,6 +37,7 @@ namespace KanSan.UI
{
InitializeComponent();
this.DataContext = new TaetigkeitEditViewModel(taetigkeit);
}
private void Speichern_Click(object sender, RoutedEventArgs e)
@@ -55,5 +56,16 @@ namespace KanSan.UI
{
e.CanExecute = true;
}
private void Güteschutzprotokoll_Click(object sender, RoutedEventArgs e)
{
}
private void ErledigtLöschen_Click(object sender, RoutedEventArgs e)
{
(DataContext as TaetigkeitEditViewModel).LöscheErledigt();
MessageBox.Show("Eintrag wurde als gelöscht Markiert");
}
}
}

View File

@@ -20,12 +20,18 @@
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="23*" />
<RowDefinition Height="277*" />
<RowDefinition Height="11*" />
<RowDefinition Height="64*" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=(self:SewerMainMenuViewModel.ObjektBezeichnung)}" />
<StackPanel Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Name="MenuItems">
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<TextBlock Text="{Binding Path=(self:SewerMainMenuViewModel.ObjektBezeichnung)}" />
<TextBlock Text="{Binding Path=(self:SewerMainMenuViewModel.SchadenEntfernung)}" />
<TextBlock Text="" />
</StackPanel>
<!--<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=(self:SewerMainMenuViewModel.ObjektBezeichnung)}" />-->
<StackPanel Grid.Column="0" Grid.Row="1" Name="MenuItems">
<RadioButton Name="rbStammdaten" Checked="rbSewerMenuItem_Checked" Style="{StaticResource ToggelButtonList}" Content="Stammdaten" />
<RadioButton Name="rbSchaeden" Checked="rbSewerMenuItem_Checked" Style="{StaticResource ToggelButtonList}" Content="Schäden" />
@@ -33,6 +39,6 @@
<RadioButton Name="rbSchachtAnb1" Checked="rbSewerMenuItem_Checked" Style="{StaticResource ToggelButtonList}" Content="Schachtanbindung 1" />
<RadioButton Name="Kurzliner1" Checked="rbSewerMenuItem_Checked" Style="{StaticResource ToggelButtonList}" Content="Kurzliner" />
</StackPanel>
<ContentControl Grid.Column="1" Grid.Row="1" Grid.RowSpan="2" Name="ObjektContentcontroller" />
<ContentControl Grid.Column="1" Grid.Row="1" Name="ObjektContentcontroller" />
</Grid>
</UserControl>

View File

@@ -27,6 +27,7 @@ namespace KanSan.UI
this.DataContext = new SewerMainMenuViewModel(objekt);
UI.UCObjektEdit uCObjektEdit = new UCObjektEdit(objekt);
ObjektContentcontroller.Content = uCObjektEdit;
rbStammdaten.IsChecked = true;
Style style = this.FindResource("ToggelButtonList") as Style;
@@ -64,6 +65,8 @@ namespace KanSan.UI
{
aktuellSchadenSelected = e.schaeden;
UI.UCSanMaßnahmenList uCSanMaßnahmenList = new UCSanMaßnahmenList(e.schaeden);
(DataContext as SewerMainMenuViewModel).Schaden = e.schaeden;
uCSanMaßnahmenList.TaetigkeitenSelected += UCSanMaßnahmenList_TaetigkeitenSelected;
rbSchaeden.IsChecked = false;
ObjektContentcontroller.Content = uCSanMaßnahmenList;
@@ -74,6 +77,7 @@ namespace KanSan.UI
private void UCSanMaßnahmenList_TaetigkeitenSelected(object sender, TaetigkeitenSelectEventArgs e)
{
UI.UCTaetigkeitEdit uCTaetigkeitEdit = new UCTaetigkeitEdit(e.Taetigkeit);
Trace.WriteLine("Taetigkeit");
uCTaetigkeitEdit.SpeichernClicked += UCTaetigkeitEdit_SpeichernClicked;
ObjektContentcontroller.Content = uCTaetigkeitEdit;
}