using System; using System.Collections.Generic; using BeWo.Service.Plugins; using BS.Shared; using BS.Shared.DataContracts; namespace TemplateNeuKunde.Statistics { //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); // } // } }