CB Merge
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BeWo.Service.Plugins;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.Extensions;
|
||||
using BS.Shared.Services;
|
||||
|
||||
namespace AbwWeeger.Statistics
|
||||
{
|
||||
public class CustomServiceRecordStatisticFactory : ServiceRecordStatisticFactory
|
||||
{
|
||||
public override ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate)
|
||||
{
|
||||
|
||||
var stats = base.CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate);
|
||||
|
||||
|
||||
var dc = new ServiceRecordStatisticsInfoDC();
|
||||
|
||||
|
||||
dc.Header = new string[4];
|
||||
dc.Header[0] = "Bewilligungszeitraum:";
|
||||
dc.Header[1] = "Geleistet diese Woche/Gesamt:";
|
||||
dc.Header[2] = "Bewilligt pro Woche/Gesamt:";
|
||||
dc.Header[3] = "Über-/Untererbringung:";
|
||||
|
||||
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<ServiceRecordPeriodStatisticsInfoDC>();
|
||||
|
||||
|
||||
if (stats != null)
|
||||
{
|
||||
if (stats.PeriodStatistics.Count > 1 && !TimeSpanIsEqual(stats))
|
||||
dc.PeriodStatisticInfos.Add(CreateTotalStatistics(stats));
|
||||
|
||||
foreach (var pdc in stats.PeriodStatistics)
|
||||
{
|
||||
bool showOutOfPeriod = stats.PeriodStatistics.Count == 1;
|
||||
dc.PeriodStatisticInfos.Add(CreateServiceRecordPeriodStatisticsInfo(stats, pdc, showOutOfPeriod));
|
||||
}
|
||||
}
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
public ServiceRecordPeriodStatisticsInfoDC CreateTotalStatistics(SupportConceptStatisticsDC stats)
|
||||
{
|
||||
var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4);
|
||||
dc.LeftValues[0] = "Gesamt";
|
||||
|
||||
dc.LeftValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedThisWeek / 60);
|
||||
dc.RightValues[1] = String.Format("{0:0.00}", stats.MinutesProvidedTotalRounded / 60);
|
||||
|
||||
dc.LeftValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedPerWeek / 60);
|
||||
dc.RightValues[2] = String.Format("{0:0.00}", stats.MinutesApprovedTotal / 60);
|
||||
|
||||
dc.LeftValues[3] = String.Format("{0:0.00}", (stats.MinutesProvidedTotal - stats.ApprovedMinutesTillNow) / 60);
|
||||
dc.RightValues[3] = ""; //String.Format("{0:0.00}", (stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded) / 60);
|
||||
|
||||
if (Math.Abs(stats.MinutesProvidedTotal - stats.ApprovedMinutesTillNow ?? 0) > 8)
|
||||
{
|
||||
dc.LeftValueColors[3] = "#FFFF0000";
|
||||
}
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
public ServiceRecordPeriodStatisticsInfoDC CreateServiceRecordPeriodStatisticsInfo(SupportConceptStatisticsDC stats, SupportConceptPeriodStatisticsDC periodStats, bool showOutOfPeriod)
|
||||
{
|
||||
var dc = CreateDefaultServiceRecordPeriodStatisticsInfo(4);
|
||||
|
||||
if (periodStats.SupportConceptApprovalPeriod != null)
|
||||
{
|
||||
if (periodStats.SupportConceptApprovalPeriod.ServiceCategory != null)
|
||||
{
|
||||
if (periodStats.SupportConceptApprovalPeriod.StartDate.HasValue && periodStats.SupportConceptApprovalPeriod.EndDate.HasValue &&
|
||||
periodStats.SupportConceptApprovalPeriod.StartDate.Value.Date == stats.StatisticsStartDate.Date &&
|
||||
periodStats.SupportConceptApprovalPeriod.EndDate.Value.Date == stats.StatisticsEndDate.Date)
|
||||
{
|
||||
dc.LeftValues[0] = periodStats.SupportConceptApprovalPeriod.ServiceCategory.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
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.MinutesProvidedThisWeek / 60);
|
||||
dc.RightValues[1] = String.Format("{0:0.00}", periodStats.MinutesProvidedTotalRounded / 60);
|
||||
|
||||
dc.LeftValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedPerWeek / 60);
|
||||
dc.RightValues[2] = String.Format("{0:0.00}", periodStats.MinutesApprovedTotal / 60);
|
||||
|
||||
dc.LeftValues[3] = String.Format("{0:0.00}", (periodStats.MinutesProvidedTotal - periodStats.ApprovedMinutesTillNow) / 60);
|
||||
dc.RightValues[3] = " "; //String.Format("{0:0.00}", (periodStats.MinutesApprovedTotal - periodStats.MinutesProvidedTotalRounded) / 60);
|
||||
if (Math.Abs((periodStats.MinutesProvidedTotal - (periodStats.ApprovedMinutesTillNow ?? 0)) / 60) > 8)
|
||||
{
|
||||
dc.LeftValueColors[3] = "#FFFF0000";
|
||||
}
|
||||
|
||||
|
||||
return dc;
|
||||
}
|
||||
|
||||
public override SupportConceptStatisticsDC CreateSupportConceptStatistics(long costBearer2SupportConceptOid, DateTime statisticsDate)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user