diff --git a/ReportImp/AwoIntegrationsGGmbH/AwoIntegrationsGGmbH.csproj b/ReportImp/AwoIntegrationsGGmbH/AwoIntegrationsGGmbH.csproj
index e2d735598..afc50abea 100644
--- a/ReportImp/AwoIntegrationsGGmbH/AwoIntegrationsGGmbH.csproj
+++ b/ReportImp/AwoIntegrationsGGmbH/AwoIntegrationsGGmbH.csproj
@@ -55,6 +55,7 @@
+
True
diff --git a/ReportImp/AwoIntegrationsGGmbH/Calculations/CustomServiceRecordStatisticFactory.cs b/ReportImp/AwoIntegrationsGGmbH/Calculations/CustomServiceRecordStatisticFactory.cs
new file mode 100644
index 000000000..839fa9582
--- /dev/null
+++ b/ReportImp/AwoIntegrationsGGmbH/Calculations/CustomServiceRecordStatisticFactory.cs
@@ -0,0 +1,113 @@
+using System;
+using System.Collections.Generic;
+using BeWo.Service.Plugins;
+using BS.Shared;
+using BS.Shared.DataContracts;
+
+
+namespace AwoIntegrationsGGmbH.Calculations
+{
+ public class CustomServiceRecordStatisticFactory : ServiceRecordStatisticFactory
+ {
+
+ public override ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate)
+ {
+ var stats = CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate);
+
+ var dc = new ServiceRecordStatisticsInfoDC();
+
+
+
+ dc.Header = new string[4];
+ dc.Header[0] = "Bewilligungszeitraum:";
+ dc.Header[1] = "Geleistet diesen Monat/Gesamt:";
+ dc.Header[2] = "Bewilligt diesen Monat/Gesamt:";
+ dc.Header[3] = "Frei diesen Monat/Gesamt:";
+
+ dc.ForegroundColor = new string[4];
+ dc.ForegroundColor[0] = "#FF2B508B";
+ dc.ForegroundColor[1] = "#FF2B508B";
+ dc.ForegroundColor[2] = "#FF2B508B";
+ dc.ForegroundColor[3] = "#FF2B508B";
+
+ dc.PeriodStatisticInfos = new List();
+
+
+ if (stats != null)
+ {
+ if (stats.PeriodStatistics.Count > 1 && !TimeSpanIsEqual(stats))
+ dc.PeriodStatisticInfos.Add(CreateTotalStatistics(stats, statisticsDate));
+
+ foreach (var pdc in stats.PeriodStatistics)
+ {
+ dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, pdc, statisticsDate));
+ }
+ }
+
+ return dc;
+ }
+
+
+ public ServiceRecordPeriodStatisticsInfoDC CreateTotalStatistics(SupportConceptStatisticsDC stats, DateTime statisticsDate)
+ {
+ var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4);
+ dc.LeftValues[0] = "Gesamt";
+
+ dc.LeftValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedThisMonth / 60);
+ dc.RightValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedTotalRounded / 60);
+
+ dc.LeftValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedPerMonth / 60);
+ dc.RightValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedTotal / 60);
+
+ dc.LeftValues[3] = String.Format("{0:0.00}", (stats.MinutesApprovedPerMonth - stats.MinutesProvidedThisMonth) / 60);
+ dc.RightValues[3] = String.Format("{0:0.00}", (stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded) / 60);
+
+ return dc;
+ }
+
+ public ServiceRecordPeriodStatisticsInfoDC CreateServiceRecordPeriodStatisticsInfo(SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC periodStats, DateTime statisticsDate)
+ {
+ var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4);
+
+ if (periodStats.SupportConceptApprovalPeriod != null)
+ {
+ if (periodStats.SupportConceptApprovalPeriod.ServiceCategory != null)
+ {
+ dc.LeftValues[0] = String.Format("{0}: {1:dd.MM.yy} - {2:dd.MM.yy}",
+ periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name,
+ periodStats.SupportConceptApprovalPeriod.StartDate,
+ periodStats.SupportConceptApprovalPeriod.EndDate);
+ }
+ else
+ {
+ dc.LeftValues[0] = String.Format("{0:dd.MM.yy} - {1:dd.MM.yy}",
+ periodStats.SupportConceptApprovalPeriod.StartDate,
+ periodStats.SupportConceptApprovalPeriod.EndDate);
+ }
+ }
+
+ dc.LeftValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedThisMonth / 60);
+ dc.RightValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedTotalRounded / 60);
+
+ dc.LeftValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedPerMonth / 60);
+ dc.RightValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedTotal / 60);
+
+ dc.LeftValues[3] = String.Format("{0:0.00}", (periodStats.MinutesApprovedPerMonth - periodStats.MinutesProvidedThisMonth) / 60);
+ dc.RightValues[3] = String.Format("{0:0.00}", (periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded) / 60);
+
+ return dc;
+ }
+
+ public override decimal GetApprovedMinutesPerMonth(SupportConceptPeriodStatisticsDC periodStats)
+ {
+ if (periodStats.SupportConceptApprovalPeriod != null && periodStats.SupportConceptApprovalPeriod.StartDate.HasValue && periodStats.SupportConceptApprovalPeriod.EndDate.HasValue)
+ {
+ if (periodStats.SupportConceptApprovalPeriod.ApprovedBEPerInterval.HasValue && periodStats.SupportConceptApprovalPeriod.ApprovedBEInterval.HasValue && periodStats.SupportConceptApprovalPeriod.ApprovedBEInterval.Value == SupportConceptApprovalInterval.Monthly)
+ {
+ return periodStats.SupportConceptApprovalPeriod.ApprovedBEPerInterval.Value * 60;
+ }
+ }
+ return base.GetApprovedMinutesPerMonth(periodStats);
+ }
+ }
+}