From 910c6915eadf2ea6119bacc63f6c658a3ea4a25a Mon Sep 17 00:00:00 2001 From: HuskyTeufel Date: Mon, 6 Jul 2020 14:21:38 +0200 Subject: [PATCH] Linerreste werden nun richtig berechnet --- KlassenBIB/KlassenBIB.csproj | 1 + KlassenBIB/LinerReste.cs | 13 +++++++++++ SanSystem/FrmLinerReste.cs | 43 +++++++++++++++++++++++++++--------- 3 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 KlassenBIB/LinerReste.cs diff --git a/KlassenBIB/KlassenBIB.csproj b/KlassenBIB/KlassenBIB.csproj index ba7034c..6c09034 100644 --- a/KlassenBIB/KlassenBIB.csproj +++ b/KlassenBIB/KlassenBIB.csproj @@ -47,6 +47,7 @@ + diff --git a/KlassenBIB/LinerReste.cs b/KlassenBIB/LinerReste.cs new file mode 100644 index 0000000..426bd5e --- /dev/null +++ b/KlassenBIB/LinerReste.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace KlassenBIB +{ + public class LinerReste + { + + } +} diff --git a/SanSystem/FrmLinerReste.cs b/SanSystem/FrmLinerReste.cs index 3058a61..a94aeb4 100644 --- a/SanSystem/FrmLinerReste.cs +++ b/SanSystem/FrmLinerReste.cs @@ -15,25 +15,48 @@ namespace SanSystem { public partial class FrmLinerReste : Form { + Dictionary Linerlaengen = new Dictionary(); + private void BuildListe() { list_liner.Items.Clear(); - foreach (WerkseitigImprägniert linerTruhe in Database.Datenbank.Instance.TeufelDB.Imprägnierungen) + Linerlaengen.Clear(); + // Jedes Projekt durchgehen + foreach (Projekt projekt in Database.Datenbank.Instance.TeufelDB.Projekte) { - double verbrauch = 0; - decimal rest = linerTruhe.LinerLänge; - if (linerTruhe.NochVorhanden == false) continue; - /* - if (linerTruhe.MitLinerSanierteObjekte != null) + // Alle Objekte durchgehen + foreach(Inspektionsobjekt inspektionsobjekt in projekt.Objekte) { - linerTruhe.MitLinerSanierteObjekte.ForEach(x => x.Objekt.ForEach(d => verbrauch += d.Haltungslaenge)); - rest -= Convert.ToDecimal(verbrauch); + // Alle Sanierungen durchgehen + foreach(Sanierung sanierung in inspektionsobjekt.Sanierung) + { + if (sanierung is InlinerSanierung && (sanierung as InlinerSanierung).Imprägnierungsbericht != null && (sanierung as InlinerSanierung).Imprägnierungsbericht is WerkseitigImprägniert) + { + WerkseitigImprägniert werkseitigImprägniert = ((sanierung as InlinerSanierung).Imprägnierungsbericht as WerkseitigImprägniert); + if(Linerlaengen.ContainsKey(werkseitigImprägniert.Imprägniernummer)) + { + Linerlaengen[werkseitigImprägniert.Imprägniernummer] += inspektionsobjekt.Haltungslaenge + inspektionsobjekt.Schachtlaenge; + } + else + { + Linerlaengen.Add(werkseitigImprägniert.Imprägniernummer, inspektionsobjekt.Haltungslaenge + inspektionsobjekt.Schachtlaenge); + } + } + + } } - */ + } - string listoutput = string.Format("({0}) DN: {1} G: {2} R: {3}", linerTruhe.Imprägniernummer, linerTruhe.DN, linerTruhe.LinerLänge, rest); + foreach(string imprägniernummer in Linerlaengen.Keys) + { + // Liner länge insgesammt rausfinden + WerkseitigImprägniert werkseitigImprägniert = Database.Datenbank.Instance.TeufelDB.Imprägnierungen.FindLast(x => x.Imprägniernummer.Equals(imprägniernummer)); + if (werkseitigImprägniert.NochVorhanden == false) continue; + decimal rest = werkseitigImprägniert.LinerLänge - Convert.ToDecimal(Linerlaengen[imprägniernummer]); + string listoutput = string.Format("({0}) DN: {1} G: {2} R: {3}", imprägniernummer, werkseitigImprägniert.DN, werkseitigImprägniert.LinerLänge, rest); list_liner.Items.Add(listoutput); } + } public FrmLinerReste() {