//public void praca(DateTime poczatek, DateTime koniec, int stanowisko)
        public Boolean praca(DateTime poczatek, DateTime koniec, int stanowisko)
        {
            TimeSpan time = koniec.Subtract(poczatek);

            if (poprzedni != new DateTime())
            {
                godzinDnia += time.TotalHours;
                godzin     += time.TotalHours;

                TimeSpan diff = poczatek.Subtract(poprzedni);
                if (diff.TotalMinutes > 0 && diff.TotalHours < MIN_ODSTEP)
                {
                    okienek += Math.Pow(diff.TotalHours, diff.TotalHours);
                }
                else
                {
                    double nadg = godzinDnia - MAX_GODZIN;
                    if (nadg > 0)
                    {
                        nadgodzin += nadg;

                        nadg = nadg - MAX_NADGODZIN;
                        if (nadg > 0)
                        {
                            ponadNadgodzin += nadg;
                            nadgodzin      -= nadg;
                        }
                    }
                }
            }

            Models.DzienRoboczyPracownika drp = dniRobocze.FirstOrDefault(d => d.DzienTygodnia.Id == (int)poczatek.DayOfWeek);
            if (drp == null || drp.Poczatek.TimeOfDay > poczatek.TimeOfDay || drp.Koniec.TimeOfDay < koniec.TimeOfDay)
            {
                return(false);
                //zlaGodzina += time.TotalHours;
            }

            Models.Dzien ur = urlop.FirstOrDefault(u => u.Data.Date == poczatek.Date || (u.Data.AddMinutes(-1)).Date == koniec.Date);
            if (ur != null)
            {
                return(false);
                //pracaUrlop += time.TotalHours;
            }

            Models.Stanowisko st = stanowiska.FirstOrDefault(s => s.Id == stanowisko);
            if (st == null)
            {
                return(false);
                //zleStanowisko += time.TotalHours;
            }

            poprzedni = koniec;
            return(true);
        }
Exemple #2
0
        public StanowiskoToSend(Stanowisko stanowisko, Boolean czySzczegoly)
        {
            Id    = stanowisko.Id;
            Nazwa = stanowisko.Nazwa;

            if (czySzczegoly)
            {
                Miejsca = new List <StanowiskoMiejscaToSend>();

                foreach (StanowiskoMiejsca sm in stanowisko.StanowiskoMiejsca)
                {
                    Miejsca.Add(new StanowiskoMiejscaToSend(sm));
                }
            }
        }
Exemple #3
0
 public StanowiskoToSend(Stanowisko stanowisko)
     : this(stanowisko, true)
 {
 }