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; }
DayOnFact GetDayOnFact(DateTime day, Employee employee) { DayOnFact dayOnFact = new DayOnFact(); List <string> param = new List <string>() { "day", "month", "year" }; List <string> znachenie = new List <string>() { day.Day.ToString(), day.Month.ToString(), day.Year.ToString() }; List <string> list = GetRowFromTable(employee.TabelNumber, param, znachenie); if (list.Count > 0) { dayOnFact.StartWork = new DateTime(Convert.ToInt32(list[3]), Convert.ToInt32(list[2]), Convert.ToInt32(list[1]), Convert.ToInt32(list[4]), Convert.ToInt32(list[5]), 0); dayOnFact.EndWOrk = new DateTime(Convert.ToInt32(list[3]), Convert.ToInt32(list[2]), Convert.ToInt32(list[1]), Convert.ToInt32(list[6]), Convert.ToInt32(list[7]), 0); dayOnFact.City = list[8]; dayOnFact.Achiv = list[10]; dayOnFact.Dinner = new TimeSpan(0, 48, 0); switch (list[9]) { case "ком.": dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.WorkedBusinessTrip; break; case "больн.": dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.NotWorkedSick; break; case "отг.": dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.NotWorkedAdministrative; break; case "отп.б.с.": dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.NotWorkedMatherhoodVacation; break; case "отп.": dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.NotWorkedVacation; break; case "": if (dayOnFact.EndWOrk > dayOnFact.StartWork) { dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.Worked; } else { dayOnFact.DayTypeOnEmployee = Data.Table.EmployeeDay.DayTypeOnFact.NotWorked; } break; } } else { dayOnFact.StartWork = day; dayOnFact.EndWOrk = day; dayOnFact.DayTypeOnEmployee = DayTypeOnFact.NoData; } return(dayOnFact); }