Files
BeWoPlaner/ReportImp/SHKServiceSBD/Service/CustomOperationService.cs

101 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using BeWo.Data;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using BS.Shared.Extensions;
namespace DomizielAnsbach.Service
{
public class CustomOperationService : OperationService
{
private ServiceDescription leistungSchulbegleitung;
private ServiceDescription leistungWegezeit;
private ServiceDescription leistungSonderzeit;
private ServiceDescription leistungBusbegleitung;
protected override bool CreateServiceRecordsIfAnyExistInDateRange { get { return true; } }
public override ServiceRecord CreateServiceRecord(ArbeitszeitEintrag ae, DateTime datum, CostBearer2SupportConcept c2s, ServiceDescription defaultSd)
{
var leistung = GetLeistungSonderzeit();
if (!String.IsNullOrEmpty(ae.Notice))
{
//if (ae.Notice.ToLower().Contains("bus"))
//{
// leistung = GetLeistungBusbegleitung();
//}
//else
if (ae.Notice.StartsWith("Un")) // Unterricht, es gibt leider so viele Tippfehler in der Notice z.B. Unerricht, Unttericht etc. dass ich denke ein Prüfen auf "Un" genügt
{
leistung = GetDefaultServiceDescription();
}
//else if (ae.Notice.Contains("Befö"))
//{
// leistung = GetLeistungWegezeit(); // Beförderung mit allen fantasievollen Schreibweisen.
//}
}
var sr = base.CreateServiceRecord(ae, datum, c2s, leistung);
return sr;
}
public override Employee GetHauptbetreuung(Customer customer, DateTime date)
{
return customer.Employee2CustomerList.FirstOrDefault(e2c => e2c.IsActive == ActivationTypeId.Active &&
(!e2c.StartDate.HasValue || e2c.StartDate.Value.Date <= date) && (!e2c.EndDate.HasValue || e2c.EndDate.Value.Date >= date) &&
e2c.ValueList.Any(b => b.Entry.Type.Equals(ValueListEntryType.StaffRoleType) &&
b.Entry.Value.Contains("Hauptbetreuung")))?.Employee;
}
public override ServiceDescription GetDefaultServiceDescription(CostBearer2SupportConcept c2s)
{
return GetDefaultServiceDescription();
}
public override ServiceDescription GetDefaultServiceDescription()
{
if (leistungSchulbegleitung == null)
{
leistungSchulbegleitung = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(13);
}
return leistungSchulbegleitung;
}
private ServiceDescription GetLeistungWegezeit()
{
if (leistungWegezeit == null)
{
leistungWegezeit = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(14);
}
return leistungWegezeit;
}
private ServiceDescription GetLeistungSonderzeit()
{
if (leistungSonderzeit == null)
{
leistungSonderzeit = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(15);
}
return leistungSonderzeit;
}
private ServiceDescription GetLeistungBusbegleitung()
{
if (leistungBusbegleitung == null)
{
leistungBusbegleitung = DAOFactory.GenericDAO.LoadByID<ServiceDescription>(17);
}
return leistungBusbegleitung;
}
}
}