From c86a2ff6d886f88fda725a319f044ee0e10fd77a Mon Sep 17 00:00:00 2001 From: Damian Wessels Date: Fri, 30 Aug 2024 14:47:49 +0200 Subject: [PATCH] Excelliste weiter umgestellt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renovation Schlauchliner abhängig von DN und Durchmesser erstellt --- Schnittstelle/DWA149-2_2013/BAB.cs | 4 +-- Schnittstelle/DWA149-2_2013/BCA.cs | 10 ++++++- Schnittstelle/DWA149-2_2013/BCE.cs | 14 +++++++++- Schnittstelle/Export/Excel.cs | 34 +++++++++++++++++++++-- Schnittstelle/Import/XML/v2013/XML2013.cs | 5 +++- Schnittstelle/Sanierung/ISanierung.cs | 11 +++++--- Schnittstelle/Sanierung/Sanierungart.cs | 10 +++---- 7 files changed, 70 insertions(+), 18 deletions(-) diff --git a/Schnittstelle/DWA149-2_2013/BAB.cs b/Schnittstelle/DWA149-2_2013/BAB.cs index 65fac0d..9a2f0d1 100644 --- a/Schnittstelle/DWA149-2_2013/BAB.cs +++ b/Schnittstelle/DWA149-2_2013/BAB.cs @@ -21,8 +21,8 @@ namespace Schnittstelle.DWA149_2_2013 CH2.Add("D", "gewundene oder spiralförmige Rissbildung"); CH2.Add("E", "sternförmige Rissbildung"); - reparatur.Add(new SanierungMassnahme("anfräsen",100)); - reparatur.Add(new SanierungMassnahme("kurzliner",200)); + reparatur.Add(new SanierungMassnahme("anfräsen",100,0)); + reparatur.Add(new SanierungMassnahme("kurzliner",200, 0)); } List IReparatur.Massnahmen => reparatur; diff --git a/Schnittstelle/DWA149-2_2013/BCA.cs b/Schnittstelle/DWA149-2_2013/BCA.cs index 59454aa..5b23de2 100644 --- a/Schnittstelle/DWA149-2_2013/BCA.cs +++ b/Schnittstelle/DWA149-2_2013/BCA.cs @@ -1,9 +1,13 @@ using Schnittstelle.Import.XML.v2013.Model; +using Schnittstelle.Sanierung; +using System.Collections.Generic; namespace Schnittstelle.DWA149_2_2013 { - class BCA : CodeBeschreibung + class BCA : CodeBeschreibung, IRenovation { + List renovation = new List(); + public BCA(RZustand kuerzel) : base("Anschluss", kuerzel) { CH1.Add("A", "Abzweig"); @@ -17,6 +21,10 @@ namespace Schnittstelle.DWA149_2_2013 CH2.Add("A", "offen"); CH2.Add("B", "geschlossen"); + + renovation.Add(new SanierungMassnahme("Einmessen, Öffnen, Hut", 800, -1)); } + + List IRenovation.Massnahmen => renovation; } } \ No newline at end of file diff --git a/Schnittstelle/DWA149-2_2013/BCE.cs b/Schnittstelle/DWA149-2_2013/BCE.cs index a8f15ab..ff83b76 100644 --- a/Schnittstelle/DWA149-2_2013/BCE.cs +++ b/Schnittstelle/DWA149-2_2013/BCE.cs @@ -1,11 +1,23 @@ using Schnittstelle.Import.XML.v2013.Model; +using Schnittstelle.Sanierung; +using System.Collections.Generic; namespace Schnittstelle.DWA149_2_2013 { - class BCE : CodeBeschreibung + class BCE : CodeBeschreibung, IRenovation { + List renovation = new List(); + public BCE(RZustand kuerzel) : base("Endknoten", kuerzel) { + renovation.Add(new SanierungMassnahme("Schlauchliner", 100, 200)); + renovation.Add(new SanierungMassnahme("Schlauchliner", 105, 250)); + renovation.Add(new SanierungMassnahme("Schlauchliner", 120, 300)); + renovation.Add(new SanierungMassnahme("Schlauchliner", 130, 400)); + renovation.Add(new SanierungMassnahme("Schlauchliner", 140, 500)); + renovation.Add(new SanierungMassnahme("Schlauchliner", 150, 600)); } + + public List Massnahmen => renovation; } } \ No newline at end of file diff --git a/Schnittstelle/Export/Excel.cs b/Schnittstelle/Export/Excel.cs index c96f0f6..690f1f9 100644 --- a/Schnittstelle/Export/Excel.cs +++ b/Schnittstelle/Export/Excel.cs @@ -71,6 +71,7 @@ namespace Schnittstelle.Export worksheet.Range[row, 3].Text = "Tiefe"; worksheet.Range[row, 4].Text = "Inspizierte Länge"; worksheet.Range[row, 5].Text = "Straße"; + worksheet.Range[row, 7].Text = sanArt.Sanierungsbezeichnung; worksheet.Range[row, 9].Text = "DN"; worksheet.Range[row, 10].Text = "Material"; @@ -88,8 +89,8 @@ namespace Schnittstelle.Export row += 2; - worksheet.Range[row, 2].Text = sanArt.Sanierungsbezeichnung; - row+= 2; + //worksheet.Range[row, 2].Text = sanArt.Sanierungsbezeichnung; + //row+= 2; //int temprow = row; worksheet.Range[row, 1].Text = "Stat"; worksheet.Range[row, 2].Text = "Kürzel"; @@ -143,13 +144,38 @@ namespace Schnittstelle.Export worksheet.Range[row + j, 7].Text = code.KodeDescription; worksheet.Range[row + j, 8].Text = code.Streckenschaden; - Tuple d; + IRenovation renovation = null; + if (code.Renovation is IRenovation) + { + List k = code.Renovation.Massnahmen; + SanierungMassnahme s = k.Find(x => haltung.Inspektionsdaten.OptischeInspektion[0].Rohrleitung.Grunddaten.Profilbreite >= x.DN); + worksheet.Range[row + j, 9].Text = s.Beschreibung; + if (s.Beschreibung.Equals("Schlauchliner")) + { + double zuschlag = 1; + double tmpLaenge = Convert.ToDouble(haltung.Stammdaten.Kante.Laenge); + if (tmpLaenge < 30) + zuschlag = 1.3; + if (tmpLaenge < 15) + zuschlag = 1.5; + worksheet.Range[row + j, 10].Number = (s.Kosten*zuschlag) * tmpLaenge; + + } + else + worksheet.Range[row + j, 10].Number = s.Kosten; + //Debugger.Break(); + } + + //Debugger.Break(); + + /*Tuple d; if (sanArt.Sanierungen.TryGetValue(code.Inspektionskode, out d)) { worksheet.Range[row + j, 9].Text = d.Item1; worksheet.Range[row + j, 10].Number = d.Item2; } + */ row++; } } @@ -181,10 +207,12 @@ namespace Schnittstelle.Export worksheet.Range[row, 8].Number = Convert.ToDouble(inspizierteLaenge); worksheet.Range[row, 9].Number = 3; worksheet.Range[row, 10].Formula = string.Format("=H{0}*I{0}", row); + /* row++; worksheet.Range[row, 7].Text = "Reinigung verstopfter Abzweiger"; //250€ worksheet.Range[row, 9].Number = 250; worksheet.Range[row, 10].Formula = string.Format("=H{0}*I{0}", row); + */ row++; worksheet.Range[row, 7].Text = "Summe netto"; worksheet.Range[row, 10].Formula = string.Format("=SUM(J{0}:J{1})",temprow,row-1); diff --git a/Schnittstelle/Import/XML/v2013/XML2013.cs b/Schnittstelle/Import/XML/v2013/XML2013.cs index 0b69d30..a1445a2 100644 --- a/Schnittstelle/Import/XML/v2013/XML2013.cs +++ b/Schnittstelle/Import/XML/v2013/XML2013.cs @@ -523,7 +523,10 @@ namespace Schnittstelle.Import.XML.v2013 result.Geometriedaten = parseGeometrieDaten(s); break; case "GeoObjektart": break; - + case "VorlaeufigeBezeichnung": break; + case "Kommentar": break; + + default: throw new NotImplementedException(s.Name); } } diff --git a/Schnittstelle/Sanierung/ISanierung.cs b/Schnittstelle/Sanierung/ISanierung.cs index ccb3279..e9373a4 100644 --- a/Schnittstelle/Sanierung/ISanierung.cs +++ b/Schnittstelle/Sanierung/ISanierung.cs @@ -18,15 +18,18 @@ namespace Schnittstelle.Sanierung public class SanierungMassnahme { string beschreibung = string.Empty; - decimal kosten = decimal.MinValue; + double kosten = double.MinValue; + int dn = 0; public string Beschreibung { get => beschreibung; } - public decimal Kosten { get => kosten; } + public double Kosten { get => kosten; } + public int DN { get => dn; } - public SanierungMassnahme(string beschreibung, decimal kosten) + public SanierungMassnahme(string beschreibung, double kosten, int dn) { - this.beschreibung=beschreibung; + this.beschreibung = beschreibung; this.kosten = kosten; + this.dn = dn; } } diff --git a/Schnittstelle/Sanierung/Sanierungart.cs b/Schnittstelle/Sanierung/Sanierungart.cs index cc5c2d7..372d1e8 100644 --- a/Schnittstelle/Sanierung/Sanierungart.cs +++ b/Schnittstelle/Sanierung/Sanierungart.cs @@ -20,18 +20,16 @@ namespace Schnittstelle.Sanierung public class Reparatur : Sanierungart { - public Reparatur() : base("Reparatur") + public Reparatur() : base("Reparaturverfahren") { - Sanierungen.Add("BAB", new Tuple("Kurzliner 2,4m", 300.30)); + } } public class Renovation : Sanierungart { - public Renovation() : base("Renovation") - { - Sanierungen.Add("BCA", new Tuple("Einmessen, Öffnen, Hut", 800)); - + public Renovation() : base("Renovationsverfahren") + { } }