Tätigkeiten erfassen angefangen
This commit is contained in:
10
KanSan.Base/Interfaces/UI/ITätigkeitNewViewModel.cs
Normal file
10
KanSan.Base/Interfaces/UI/ITätigkeitNewViewModel.cs
Normal file
@@ -0,0 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace KanSan.Base.Interfaces.UI
|
||||
{
|
||||
public interface ITätigkeitNewViewModel
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Win32.Registry" Version="4.7.0" />
|
||||
<PackageReference Include="Syncfusion.XlsIO.Wpf" Version="18.1.0.55" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using KanSan.Base.Interfaces;
|
||||
using KanSan.Base.Models;
|
||||
using Microsoft.Win32;
|
||||
using Syncfusion.XlsIO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
@@ -25,6 +26,7 @@ namespace KanSan.ViewModel
|
||||
private Sewer _selectedObjekt;
|
||||
|
||||
public static Baustelle Baustelle;
|
||||
public static List<LeistungsverzeichnisPosition> LVPositionen = null;
|
||||
|
||||
|
||||
public string ApplicationTitle
|
||||
@@ -43,6 +45,19 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
void LoadBaustellenLeistungsverzeichnis()
|
||||
{
|
||||
if (LVPositionen == null)
|
||||
LVPositionen = new List<LeistungsverzeichnisPosition>();
|
||||
if (LVPositionen.Count > 0)
|
||||
LVPositionen.Clear();
|
||||
IEnumerable<BaustelleLeistungsverzeichnisReferenz> baustelleLeistungsverzeichnis = unitOfWork.LeistungsverzeichnisReferenz.Get(x => x.Baustelle.Equals(Baustelle), includeProperties: "LVPosition");
|
||||
foreach(BaustelleLeistungsverzeichnisReferenz referenz in baustelleLeistungsverzeichnis)
|
||||
{
|
||||
LVPositionen.Add(referenz.LVPosition);
|
||||
}
|
||||
}
|
||||
|
||||
public Kunde SelectedKunde
|
||||
{
|
||||
get
|
||||
@@ -172,6 +187,12 @@ namespace KanSan.ViewModel
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
LadeRegistry();
|
||||
LoadBaustellenLeistungsverzeichnis();
|
||||
}
|
||||
|
||||
public void GenerateExcelFile()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
using KanSan.Base.Interfaces;
|
||||
using KanSan.Base.Interfaces.UI;
|
||||
using KanSan.Base.Models;
|
||||
using Syncfusion.XlsIO;
|
||||
using Syncfusion.XlsIO.FormatParser.FormatTokens;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
@@ -22,7 +25,7 @@ namespace KanSan.ViewModel
|
||||
public SchaedenListViewModel(Sewer actualSelectedSewer)
|
||||
{
|
||||
this.actualSelectedSewer = actualSelectedSewer;
|
||||
schaeden = unitOfWork.SchaedenRepository.Get(x => x.Sewer.Equals(actualSelectedSewer)).ToList();
|
||||
schaeden = unitOfWork.SchaedenRepository.Get(x => x.Sewer.Equals(actualSelectedSewer),includeProperties: "Sanierungskonzept,Sanierungskonzept.Taetigkeiten,Sanierungskonzept.Taetigkeiten.LeistungsverzeichnisPosition").ToList();
|
||||
}
|
||||
|
||||
public Schaeden NeueSchaden()
|
||||
@@ -40,5 +43,81 @@ namespace KanSan.ViewModel
|
||||
if (res.Count < 1) throw new Exception("Der zuvor eingefügte Schäden konnte nicht gefunden werden");
|
||||
return res.First();
|
||||
}
|
||||
|
||||
public void GenerateExcelFile()
|
||||
{
|
||||
// Dictionary um rauszufinden welche Leistungsverzeichnis Positionen in welche Spalte sind
|
||||
Dictionary<Guid, int> LVPosSpalte = new Dictionary<Guid, int>();
|
||||
ExcelEngine excelEngine = new ExcelEngine();
|
||||
IWorkbook workbook = excelEngine.Excel.Workbooks.Open("aufmass.xls");
|
||||
IWorksheet sheet = workbook.Worksheets[0];
|
||||
|
||||
// Generate LeistungsverzeichnisPositionen
|
||||
//Spalte G => O => 7 / 15
|
||||
//Zeile = 8
|
||||
|
||||
sheet.Range["B9"].Text = MainWindowViewModel.Baustelle.Projekt.Kunde.Vorname;
|
||||
sheet.Range["B10"].Text = MainWindowViewModel.Baustelle.BaustelleNummer;
|
||||
sheet.Range["D10"].Text = MainWindowViewModel.Baustelle.OrtTeil;
|
||||
sheet.Range["D11"].Text = actualSelectedSewer.Material.ToString();
|
||||
|
||||
sheet.Range["A15"].Text = actualSelectedSewer.StrasseName;
|
||||
sheet.Range["B15"].Text = actualSelectedSewer.DN.ToString();
|
||||
sheet.Range["C15"].Text = actualSelectedSewer.PunktOben.Objektnummer;
|
||||
sheet.Range["D15"].Text = actualSelectedSewer.PunktUnten.Objektnummer;
|
||||
sheet.Range["F15"].Number = Convert.ToDouble(actualSelectedSewer.Haltungslaenge);
|
||||
|
||||
#region LeistungsverzeichnisGenerierung
|
||||
for (int spalte = 7; spalte <= 15; spalte++)
|
||||
{
|
||||
int i = spalte - 7;
|
||||
if (i >= MainWindowViewModel.LVPositionen.Count) break;
|
||||
sheet.Range[8, spalte].Text = MainWindowViewModel.LVPositionen[i].Beschreibung;
|
||||
LVPosSpalte.Add(MainWindowViewModel.LVPositionen[i].GuidNr, spalte);
|
||||
}
|
||||
#endregion
|
||||
|
||||
/* E16 für Station
|
||||
* G - O8 für LV
|
||||
* P15 für Datum
|
||||
* Q15 für Bemerkung
|
||||
* R15 für v.TV
|
||||
* S15 für n.TV
|
||||
*/
|
||||
// Zeile 15 => 40
|
||||
|
||||
int counter = 15;
|
||||
foreach(Schaeden schaden in Schaeden)
|
||||
{
|
||||
sheet.Range[counter, 5].Number = Convert.ToDouble(schaden.Entfernung);
|
||||
List<Taetigkeiten> taetigkeiten = schaden.Sanierungskonzept.Taetigkeiten;
|
||||
|
||||
IEnumerable<DateTime> datums = taetigkeiten.Select(x => x.ZeitStempel.Date).Distinct();
|
||||
foreach (DateTime datum in datums)
|
||||
{
|
||||
List<Taetigkeiten> tätigkeit = taetigkeiten.FindAll(x => x.ZeitStempel.Date.Equals(datum));
|
||||
foreach (Taetigkeiten tätig in tätigkeit)
|
||||
{
|
||||
int column = LVPosSpalte[tätig.LeistungsverzeichnisPosition.GuidNr];
|
||||
if (tätig.ZeitStempel != DateTime.MinValue)
|
||||
{
|
||||
sheet.Range[counter, column].Number = Convert.ToDouble(tätig.Anzahl);
|
||||
|
||||
sheet.Range[counter, 16].DateTime = tätig.ZeitStempel;
|
||||
}
|
||||
else
|
||||
{
|
||||
sheet.Range[counter, column].Text = "x";
|
||||
}
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
workbook.SaveAs("test.xls");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,6 +107,7 @@ namespace KanSan.ViewModel
|
||||
|
||||
IEnumerable<BaustelleLeistungsverzeichnisReferenz> baustelleLeistungsverzeichnis = unitOfWork.LeistungsverzeichnisReferenz.Get(x => x.Baustelle.Equals(MainWindowViewModel.Baustelle),includeProperties:"LVPosition");
|
||||
lvPositionen = new List<LeistungsverzeichnisPosition>();
|
||||
// TODO auslagern
|
||||
foreach(BaustelleLeistungsverzeichnisReferenz referenz in baustelleLeistungsverzeichnis)
|
||||
{
|
||||
if((model.LeistungsverzeichnisPosition != null) && (model.LeistungsverzeichnisPosition.GuidNr.Equals(referenz.LVPosition.GuidNr)))
|
||||
@@ -115,6 +116,7 @@ namespace KanSan.ViewModel
|
||||
}
|
||||
lvPositionen.Add(referenz.LVPosition);
|
||||
}
|
||||
//MainWindowViewModel.LVPositionen = lvPositionen;
|
||||
var x = LVPositionen.Equals(leistungsverzeichnis);
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.3" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.3" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.0" />
|
||||
<PackageReference Include="Syncfusion.DocIO.Wpf" Version="18.1.0.44" />
|
||||
<PackageReference Include="Syncfusion.DocToPDFConverter.Wpf" Version="18.1.0.44" />
|
||||
<PackageReference Include="Syncfusion.Grid.WPF" Version="18.1.0.44" />
|
||||
<PackageReference Include="Syncfusion.Shared.WPF" Version="18.1.0.44" />
|
||||
<PackageReference Include="Syncfusion.XlsIO.Wpf" Version="18.1.0.44" />
|
||||
<PackageReference Include="Syncfusion.DocIO.Wpf" Version="18.1.0.55" />
|
||||
<PackageReference Include="Syncfusion.DocToPDFConverter.Wpf" Version="18.1.0.55" />
|
||||
<PackageReference Include="Syncfusion.Grid.WPF" Version="18.1.0.55" />
|
||||
<PackageReference Include="Syncfusion.Shared.WPF" Version="18.1.0.55" />
|
||||
<PackageReference Include="Syncfusion.XlsIO.Wpf" Version="18.1.0.55" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -27,4 +27,10 @@
|
||||
<ProjectReference Include="..\KanSan.ViewModel\KanSan.ViewModel.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="aufmass.xls">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -67,6 +67,9 @@
|
||||
<Compile Update="UI\SanMaßnahmen\UCTaetigkeitEdit.xaml.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Update="UI\Tätigkeiten\UCTätigkeitenNew.xaml.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="MainWindow.xaml">
|
||||
@@ -138,5 +141,8 @@
|
||||
<Page Update="UI\SanMaßnahmen\UCTaetigkeitEdit.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Update="UI\Tätigkeiten\UCTätigkeitenNew.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -18,6 +18,7 @@ using KanSan.Base.Models;
|
||||
using KanSan.ViewModel;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Syncfusion.Windows.Shared;
|
||||
using Syncfusion.XlsIO;
|
||||
|
||||
namespace KanSan
|
||||
{
|
||||
@@ -38,7 +39,10 @@ namespace KanSan
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
|
||||
this.DataContext = new MainWindowViewModel();
|
||||
(this.DataContext as MainWindowViewModel).GenerateExcelFile();
|
||||
#if DEBUG
|
||||
System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = SourceLevels.Critical;
|
||||
#endif
|
||||
|
||||
28
KanSan/SampleData/TätigkeitNewViewModelSampleData.cs
Normal file
28
KanSan/SampleData/TätigkeitNewViewModelSampleData.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using KanSan.Base.Interfaces.UI;
|
||||
using KanSan.Base.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
|
||||
namespace KanSan.SampleData
|
||||
{
|
||||
class TätigkeitNewViewModelSampleData : ITätigkeitNewViewModel
|
||||
{
|
||||
List<LeistungsverzeichnisPosition> lvPositionen = new List<LeistungsverzeichnisPosition>();
|
||||
public List<LeistungsverzeichnisPosition> LVPositionen => lvPositionen;
|
||||
|
||||
public TätigkeitNewViewModelSampleData()
|
||||
{
|
||||
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
lvPositionen.Add(new Base.Models.LeistungsverzeichnisPosition()
|
||||
{
|
||||
Beschreibung = "TV Inspektion DN " + i + "00"
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
<RowDefinition Height="100" />
|
||||
<RowDefinition Height="100" />
|
||||
</Grid.RowDefinitions>
|
||||
<DataGrid CanUserAddRows="False" IsReadOnly="True" Grid.Row="0" ItemsSource="{Binding Schaeden}" Background="Gray" AutoGenerateColumns="False" Margin="0,0,0,0">
|
||||
<DataGrid.RowStyle>
|
||||
@@ -52,5 +53,6 @@
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<Button Grid.Row="1" Name="NewSchaden" Click="NewSchaden_Click" Content="Neue Schäden Hinzufügen" />
|
||||
<Button Grid.Row="2" Name="GenerateExcel" Content="Schadensbericht erstellen" Click="GenerateExcel_Click" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
@@ -70,6 +70,11 @@ namespace KanSan.UI
|
||||
schaeden = schaeden
|
||||
});
|
||||
}
|
||||
|
||||
private void GenerateExcel_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
(DataContext as SchaedenListViewModel).GenerateExcelFile();
|
||||
}
|
||||
}
|
||||
public class SelectSchaedenEventArgs : EventArgs
|
||||
{
|
||||
|
||||
27
KanSan/UI/Tätigkeiten/UCTätigkeitenNew.xaml
Normal file
27
KanSan/UI/Tätigkeiten/UCTätigkeitenNew.xaml
Normal file
@@ -0,0 +1,27 @@
|
||||
<UserControl x:Class="KanSan.UI.UCTätigkeitenNew"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:KanSan.UI"
|
||||
xmlns:sd="clr-namespace:KanSan.SampleData"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<d:UserControl.DataContext>
|
||||
<sd:TätigkeitNewViewModelSampleData />
|
||||
</d:UserControl.DataContext>
|
||||
<UserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="./../../my_controls.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition />
|
||||
|
||||
</Grid.RowDefinitions>
|
||||
<ContentControl Grid.Row="0" Content="{Binding }" ContentTemplate="{StaticResource SelectNewTätigkeitenLVPosition}" />
|
||||
</Grid>
|
||||
</UserControl>
|
||||
26
KanSan/UI/Tätigkeiten/UCTätigkeitenNew.xaml.cs
Normal file
26
KanSan/UI/Tätigkeiten/UCTätigkeitenNew.xaml.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace KanSan.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für UCTätigkeitenNew.xaml
|
||||
/// </summary>
|
||||
public partial class UCTätigkeitenNew : UserControl
|
||||
{
|
||||
public UCTätigkeitenNew()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
KanSan/aufmass.xls
Normal file
BIN
KanSan/aufmass.xls
Normal file
Binary file not shown.
@@ -5,6 +5,22 @@
|
||||
<DataTemplate x:Key="SanierungViewModelDataTemplate" DataType="{x:Type l:UCHarzSanierung }">
|
||||
<l:UCHarzSanierung />
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="SelectNewTätigkeitenLVPosition" DataType="{x:Type l:UCTätigkeitNewSelect}">
|
||||
<Border BorderThickness="2" BorderBrush="Red">
|
||||
<ItemsControl ItemsSource="{Binding LVPositionen }">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<UniformGrid Rows="8" Columns="3" />
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Content="{Binding Beschreibung}" />
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
||||
<Style x:Key="ToggelButtonList" TargetType="{x:Type ToggleButton}">
|
||||
<Setter Property="FrameworkElement.OverridesDefaultStyle" Value="True"/>
|
||||
|
||||
Reference in New Issue
Block a user