Sanierungsarten und weitere Berechnungen
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using Schnittstelle.Import.XML.v2013.Model;
|
using Schnittstelle.Import.XML.v2013.Model;
|
||||||
|
using Schnittstelle.Sanierung;
|
||||||
using Syncfusion.XlsIO;
|
using Syncfusion.XlsIO;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -12,7 +13,7 @@ namespace Schnittstelle.Export
|
|||||||
public static class Excel
|
public static class Excel
|
||||||
{
|
{
|
||||||
const string LizenceKey = "Ngo9BigBOggjHTQxAR8/V1NCaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXdccXRQQ2NZWEBxWUM=";
|
const string LizenceKey = "Ngo9BigBOggjHTQxAR8/V1NCaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXdccXRQQ2NZWEBxWUM=";
|
||||||
public static void MakeWorkbook(List<KanalObjekt> KanalObjekte)
|
public static void MakeWorkbook(List<KanalObjekt> KanalObjekte, List<Sanierungart> sanierungsarten)
|
||||||
{
|
{
|
||||||
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(LizenceKey);
|
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(LizenceKey);
|
||||||
ExcelEngine excelEngine = new ExcelEngine();
|
ExcelEngine excelEngine = new ExcelEngine();
|
||||||
@@ -30,23 +31,23 @@ namespace Schnittstelle.Export
|
|||||||
{
|
{
|
||||||
IWorksheet worksheet = workbook.Worksheets[i];
|
IWorksheet worksheet = workbook.Worksheets[i];
|
||||||
KanalObjekt k = KanalObjekte[i];
|
KanalObjekt k = KanalObjekte[i];
|
||||||
CalculateHaltung(k, worksheet, CellStyle);
|
CalculateHaltung(k, worksheet, sanierungsarten , CellStyle);
|
||||||
}
|
}
|
||||||
FileStream stream = new FileStream("beurteilung.xlsx", FileMode.Create, FileAccess.ReadWrite);
|
FileStream stream = new FileStream("beurteilung.xlsx", FileMode.Create, FileAccess.ReadWrite);
|
||||||
workbook.SaveAs(stream);
|
workbook.SaveAs(stream);
|
||||||
stream.Dispose();
|
stream.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void CalculateHaltung(KanalObjekt haltung, IWorksheet worksheet, IStyle cellStyle)
|
private static void CalculateHaltung(KanalObjekt haltung, IWorksheet worksheet, List<Sanierungart> sanierungsarten, IStyle cellStyle)
|
||||||
{
|
{
|
||||||
|
|
||||||
worksheet.Name = string.Format("{0}", haltung.Stammdaten.Objektbezeichnung);
|
worksheet.Name = string.Format("{0}", haltung.Stammdaten.Objektbezeichnung);
|
||||||
|
|
||||||
int wiederholungen = 3;
|
|
||||||
int row = 1;
|
int row = 1;
|
||||||
|
|
||||||
for (int i = 0; i < wiederholungen; i++)
|
for (int i = 0; i < sanierungsarten.Count; i++)
|
||||||
{
|
{
|
||||||
|
Sanierungart sanArt = sanierungsarten[i];
|
||||||
int mainrow = row;
|
int mainrow = row;
|
||||||
worksheet.Range[row, 1].Text = "Haltung";
|
worksheet.Range[row, 1].Text = "Haltung";
|
||||||
worksheet.Range[row, 2].Text = "Länge";
|
worksheet.Range[row, 2].Text = "Länge";
|
||||||
@@ -67,7 +68,9 @@ namespace Schnittstelle.Export
|
|||||||
|
|
||||||
worksheet.Range[mainrow,1,row,10].CellStyle = cellStyle;
|
worksheet.Range[mainrow,1,row,10].CellStyle = cellStyle;
|
||||||
|
|
||||||
row += 4;
|
row += 2;
|
||||||
|
worksheet.Range[row, 2].Text = sanArt.Sanierungsbezeichnung;
|
||||||
|
row+= 2;
|
||||||
int temprow = row;
|
int temprow = row;
|
||||||
worksheet.Range[row, 1].Text = "Stat";
|
worksheet.Range[row, 1].Text = "Stat";
|
||||||
worksheet.Range[row, 2].Text = "Kürzel";
|
worksheet.Range[row, 2].Text = "Kürzel";
|
||||||
@@ -81,6 +84,7 @@ namespace Schnittstelle.Export
|
|||||||
worksheet.Range[row, 10].Text = "Kosten";
|
worksheet.Range[row, 10].Text = "Kosten";
|
||||||
|
|
||||||
row++;
|
row++;
|
||||||
|
int codestart_row = row;
|
||||||
//int rows = 7;
|
//int rows = 7;
|
||||||
decimal inspizierteLaenge = 0m;
|
decimal inspizierteLaenge = 0m;
|
||||||
for (int j = 0; j < haltung.Inspektionsdaten.OptischeInspektion.Count; j++)
|
for (int j = 0; j < haltung.Inspektionsdaten.OptischeInspektion.Count; j++)
|
||||||
@@ -112,14 +116,45 @@ namespace Schnittstelle.Export
|
|||||||
|
|
||||||
worksheet.Range[row + j, 7].Text = code.KodeDescription;
|
worksheet.Range[row + j, 7].Text = code.KodeDescription;
|
||||||
worksheet.Range[row + j, 8].Text = code.Streckenschaden;
|
worksheet.Range[row + j, 8].Text = code.Streckenschaden;
|
||||||
worksheet.Range[row + j, 9].Text = "";
|
|
||||||
worksheet.Range[row + j, 10].Text = "";
|
Tuple<string, double> 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++;
|
row++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
worksheet.Range[mainrow+1, 4].Text = inspizierteLaenge.ToString();
|
|
||||||
worksheet.Range[temprow, 1, row, 10].CellStyle = cellStyle;
|
worksheet.Range[temprow, 1, row, 10].CellStyle = cellStyle;
|
||||||
row += 15;
|
temprow = row;
|
||||||
|
worksheet.Range[row, 7].Text = "Zwischensumme";
|
||||||
|
worksheet.Range[row, 10].Formula = string.Format("=SUM(J{0}:J{1})", codestart_row, row-1);
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Baustelleneinrichtung"; //10%
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Verkehrssicherung"; // 5%
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Aufrechterhaltung der Vorflut"; // 12%
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Kanalreinigung"; // 2€ /m
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Kamerainspektion"; // 3€ /m
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Reinigung verstopfter Abzweiger"; //250€
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Summe netto";
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Mehrwertsteuer"; // 19%
|
||||||
|
row++;
|
||||||
|
worksheet.Range[row, 7].Text = "Summe brutto";
|
||||||
|
|
||||||
|
worksheet.Range[temprow, 7, row, 10].CellStyle = cellStyle;
|
||||||
|
|
||||||
|
worksheet.Range[mainrow+1, 4].Text = inspizierteLaenge.ToString();
|
||||||
|
|
||||||
|
row += 5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
36
Schnittstelle/Sanierung/Sanierungart.cs
Normal file
36
Schnittstelle/Sanierung/Sanierungart.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using Syncfusion.XlsIO.Parser.Biff_Records;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Schnittstelle.Sanierung
|
||||||
|
{
|
||||||
|
|
||||||
|
public abstract class Sanierungart
|
||||||
|
{
|
||||||
|
string sanierungsbezeichnung = string.Empty;
|
||||||
|
public string Sanierungsbezeichnung { get => sanierungsbezeichnung; }
|
||||||
|
public Dictionary<string, Tuple<string, double>> Sanierungen = new Dictionary<string, Tuple<string, double>>();
|
||||||
|
public Sanierungart(string art)
|
||||||
|
{
|
||||||
|
sanierungsbezeichnung = art;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Reparatur : Sanierungart
|
||||||
|
{
|
||||||
|
|
||||||
|
public Reparatur() : base("Reparatur")
|
||||||
|
{
|
||||||
|
Sanierungen.Add("BAB", new Tuple<string, double>("Kurzliner 2,4m", 300.30));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Renovation : Sanierungart
|
||||||
|
{
|
||||||
|
public Renovation() : base("Renovation")
|
||||||
|
{
|
||||||
|
Sanierungen.Add("BCA", new Tuple<string, double>("Einmessen, Öffnen, Hut", 800));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user