Bugfix Vertretungsmanagment. Zeitraum des Gültigkeitsdatums der Betreuungszeiten prüfen

Bugfix Frau Hildmann Report
This commit is contained in:
Christian
2024-10-28 16:45:36 +01:00
parent 35d0cae49d
commit 80256520f9
3 changed files with 36 additions and 41 deletions

View File

@@ -3,7 +3,7 @@
<PropertyGroup> <PropertyGroup>
<NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile> <NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile>
<UseIISExpress>true</UseIISExpress> <UseIISExpress>true</UseIISExpress>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig> <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress>false</Use64BitIISExpress> <Use64BitIISExpress>false</Use64BitIISExpress>
<IISExpressSSLPort /> <IISExpressSSLPort />
<IISExpressAnonymousAuthentication /> <IISExpressAnonymousAuthentication />

View File

@@ -86,14 +86,23 @@ namespace SHKServiceSBD.Reports
{ {
var row = new VergleichRow(); var row = new VergleichRow();
row.Employee = String.Format("{0}", emp.Person.LastNameFirstName); row.Employee = String.Format("{0}", emp.Person.LastNameFirstName);
if (row.Employee.Contains("Hollmann"))
var c = GetBetreutesKind(emp, datum);
if (c != null)
{ {
row.Customer = String.Format("{0} {1}", c.Person.FirstName, c.Person.LastName); int test = 0;
}
row.BetreuungszeitKind = GetStundenplanStunden(c, datum); var clist = GetBetreuteKinder(emp, datum);
row.Customer = "";
foreach (var c in clist)
{
if (row.Customer.Length > 0)
{
row.Customer += ", ";
}
row.Customer += String.Format("{0} {1}", c.Person.FirstName, c.Person.LastName);
row.BetreuungszeitKind += GetStundenplanStunden(c, emp, datum);
} }
if (IstMartinsschule(emp, datum, teamMartinsschule)) if (IstMartinsschule(emp, datum, teamMartinsschule))
{ {
row.Customer = "Martinsschule"; row.Customer = "Martinsschule";
@@ -140,7 +149,7 @@ namespace SHKServiceSBD.Reports
return teamMartinsschule.MemberList.Any(e => e.Oid == emp.Oid); return teamMartinsschule.MemberList.Any(e => e.Oid == emp.Oid);
} }
private decimal GetStundenplanStunden(Customer c, DateTime datum) private decimal GetStundenplanStunden(Customer c, Employee e, DateTime datum)
{ {
decimal stunden = 0; decimal stunden = 0;
var az = ReportHelper.GetArbeitszeit(c, datum, datum); var az = ReportHelper.GetArbeitszeit(c, datum, datum);
@@ -149,7 +158,10 @@ namespace SHKServiceSBD.Reports
{ {
foreach (var item in az.ArbeitszeitEintraege) foreach (var item in az.ArbeitszeitEintraege)
{ {
stunden += item.BerechneStunden(); if (item.Employee == null || item.Employee.Oid == e.Oid)
{
stunden += item.BerechneStunden();
}
} }
} }
return stunden; return stunden;
@@ -170,19 +182,22 @@ namespace SHKServiceSBD.Reports
return stunden; return stunden;
} }
private Customer GetBetreutesKind(Employee emp, DateTime datum) private IList<Customer> GetBetreuteKinder(Employee emp, DateTime datum)
{ {
var customerList = new List<Customer>();
foreach (var e2c in emp.Employee2CustomerList.Where(e => e.IsActive == ActivationTypeId.Active foreach (var e2c in emp.Employee2CustomerList.Where(e => e.IsActive == ActivationTypeId.Active
&& (!e.StartDate.HasValue || e.StartDate.Value.Date <= datum) && (!e.StartDate.HasValue || e.StartDate.Value.Date <= datum)
&& (!e.EndDate.HasValue || e.EndDate.Value.Date >= datum) && (!e.EndDate.HasValue || e.EndDate.Value.Date >= datum)
&& e.ValueList.Any(v => v.Entry.Type == ValueListEntryType.StaffRoleType && v.Entry.Value.Contains("Hauptbetreu")))) && e.ValueList.Any(v => v.Entry.Type == ValueListEntryType.StaffRoleType && v.Entry.Value.StartsWith("Hauptbetreu"))))
{ {
return e2c.Customer; if (e2c.Customer.IsActive == ActivationTypeId.Active)
{
customerList.Add(e2c.Customer);
}
} }
return null; return customerList;
} }

View File

@@ -159,7 +159,7 @@ namespace BeWo.Service.SBD
{ {
var customer = customers.FirstOrDefault(first => first.Oid.HasValue && first.Oid.Equals(absenceTime.CustomerOid)) ?? DAOFactory.GenericDAO.LoadByID<Customer>(absenceTime.CustomerOid.Value); var customer = customers.FirstOrDefault(first => first.Oid.HasValue && first.Oid.Equals(absenceTime.CustomerOid)) ?? DAOFactory.GenericDAO.LoadByID<Customer>(absenceTime.CustomerOid.Value);
if (customer.Person.LastName.Contains("Platz")) if (customer.Person.LastName.Contains("Seiden"))
{ {
} }
@@ -178,7 +178,7 @@ namespace BeWo.Service.SBD
MigriereSubstitutionStatus(customer); MigriereSubstitutionStatus(customer);
var assistingEmployees = new List<Employee>(); var assistingEmployees = new List<Employee>();
customer.Arbeitszeiten.DoForEach(a => assistingEmployees.AddRangeIfElementsNotIn(a.ArbeitszeitEintraege.Where(ae => ae.Employee != null).Select(s => s.Employee))); customer.Arbeitszeiten.Where(a => IsArbeitszeitValid(a, start, end)).DoForEach(a => assistingEmployees.AddRangeIfElementsNotIn(a.ArbeitszeitEintraege.Where(ae => ae.Employee != null).Select(s => s.Employee)));
schoolAssistanceTimes.DoForEach(a => schoolAssistanceTimes.DoForEach(a =>
{ {
@@ -1533,9 +1533,9 @@ namespace BeWo.Service.SBD
{ {
if (absenceTime == null || LiegtImZeitraum(dateTime, absenceTime)) if (absenceTime == null || LiegtImZeitraum(dateTime, absenceTime))
{ {
customerAssistanceTimes.AddRange(allCustomerAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime))); customerAssistanceTimes.AddRange(allCustomerAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime, dateTime)));
schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime))); schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime, dateTime)));
} }
dateTime = dateTime.AddDays(1); dateTime = dateTime.AddDays(1);
@@ -1553,29 +1553,9 @@ namespace BeWo.Service.SBD
return assistanceTimeEntries; return assistanceTimeEntries;
} }
public virtual bool IsArbeitszeitValid(Arbeitszeit arbeitszeit, DateTime time) public virtual bool IsArbeitszeitValid(Arbeitszeit arbeitszeit, DateTime start, DateTime end)
{ {
if (arbeitszeit.GueltigVon == null && arbeitszeit.GueltigBis == null) return (!arbeitszeit.GueltigVon.HasValue || arbeitszeit.GueltigVon <= end.Date) && (!arbeitszeit.GueltigBis.HasValue || arbeitszeit.GueltigBis >= start.Date);
{
return true;
}
if (arbeitszeit.GueltigVon.HasValue && arbeitszeit.GueltigBis.HasValue)
{
return time.InBetween(arbeitszeit.GueltigVon.Value, arbeitszeit.GueltigBis.Value, true);
}
if (arbeitszeit.GueltigVon == null && arbeitszeit.GueltigBis.HasValue)
{
return time <= arbeitszeit.GueltigBis;
}
if (arbeitszeit.GueltigBis == null)
{
return time >= arbeitszeit.GueltigVon;
}
return false;
} }
public virtual List<Arbeitszeit> GetSchoolAssistanceTimes(Customer customer, DateTime start, DateTime end, AbsenceTime absenceTime) public virtual List<Arbeitszeit> GetSchoolAssistanceTimes(Customer customer, DateTime start, DateTime end, AbsenceTime absenceTime)
@@ -1599,7 +1579,7 @@ namespace BeWo.Service.SBD
{ {
if (LiegtImZeitraum(dateTime, absenceTime)) if (LiegtImZeitraum(dateTime, absenceTime))
{ {
schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime))); schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime, dateTime)));
} }
dateTime = dateTime.AddDays(1); dateTime = dateTime.AddDays(1);