Files
BeWoPlaner/ReportImp/AkggMid/Service/CustomVertretungsManager.cs
Christian 1fef984037 - Ersteinrichtung LH Bad Kreuznach FUD
- Projekt Kopie LH Remscheid -> LH Remscheid Frühförderung nach DB Spiegelung
- Bugfixing Pool Abrechnung Christopherus Haus
- Änderung Ansprechpartner LH Frankfurt Oder
- Leistungsnachweis für KK Praxis Pusteblume
- Bugfixing Kloss Vertretungssuche und Frau Hildmann diverse Stundenkonten
2025-05-15 20:41:41 +02:00

75 lines
2.7 KiB
C#

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Service.DCEntityMapper;
using BeWo.Service.Plugins;
using BeWo.Service.SBD;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace AkggMid.Service
{
public class CustomVertretungsManager : VertretungsManager
{
public override List<VertretungsItemDC> CreateVertretungsListe(DateTime start, DateTime end)
{
var liste = base.CreateVertretungsListe(start, end);
return liste;
}
public override List<CompactVertreterEmployeeDC> SucheVertreter(VertreterSucheFilterDC filter)
{
var allEmps = DAOFactory.GenericDAO.GetAllActive<Employee>().ToList();
List<CompactVertreterEmployeeDC> result = new List<CompactVertreterEmployeeDC>();
var end = filter.EndDate.Date.AddDays(1).AddTicks(-1);
var absenceTimes = DAOFactory.SearchDAO.FindAbsenceTimes(filter.StartDate, end).ToList();
var vertretungen = DAOFactory.SearchDAO.FindVertretungen(filter.StartDate, end).Where(v => v.VertretenderMitarbeiterOid.HasValue).ToList();
var employeeAbsenceTimes = absenceTimes.Where(a => a.EmployeeOid.HasValue).ToList();
foreach (var emp in allEmps)
{
if (emp.Person.LastName == "Ewald")
{
int test = 0;
}
//Prüfe ob es ein Schulbegleiter ist
if (IstSchulbegleiter(emp, filter.StartDate))
{
//alle Mitarbeiter, die nicht abwesend sind oder bereits jemand anderen vertreten hinzufügen
var at = employeeAbsenceTimes.FirstOrDefault(a => a.EmployeeOid == emp.Oid);
var vertretung = vertretungen.FirstOrDefault(v => v.VertretenderMitarbeiterOid == emp.Oid);
if (at == null && vertretung == null)
{
var vitem = MapperFactory.CompactVertreterEmployeeDC_VertreterEmployee.MapToNewDC(emp);
result.Add(vitem);
}
}
}
return result;
}
private bool IstSchulbegleiter(Employee emp, DateTime datum)
{
var c = emp.GetValidContractForDate(datum);
if (c != null && c.EmploymentType != null && (c.EmploymentType.Name == "Schulassistenz" || c.EmploymentType.Name.StartsWith("Springer")))
{
return true;
}
return false;
}
}
}