MH: PerspektivenEV VacationService an neuen Standard angepasst
This commit is contained in:
@@ -246,10 +246,7 @@ namespace PerspektivenEV.Service
|
||||
|
||||
|
||||
// 5. Alle Urlaube, die Anfang oder Ende im gewählten Jahr haben
|
||||
var absReason = GetVacationReasonIDs();
|
||||
var absences = emp.AbsenceTimes.Where(x => absReason.Contains(x.Reason.AbsenceReasonOid.Value) && (x.Start.HasValue && x.Start.Value.Year == year)
|
||||
|| absReason.Contains(x.Reason.AbsenceReasonOid.Value) && (x.End.HasValue && x.End.Value.Year == year))
|
||||
.OrderBy(x => x.Start).ToList();
|
||||
var absences = GetAllVacationAbsences(emp.AbsenceTimes, year, true);
|
||||
|
||||
if (absences.Count > 0) // Wenn es Urlaube in dem Jahr gibt
|
||||
{
|
||||
@@ -268,27 +265,7 @@ namespace PerspektivenEV.Service
|
||||
decimal summeTage = 0;
|
||||
|
||||
#region Urlaubstage zählen
|
||||
if (emp.Arbeitszeiten != null && emp.Arbeitszeiten.Count > 0)
|
||||
{
|
||||
foreach (var az in emp.Arbeitszeiten)
|
||||
{
|
||||
if (az.GueltigVon.HasValue)
|
||||
{
|
||||
var azEnde = !az.GueltigBis.HasValue ? new DateTime(year, 12, 31) : az.GueltigBis.Value;
|
||||
if (new DateTimeSpan(az.GueltigVon.Value, azEnde).ContainsDate(spanne.AbsenceSpan.StartDate) && az.Eintraege != null && az.Eintraege.Count > 0)
|
||||
{
|
||||
summeTage = CountUrlaubstageArbeitszeiten(spanne, year, az);
|
||||
break;
|
||||
}
|
||||
else
|
||||
summeTage = CountUrlaubstageStandard(spanne, year, contractsAndWeeklyDays);
|
||||
}
|
||||
else
|
||||
summeTage = CountUrlaubstageStandard(spanne, year, contractsAndWeeklyDays);
|
||||
}
|
||||
}
|
||||
else
|
||||
summeTage = CountUrlaubstageStandard(spanne, year, contractsAndWeeklyDays);
|
||||
summeTage = CountAbwesenheitstage(emp, spanne, year, contractsAndWeeklyDays);
|
||||
|
||||
|
||||
#endregion
|
||||
@@ -348,11 +325,7 @@ namespace PerspektivenEV.Service
|
||||
var feiertage = GetFeiertage(year);
|
||||
|
||||
// Alle Abwesenheiten bis zu dem Jahr raussuchen, für das man das Urlaubskonto berechnen will
|
||||
var absReason = GetVacationReasonIDs();
|
||||
var absences = emp.AbsenceTimes.Where(x => absReason.Contains(x.AbsenceReason.Oid.Value) &&
|
||||
(x.Start.HasValue && x.Start.Value.Year <= year))
|
||||
//(!x.End.HasValue || x.End.Value.Year >= year)
|
||||
.OrderBy(x => x.Start);
|
||||
var absences = GetAllVacationAbsences(MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDCs(emp.AbsenceTimes), year, false);
|
||||
|
||||
var empService = PluginLoader.FindClass<EmployeeServiceImp>();
|
||||
|
||||
@@ -448,13 +421,13 @@ namespace PerspektivenEV.Service
|
||||
}
|
||||
|
||||
// Abwesenheiten in Jahr x zu einem Dictionary hinzufügen, noch kein Abzug vom Konto
|
||||
var absencesYear = new List<Tuple<int, AbsenceTime>>();
|
||||
var absencesYear = new List<Tuple<int, AbsenceTimeDC>>();
|
||||
foreach (var abs in absences)
|
||||
{
|
||||
var till = Math.Min(abs.End?.Year ?? year, year);
|
||||
for (int i = abs.Start.Value.Year; i <= till; i++)
|
||||
{
|
||||
absencesYear.Add(new Tuple<int, AbsenceTime>(i, abs));
|
||||
absencesYear.Add(new Tuple<int, AbsenceTimeDC>(i, abs));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -510,33 +483,12 @@ namespace PerspektivenEV.Service
|
||||
// Berücksichtigung von Arbeitszeiten
|
||||
decimal dauer = 0;
|
||||
|
||||
var spanne = MapperFactory.AbsenceTimeDC_AbsenceTime.MapToNewDC(absence);
|
||||
if (spanne.End.HasValue && spanne.End.Value.Year > absYear)
|
||||
spanne.End = new DateTime(absYear, 12, 31);
|
||||
if (spanne.Start.HasValue && spanne.Start.Value.Year < absYear)
|
||||
spanne.Start = new DateTime(absYear, 01, 01);
|
||||
if (absence.End.HasValue && absence.End.Value.Year > absYear)
|
||||
absence.End = new DateTime(absYear, 12, 31);
|
||||
if (absence.Start.HasValue && absence.Start.Value.Year < absYear)
|
||||
absence.Start = new DateTime(absYear, 01, 01);
|
||||
|
||||
if (arbeitszeiten.Count > 0)
|
||||
{
|
||||
foreach (var az in arbeitszeiten)
|
||||
{
|
||||
if (az.Eintraege.Count > 0 && az.GueltigVon.HasValue)
|
||||
{
|
||||
var azEnde = !az.GueltigBis.HasValue ? new DateTime(year, 12, 31) : az.GueltigBis.Value;
|
||||
if (new DateTimeSpan(az.GueltigVon.Value, azEnde).ContainsDate(spanne.AbsenceSpan.StartDate) && az.Eintraege != null && az.Eintraege.Count > 0)
|
||||
{
|
||||
dauer = CountUrlaubstageArbeitszeiten(spanne, absYear, az);
|
||||
break;
|
||||
}
|
||||
else
|
||||
dauer = CountUrlaubstageStandard(spanne, absYear, contractsAndWeeklyDays);
|
||||
}
|
||||
else
|
||||
dauer = CountUrlaubstageStandard(spanne, absYear, contractsAndWeeklyDays);
|
||||
}
|
||||
}
|
||||
else
|
||||
dauer = CountUrlaubstageStandard(spanne, absYear, contractsAndWeeklyDays);
|
||||
dauer = CountAbwesenheitstage(MapperFactory.EmployeeDC_Employee.MapToNewDC(emp), absence, year, contractsAndWeeklyDays);
|
||||
//dauer = BerechneAnzahlUrlaubstage(absence, null, absYear, workdays); // HIER MÜSSEN PARAMETER FÜR ISTWOCHENENDE() MITGEGEBEN WERDEN
|
||||
|
||||
// Verfallsdatum des Urlaubs festlegen
|
||||
@@ -644,6 +596,7 @@ namespace PerspektivenEV.Service
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
public override List<long> GetVacationReasonIDs()
|
||||
{
|
||||
var res = new List<long>();
|
||||
|
||||
Reference in New Issue
Block a user