Strassen werden nun richtig in csv geschrieben
This commit is contained in:
@@ -11,6 +11,37 @@ namespace XMLParser.Functions
|
||||
public static Dictionary<ECalculatedResult,decimal> CalculateStreet(List<KanalObjekt> inspektionen)
|
||||
{
|
||||
Dictionary<ECalculatedResult,decimal> result = new Dictionary<ECalculatedResult, decimal>();
|
||||
|
||||
List<KanalObjekt> Anschlussleitungen = inspektionen.FindAll(x => x.Inspektionsdaten.Anlagentyp.Equals(EAnlagetyp.Anschlussleitung));
|
||||
List<KanalObjekt> SEs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
|
||||
List<KanalObjekt> SOs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && !x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
|
||||
|
||||
foreach(KanalObjekt s in SEs) {
|
||||
Anschlussleitungen.Remove(s);
|
||||
}
|
||||
foreach(KanalObjekt s in SOs) {
|
||||
Anschlussleitungen.Remove(s);
|
||||
}
|
||||
SOs.AddRange(Anschlussleitungen);
|
||||
|
||||
decimal SEOverlength = 0.0m;
|
||||
decimal SOOverlength = 0.0m;
|
||||
|
||||
SEs.ForEach(x => {
|
||||
decimal length = x.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
|
||||
if(length > 5.0m) SEOverlength += length - 5.0m;
|
||||
});
|
||||
SOs.ForEach(x => {
|
||||
decimal length = x.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
|
||||
if(length > 7.0m) SOOverlength += length - 7.0m;
|
||||
});
|
||||
|
||||
result.Add(ECalculatedResult.STRASSENABLAUFANZAHL,SEs.Count);
|
||||
result.Add(ECalculatedResult.SONSTIGEANZAHL,SOs.Count);
|
||||
|
||||
result.Add(ECalculatedResult.STRASSENABLAUFLAENGEZULAGEMETER,SEOverlength);
|
||||
result.Add(ECalculatedResult.SONSTIGELAENGEZULAGEMETER,SOOverlength);
|
||||
|
||||
decimal HauptkanalLaenge =0.0m;
|
||||
|
||||
List<int> ranges = new List<int>()
|
||||
@@ -51,50 +82,6 @@ namespace XMLParser.Functions
|
||||
}
|
||||
|
||||
result.Add(ECalculatedResult.GESAMTHAUPTKANAL,HauptkanalLaenge);
|
||||
|
||||
List<KanalObjekt> Anschlussleitungen = inspektionen.FindAll(x => x.Inspektionsdaten.Anlagentyp.Equals(EAnlagetyp.Anschlussleitung));
|
||||
List<KanalObjekt> SEs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
|
||||
List<KanalObjekt> SOs = Anschlussleitungen.FindAll(x => x.Stammdaten.Knoten != null && x.Stammdaten.Knoten.Anschlusspunkt != null && !x.Stammdaten.Knoten.Anschlusspunkt.Punktkennung.Equals("SE"));
|
||||
|
||||
foreach(KanalObjekt s in SEs) {
|
||||
Anschlussleitungen.Remove(s);
|
||||
}
|
||||
foreach(KanalObjekt s in SOs) {
|
||||
Anschlussleitungen.Remove(s);
|
||||
}
|
||||
|
||||
SOs.AddRange(Anschlussleitungen);
|
||||
|
||||
result.Add(ECalculatedResult.STRASSENABLAUFANZAHL,SEs.Count);
|
||||
result.Add(ECalculatedResult.SONSTIGEANZAHL,SOs.Count);
|
||||
|
||||
decimal SEPauschal = 34.00m * SEs.Count;
|
||||
decimal SOPauschal = 45.00m * SOs.Count;
|
||||
decimal HauptkanalPreis = 1.60m * HauptkanalLaenge;
|
||||
|
||||
result.Add(ECalculatedResult.STRASSENABLAUFUMSATZ,SEPauschal);
|
||||
result.Add(ECalculatedResult.SONSTIGEUMSATZ,SOPauschal);
|
||||
result.Add(ECalculatedResult.HAUPTKANALUMSATZ,HauptkanalPreis);
|
||||
|
||||
|
||||
|
||||
decimal SEOverlength = 0.0m;
|
||||
decimal SOOverlength = 0.0m;
|
||||
|
||||
SEs.ForEach(x => {
|
||||
decimal length = x.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
|
||||
if(length > 5.0m) SEOverlength += length - 5.0m;
|
||||
});
|
||||
SOs.ForEach(x => {
|
||||
decimal length = x.Inspektionsdaten.OptischeInspektion.Rohrleitung.Inspektionslaenge;
|
||||
if(length > 7.0m) SOOverlength += length - 7.0m;
|
||||
});
|
||||
|
||||
decimal LeitungsOverlengthPreis = (SEOverlength + SOOverlength) * 2.4m;
|
||||
result.Add(ECalculatedResult.STRASSENABLAUFLAENGEZULAGEMETER,SEOverlength);
|
||||
result.Add(ECalculatedResult.SONSTIGELAENGEZULAGEMETER,SOOverlength);
|
||||
result.Add(ECalculatedResult.LAENGEZULAGEUMSATZ,LeitungsOverlengthPreis);
|
||||
result.Add(ECalculatedResult.GESAMTUMSATZ,(LeitungsOverlengthPreis + HauptkanalPreis + SEPauschal + SOPauschal));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user