MH: Stundenkonto halbe Tage bei Arbeitszeiten

This commit is contained in:
2023-12-04 16:42:57 +01:00
parent bb64cb0615
commit d6350c5dd0

View File

@@ -2419,15 +2419,19 @@ namespace BeWo.Report.ReportObjects
foreach (var at in emp.AbsenceTimes)
{
if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) &&
(!at.End.HasValue || at.End.Value >= arbeitstagStart.Date))
{
if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde) && (!at.End.HasValue || at.End.Value >= arbeitstagStart))
{
var faktor = GetFeiertagsFaktor(arbeitstagStart);
if (faktor < 1)
{
var hours = (decimal)arbeitstagEnde.Subtract(arbeitstagStart).TotalHours;
if (faktor != 0)
// Prüfen, ob halber Tag
if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value))
hours /= 2;
if (faktor != 0)
{
hours *= faktor;
}
@@ -2799,10 +2803,10 @@ namespace BeWo.Report.ReportObjects
String dateStr1 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitVon);
String dateStr2 = String.Format("{0:dd.MM.yyyy} {1}", tag, ae.UhrzeitBis);
DateTime date1;
DateTime date2;
DateTime date1; // Startzeit der AZ
DateTime date2; // Endzeit der AZ
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
if (DateTime.TryParse(dateStr1, out date1) && DateTime.TryParse(dateStr2, out date2))
{
String dayKey = String.Format("{0:dd.MM.yyyy}", date1);
if (!daysDict.ContainsKey(dayKey))
@@ -2824,16 +2828,19 @@ namespace BeWo.Report.ReportObjects
foreach (var at in emp.AbsenceTimes)
{
if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde.Date) &&
(!at.End.HasValue || at.End.Value >= arbeitstagStart.Date))
if ((!at.Start.HasValue || at.Start.Value <= arbeitstagEnde) && (!at.End.HasValue || at.End.Value >= arbeitstagStart))
{
var faktor = GetFeiertagsFaktor(arbeitstagStart);
if (faktor < 1)
{
var tag = 1m;
var tag = 1m;
// Prüfen, ob halber Tag
if ((at.Start.HasValue && at.Start.Value.Date != at.Start.Value) || (at.End.HasValue && at.End.Value.Date != at.End.Value))
tag = 0.5m;
if (faktor != 0)
{
tag *= faktor;