Beispiel #1
0
 public void FillAbsencePlanningTimes(AbsenceTimePlanning entity)
 {
     if (entity != null)
     {
         Absence a = GetById(entity.AbsenceID);
         if (a != null) entity.Absence = a;
     }
 }
Beispiel #2
0
        public AbsencePlanningResponse SaveAbsencePlanning(AbsencePlanningResponse response)
        {
            // diction id of empluyees which absences or holidays number changed
            Dictionary<long, object> d_ids = new Dictionary<long, object>();

            if (response.DeletedIds != null)
            {

                List<long> ids = new List<long>(response.DeletedIds);

                List<AbsenceTimePlanning> listAbsences = AbsenceTimePlanningService.FindByIDList(ids);
                if (listAbsences != null)
                {
                    foreach (AbsenceTimePlanning a in listAbsences)
                        d_ids[a.EmployeeID] = a;
                }

                AbsenceTimePlanningService.DeleteList(listAbsences);// DeleteListByID(ids);

            }

            if (response.ModifiedEntity != null)
            {
                List<EmployeeHolidaysInfo> lst = new List<EmployeeHolidaysInfo>(response.ModifiedEntity);
                EmployeeHolidaysInfoService.SaveOrUpdateList(lst);

                foreach (EmployeeHolidaysInfo o in lst)
                    d_ids[o.EmployeeID] = o;
            }

            if (response.NewAbsences != null)
            {
                foreach (AbsenceTimeRange a in response.NewAbsences)
                {

                    Debug.Assert(a.EmployeeID > 0);
                    Debug.Assert(a.AbsenceID > 0);
                    Debug.Assert(a.ID <= 0);

                    d_ids[a.EmployeeID] = a;

                    ClearEmployeePlanningTime(a.EmployeeID, a.Date, a.Date);
                    AbsenceTimePlanning entity = new AbsenceTimePlanning(a.Begin, a.End, a.Time, a.AbsenceID, a.EmployeeID);
                    entity.ID = 0;
                    entity.Date = a.Date;
                    AbsenceTimePlanningService.SaveOrUpdate(entity);
                    a.ID = entity.ID;

                }
            }

            if (d_ids.Count > 0)
            {
                long[] ids = new long[d_ids.Count];
                d_ids.Keys.CopyTo(ids, 0);
                ExEmployeeHolidays.CalculateAndUpdate(ids, response.Year);
            }
            return response;
        }