diff --git a/BeWo/Core/DocumentWatcher.cs b/BeWo/Core/DocumentWatcher.cs index 24f94289d..2a67f3872 100644 --- a/BeWo/Core/DocumentWatcher.cs +++ b/BeWo/Core/DocumentWatcher.cs @@ -189,7 +189,7 @@ namespace BeWo.Core { try { - string file = "Wollen sie das alte Dokument Behalten ?"; + string file = "Möchten Sie das alte Dokument behalten?"; int i = 3; var dialog = new UploadDialog(file, i); diff --git a/BeWo/UploadDialog.xaml.cs b/BeWo/UploadDialog.xaml.cs index a68d3546a..f8c820edc 100644 --- a/BeWo/UploadDialog.xaml.cs +++ b/BeWo/UploadDialog.xaml.cs @@ -25,7 +25,7 @@ namespace BeWo public string Question { get { return _Question; } - set { _Question = string.Format("Möchten Sie die bearbeitete Datei im Pfad \"{0}\" Hochladen?", value); } + set { _Question = string.Format("Möchten Sie die bearbeitete Datei im Pfad \"{0}\" hochladen?", value); } } public int schalter; public bool erneutversuchen; @@ -47,8 +47,8 @@ namespace BeWo } if (schalter == 2) { - _Question = string.Format("Bitte schließen sie zuerst das Bearbeitete Dokument."); - Hochladebtn.Content = "Erneut Versuchen"; + _Question = string.Format("Bitte schließen sie zuerst das bearbeitete Dokument."); + Hochladebtn.Content = "Erneut versuchen"; erneutversuchen = true; pfad = fileName; diff --git a/Model/Changes_13_02_2017.txt b/Model/Changes_13_02_2017.txt index 841e7a4a3..76e2de980 100644 --- a/Model/Changes_13_02_2017.txt +++ b/Model/Changes_13_02_2017.txt @@ -1,13 +1,13 @@ -ALTER TABLE `1234567890`.`customer` +ALTER TABLE `customer` ADD COLUMN `NationalitaetValueListEntryOid` BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `IsMigrant`; -ALTER TABLE `1234567890`.`person` +ALTER TABLE `person` ADD COLUMN `NationalitaetValueListEntryOid` BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `IsMigrant`; -ALTER TABLE `1234567890`.`customer` +ALTER TABLE `customer` ADD COLUMN `AufenthaltsStatusValueListEntryOid` BIGINT(19) NULL DEFAULT NULL COMMENT '' AFTER `NationalitaetValueListEntryOid`; diff --git a/Service/Invoicing/SettlementInvoiceCreation.cs b/Service/Invoicing/SettlementInvoiceCreation.cs index 129faec89..1a52acbcc 100644 --- a/Service/Invoicing/SettlementInvoiceCreation.cs +++ b/Service/Invoicing/SettlementInvoiceCreation.cs @@ -1127,13 +1127,17 @@ namespace BeWo.Service.Invoicing public virtual decimal GetTotalMonths(DateTime start, DateTime end) { - int restTageStart = 0; int restTageEnd = 0; DateTime startDt = start; DateTime endDt = end; + if (start > end) + { + return 0; + } + if (startDt.Day > 1) { var endMonat = new DateTime(startDt.Year, startDt.Month, 1).AddMonths(1).AddDays(-1); @@ -1145,7 +1149,7 @@ namespace BeWo.Service.Invoicing restTageStart = endMonat.Subtract(startDt).Days + 1; startDt = endMonat.AddDays(1); } - if (endDt.AddDays(1).Day != 1) + if (startDt <= endDt && endDt.AddDays(1).Day != 1) { var startMonat = new DateTime(endDt.Year, endDt.Month, 1); @@ -1162,8 +1166,7 @@ namespace BeWo.Service.Invoicing } decimal monthsTotal = fullMonths; - - + if (restTageStart != 0) { monthsTotal += restTageStart / (decimal)DateTime.DaysInMonth(start.Date.Year, start.Date.Month); diff --git a/Service/Plugins/InvoiceNumberGenerator.cs b/Service/Plugins/InvoiceNumberGenerator.cs index 17e82faa7..fdd81a6a1 100644 --- a/Service/Plugins/InvoiceNumberGenerator.cs +++ b/Service/Plugins/InvoiceNumberGenerator.cs @@ -60,16 +60,16 @@ namespace BeWo.Service.Plugins } } } - - public virtual InvoiceNumberDC LoadInvoiceNumber() - { - var inr = DAOFactory.GenericDAO.LoadByID(1); - if (inr != null) - return MapperFactory.InvoiceNumberDC_InvoiceNumber.MapToNewDC(DAOFactory.GenericDAO.LoadByID(1)); - return null; - } - public virtual InvoiceNumberDC UpdateInvoiceNumber(InvoiceNumberDC dc) + public virtual InvoiceNumberDC LoadInvoiceNumber() + { + var inr = DAOFactory.GenericDAO.LoadByID(1); + if (inr != null) + return MapperFactory.InvoiceNumberDC_InvoiceNumber.MapToNewDC(inr); + return null; + } + + public virtual InvoiceNumberDC UpdateInvoiceNumber(InvoiceNumberDC dc) { var old = DAOFactory.GenericDAO.LoadByID(1); MapperFactory.InvoiceNumberDC_InvoiceNumber.MergeWithEntity(dc, old); diff --git a/Service/Plugins/ServiceRecordStatisticFactory.cs b/Service/Plugins/ServiceRecordStatisticFactory.cs index 2e8231506..8dacbc0db 100644 --- a/Service/Plugins/ServiceRecordStatisticFactory.cs +++ b/Service/Plugins/ServiceRecordStatisticFactory.cs @@ -11,107 +11,107 @@ using BS.Shared.Services; namespace BeWo.Service.Plugins { - public class ServiceRecordStatisticFactory : AbstractIDSpecificDefaultClass - { - public virtual ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate) - { - return null; - //if (costBearer2SupportConceptOid == 1) - //{ - // var dc = new ServiceRecordStatisticsInfoDC(); - // dc.Header = new string[5]; - // dc.Header[0] = "Bewilligungszeitraum:"; - // dc.Header[1] = "Test1:"; - // dc.Header[2] = "Test2:"; - // dc.Header[3] = "Test3:"; - // dc.Header[4] = "Test4:"; - // dc.ForegroundColor = new string[5]; - // dc.ForegroundColor[0] = "#FFFF00"; - // dc.ForegroundColor[1] = "#FF0000"; - // dc.ForegroundColor[2] = "#FF00FF"; - // dc.ForegroundColor[3] = "#00FF00"; - // dc.ForegroundColor[4] = "#0000FF"; + public class ServiceRecordStatisticFactory : AbstractIDSpecificDefaultClass + { + public virtual ServiceRecordStatisticsInfoDC GetServiceRecordStatisticInfo(long costBearer2SupportConceptOid, DateTime statisticsDate) + { + return null; + //if (costBearer2SupportConceptOid == 1) + //{ + // var dc = new ServiceRecordStatisticsInfoDC(); + // dc.Header = new string[5]; + // dc.Header[0] = "Bewilligungszeitraum:"; + // dc.Header[1] = "Test1:"; + // dc.Header[2] = "Test2:"; + // dc.Header[3] = "Test3:"; + // dc.Header[4] = "Test4:"; + // dc.ForegroundColor = new string[5]; + // dc.ForegroundColor[0] = "#FFFF00"; + // dc.ForegroundColor[1] = "#FF0000"; + // dc.ForegroundColor[2] = "#FF00FF"; + // dc.ForegroundColor[3] = "#00FF00"; + // dc.ForegroundColor[4] = "#0000FF"; - // dc.PeriodStatisticInfos = new List(); + // dc.PeriodStatisticInfos = new List(); - // var pdc = new ServiceRecordPeriodStatisticsInfoDC(); - // dc.PeriodStatisticInfos.Add(pdc); - // pdc.LeftValues = new string[5]; - // pdc.LeftValues[0] = "Überschrift blablabla"; - // pdc.LeftValues[1] = "456"; - // pdc.LeftValues[2] = "789"; - // pdc.LeftValues[3] = "093"; - // pdc.LeftValues[4] = "56352"; + // var pdc = new ServiceRecordPeriodStatisticsInfoDC(); + // dc.PeriodStatisticInfos.Add(pdc); + // pdc.LeftValues = new string[5]; + // pdc.LeftValues[0] = "Überschrift blablabla"; + // pdc.LeftValues[1] = "456"; + // pdc.LeftValues[2] = "789"; + // pdc.LeftValues[3] = "093"; + // pdc.LeftValues[4] = "56352"; - // pdc.RightValues = new string[5]; - // pdc.RightValues[0] = ""; - // pdc.RightValues[1] = "45,36"; - // pdc.RightValues[2] = "789,00"; - // pdc.RightValues[3] = "093"; - // pdc.RightValues[4] = "56352"; + // pdc.RightValues = new string[5]; + // pdc.RightValues[0] = ""; + // pdc.RightValues[1] = "45,36"; + // pdc.RightValues[2] = "789,00"; + // pdc.RightValues[3] = "093"; + // pdc.RightValues[4] = "56352"; - // pdc.LeftValueColors = new string[5]; - // pdc.LeftValueColors[0] = "#888800"; - // pdc.LeftValueColors[1] = "#880000"; - // pdc.LeftValueColors[2] = "#880088"; - // pdc.LeftValueColors[3] = "#008800"; - // pdc.LeftValueColors[4] = "#000088"; + // pdc.LeftValueColors = new string[5]; + // pdc.LeftValueColors[0] = "#888800"; + // pdc.LeftValueColors[1] = "#880000"; + // pdc.LeftValueColors[2] = "#880088"; + // pdc.LeftValueColors[3] = "#008800"; + // pdc.LeftValueColors[4] = "#000088"; - // pdc.RightValueColors = new string[5]; - // pdc.RightValueColors[0] = "#888800"; - // pdc.RightValueColors[1] = "#880000"; - // pdc.RightValueColors[2] = "#880088"; - // pdc.RightValueColors[3] = "#008800"; - // pdc.RightValueColors[4] = "#000088"; + // pdc.RightValueColors = new string[5]; + // pdc.RightValueColors[0] = "#888800"; + // pdc.RightValueColors[1] = "#880000"; + // pdc.RightValueColors[2] = "#880088"; + // pdc.RightValueColors[3] = "#008800"; + // pdc.RightValueColors[4] = "#000088"; - // pdc = new ServiceRecordPeriodStatisticsInfoDC(); - // dc.PeriodStatisticInfos.Add(pdc); - // pdc.LeftValues = new string[5]; - // pdc.LeftValues[0] = "xxxx"; - // pdc.LeftValues[1] = "456"; - // pdc.LeftValues[2] = "789"; - // pdc.LeftValues[3] = "093"; - // pdc.LeftValues[4] = "56352"; + // pdc = new ServiceRecordPeriodStatisticsInfoDC(); + // dc.PeriodStatisticInfos.Add(pdc); + // pdc.LeftValues = new string[5]; + // pdc.LeftValues[0] = "xxxx"; + // pdc.LeftValues[1] = "456"; + // pdc.LeftValues[2] = "789"; + // pdc.LeftValues[3] = "093"; + // pdc.LeftValues[4] = "56352"; - // pdc.RightValues = new string[5]; - // pdc.RightValues[0] = "yyyyy"; - // pdc.RightValues[1] = "45,36"; - // pdc.RightValues[2] = "789,00"; - // pdc.RightValues[3] = "093"; - // pdc.RightValues[4] = "56352"; + // pdc.RightValues = new string[5]; + // pdc.RightValues[0] = "yyyyy"; + // pdc.RightValues[1] = "45,36"; + // pdc.RightValues[2] = "789,00"; + // pdc.RightValues[3] = "093"; + // pdc.RightValues[4] = "56352"; - // pdc.LeftValueColors = new string[5]; - // pdc.LeftValueColors[0] = "#088800"; - // pdc.LeftValueColors[1] = "#080000"; - // pdc.LeftValueColors[2] = "#080088"; - // pdc.LeftValueColors[3] = "#808800"; - // pdc.LeftValueColors[4] = "#800088"; + // pdc.LeftValueColors = new string[5]; + // pdc.LeftValueColors[0] = "#088800"; + // pdc.LeftValueColors[1] = "#080000"; + // pdc.LeftValueColors[2] = "#080088"; + // pdc.LeftValueColors[3] = "#808800"; + // pdc.LeftValueColors[4] = "#800088"; - // pdc.RightValueColors = new string[5]; - // pdc.RightValueColors[0] = "#488800"; - // pdc.RightValueColors[1] = "#480000"; - // pdc.RightValueColors[2] = "#480088"; - // pdc.RightValueColors[3] = "#408800"; - // pdc.RightValueColors[4] = "#400088"; + // pdc.RightValueColors = new string[5]; + // pdc.RightValueColors[0] = "#488800"; + // pdc.RightValueColors[1] = "#480000"; + // pdc.RightValueColors[2] = "#480088"; + // pdc.RightValueColors[3] = "#408800"; + // pdc.RightValueColors[4] = "#400088"; - // return dc; - //} - } + // return dc; + //} + } - public virtual SupportConceptStatisticsDC CreateSupportConceptStatistics(long costBearer2SupportConceptOid, DateTime statisticsDate) - { - return CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate); - } + public virtual SupportConceptStatisticsDC CreateSupportConceptStatistics(long costBearer2SupportConceptOid, DateTime statisticsDate) + { + return CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate); + } - public virtual SupportConceptStatisticsDC CreateSupportConceptStatisticsImpl(long costBearer2SupportConceptOid, DateTime statisticsDate) - { - return CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate, null); - } + public virtual SupportConceptStatisticsDC CreateSupportConceptStatisticsImpl(long costBearer2SupportConceptOid, DateTime statisticsDate) + { + return CreateSupportConceptStatisticsImpl(costBearer2SupportConceptOid, statisticsDate, null); + } - public virtual SupportConceptStatisticsDC CreateSupportConceptStatisticsImpl(long costBearer2SupportConceptOid, DateTime statisticsDate, long? ignoreServiceRecordOid) - { + public virtual SupportConceptStatisticsDC CreateSupportConceptStatisticsImpl(long costBearer2SupportConceptOid, DateTime statisticsDate, long? ignoreServiceRecordOid) + { - var stats = new SupportConceptStatisticsDC(); + var stats = new SupportConceptStatisticsDC(); stats.PeriodStatistics = new List(); stats.DateOfCreation = statisticsDate; @@ -119,20 +119,20 @@ namespace BeWo.Service.Plugins var relDc = CreateCb2ScDC(cb2sc); - var calc = PluginLoader.FindClass(cb2sc.CostBearer.ID) ?? Calculations.GetInstance(cb2sc.CostBearer.ID); + var calc = PluginLoader.FindClass(cb2sc.CostBearer.ID) ?? Calculations.GetInstance(cb2sc.CostBearer.ID); - stats.StatisticsStartDate = relDc.StartDate ?? DateTime.MinValue; + stats.StatisticsStartDate = relDc.StartDate ?? DateTime.MinValue; stats.StatisticsEndDate = relDc.EndDate ?? DateTime.MaxValue; - + var serviceUnit = relDc.CostBearer.CostRatePeriods.GetCostRatePeriodForDate(CostRatePeriodType.MinutesPerServiceUnit, DateTime.Now); stats.ServiceUnitName = serviceUnit.UnitName; - var minutesApprovedTotal = (calc.GetApprovedHoursTotal(relDc, true) ?? 0m)*60m; - stats.MinutesApprovedTotal = minutesApprovedTotal; + var minutesApprovedTotal = (calc.GetApprovedHoursTotal(relDc, true) ?? 0m) * 60m; + stats.MinutesApprovedTotal = minutesApprovedTotal; stats.MinutesApprovedPerWeek = (calc.GetApprovedHoursPerWeek(relDc, DateTime.Now) ?? 0m) * 60m; - stats.ApprovedMinutesTillNow = calc.GetApprovedHoursTillNow(relDc, statisticsDate) * 60m; + stats.ApprovedMinutesTillNow = calc.GetApprovedHoursTillNow(relDc, statisticsDate) * 60m; foreach (var periodDC in relDc.ApprovalPeriodList) @@ -145,14 +145,15 @@ namespace BeWo.Service.Plugins SortStatistics(stats); + var serviceRecords = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(costBearer2SupportConceptOid, null); var serviceRecordsProcessed = new Dictionary(); - if (ignoreServiceRecordOid.HasValue) - { - serviceRecordsProcessed.Add(ignoreServiceRecordOid.Value, true); - } - + if (ignoreServiceRecordOid.HasValue) + { + serviceRecordsProcessed.Add(ignoreServiceRecordOid.Value, true); + } + foreach (var sr in serviceRecords) { if (!serviceRecordsProcessed.ContainsKey(sr.Oid.Value)) @@ -179,87 +180,93 @@ namespace BeWo.Service.Plugins foreach (var ps in stats.PeriodStatistics) { - if (ps.SupportConceptApprovalPeriod.StartDate.HasValue && ps.SupportConceptApprovalPeriod.EndDate.HasValue) - { - //if (dt.InBetween(ps.SupportConceptApprovalPeriod.StartDate.Value, ps.SupportConceptApprovalPeriod.EndDate.Value, - // true)) - //{ - if (ps.SupportConceptApprovalPeriod.IsApprovedBEShifting) - { - DateTime dtPeriod = DateTime.Now.Date; - if (ps.SupportConceptApprovalPeriod.StartDate.HasValue && ps.SupportConceptApprovalPeriod.StartDate > dtPeriod) - { - dtPeriod = ps.SupportConceptApprovalPeriod.StartDate.Value; - } + if (ps.SupportConceptApprovalPeriod.StartDate.HasValue && ps.SupportConceptApprovalPeriod.EndDate.HasValue) + { + //if (dt.InBetween(ps.SupportConceptApprovalPeriod.StartDate.Value, ps.SupportConceptApprovalPeriod.EndDate.Value, + // true)) + //{ + if (ps.SupportConceptApprovalPeriod.IsApprovedBEShifting) + { + DateTime dtPeriod = DateTime.Now.Date; + if (ps.SupportConceptApprovalPeriod.StartDate.HasValue && ps.SupportConceptApprovalPeriod.StartDate > dtPeriod) + { + dtPeriod = ps.SupportConceptApprovalPeriod.StartDate.Value; + } - TimeSpan tsPeriod = ps.SupportConceptApprovalPeriod.EndDate.Value.Subtract(dtPeriod); - int daysPeriod = tsPeriod.Days + 1; - if (daysPeriod < 0) - daysPeriod = 0; + TimeSpan tsPeriod = ps.SupportConceptApprovalPeriod.EndDate.Value.Subtract(dtPeriod); + int daysPeriod = tsPeriod.Days + 1; + if (daysPeriod < 0) + daysPeriod = 0; - if (daysPeriod != 0) - { - ps.MinutesFreePerWeek = (ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded)/(daysPeriod/7m); - } - else - { - ps.MinutesFreePerWeek = (ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded); - } - } - else - { - ps.MinutesFreePerWeek = ps.MinutesApprovedPerWeek - ps.MinutesProvidedThisWeek; - } - //} - } + if (daysPeriod != 0) + { + ps.MinutesFreePerWeek = (ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded) / (daysPeriod / 7m); + } + else + { + ps.MinutesFreePerWeek = (ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded); + } + } + else + { + ps.MinutesFreePerWeek = ps.MinutesApprovedPerWeek - ps.MinutesProvidedThisWeek; + } + //} + } - decimal freeTotalPeriod = ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded; - if (ps.MinutesFreePerWeek > freeTotalPeriod) - ps.MinutesFreePerWeek = freeTotalPeriod; - if (ps.MinutesFreePerWeek < 0) - ps.MinutesFreePerWeek = 0; + decimal freeTotalPeriod = ps.MinutesApprovedTotal - ps.MinutesProvidedTotalRounded; + if (ps.MinutesFreePerWeek > freeTotalPeriod) + ps.MinutesFreePerWeek = freeTotalPeriod; + if (ps.MinutesFreePerWeek < 0) + ps.MinutesFreePerWeek = 0; } } } - decimal freeTotal = stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded; - if (stats.MinutesFreePerWeekAverage > freeTotal) - stats.MinutesFreePerWeekAverage = freeTotal; - if (stats.MinutesFreePerWeekAverage < 0) - stats.MinutesFreePerWeekAverage = 0; + decimal freeTotal = stats.MinutesApprovedTotal - stats.MinutesProvidedTotalRounded; + if (stats.MinutesFreePerWeekAverage > freeTotal) + stats.MinutesFreePerWeekAverage = freeTotal; + if (stats.MinutesFreePerWeekAverage < 0) + stats.MinutesFreePerWeekAverage = 0; - //Berechne bewilligte Stunden pro Monat und Soll - stats.MinutesApprovedPerMonth = GetApprovedMinutesPerMonth(stats); - if (relDc.StartDate.HasValue && relDc.EndDate.HasValue) - { - DateTime max = statisticsDate < relDc.EndDate.Value ? statisticsDate : relDc.EndDate.Value; + //Berechne bewilligte Stunden pro Monat und Soll + stats.MinutesApprovedPerMonth = GetApprovedMinutesPerMonth(stats); + if (relDc.StartDate.HasValue && relDc.EndDate.HasValue) + { + DateTime max = statisticsDate < relDc.EndDate.Value ? statisticsDate : relDc.EndDate.Value; - DateTime s = relDc.StartDate.Value; + DateTime s = relDc.StartDate.Value; - if (s.Day == 1) - { - int monthsUntilNow = 0; - while ((s = s.AddMonths(1)) < max) - { - monthsUntilNow++; - } + decimal monthsUntilNow = 0; - stats.SollTotalUntilThisMonth = stats.MinutesApprovedPerMonth * monthsUntilNow; - } - else - { - DateTime nextMonth = s.AddMonths(1); - nextMonth = new DateTime(nextMonth.Year, nextMonth.Month, 1); + if (s.Day == 1) + { - var monthsUntilNow = nextMonth.Subtract(s).TotalDays / DateTime.DaysInMonth(s.Year, s.Month); - while ((nextMonth = nextMonth.AddMonths(1)) < max) - { - monthsUntilNow++; - } + while ((s = s.AddMonths(1)) < max) + { + monthsUntilNow++; + } - stats.SollTotalUntilThisMonth = stats.MinutesApprovedPerMonth * (decimal)monthsUntilNow; - } - } + stats.SollTotalUntilThisMonth = stats.MinutesApprovedPerMonth * monthsUntilNow; + } + else + { + DateTime nextMonth = s.AddMonths(1); + nextMonth = new DateTime(nextMonth.Year, nextMonth.Month, 1); + + if (nextMonth <= max) + { + monthsUntilNow = (decimal)nextMonth.Subtract(s).TotalDays / DateTime.DaysInMonth(s.Year, s.Month); + } + + while ((nextMonth = nextMonth.AddMonths(1)) < max) + { + monthsUntilNow++; + } + + stats.SollTotalUntilThisMonth = stats.MinutesApprovedPerMonth * (decimal)monthsUntilNow; + } + } return stats; } @@ -407,13 +414,19 @@ namespace BeWo.Service.Plugins if (periodDC.StartDate.HasValue && periodDC.EndDate.HasValue) { - DateTime max = statisticsDate < periodDC.EndDate.Value ? statisticsDate : periodDC.EndDate.Value; + DateTime periodEnd = periodDC.EndDate.Value; + if (periodEnd < DateTime.MaxValue) + { + periodEnd = periodEnd.AddDays(1); + } + DateTime max = statisticsDate < periodEnd ? statisticsDate : periodEnd; DateTime s = periodDC.StartDate.Value; + decimal monthsUntilNow = 0; + if (s.Day == 1) { - int monthsUntilNow = 0; - while ((s = s.AddMonths(1)) < max) + while ((s = s.AddMonths(1)) <= max) { monthsUntilNow++; } @@ -425,7 +438,10 @@ namespace BeWo.Service.Plugins DateTime nextMonth = s.AddMonths(1); nextMonth = new DateTime(nextMonth.Year, nextMonth.Month, 1); - var monthsUntilNow = nextMonth.Subtract(s).TotalDays / DateTime.DaysInMonth(s.Year, s.Month); + if (nextMonth <= max) + { + monthsUntilNow = (decimal)nextMonth.Subtract(s).TotalDays / DateTime.DaysInMonth(s.Year, s.Month); + } while ((nextMonth = nextMonth.AddMonths(1)) < max) { monthsUntilNow++; @@ -439,185 +455,186 @@ namespace BeWo.Service.Plugins return periodStats; } - + + protected virtual SupportConceptCostBearerRelDC CreateCb2ScDC(CostBearer2SupportConcept cb2sc) - { - var pDataContract = new SupportConceptCostBearerRelDC(); + { + var pDataContract = new SupportConceptCostBearerRelDC(); - if (cb2sc.CostBearer.Organisation != null) - { - pDataContract.CostBearer = - MapperFactory.CompactOrganisationDC_Organisation.MapToNewDC(cb2sc.CostBearer.Organisation); - } + if (cb2sc.CostBearer.Organisation != null) + { + pDataContract.CostBearer = + MapperFactory.CompactOrganisationDC_Organisation.MapToNewDC(cb2sc.CostBearer.Organisation); + } - pDataContract.CostBearer2SupportConceptOid = cb2sc.Oid; - pDataContract.CostBearer2SupportConceptVersion = cb2sc.Version; - pDataContract.Notice = cb2sc.Notice; - pDataContract.Status = cb2sc.Status; - //pDataContract.SupportConcept = - // MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDC(pEntity.SupportConcept); + pDataContract.CostBearer2SupportConceptOid = cb2sc.Oid; + pDataContract.CostBearer2SupportConceptVersion = cb2sc.Version; + pDataContract.Notice = cb2sc.Notice; + pDataContract.Status = cb2sc.Status; + //pDataContract.SupportConcept = + // MapperFactory.CompactSupportConceptDC_SupportConcept.MapToNewDC(pEntity.SupportConcept); - pDataContract.RequestedStartDate = cb2sc.RequestedStartDate; - pDataContract.RequestedEndDate = cb2sc.RequestedEndDate; - pDataContract.ApprovedStartDate = cb2sc.ApprovedStartDate; - pDataContract.ApprovedEndDate = cb2sc.ApprovedEndDate; - pDataContract.CustomerReferenceNumber = cb2sc.CustomerReferenceNumber; + pDataContract.RequestedStartDate = cb2sc.RequestedStartDate; + pDataContract.RequestedEndDate = cb2sc.RequestedEndDate; + pDataContract.ApprovedStartDate = cb2sc.ApprovedStartDate; + pDataContract.ApprovedEndDate = cb2sc.ApprovedEndDate; + pDataContract.CustomerReferenceNumber = cb2sc.CustomerReferenceNumber; - pDataContract.MonthlyPayment = cb2sc.MonthlyPayment; + pDataContract.MonthlyPayment = cb2sc.MonthlyPayment; - //if (cb2sc.CostBearerContactPerson != null) - // pDataContract.CostBearerContactPerson = - // MapperFactory.CompactPersonDC_Person.MapToNewDC(cb2sc.CostBearerContactPerson); - pDataContract.ApprovalPeriodList = - MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDCs( - cb2sc.ApprovalPeriodList); - if (pDataContract.ApprovalPeriodList != null) - { - foreach (var item in pDataContract.ApprovalPeriodList) - { - if (!item.StartDate.HasValue) - { - item.StartDate = cb2sc.ApprovedStartDate.HasValue - ? cb2sc.ApprovedStartDate - : cb2sc.RequestedStartDate; - } - if (!item.EndDate.HasValue) - { - item.EndDate = cb2sc.ApprovedEndDate.HasValue - ? cb2sc.ApprovedEndDate - : cb2sc.RequestedEndDate; - } - } - } - return pDataContract; - } + //if (cb2sc.CostBearerContactPerson != null) + // pDataContract.CostBearerContactPerson = + // MapperFactory.CompactPersonDC_Person.MapToNewDC(cb2sc.CostBearerContactPerson); + pDataContract.ApprovalPeriodList = + MapperFactory.SupportConceptApprovalPeriodDC_SupportConceptApprovalPeriod.MapToNewDCs( + cb2sc.ApprovalPeriodList); + if (pDataContract.ApprovalPeriodList != null) + { + foreach (var item in pDataContract.ApprovalPeriodList) + { + if (!item.StartDate.HasValue) + { + item.StartDate = cb2sc.ApprovedStartDate.HasValue + ? cb2sc.ApprovedStartDate + : cb2sc.RequestedStartDate; + } + if (!item.EndDate.HasValue) + { + item.EndDate = cb2sc.ApprovedEndDate.HasValue + ? cb2sc.ApprovedEndDate + : cb2sc.RequestedEndDate; + } + } + } + return pDataContract; + } protected virtual SupportConceptPeriodStatisticsDC GetPeriodDCFromServiceRecord(List stats, ServiceRecord sr) - { + { - foreach (var p in stats) - { - DateTime start = DateTime.MinValue; - DateTime end = DateTime.MaxValue; + foreach (var p in stats) + { + DateTime start = DateTime.MinValue; + DateTime end = DateTime.MaxValue; - if (p.SupportConceptApprovalPeriod.StartDate.HasValue) - start = p.SupportConceptApprovalPeriod.StartDate.Value; - if (p.SupportConceptApprovalPeriod.EndDate.HasValue && p.SupportConceptApprovalPeriod.EndDate.Value.Date < end) - end = p.SupportConceptApprovalPeriod.EndDate.Value.Date.AddDays(1); + if (p.SupportConceptApprovalPeriod.StartDate.HasValue) + start = p.SupportConceptApprovalPeriod.StartDate.Value; + if (p.SupportConceptApprovalPeriod.EndDate.HasValue && p.SupportConceptApprovalPeriod.EndDate.Value.Date < end) + end = p.SupportConceptApprovalPeriod.EndDate.Value.Date.AddDays(1); - if (sr.Start >= start && sr.End < end) - { - if (p.SupportConceptApprovalPeriod.ServiceCategory != null && p.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid == sr.ServiceDescription.ServiceCategory.Oid) - return p; + if (sr.Start >= start && sr.End < end) + { + if (p.SupportConceptApprovalPeriod.ServiceCategory != null && p.SupportConceptApprovalPeriod.ServiceCategory.ServiceCategoryOid == sr.ServiceDescription.ServiceCategory.Oid) + return p; - } - } - foreach (var p in stats) - { - DateTime start = DateTime.MinValue; - DateTime end = DateTime.MaxValue; + } + } + foreach (var p in stats) + { + DateTime start = DateTime.MinValue; + DateTime end = DateTime.MaxValue; - if (p.SupportConceptApprovalPeriod.StartDate.HasValue) - start = p.SupportConceptApprovalPeriod.StartDate.Value; - if (p.SupportConceptApprovalPeriod.EndDate.HasValue && p.SupportConceptApprovalPeriod.EndDate.Value.Date < end) - end = p.SupportConceptApprovalPeriod.EndDate.Value.Date.AddDays(1); + if (p.SupportConceptApprovalPeriod.StartDate.HasValue) + start = p.SupportConceptApprovalPeriod.StartDate.Value; + if (p.SupportConceptApprovalPeriod.EndDate.HasValue && p.SupportConceptApprovalPeriod.EndDate.Value.Date < end) + end = p.SupportConceptApprovalPeriod.EndDate.Value.Date.AddDays(1); - if (sr.Start >= start && sr.End < end) - { - if (p.SupportConceptApprovalPeriod.ServiceCategory == null) - return p; + if (sr.Start >= start && sr.End < end) + { + if (p.SupportConceptApprovalPeriod.ServiceCategory == null) + return p; - } - } - return null; - } + } + } + return null; + } protected virtual ServiceRecordDC MapToServiceRecordDCForStatistic(ServiceRecord pEntity) - { - var pDataContract = new ServiceRecordDC(); + { + var pDataContract = new ServiceRecordDC(); - pDataContract.ServiceRecordOid = pEntity.Oid; - pDataContract.ServiceRecordVersion = pEntity.Version; - pDataContract.Start = pEntity.Start; - pDataContract.End = pEntity.End; - pDataContract.Notice = pEntity.Notice; - pDataContract.ServiceRecordType = pEntity.ServiceRecordType ?? ServiceRecordTypeId.DefaultActivity; - // ? pEntity.ServiceRecordType.Value - // : ServiceRecordTypeId.DefaultActivity; + pDataContract.ServiceRecordOid = pEntity.Oid; + pDataContract.ServiceRecordVersion = pEntity.Version; + pDataContract.Start = pEntity.Start; + pDataContract.End = pEntity.End; + pDataContract.Notice = pEntity.Notice; + pDataContract.ServiceRecordType = pEntity.ServiceRecordType ?? ServiceRecordTypeId.DefaultActivity; + // ? pEntity.ServiceRecordType.Value + // : ServiceRecordTypeId.DefaultActivity; - if (pEntity.ServiceDescription != null) - { - pDataContract.ServiceDescription = MapperFactory.ServiceDescriptionDC_ServiceDescription.MapToNewDC(pEntity.ServiceDescription); - } + if (pEntity.ServiceDescription != null) + { + pDataContract.ServiceDescription = MapperFactory.ServiceDescriptionDC_ServiceDescription.MapToNewDC(pEntity.ServiceDescription); + } - pDataContract.RoundedDuration = pEntity.RoundedDuration; - pDataContract.InsertedOn = pEntity.InsTs; - pDataContract.InsUser = pEntity.InsUser; + pDataContract.RoundedDuration = pEntity.RoundedDuration; + pDataContract.InsertedOn = pEntity.InsTs; + pDataContract.InsUser = pEntity.InsUser; - pDataContract.GroupEmployeeCount = pEntity.GroupEmployeeCount; - pDataContract.GroupPersonCount = pEntity.GroupPersonCount; - pDataContract.GroupRoundedDuration = pEntity.GroupRoundedDuration; - pDataContract.GroupOid = pEntity.GroupOid; + pDataContract.GroupEmployeeCount = pEntity.GroupEmployeeCount; + pDataContract.GroupPersonCount = pEntity.GroupPersonCount; + pDataContract.GroupRoundedDuration = pEntity.GroupRoundedDuration; + pDataContract.GroupOid = pEntity.GroupOid; - return pDataContract; - } + return pDataContract; + } - protected virtual ServiceRecordPeriodStatisticsInfoDC CreateDefaultServiceRecordPeriodStatisticsInfo(int rows) - { - var dc = new ServiceRecordPeriodStatisticsInfoDC - { - LeftValues = new string[rows], - RightValues = new string[rows], - LeftValueColors = new string[rows], - RightValueColors = new string[rows] - }; + protected virtual ServiceRecordPeriodStatisticsInfoDC CreateDefaultServiceRecordPeriodStatisticsInfo(int rows) + { + var dc = new ServiceRecordPeriodStatisticsInfoDC + { + LeftValues = new string[rows], + RightValues = new string[rows], + LeftValueColors = new string[rows], + RightValueColors = new string[rows] + }; - for (int i = 0; i < rows; i++) - { - dc.LeftValueColors[i] = "#FF2B508B"; - dc.RightValueColors[i] = "#FF2B508B"; - } + for (int i = 0; i < rows; i++) + { + dc.LeftValueColors[i] = "#FF2B508B"; + dc.RightValueColors[i] = "#FF2B508B"; + } - return dc; - } + return dc; + } - public virtual decimal GetApprovedMinutesPerMonth(SupportConceptPeriodStatisticsDC periodStats) - { - return periodStats.MinutesApprovedPerWeek * (365m / 84m); - } + public virtual decimal GetApprovedMinutesPerMonth(SupportConceptPeriodStatisticsDC periodStats) + { + return periodStats.MinutesApprovedPerWeek * (365m / 84m); + } - public virtual decimal GetApprovedMinutesPerMonth(SupportConceptStatisticsDC stats) - { - return stats.MinutesApprovedPerWeek * (365m / 84m); - } + public virtual decimal GetApprovedMinutesPerMonth(SupportConceptStatisticsDC stats) + { + return stats.MinutesApprovedPerWeek * (365m / 84m); + } - protected bool TimeSpanIsEqual(SupportConceptStatisticsDC r) - { - if (r.PeriodStatistics != null && r.PeriodStatistics.Count > 1) - { - for (int i = 0; i < r.PeriodStatistics.Count - 1; i++) - { - var p1 = r.PeriodStatistics[i]; + protected bool TimeSpanIsEqual(SupportConceptStatisticsDC r) + { + if (r.PeriodStatistics != null && r.PeriodStatistics.Count > 1) + { + for (int i = 0; i < r.PeriodStatistics.Count - 1; i++) + { + var p1 = r.PeriodStatistics[i]; - if (p1.SupportConceptApprovalPeriod.StartDate.HasValue && p1.SupportConceptApprovalPeriod.EndDate.HasValue) - { - for (int j = i + 1; j < r.PeriodStatistics.Count; j++) - { - var p2 = r.PeriodStatistics[j]; - if (p2.SupportConceptApprovalPeriod.StartDate.HasValue && p2.SupportConceptApprovalPeriod.EndDate.HasValue) - { - if ((p1.SupportConceptApprovalPeriod.StartDate.Value.Date != p2.SupportConceptApprovalPeriod.StartDate.Value.Date) || - (p1.SupportConceptApprovalPeriod.EndDate.Value.Date != p2.SupportConceptApprovalPeriod.EndDate.Value.Date)) - return false; - } - } - } - } - } - return true; - } + if (p1.SupportConceptApprovalPeriod.StartDate.HasValue && p1.SupportConceptApprovalPeriod.EndDate.HasValue) + { + for (int j = i + 1; j < r.PeriodStatistics.Count; j++) + { + var p2 = r.PeriodStatistics[j]; + if (p2.SupportConceptApprovalPeriod.StartDate.HasValue && p2.SupportConceptApprovalPeriod.EndDate.HasValue) + { + if ((p1.SupportConceptApprovalPeriod.StartDate.Value.Date != p2.SupportConceptApprovalPeriod.StartDate.Value.Date) || + (p1.SupportConceptApprovalPeriod.EndDate.Value.Date != p2.SupportConceptApprovalPeriod.EndDate.Value.Date)) + return false; + } + } + } + } + } + return true; + } - } + } } diff --git a/Service/ServiceImplementations/OperationsServiceImp.cs b/Service/ServiceImplementations/OperationsServiceImp.cs index de2bb4c03..4516f30fd 100644 --- a/Service/ServiceImplementations/OperationsServiceImp.cs +++ b/Service/ServiceImplementations/OperationsServiceImp.cs @@ -2392,7 +2392,6 @@ namespace BeWo.Service.ServiceImplementations dc.InsUser = sr.InsUser; dc.DurationInStunden = sr.DurationInStunden; - dc.SignatureOid = sr.SignatureOid; dc.GroupEmployeeCount = sr.GroupEmployeeCount; dc.GroupPersonCount = sr.GroupPersonCount;