Merge branch 'master' of ssh://float.beyondsoft.de/git/beyondSoft/BeWo
This commit is contained in:
@@ -38,6 +38,8 @@ namespace BeWo.BetreutesWohnenAmRheinReports
|
||||
//}
|
||||
}
|
||||
|
||||
// Wird nicht genutzt?
|
||||
|
||||
private void AddUeberstunden(MitarbeiterstundenkontoRO.EmployeeDetail employeeDetail, decimal stunden, bool auchVormonat)
|
||||
{
|
||||
if (!employeeDetail.Ueberstunden.HasValue)
|
||||
@@ -59,206 +61,13 @@ namespace BeWo.BetreutesWohnenAmRheinReports
|
||||
employeeDetail.UeberstundenGesamt += stunden;
|
||||
}
|
||||
|
||||
|
||||
public override bool AddServiceRecordToDuration(ServiceRecord item)
|
||||
{
|
||||
if (item.ServiceDescription != null && item.ServiceDescription.ServiceCategory != null)
|
||||
{
|
||||
if (item.ServiceDescription.Name != "Pause")
|
||||
{
|
||||
if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected override ServiceRecordSummary BerechneStunden(MitarbeiterstundenkontoRO.EmployeeDetail empDetail, IList<ServiceRecord> groupFilteredRecords, DateTime berichtsAnfang,
|
||||
DateTime berichtsEnde)
|
||||
{
|
||||
decimal flsGesamt = 0;
|
||||
decimal arbeitszeit = 0;
|
||||
|
||||
var sum = new ServiceRecordSummary();
|
||||
sum.RecordsImBerichtszeitraum = new List<ServiceRecord>();
|
||||
//base.CorrectOverlappingTimes(groupFilteredRecords);
|
||||
|
||||
foreach (var item in groupFilteredRecords)
|
||||
{
|
||||
if (!IsServiceRecordFehlzeit(item))
|
||||
{
|
||||
if (item.Start.Value >= berichtsAnfang && item.Start.Value < berichtsEnde)
|
||||
{
|
||||
//if (AddServiceRecordToDuration(item))
|
||||
//{
|
||||
decimal duration = 0;
|
||||
|
||||
if (item.GroupRoundedDuration.HasValue)
|
||||
{
|
||||
duration = item.GroupRoundedDuration.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
duration = item.RoundedDuration;
|
||||
}
|
||||
|
||||
if (item.ServiceDescription != null &&
|
||||
item.ServiceDescription.ServiceCategory != null)
|
||||
{
|
||||
if (item.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
|
||||
{
|
||||
|
||||
if (item.ServiceDescription.Name != "Pause")
|
||||
{
|
||||
arbeitszeit += duration;
|
||||
}
|
||||
else
|
||||
{
|
||||
//arbeitszeit -= duration;
|
||||
}
|
||||
}
|
||||
else if (item.ServiceDescription.ServiceCategory.IsBillable)
|
||||
{
|
||||
flsGesamt += duration;
|
||||
}
|
||||
|
||||
}
|
||||
sum.RecordsImBerichtszeitraum.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sum.IstAbrechenbar = flsGesamt;
|
||||
sum.IstNichtAbrechenbar = arbeitszeit - flsGesamt;
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
public override MitarbeiterstundenkontoRO.EmployeeDetail BerechneUeberstundenBis(MitarbeiterstundenkontoRO.EmployeeDetail edOrig, IList<ServiceRecord> records, DateTime monat, out decimal? ueberstunden,
|
||||
out decimal alteExtraUeberstunden)
|
||||
{
|
||||
|
||||
return base.BerechneUeberstundenBis(edOrig, records, monat, out ueberstunden, out alteExtraUeberstunden);
|
||||
}
|
||||
|
||||
public override IList<MitarbeiterstundenkontoRO.DayDetail> CreateDayDetails(DateTime berichtStart, DateTime berichtEnde, MitarbeiterstundenkontoRO.EmployeeDetail ed, IList<ServiceRecord> recordsAll)
|
||||
{
|
||||
var list = base.CreateDayDetails(berichtStart, berichtEnde, ed, recordsAll);
|
||||
|
||||
|
||||
foreach (var dd in list)
|
||||
{
|
||||
dd.MinutesTotal = 0;
|
||||
dd.SpecialHours = 0;
|
||||
dd.PauseInMinuten = 0;
|
||||
|
||||
foreach (var sr in recordsAll)
|
||||
{
|
||||
if (sr.Start.HasValue && sr.Start >= berichtStart && sr.Start < berichtEnde && sr.End.HasValue && sr.Start.Value.Day == dd.Date.Day)
|
||||
{
|
||||
decimal duration = GetDuration(sr);
|
||||
|
||||
if (sr.ServiceDescription.Name == "Pause")
|
||||
{
|
||||
dd.PauseInMinuten += (decimal)sr.DurationMinutes;
|
||||
|
||||
}
|
||||
else if (sr.ServiceDescription.ServiceCategory.Name == "Arbeitszeit")
|
||||
{
|
||||
dd.MinutesTotal += (decimal)sr.DurationMinutes;
|
||||
}
|
||||
else if (sr.ServiceDescription.Name != "Arbeitszeit" &&
|
||||
sr.ServiceDescription.ServiceCategory.IsBillable)
|
||||
{
|
||||
dd.SpecialHours += (decimal)sr.DurationMinutes;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (dd.PauseInMinuten > 0)
|
||||
{
|
||||
dd.MinutesTotal -= dd.PauseInMinuten;
|
||||
if (dd.MinutesTotal < 0)
|
||||
{
|
||||
dd.MinutesTotal = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private decimal GetDuration(ServiceRecord sr)
|
||||
{
|
||||
decimal duration = 0;
|
||||
|
||||
if (sr.GroupRoundedDuration.HasValue)
|
||||
{
|
||||
duration = sr.GroupRoundedDuration.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
duration = sr.RoundedDuration;
|
||||
}
|
||||
|
||||
return duration;
|
||||
}
|
||||
|
||||
public override bool SollPauseBerechnen()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool ShouldCreateDayDetails()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override MitarbeiterstundenkontoRO.DayDetail CreateDayDetail(DateTime date, MitarbeiterstundenkontoRO.EmployeeDetail ed)
|
||||
{
|
||||
var dd = base.CreateDayDetail(date, ed);
|
||||
dd.MaxHoursUntilBreak = null;
|
||||
dd.MaxHoursUntilBreak2 = null;
|
||||
dd.BreakMinutes = null;
|
||||
dd.BreakMinutes2 = null;
|
||||
return dd;
|
||||
}
|
||||
|
||||
public override decimal BerechnePauseMinuten(IList<ServiceRecord> srListAlle)
|
||||
{
|
||||
|
||||
var srList = srListAlle.Where(s => s.ServiceDescription.ServiceCategory.Name == "Arbeitszeit");
|
||||
|
||||
|
||||
decimal pausenZeit = 0;
|
||||
|
||||
List<ServiceRecord> pausen = new List<ServiceRecord>();
|
||||
List<ServiceRecord> nichtpausen = new List<ServiceRecord>();
|
||||
|
||||
foreach (var sr in srList)
|
||||
{
|
||||
if (sr.ServiceDescription.Name == "Pause")
|
||||
{
|
||||
pausen.Add(sr);
|
||||
}
|
||||
else
|
||||
{
|
||||
nichtpausen.Add(sr);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var pause in pausen)
|
||||
{
|
||||
pausenZeit += pause.RoundedDuration;
|
||||
|
||||
}
|
||||
return pausenZeit;
|
||||
}
|
||||
|
||||
|
||||
public override decimal GetFeiertagsFaktor(DateTime start)
|
||||
{
|
||||
if (start.Year >= 2024 && start.Month == 12 && (start.Day == 24 || start.Day == 31))
|
||||
|
||||
Reference in New Issue
Block a user