Example #1
0
        private DBList <DBBreak> CreateBreaks(IDateTimeIterator _dtIterator, DateTime _startDate, DateTime _endDate, int _count)
        {
            var breaks = new DBList <DBBreak>();

            _count = _count.Min(MAX_BREAKS);
            foreach (var dt in _dtIterator.GetIterator(_startDate, _endDate, 0, _count))
            {
                //Abwesenheit in MT Auftrag evtl. verboten
                //ANF-06805-F1G6Z2|Lifta|
                if (!Data.IsAbsenceAllowed(WorkerNr, dt + Begin.TimeOfDay, mandant.MTOhneAbwesenheiten))
                {
                    continue;
                }
                foreach (var workerNr in workerNrs)
                {
                    var b = MakeBreak();
                    b.WorkerNr = workerNr;
                    b.Nr       = Data.GetBreakSequence();
                    if (groupNr == 0)
                    {
                        groupNr = b.Nr;
                    }
                    b.GroupNr   = groupNr;
                    b.GroupRule = groupRule;
                    b.Begin     = dt + Begin.TimeOfDay;
                    b.Date      = dt;
                    breaks.Add(b);
                    EventHub.Handle(lang, EventType.WorkerBreak, DateTime.Now, this.GetType().Name,
                                    this.username, EventParams.Create("workernr", workerNr, "info",
                                                                      FLS.Texts.Text.Get(lang, FLS.Texts.Text.Pauseaenderung), "text",
                                                                      FLS.Texts.Text.Get(lang, FLS.Texts.Text.Pauseaenderung) + ":" + b.Begin, "shift", shift));
                }
            }
            return(breaks);
        }