296 lines
19 KiB
C#
296 lines
19 KiB
C#
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.Plugins;
|
|
using BS.Shared.Core;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LebenshilfeStadeMID.Service
|
|
{
|
|
public class CustomSaveInterceptor : SaveInterceptor
|
|
{
|
|
public override void BeforeSaveServiceRecord(ServiceRecord sr)
|
|
{
|
|
// Wenn "Schulbegleitender Dienst" dokumentiert wird muss EIN MAL PRO TAG eine Verfügungszeit pauschal eingetragen werden.
|
|
if (LeistungQualifiziertFuerVerfuegungszeit(sr.ServiceDescription.Name.ToLower()) && sr.Start.HasValue && sr.SupportConcept != null)
|
|
{
|
|
// Alle Einträge des Tages holen, für den dokumentiert wird
|
|
var span = new DateTimeSpan() { StartDate = new DateTime(sr.Start.Value.Year, sr.Start.Value.Month, sr.Start.Value.Day), EndDate = sr.Start.Value.Date.AddDays(1) };
|
|
var eintraegeAmTag = DAOFactory.SearchDAO.FindCustomerServiceRecords(sr.SupportConcept.Customer.Oid.Value, span, null, BS.Shared.ServiceRecordTypeId.DefaultActivity, true);
|
|
|
|
// Wenn es noch keinen Eintrag für den Klienten gibt muss die halbe Stunden Verfügungszeit gespeichert werden
|
|
if (eintraegeAmTag != null && eintraegeAmTag.Count == 0)
|
|
{
|
|
ErstelleVerfuegungszeit(sr);
|
|
}
|
|
// Wenn es schon welche gibt prüfen, ob da Verfügungszeit bei ist
|
|
else if (eintraegeAmTag != null && eintraegeAmTag.Count > 0)
|
|
{
|
|
// Gibt es keinen, neuen erstellen
|
|
if (eintraegeAmTag.Any(e => e.ServiceDescription.Name.ToLower().Contains("verfügungszeit")))
|
|
{
|
|
// nix
|
|
}
|
|
else
|
|
ErstelleVerfuegungszeit(sr);
|
|
|
|
}
|
|
}
|
|
}
|
|
private bool LeistungQualifiziertFuerVerfuegungszeit(string leistung)
|
|
{
|
|
if (leistung.Contains("qualifizierte schulassistenz (jas)") ||
|
|
leistung.Contains("einfache schulassistenz (jas)") ||
|
|
leistung.Contains("schulassistenz einfach jas") ||
|
|
leistung.Contains("nachqualifizierte schulbegleitung (jas)") ||
|
|
leistung.Contains("kind krank") ||
|
|
leistung.Contains("75%-fachliche schulassistenz jas") ||
|
|
leistung.Contains("qualifizierte schulbegleitung (egh)") ||
|
|
leistung.Contains("schulbegleitung leistungsgr. 1i(jas)") ||
|
|
leistung.Contains("kind krank sb leistungsgr.1i(jas)") ||
|
|
leistung.Contains("schulassistenz leistungsgr.1ii") ||
|
|
leistung.Contains("kind krank leistungsgr.1ii(jas)") ||
|
|
leistung.Contains("nachqualifizierte sb leistungsgr.1iii(jas)") ||
|
|
leistung.Contains("kind krank nachqualifiziert leistungsgr. 1iii(jas)") ||
|
|
leistung.Contains("fachliche sb leistungsgr. 2(jas)") ||
|
|
leistung.Contains("fachliche sb leistungsgr. 3 (jas)") ||
|
|
leistung.Contains("kind krank fachlich leistungsgr. 2(jas)") ||
|
|
leistung.Contains("kind krank lg 3 (jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1i(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1ii(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung nachqualifiziert leistungsgr.1iii (jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung fachlich leistungsgr.2 (jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung lg 3 (jas)"))
|
|
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
private void ErstelleVerfuegungszeit(ServiceRecord serviceRecord)
|
|
{
|
|
ServiceRecord verfuegungszeit = new ServiceRecord()
|
|
{
|
|
Betrag = null,
|
|
CostBearer2SupportConcept = serviceRecord.CostBearer2SupportConcept,
|
|
CostBearer2SupportConceptOid = serviceRecord.CostBearer2SupportConceptOid,
|
|
Customer = serviceRecord.SupportConcept.Customer,
|
|
CustomerOid = serviceRecord.SupportConcept.Customer.Oid,
|
|
DistanceInMeter = null,
|
|
Employee = serviceRecord.Employee,
|
|
EmployeeOid = serviceRecord.Oid,
|
|
Group = null,
|
|
GroupEmployeeCount = null,
|
|
GroupOid = null,
|
|
GroupPersonCount = null,
|
|
GroupRoundedDuration = null,
|
|
InsTs = DateTime.Now,
|
|
InsUser = "System",
|
|
IP = serviceRecord.IP,
|
|
IsActive = BS.Shared.ActivationTypeId.Active,
|
|
IsCreatedInMobileClient = false,
|
|
ServiceRecordType = BS.Shared.ServiceRecordTypeId.DefaultActivity,
|
|
SupportConcept = serviceRecord.SupportConcept,
|
|
RoundedDuration = 30,
|
|
//ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name == "Verfügungszeit"),
|
|
//Start = serviceRecord.Start.Value.AddMinutes((int)serviceRecord.RoundedDuration),
|
|
//End = serviceRecord.Start.Value.AddMinutes((int)serviceRecord.RoundedDuration + 30),
|
|
Start = serviceRecord.Start.Value.Date.AddSeconds(1),
|
|
End = serviceRecord.Start.Value.Date.AddMinutes(30).AddSeconds(1),
|
|
DurationInStunden = BS.Shared.ZeiterfassungsDauer.Minuten,
|
|
};
|
|
|
|
var leistung = serviceRecord.ServiceDescription.Name.ToLower();
|
|
|
|
// verfügungszeit nachqualifiziert (jas)
|
|
if (leistung.Contains("nachqualifizierte schulbegleitung (jas)") ||
|
|
leistung.Contains("kind krank nachqualifiziert (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit nachqualifiziert (jas)"));
|
|
}
|
|
// verfügungszeit einfache schulassistenz(jas)
|
|
else if (leistung.Contains("einfache schulassistenz (jas)") ||
|
|
leistung.Contains("kind krank einfache schulassistenz(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit einfache schulassistenz(jas)"));
|
|
}
|
|
// verfügungszeit einfach jas
|
|
else if (leistung.Contains("schulassistenz einfach jas") ||
|
|
leistung.Contains("kind krank einfache schulassistenz(jas)") ||
|
|
leistung.Contains("kind krank einfach jas"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit einfach jas"));
|
|
}
|
|
// verfügungszeit fachlich(jas)
|
|
else if (leistung.Contains("qualifizierte schulassistenz (jas)") ||
|
|
leistung.Contains("kind krank qualifiziert (jas)") ||
|
|
leistung.Contains("kind krank (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit fachlich (jas)"));
|
|
}
|
|
// +75%verfügungszeit fachlich jas
|
|
else if (leistung.Contains("75%-fachliche schulassistenz jas") ||
|
|
leistung.Contains("75%-kind krank qualifiziert jas"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("75%-verfügungszeit fachlich jas"));
|
|
}
|
|
// verfügungszeit sb leistungsgr.1i(jas)
|
|
else if (leistung.Contains("schulbegleitung leistungsgr. 1i(jas)") ||
|
|
leistung.Contains("kind krank sb leistungsgr.1i(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1i(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit sb leistungsgr.1i(jas)"));
|
|
}
|
|
// verfügungszeit sb leistungsgr.1ii(jas)
|
|
else if (leistung.Contains("schulassistenz leistungsgr.1ii") ||
|
|
leistung.Contains("kind krank leistungsgr. 1ii") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1ii(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit leistungsgr. 1ii"));
|
|
}
|
|
// verfügungszeit nachqualifiziert leistungsgr.1iii(jas)
|
|
else if (leistung.Contains("nachqualifizierte sb leistungsgr.1iii(jas)") ||
|
|
leistung.Contains("kind krank nachqualifiziert leistungsgr. 1iii(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung nachqualifiziert leistungsgr.1iii (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit nachqualifiziert leistungsgr.1iii(jas)"));
|
|
}
|
|
// verfügungszeit fachlich leistungsgr. 2 (jas)
|
|
else if (leistung.Contains("fachliche sb leistungsgr. 2(jas)") ||
|
|
leistung.Contains("kind krank fachlich leistungsgr. 2(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung fachlich leistungsgr.2 (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit fachlich leistungsgr. 2 (jas)"));
|
|
}
|
|
// verfügungszeit lg 3 (jas)
|
|
else if (leistung.Contains("fachliche sb leistungsgr. 3 (jas)") ||
|
|
leistung.Contains("kind krank lg 3 (jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung lg 3 (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit lg 3 (jas)"));
|
|
}
|
|
// vorbereitungszeit fachlich egh
|
|
else if (leistung.Contains("qualifizierte schulbegleitung (egh)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("vorbereitungszeit fachlich egh"));
|
|
}
|
|
|
|
if (verfuegungszeit.ServiceDescription != null)
|
|
DAOFactory.GenericDAO.Insert(verfuegungszeit);
|
|
}
|
|
|
|
public static ServiceRecord ErstelleVerfuegungszeitOhneInsert(ServiceRecord serviceRecord)
|
|
{
|
|
ServiceRecord verfuegungszeit = new ServiceRecord()
|
|
{
|
|
Betrag = null,
|
|
CostBearer2SupportConcept = serviceRecord.CostBearer2SupportConcept,
|
|
CostBearer2SupportConceptOid = serviceRecord.CostBearer2SupportConceptOid,
|
|
Customer = serviceRecord.SupportConcept.Customer,
|
|
CustomerOid = serviceRecord.SupportConcept.Customer.Oid,
|
|
DistanceInMeter = null,
|
|
Employee = serviceRecord.Employee,
|
|
EmployeeOid = serviceRecord.Oid,
|
|
Group = null,
|
|
GroupEmployeeCount = null,
|
|
GroupOid = null,
|
|
GroupPersonCount = null,
|
|
GroupRoundedDuration = null,
|
|
InsTs = DateTime.Now,
|
|
InsUser = "System",
|
|
IP = serviceRecord.IP,
|
|
IsActive = BS.Shared.ActivationTypeId.Active,
|
|
IsCreatedInMobileClient = false,
|
|
ServiceRecordType = BS.Shared.ServiceRecordTypeId.DefaultActivity,
|
|
SupportConcept = serviceRecord.SupportConcept,
|
|
RoundedDuration = 30,
|
|
//Start = serviceRecord.Start.Value.AddMinutes((int)serviceRecord.RoundedDuration),
|
|
//End = serviceRecord.Start.Value.AddMinutes((int)serviceRecord.RoundedDuration + 30),
|
|
Start = serviceRecord.Start.Value.Date.AddSeconds(1),
|
|
End = serviceRecord.Start.Value.Date.AddMinutes(30).AddSeconds(1),
|
|
DurationInStunden = BS.Shared.ZeiterfassungsDauer.Minuten,
|
|
};
|
|
|
|
var leistung = serviceRecord.ServiceDescription.Name.ToLower();
|
|
|
|
// verfügungszeit nachqualifiziert (jas)
|
|
if (leistung.Contains("nachqualifizierte schulbegleitung (jas)") ||
|
|
leistung.Contains("kind krank nachqualifiziert (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit nachqualifiziert (jas)"));
|
|
}
|
|
// verfügungszeit einfache schulassistenz(jas)
|
|
else if (leistung.Contains("einfache schulassistenz (jas)") ||
|
|
leistung.Contains("kind krank einfache schulassistenz(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit einfache schulassistenz(jas)"));
|
|
}
|
|
// verfügungszeit einfach jas
|
|
else if (leistung.Contains("schulassistenz einfach jas") ||
|
|
leistung.Contains("kind krank einfache schulassistenz(jas)") ||
|
|
leistung.Contains("kind krank einfach jas"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit einfach jas"));
|
|
}
|
|
// verfügungszeit fachlich(jas)
|
|
else if (leistung.Contains("qualifizierte schulassistenz (jas)") ||
|
|
leistung.Contains("kind krank qualifiziert (jas)") ||
|
|
leistung.Contains("kind krank (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit fachlich (jas)"));
|
|
}
|
|
// +75%verfügungszeit fachlich jas
|
|
else if (leistung.Contains("75%-fachliche schulassistenz jas") ||
|
|
leistung.Contains("75%-kind krank qualifiziert jas"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("75%-verfügungszeit fachlich jas"));
|
|
}
|
|
// verfügungszeit sb leistungsgr.1i(jas)
|
|
else if (leistung.Contains("schulbegleitung leistungsgr. 1i(jas)") ||
|
|
leistung.Contains("kind krank sb leistungsgr.1i(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1i(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit sb leistungsgr.1i(jas)"));
|
|
}
|
|
// verfügungszeit sb leistungsgr.1ii(jas)
|
|
else if (leistung.Contains("schulbegleitung leistungsgr. 1ii(jas)") ||
|
|
leistung.Contains("kind krank leistungsgr.1ii(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung sb leistungsgr.1ii(jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit sb leistungsgr.1ii(jas)"));
|
|
}
|
|
// verfügungszeit nachqualifiziert leistungsgr.1iii(jas)
|
|
else if (leistung.Contains("nachqualifizierte sb leistungsgr.1iii(jas)") ||
|
|
leistung.Contains("kind krank nachqualifiziert leistungsgr. 1iii(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung nachqualifiziert leistungsgr.1iii (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit nachqualifiziert leistungsgr.1iii(jas)"));
|
|
}
|
|
// verfügungszeit fachlich leistungsgr. 2 (jas)
|
|
else if (leistung.Contains("fachliche sb leistungsgr. 2(jas)") ||
|
|
leistung.Contains("kind krank fachlich leistungsgr. 2(jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung fachlich leistungsgr.2 (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit fachlich leistungsgr. 2 (jas)"));
|
|
}
|
|
// verfügungszeit lg 3 (jas)
|
|
else if (leistung.Contains("fachliche sb leistungsgr. 3 (jas)") ||
|
|
leistung.Contains("kind krank lg 3 (jas)") ||
|
|
leistung.Contains("bewilligte zusatzleistung lg 3 (jas)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("verfügungszeit lg 3 (jas)"));
|
|
}
|
|
// vorbereitungszeit fachlich egh
|
|
else if (leistung.Contains("qualifizierte schulbegleitung (egh)"))
|
|
{
|
|
verfuegungszeit.ServiceDescription = DAOFactory.SearchDAO.FindServiceDescriptionForCategory(serviceRecord.ServiceDescription.ServiceCategory.Oid.Value).FirstOrDefault(sr => sr.Name.ToLower().Contains("vorbereitungszeit fachlich egh"));
|
|
}
|
|
|
|
return verfuegungszeit;
|
|
}
|
|
}
|
|
}
|