diff --git a/ReportImp/SuchtkrankenhilfeOstfriesland/Validation/CustomServiceRecordValidator.cs b/ReportImp/SuchtkrankenhilfeOstfriesland/Validation/CustomServiceRecordValidator.cs index 5087d5268..bcd2982a2 100644 --- a/ReportImp/SuchtkrankenhilfeOstfriesland/Validation/CustomServiceRecordValidator.cs +++ b/ReportImp/SuchtkrankenhilfeOstfriesland/Validation/CustomServiceRecordValidator.cs @@ -194,12 +194,13 @@ namespace KundeXyz.Validation bool overlapsCustomer = false; if (cb2ScOid.HasValue) { + allCustomerRecords = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(cb2ScOid.Value, null); // 1. Customer ServiceRecordOverlapping try { - allCustomerRecords = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(cb2ScOid.Value, null); + //allCustomerRecords = DAOFactory.SearchDAO.FindServiceRecordsDetailsForLastDays(cb2ScOid.Value, null); if (newServiceRecord.ServiceRecordOid.HasValue) { @@ -397,6 +398,32 @@ namespace KundeXyz.Validation }); } // HIER ENDE ÄNDERUNG AUF 1 STUNDE + + // HIER MELDUNG NACH 3 FEHLKONTAKTEN IN FOLGE ODER 5 IN 90 TAGEN + if (newServiceRecord.ServiceDescription.Name.ToLower().Contains("fehlkontakt")) + { + var termineDerLetzten90Tage = allCustomerRecords.Where(sr => sr.Start.Value < newServiceRecord.Start.Value && + sr.Start.Value.AddDays(90) > newServiceRecord.Start.Value) + .OrderByDescending(sr => sr.Start.Value).ToList(); + var fehlkontakteDerLetzten90Tage = termineDerLetzten90Tage.Where(sr => sr.ServiceDescription.Name.ToLower().Contains("fehlkontakt")).ToList(); + + if (termineDerLetzten90Tage != null && fehlkontakteDerLetzten90Tage != null) + { + if (fehlkontakteDerLetzten90Tage.Count >= 4 || termineDerLetzten90Tage.Count >= 2 && + termineDerLetzten90Tage[0].ServiceDescription.Name.ToLower().Contains("fehlkontakt") && + termineDerLetzten90Tage[1].ServiceDescription.Name.ToLower().Contains("fehlkontakt")) + { + String message = String.Format("Bitte den Kostenträger wegen der Vorgaben zu Fehlkontakten kontaktieren."); + result.Add(new ServiceRecordValidationResultDC + { + ResultType = ServiceRecordValidationResult.Custom, + Message = message, + Allow = true + }); + } + } + } + // HIER ENDE MELDUNG NACH 3 FEHLKONTAKTEN IN FOLGE ODER 5 IN 90 TAGEN } #region Standard long? userOid = SecurityUtils.GetLoggedInUser().Oid; diff --git a/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs b/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs index 9e8173945..c9bb2a242 100644 --- a/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs +++ b/ReportImp/VkmHamm/CustomerMitarbeiterstundenkontoBerechnung.cs @@ -441,7 +441,7 @@ namespace VkmHamm } private bool IsUeberstundenFrei(ServiceRecord item) { - if (!item.CustomerOid.HasValue && item.Notice.Trim().ToLower() == "ü-frei") + if (item != null && !item.CustomerOid.HasValue && item.Notice != null && item.Notice.Trim().ToLower() == "ü-frei") return true; return false;