public DayEmployee GetDayEmployee(DateTime day, Employee employee) { DayOnPlan dayOnPlan = GetDayOnPlan(day); DayOnFact dayOnFact = GetDayOnFact(day, employee); DayEmployee dayEmployee = new DayEmployee(dayOnPlan, dayOnFact, employee); //if (dayEmployee.DayOnFact.DayTypeOnEmployee==DayTypeOnFact.WorkedBusinessTrip|| dayEmployee.DayOnPlan.DayTypeOnPlan==DayTypeOnPlan.Holiday) //{ dayEmployee.DayOnFact.WorkedTime = dayEmployee.DayOnFact.EndWOrk - dayEmployee.DayOnFact.StartWork; } return(dayEmployee); }
} // Недоработанное до плана время public DayEmployee(DayOnPlan dayOnPlan, DayOnFact dayOnFact, Employee employee) { DayOnFact = dayOnFact; DayOnPlan = dayOnPlan; Employee = employee; if (dayOnPlan.DayTypeOnPlan == DayTypeOnPlan.Holiday || dayOnFact.DayTypeOnEmployee == DayTypeOnFact.WorkedBusinessTrip) { dayOnFact.WorkedTime = dayOnFact.EndWOrk - dayOnFact.StartWork; } else { if (dayOnFact.EndWOrk - dayOnFact.StartWork >= new TimeSpan(4, 48, 0)) { dayOnFact.WorkedTime = dayOnFact.EndWOrk - dayOnFact.StartWork - dayOnFact.Dinner; } else { dayOnFact.WorkedTime = dayOnFact.EndWOrk - dayOnFact.StartWork; } } if (dayOnPlan.DayTypeOnPlan == DayTypeOnPlan.Worked || dayOnPlan.DayTypeOnPlan == DayTypeOnPlan.WorkedShort) { if (dayOnFact.WorkedTime <= dayOnPlan.WorkedTime) { Time1X = dayOnFact.WorkedTime; Time0 = dayOnPlan.WorkedTime - dayOnFact.WorkedTime; } else if (dayOnFact.WorkedTime > dayOnPlan.WorkedTime && dayOnFact.WorkedTime <= dayOnPlan.WorkedTime + new TimeSpan(2, 0, 0)) { Time1X = DayOnPlan.WorkedTime; Time15X = dayOnFact.WorkedTime - dayOnPlan.WorkedTime; } else if (dayOnFact.WorkedTime > dayOnPlan.WorkedTime + new TimeSpan(2, 0, 0)) { Time1X = DayOnPlan.WorkedTime; Time15X = new TimeSpan(2, 0, 0); Time20X = dayOnFact.WorkedTime - Time1X - Time15X; } } else if (dayOnPlan.DayTypeOnPlan == DayTypeOnPlan.Holiday) { if (dayOnFact.WorkedTime <= new TimeSpan(8, 0, 0)) { TimeHoli = dayOnFact.WorkedTime; } else if (dayOnFact.WorkedTime > new TimeSpan(8, 0, 0)) { TimeHoli = new TimeSpan(8, 0, 0); Time20X = dayOnFact.WorkedTime - new TimeSpan(8, 0, 0); } } // TotalTime = Time0 + Time1X + Time15X + Time20X + TimeHoli; }
DayOnPlan GetDayOnPlan(DateTime day) { DayOnPlan dayOnPlan = new DayOnPlan(); dayOnPlan.Day = day; if (day.DayOfWeek == DayOfWeek.Monday || day.DayOfWeek == DayOfWeek.Tuesday || day.DayOfWeek == DayOfWeek.Wednesday || day.DayOfWeek == DayOfWeek.Thursday) { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.Worked; dayOnPlan.WorkedTime = new TimeSpan(8, 12, 0); } else if (day.DayOfWeek == DayOfWeek.Friday) { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.WorkedShort; dayOnPlan.WorkedTime = new TimeSpan(7, 12, 0); } else { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.Holiday; dayOnPlan.WorkedTime = new TimeSpan(0); } List <(DateTime data, DayType datatype, TimeSpan length)> SpecialDays = Get_DayTypeInYear(day.Year); foreach ((DateTime data, DayType datatype, TimeSpan length)data in SpecialDays) { if (data.data == day && data.datatype == DayType.FreeDay) { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.Holiday; dayOnPlan.WorkedTime = data.length; } else if (data.data == day && data.datatype == DayType.FullDay) { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.Worked; dayOnPlan.WorkedTime = data.length; } else if (data.data == day && data.datatype == DayType.ShortDay) { dayOnPlan.DayTypeOnPlan = DayTypeOnPlan.WorkedShort; dayOnPlan.WorkedTime = data.length; } } return(dayOnPlan); }