LH Bad Kreuznach: FLS Soll/Ist Report zur Verfügung gestellt

This commit is contained in:
2026-01-15 10:46:26 +01:00
parent ff51f3b928
commit 9bad53b67f
5 changed files with 159 additions and 17 deletions

View File

@@ -26,6 +26,8 @@ namespace BeWo.Report.ReportObjects
public long ObjectOid { get; set; }
public TableID ObjectTid { get; set; }
public List<FLSSollIstReportGroupRO> Groups { get; set; } = new List<FLSSollIstReportGroupRO>();
public decimal SollGesamt { get; set; }
public decimal IstGesamt { get; set; }
@@ -40,6 +42,7 @@ namespace BeWo.Report.ReportObjects
public String CustomValue4 { get; set; }
public String CustomValue5 { get; set; }
public List<ServiceRecordFLSOverviewDC> ServiceRecords { get; internal set; } = new List<ServiceRecordFLSOverviewDC>();
}
public class FLSSollIstReportGroupRO
@@ -48,6 +51,10 @@ namespace BeWo.Report.ReportObjects
public long ObjectOid { get; set; }
public TableID ObjectTid { get; set; }
public List<SupportConceptCostBearerRelDC> CostBearer2SupportConceptList { get; set; } = new List<SupportConceptCostBearerRelDC>();
public List<FLSSollIstWochenSummen> WochenSummen { get; set; } = new List<FLSSollIstWochenSummen>();
public decimal SollGesamt { get; set; }
@@ -63,6 +70,7 @@ namespace BeWo.Report.ReportObjects
public String CustomValue4 { get; set; }
public String CustomValue5 { get; set; }
public List<ServiceRecordFLSOverviewDC> ServiceRecords { get; internal set; } = new List<ServiceRecordFLSOverviewDC>();
}
public class FLSSollIstWochenSummen
@@ -104,6 +112,7 @@ namespace BeWo.Report.ReportObjects
}
}
public List<ServiceRecordFLSOverviewDC> ServiceRecords { get; internal set; } = new List<ServiceRecordFLSOverviewDC>();
}
public static FLSSollIstReportRO Create(List<FLSAnalysisRootDC> dcList, FLSAnalysisConfigDC config)
@@ -118,21 +127,45 @@ namespace BeWo.Report.ReportObjects
var rootRo = new FLSSollIstRootRO();
rootRo.Name = root.DisplayName;
rootRo.SollGesamt = 0; //root.SollFLSTotal ?;
if (root.Employee != null)
{
rootRo.ObjectOid = root.Employee.EmployeeOid;
rootRo.ObjectTid = TableID.Employee;
}
else if (root.Customer != null)
{
rootRo.ObjectOid = root.Customer.CustomerOid;
rootRo.ObjectTid = TableID.Customer;
}
foreach (var item in root.Groups.OrderBy(a => a.DisplayName))
{
var grpRo = new FLSSollIstReportGroupRO();
grpRo.Name = item.DisplayName;
grpRo.WochenSummen = ErstelleWochensummen(config.StartDate, config.EndDate, null);
if (item.Employee != null)
{
grpRo.ObjectOid = item.Employee.EmployeeOid;
grpRo.ObjectTid = TableID.Employee;
}
else if (item.Customer != null)
{
grpRo.ObjectOid = item.Customer.CustomerOid;
grpRo.ObjectTid = TableID.Customer;
}
foreach (var sc in item.SupportConcepts)
{
grpRo.CostBearer2SupportConceptList.Add(sc.SupportConcept2CostBearer);
foreach (var sr in sc.ServiceRecords)
{
rootRo.ServiceRecords.Add(sr);
grpRo.ServiceRecords.Add(sr);
var ws = grpRo.WochenSummen.FirstOrDefault(w => w.WocheStart <= sr.Start && sr.Start < w.WocheEnde.AddDays(1));
if (ws != null)
{
ws.ServiceRecords.Add(sr);
if (!ws.IstStunden.HasValue)
{
ws.IstStunden = 0;