Exemplo n.º 1
0
        private List<EmployeeTimeRange> GetRecordingTimeRanges(long employeeid, DateTime date)
        {
            List<EmployeeTimeRange> result = new List<EmployeeTimeRange> ();

            EmployeeTimeRange range = null;
            int i=0;
            while(i < MAXRANGES )
            {
                if (!_recordingTimes[i].Empty)
                {
                    range = new EmployeeTimeRange();
                    range.EmployeeID = employeeid;
                    range.Date = date;
                    range.Begin = (short)(i * 15);
                    range.End = (short)(range.Begin + 15) ;

                    if (_recordingTimes[i].Absenced)
                    {

                        range.Absence = _recordingTimes[i].AbsenceEntity;
                        if (range.Absence != null)
                            range.AbsenceID = range.Absence.ID;
                        i++;
                        while (i < MAXRANGES)
                        {
                            if (range.Absence == _recordingTimes[i].AbsenceEntity)
                            {
                                range.End += 15;
                            }
                            else
                            {
                                range.Time = (short)(range.End - range.Begin);
                                result.Add(range);
                                range = null;
                                break;
                            }
                            i++;
                        }
                        continue;
                    }
                    else
                    {
                        i++;
                        while (i < MAXRANGES)
                        {
                            if (_recordingTimes[i].Worked)
                            {
                                range.End += 15;
                            }
                            else
                            {
                                range.Time = (short)(range.End - range.Begin);
                                result.Add(range);
                                range = null;
                                break;
                            }
                            i++;
                        }
                        continue;
                    }

                }
                i++;
            }
            if (range != null)
            {
                range.Time = (short)(range.End - range.Begin);
                result.Add(range);
            }

            if (result.Count == 0) return null;

            return result;
        }
Exemplo n.º 2
0
 public void Assign(EmployeeDay employeeday)
 {
     Clear();
     if (employeeday.TimeList != null)
     {
         EmployeeTimeRange newrange = null;
         foreach (EmployeeTimeRange range in employeeday.TimeList)
         {
             newrange = new EmployeeTimeRange(range);
             //newrange.ID = -1;//newitem
             Times.Add(newrange);
         }
     }
 }
Exemplo n.º 3
0
            public void AssignTo(EmployeeDay employeeday)
            {
                employeeday.TimeList = null;

                if (Times != null)
                {
                    employeeday.TimeList = new List<EmployeeTimeRange> ();
                    EmployeeTimeRange en = null;
                    foreach (EmployeeTimeRange range in Times)
                    {
                        en = new EmployeeTimeRange(range);
                        en.EmployeeID = employeeday.EmployeeId;
                        //en.ID = 0;
                        en.Date = employeeday.Date;
                        employeeday.TimeList.Add (en);
                    }

                }

                employeeday.Modified = true;
            }
Exemplo n.º 4
0
        public void FillEmployeeWeeks(DateTime begin, DateTime end, bool bPlanning)
        {
            if (_listweeks == null || _listweeks.Count == 0)
            {
                return;
            }

            List <EmployeeTimeRange> lstRanges = new List <EmployeeTimeRange>();
            EmployeeTimeRange        range     = null;

            #region Load entities

            if (bPlanning)
            {
                List <WorkingTimePlanning> lstWorks =
                    EmployeeService.EmployeeTimeService.WorkingTimePlanningService.GetWorkingTimePlanningsByEmployeeIds(_employeeids, begin, end);
                List <AbsenceTimePlanning> lstAbsences =
                    EmployeeService.EmployeeTimeService.AbsenceTimePlanningService.GetAbsenceTimePlanningsByEmployeeIds(_employeeids, begin, end);

                if (lstWorks != null)
                {
                    foreach (WorkingTimePlanning entity in lstWorks)
                    {
                        lstRanges.Add(new EmployeeTimeRange(entity));
                    }
                }
                if (lstAbsences != null)
                {
                    foreach (AbsenceTimePlanning entity in lstAbsences)
                    {
                        lstRanges.Add(new EmployeeTimeRange(entity));
                    }
                }
            }
            else
            {
                List <WorkingTimeRecording> lstWorks =
                    EmployeeService.EmployeeTimeService.WorkingTimeRecordingService.GetWorkingTimeRecordingsByEmployeeIds(_employeeids, begin, end);
                List <AbsenceTimeRecording> lstAbsences =
                    EmployeeService.EmployeeTimeService.AbsenceTimeRecordingService.GetAbsenceTimeRecordingsByEmployeeIds(_employeeids, begin, end);
                if (lstWorks != null)
                {
                    foreach (WorkingTimeRecording entity in lstWorks)
                    {
                        lstRanges.Add(new EmployeeTimeRange(entity));
                    }
                }
                if (lstAbsences != null)
                {
                    foreach (AbsenceTimeRecording entity in lstAbsences)
                    {
                        lstRanges.Add(new EmployeeTimeRange(entity));
                    }
                }
            }

            #endregion

            lstRanges.Sort();

            if (lstRanges.Count > 0)
            {
                EmployeeWeek week    = null;
                EmployeeDay  emplday = null;
                for (int i = 0; i < lstRanges.Count; i++)
                {
                    range = lstRanges[i];
                    if (week == null || (week.EmployeeId != range.EmployeeID))
                    {
                        week = null;
                        _dictionWeek.TryGetValue(range.EmployeeID, out week);
                    }

                    if (week != null)
                    {
                        emplday = week.GetDay(range.Date);
                        if (emplday != null)
                        {
                            if (emplday.TimeList == null)
                            {
                                emplday.TimeList = new List <EmployeeTimeRange>();
                            }
                            emplday.TimeList.Add(range);
                        }
                    }
                }
            }
        }