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>
<NameOfLastUsedPublishProfile>BeWo2.0</NameOfLastUsedPublishProfile>
<UseIISExpress>true</UseIISExpress>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<Use64BitIISExpress>false</Use64BitIISExpress>
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />

View File

@@ -86,14 +86,23 @@ namespace SHKServiceSBD.Reports
{
var row = new VergleichRow();
row.Employee = String.Format("{0}", emp.Person.LastNameFirstName);
var c = GetBetreutesKind(emp, datum);
if (c != null)
if (row.Employee.Contains("Hollmann"))
{
row.Customer = String.Format("{0} {1}", c.Person.FirstName, c.Person.LastName);
row.BetreuungszeitKind = GetStundenplanStunden(c, datum);
int test = 0;
}
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))
{
row.Customer = "Martinsschule";
@@ -140,7 +149,7 @@ namespace SHKServiceSBD.Reports
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;
var az = ReportHelper.GetArbeitszeit(c, datum, datum);
@@ -149,7 +158,10 @@ namespace SHKServiceSBD.Reports
{
foreach (var item in az.ArbeitszeitEintraege)
{
stunden += item.BerechneStunden();
if (item.Employee == null || item.Employee.Oid == e.Oid)
{
stunden += item.BerechneStunden();
}
}
}
return stunden;
@@ -170,19 +182,22 @@ namespace SHKServiceSBD.Reports
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
&& (!e.StartDate.HasValue || e.StartDate.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);
if (customer.Person.LastName.Contains("Platz"))
if (customer.Person.LastName.Contains("Seiden"))
{
}
@@ -178,7 +178,7 @@ namespace BeWo.Service.SBD
MigriereSubstitutionStatus(customer);
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 =>
{
@@ -1533,9 +1533,9 @@ namespace BeWo.Service.SBD
{
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);
@@ -1553,29 +1553,9 @@ namespace BeWo.Service.SBD
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 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;
return (!arbeitszeit.GueltigVon.HasValue || arbeitszeit.GueltigVon <= end.Date) && (!arbeitszeit.GueltigBis.HasValue || arbeitszeit.GueltigBis >= start.Date);
}
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))
{
schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime)));
schoolAssistanceTimes.AddRange(allSchoolAssistanceTimes.Where(w => IsArbeitszeitValid(w, dateTime, dateTime)));
}
dateTime = dateTime.AddDays(1);