예제 #1
0
        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);
        }
예제 #2
0
 }                                   // Недоработанное до плана время
 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;
 }
예제 #3
0
        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);
        }