Example #1
0
        public List <EmployeeWeek> FillPlanningEmployeeWeeks(long storeid, long worldid, DateTime aBegin, DateTime aEnd)
        {
            if (_listweeks != null && _listweeks.Count > 0)
            {
                FillEmployeeWeeks(aBegin, aEnd, true);
//                EmployeeTimeService timeService = EmployeeService.EmployeeTimeService as EmployeeTimeService;

//                timeService.FillEmployeeWeeks(_listweeks, _employeeids, _dictionWeek, aBegin, aEnd, true);

                if (LoadWeeks)
                {
                    EmployeeTimeService timeService = EmployeeService.EmployeeTimeService as EmployeeTimeService;

                    EmployeeWeekTimePlanningService weekService = timeService.EmployeeWeekTimePlanningService as EmployeeWeekTimePlanningService;

                    List <EmployeeWeekTimePlanning> planningweeks = weekService.GetEmployeesWeekState(_employeeids, aBegin, aEnd);

                    if (planningweeks != null && planningweeks.Count > 0)
                    {
                        EmployeeWeek emplweek = null;
                        foreach (EmployeeWeekTimePlanning week in planningweeks)
                        {
                            if (_dictionWeek.TryGetValue(week.EmployeeID, out emplweek))
                            {
                                emplweek.NewWeek = false;

                                EmployeeWeekProcessor.Assign(week, emplweek);
                            }
                        }
                    }
                }
            }
            return(_listweeks);
        }
Example #2
0
        public void FillEmployeeWeeks(List <EmployeeWeek> weeks, DateTime beginDate, DateTime endDate)
        {
            if (weeks != null && weeks.Count > 0)
            {
                Dictionary <long, EmployeeWeek> _diction = EmployeeWeekProcessor.GetDictionary(weeks);
                long[] ids = EmployeeWeekProcessor.GetEmployeeIds(weeks);

                List <EmployeeDayStateRecording> daystates = servicedao.GetEmployeesStates(ids, beginDate, endDate);

                if (daystates != null)
                {
                    EmployeeWeek lastWeek = null;
                    EmployeeDay  day      = null;
                    foreach (EmployeeDayStateRecording edsp in daystates)
                    {
                        if ((lastWeek == null) || (edsp.EmployeeID != lastWeek.EmployeeId))
                        {
                            lastWeek = null;
                            _diction.TryGetValue(edsp.EmployeeID, out lastWeek);
                        }

                        if (lastWeek != null)
                        {
                            day = lastWeek.GetDay(edsp.Date);
                            if (day != null)
                            {
                                EmployeeDayProcessor.AssignDay(edsp, day);
                            }
                        }
                    }
                }
            }
        }
Example #3
0
        public override void Save()
        {
            if (_employeeweeks != null && _employeeweeks.Count > 0)
            {
                //_weekservice.SaveEmployeeWeeks(_employeeweeks);
                //_dayservice.SaveEmployeeWeeks(_employeeweeks);



                long[] ids = EmployeeWeekProcessor.GetEmployeeIds(_employeeweeks);
                SrvEmployeeWeekRecordingList srv_updater_weeks = new SrvEmployeeWeekRecordingList();
                DateTime nextWeekMonday = DateTimeHelper.GetNextMonday(BeginDate);
                srv_updater_weeks.InitList(ids, BeginDate);
                SrvEmployeesRecordingDayList day_list = new SrvEmployeesRecordingDayList(ids, BeginDate);

                foreach (EmployeeWeek e_w in _employeeweeks)
                {
                    //srv_updater_weeks.UpdateSaldoAfterRecording(e_w.EmployeeId, nextWeekMonday, e_w.Saldo);
                    srv_updater_weeks.UpdateEntityAfterRecording(e_w);
                    foreach (EmployeeDay ed in e_w.DaysList)
                    {
                        day_list.CompareAndSave(ed);
                    }
                }


                EmployeeRecordingWorkingModelHelper wmhelper = new EmployeeRecordingWorkingModelHelper(_timeservice.EmployeeRecordingWorkingModelService);

                wmhelper.SaveEmployeeWorkingModel(_employeeweeks);
            }
        }
        public void SaveEmployeeWorkingModel(List<EmployeeWeek> lstWeeks)
        {
            if (lstWeeks == null || lstWeeks.Count == 0) return;

            long[] ids = EmployeeWeekProcessor.GetEmployeeIds(lstWeeks);
            List<EmployeeRecordingWorkingModel> lstEntities = new List<EmployeeRecordingWorkingModel>(lstWeeks.Count * 10);
            DateTime begin, end;

            begin = lstWeeks[0].BeginDate;
            end = lstWeeks[0].EndDate;
            EmployeeRecordingWorkingModel entity = null;

            foreach (EmployeeWeek week in lstWeeks)
            {
                foreach (EmployeeDay day in week.DaysList)
                {
                    if (day.WorkingModels != null && day.WorkingModels.Count > 0)
                    {
                        foreach (EmployeeWorkingModel model in day.WorkingModels)
                        {
                            entity = new EmployeeRecordingWorkingModel();
                            model.AssignTo(entity);
                            lstEntities.Add(entity);
                        }
                    }
                }
            }


            SaveEmployeesWorkingModel(ids, lstEntities, begin, end);
        }
Example #5
0
        public void FillEmployeeWeeks(List <EmployeeWeek> planningweeks)
        {
            if (planningweeks == null || planningweeks.Count == 0)
            {
                return;
            }
            long[] ids = EmployeeWeekProcessor.GetEmployeeIds(planningweeks);

            List <EmployeeWeekTimeRecording> lst = GetEmployeesWeekState(ids, planningweeks[0].BeginDate, planningweeks[0].EndDate);

            if (lst == null || lst.Count == 0)
            {
                return;
            }


            Dictionary <long, EmployeeWeekTimeRecording> dict = new Dictionary <long, EmployeeWeekTimeRecording>();

            foreach (EmployeeWeekTimeRecording ewtp in lst)
            {
                dict[ewtp.EmployeeID] = ewtp;
            }

            EmployeeWeekTimeRecording entity = null;

            foreach (EmployeeWeek ew in planningweeks)
            {
                if (dict.TryGetValue(ew.EmployeeId, out entity))
                {
                    EmployeeWeekProcessor.Assign(entity, ew);
                }
            }
        }
Example #6
0
        public void SaveContext()
        {
            if (Modified && WorldActualState != null)
            {
                UpdateHolidaysTime();
                long[] ids_modified_employees = null;
                List <EmployeeTimeRange> lst  = EmployeeWeekProcessor.GetDelta(WorldActualState.List, out ids_modified_employees);
                _EmployeeService.EmployeeTimeService.SaveActualEmployeeTimeRange(StoreId, BeginWeekDate, EndWeekDate, ids_modified_employees, lst);

                Modified = false;
            }
        }
        public void SaveEmployeeWorkingModel(EmployeeWeek week)
        {
            List<EmployeeWorkingModel> lst = EmployeeWeekProcessor.GetWorkingModels(week);

            List<EmployeeRecordingWorkingModel> lstEntities = new List<EmployeeRecordingWorkingModel>(lst.Count);
            EmployeeRecordingWorkingModel entity = null;
            foreach (EmployeeWorkingModel model in lst)
            {
                entity = new EmployeeRecordingWorkingModel();
                model.AssignTo(entity);
                lstEntities.Add(entity);
            }


            SaveEmployeeWorkingModel(week.EmployeeId, lstEntities, week.BeginDate, week.EndDate);
        }
Example #8
0
        public List <EmployeeWeek> GetEmployeesWeekStates(long[] emplids, DateTime beginDate, DateTime endDate)
        {
            List <EmployeeWeek> weeks = null;
            EmployeeWeek        week  = null;

            List <EmployeeWeekTimePlanning> entities = GetEmployeesWeekState(emplids, beginDate, endDate);

            if (entities != null)
            {
                weeks = new List <EmployeeWeek>();
                foreach (EmployeeWeekTimePlanning entity in entities)
                {
                    week = new EmployeeWeek(entity);
                    weeks.Add(EmployeeWeekProcessor.Assign(entity, week));
                }
            }

            return(weeks);
        }
Example #9
0
        public void LoadEmployeePlanningAndRecording(StoreToWorld world)
        {
            _currentWorldID = 0;

            if (world != null)
            {
                _currentWorldID = world.WorldID;

                List <EmployeeWeek> planningWeeks = ClientEnvironment.EmployeeService.GetTimePlannignEmployeeByWorld2(StoreId, _currentWorldID, BeginWeekDate, EndWeekDate);
                Absences.FillEmployeeWeek(planningWeeks);
                _planningWorldState = new StoreWorldWeekState(world, BeginWeekDate, EndWeekDate);
                EmployeeWeekProcessor.MarkAsPlannedWeek(planningWeeks);

                if (planningWeeks != null)
                {
                    _planningWorldState.List.AddRange(planningWeeks);
                    foreach (EmployeeWeek ew in planningWeeks)
                    {
                        ew.InitWeekState();
                    }
                }

                _planningWorldState.Context = this;
                _planningWorldState.Calculate();

                planningWeeks = ClientEnvironment.EmployeeService.GetTimeRecordingEmployeeByWorld(StoreId, _currentWorldID, BeginWeekDate, EndWeekDate);
                Absences.FillEmployeeWeek(planningWeeks);
                _actualWorldState = new StoreWorldWeekState(world, BeginWeekDate, EndWeekDate);
                EmployeeWeekProcessor.MarkAsRecordingWeek(planningWeeks);
                if (planningWeeks != null)
                {
                    _actualWorldState.List.AddRange(planningWeeks);
                    foreach (EmployeeWeek ew in planningWeeks)
                    {
                        ew.InitWeekState();
                    }
                }

                _actualWorldState.Context = this;
                _actualWorldState.Calculate();
            }
        }
Example #10
0
        public void SaveEmployeeWeek(EmployeeWeek planningweek)
        {
            if (planningweek == null)
            {
                throw new ArgumentNullException();
            }

            EmployeeWeekTimeRecording entity = GetEmployeeWeekState(planningweek.EmployeeId, planningweek.BeginDate, planningweek.EndDate);

            if (entity == null)
            {
                entity = new EmployeeWeekTimeRecording();
            }

            EmployeeWeekProcessor.AssignTo(entity, planningweek);

            SaveOrUpdate(entity);

            //planningweek.ID = entity.ID;
        }
Example #11
0
        public void UpdateSaldoAfterPlanning(EmployeeWeek week)
        {
            EmployeeWeekTimePlanning entity = GetByDate(week.EmployeeId, week.BeginDate);

            if (entity == null)
            {
                entity = new EmployeeWeekTimePlanning();
                EmployeeWeekProcessor.AssignTo(entity, week);
                UpdateEntity(entity);
            }
            else
            {
                if (EmployeeWeekProcessor.IsModified(entity, week))
                {
                    EmployeeWeekProcessor.AssignTo(entity, week);
                    UpdateEntity(entity);
                }
            }

            UpdateSaldoFrom(week.EmployeeId, DateTimeHelper.GetNextMonday(week.BeginDate), week.Saldo);
        }
Example #12
0
        public virtual void Save()
        {
            if (_employeeweeks != null && _employeeweeks.Count > 0)
            {
                long[] ids = EmployeeWeekProcessor.GetEmployeeIds(_employeeweeks);
                // load from BeginDate to 2079 year
                SrvEmployeeWeekPlanningList plan_list = new SrvEmployeeWeekPlanningList(ids, BeginDate);
                SrvEmployeesPlanningDayList day_list  = new SrvEmployeesPlanningDayList(ids, BeginDate);
                foreach (EmployeeWeek w in _employeeweeks)
                {
                    plan_list.UpdateSaldoAfterPlanning(w);
                    foreach (EmployeeDay ed in w.DaysList)
                    {
                        day_list.CompareAndSave(ed);
                    }
                }


                EmployeePlanningWorkingModelHelper wmhelper = new EmployeePlanningWorkingModelHelper(_timeservice.EmployeePlanningWorkingModelService);

                wmhelper.SaveEmployeeWorkingModel(_employeeweeks);
            }
        }
Example #13
0
        public List <EmployeeWeek> FillActualEmployeeWeeks(long storeid, long worldid, DateTime aBegin, DateTime aEnd)
        {
            if (_listweeks != null && _listweeks.Count > 0)
            {
                //EmployeeTimeService timeService = EmployeeService.EmployeeTimeService as EmployeeTimeService;
                //timeService.FillEmployeeWeeks(_listweeks, aBegin, aEnd, false);

                FillEmployeeWeeks(aBegin, aEnd, false);

                if (LoadWeeks)
                {
                    EmployeeTimeService timeService = EmployeeService.EmployeeTimeService as EmployeeTimeService;

                    EmployeeWeekTimeRecordingService weekService = timeService.EmployeeWeekTimeRecordingService as EmployeeWeekTimeRecordingService;

                    List <EmployeeWeekTimeRecording> weeks = weekService.GetEmployeesWeekState(_employeeids, aBegin, aEnd);

                    if (weeks != null && weeks.Count > 0)
                    {
                        EmployeeWeek emplweek = null;
                        foreach (EmployeeWeekTimeRecording week in weeks)
                        {
                            if (_dictionWeek.TryGetValue(week.EmployeeID, out emplweek))
                            {
                                emplweek.NewWeek = false;
                                //emplweek.CustomEdit = week.CustomEdit;
                                //if (week.CustomEdit)
                                //    emplweek.Saldo = week.Saldo;

                                EmployeeWeekProcessor.Assign(week, emplweek);
                            }
                        }
                    }
                }
            }
            return(_listweeks);
        }
Example #14
0
        public void FillEmployeeWeeks(List <EmployeeWeek> planningweeks, long[] emplIds, Dictionary <long, EmployeeWeek> dictWeek)
        {
            if (planningweeks == null || planningweeks.Count == 0)
            {
                return;
            }

            List <EmployeeWeekTimePlanning> lst = GetEmployeesWeekState(emplIds, planningweeks[0].BeginDate, planningweeks[0].EndDate);

            if (lst == null || lst.Count == 0)
            {
                return;
            }

            EmployeeWeek ew = null;

            foreach (EmployeeWeekTimePlanning ewtp in lst)
            {
                if (dictWeek.TryGetValue(ewtp.EmployeeID, out ew))
                {
                    EmployeeWeekProcessor.Assign(ewtp, ew);
                }
            }
        }
Example #15
0
        public void SaveEmployeeWeek(EmployeeWeek planningweek)
        {
            if (planningweek == null)
            {
                throw new ArgumentNullException();
            }

            EmployeeWeekTimePlanning entity = GetEmployeeWeekState(planningweek.EmployeeId, planningweek.BeginDate, planningweek.EndDate);

            if (entity == null)
            {
                entity = new EmployeeWeekTimePlanning();
            }

            EmployeeWeekProcessor.AssignTo(entity, planningweek);

            SaveOrUpdate(entity);

            //planningweek.ID = entity.ID;
            if (DateTimeHelper.Between(DateTime.Today, planningweek.BeginDate, planningweek.EndDate))
            {
                UpdatePlanningSaldo(entity);
            }
        }
Example #16
0
        public virtual void UpdateEntityAfterRecording(EmployeeWeek week)
        {
            EmployeeWeekTimeRecording        entity = GetByDate(week.EmployeeId, week.BeginDate);
            List <EmployeeWeekTimeRecording> list   = GetEntitiesByEmployeeId(week.EmployeeId);

            if (entity == null)
            {
                entity = new EmployeeWeekTimeRecording();
                EmployeeWeekProcessor.AssignTo(entity, week);
                UpdateEntity(entity);

                if (list == null)
                {
                    list = new List <EmployeeWeekTimeRecording>();

                    _index[week.EmployeeId] = list;
                }

                _entities.Add(entity);
                list.Add(entity);

                list.Sort();
            }
            else
            {
                if (EmployeeWeekProcessor.IsModified(entity, week))
                {
                    EmployeeWeekProcessor.AssignTo(entity, week);
                    UpdateEntity(entity);
                }
            }



            if (list != null)
            {
                int previous_saldo = entity.Saldo;
                foreach (EmployeeWeekTimeRecording next_entity in list)
                {
                    if (next_entity.WeekBegin <= week.BeginDate)
                    {
                        continue;
                    }

                    if (next_entity.CalculateSaldo(previous_saldo))
                    {
                        UpdateEntity(next_entity);
                        previous_saldo = next_entity.Saldo;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            SrvEmployeeWeekPlanningList planList = new SrvEmployeeWeekPlanningList(week.EmployeeId, week.EndDate.AddDays(1));

            //planList.UpdateSaldoFrom2(week.EmployeeId, week.EndDate.AddDays(1), week.Saldo);
            planList.UpdateSaldoAfterRecording(week.EmployeeId, list, week.EndDate.AddDays(1));
        }
Example #17
0
        private void LoadEmployeePlanningAndRecording(bool bLoadStoreDays)
        {
            ClearContext();

            if (bLoadStoreDays)
            {
                LoadStoreDayInfo();
            }

            ErrorCode = ErrorCodes.Empty;
            if (m_storedays.IsUndefined())
            {
                ErrorCode |= ErrorCodes.NotExistsOpenTime;
            }
            if (m_storedays.AvgDayInWeek == 0)
            {
                ErrorCode |= ErrorCodes.NotExistsAvgDaysPerWeek;
            }

            if (ErrorCodes.Empty != ErrorCode)
            {
                ProcessError();
                return;
            }

            if (CurrentStoreWorld != null)
            {
                List <EmployeeWeek> planningweeks = _EmployeeService.GetTimePlannignEmployeeByWorld2(StoreId, WorldId, BeginWeekDate, EndWeekDate);
                EmployeeWeekProcessor.MarkAsPlannedWeek(planningweeks);

                Absences.FillEmployeeWeek(planningweeks);

                _PlanningWorldState = new StoreWorldWeekState(CurrentStoreWorld, BeginWeekDate, EndWeekDate);

                if (planningweeks != null)
                {
                    _PlanningWorldState.List.AddRange(planningweeks);
                    foreach (EmployeeWeek ew in planningweeks)
                    {
                        ew.InitWeekState();
                    }
                }

                _PlanningWorldState.Context = this;
                _PlanningWorldState.Calculate();


                planningweeks = _EmployeeService.GetTimeRecordingEmployeeByWorld(StoreId, WorldId, BeginWeekDate, EndWeekDate);
                EmployeeWeekProcessor.MarkAsRecordingWeek(planningweeks);
                Absences.FillEmployeeWeek(planningweeks);

                _ActualWorldState = new StoreWorldWeekState(CurrentStoreWorld, BeginWeekDate, EndWeekDate);

                if (planningweeks != null)
                {
                    _ActualWorldState.List.AddRange(planningweeks);
                    foreach (EmployeeWeek ew in planningweeks)
                    {
                        ew.InitWeekState();
                    }
                }

                _ActualWorldState.PlannedWorld = false;
                _ActualWorldState.Context      = this;
                _ActualWorldState.Calculate();


                WorldPlanningInfo infoworld =
                    _StoreService.StoreToWorldService.GetStoreWorldPlanningInfo(false, StoreId, WorldId, BeginWeekDate);



                _ActualWorldState.StoreWorldInfo   = infoworld;
                _PlanningWorldState.StoreWorldInfo = infoworld;

                FillRecordingWorldInfoFromPlanningInfo();

                Modified = false;
                OnChangedContext();
            }
        }
Example #18
0
        public override void FillLastSaldo(Dictionary <long, EmployeeWeek> dict, long[] ids, DateTime aBeginWeek, bool bPlanning)
        {
            if (!bPlanning)
            {
                throw new ArgumentException("Austria don't support time recording");
            }


            DateTime todayMonday = DateTimeHelper.GetMonday(DateTime.Today);

            Debug.Assert(aBeginWeek.DayOfWeek == DayOfWeek.Monday);

            DateTime currentMonday = aBeginWeek;

            bool bPastWeek    = todayMonday > currentMonday;
            bool bFutureWeek  = todayMonday < currentMonday;
            bool bCurrentWeek = todayMonday == currentMonday;

            if (bCurrentWeek)
            {
                return;
            }
            if (bFutureWeek)
            {
                SrvEmployeeWeekPlanningList cache_weeks = new SrvEmployeeWeekPlanningList(ids, todayMonday);

                foreach (EmployeeWeek week in dict.Values)
                {
                    List <EmployeeWeekTimePlanning> list_weeks =
                        cache_weeks.GetEntitiesByEmployeeId(week.EmployeeId);
                    DateTime minDate = todayMonday;
                    EmployeeWeekTimePlanning prevWeekEntity = null;
                    if (list_weeks != null && list_weeks.Count > 0)
                    {
                        foreach (EmployeeWeekTimePlanning entity in list_weeks)
                        {
                            if (entity.WeekBegin < currentMonday && minDate <= entity.WeekBegin)
                            {
                                prevWeekEntity = entity;
                                minDate        = prevWeekEntity.WeekBegin;
                            }
                        }
                    }
                    if (prevWeekEntity != null)
                    {
                        Debug.Assert(prevWeekEntity.WeekBegin < currentMonday);
                        Debug.Assert(prevWeekEntity.WeekBegin > todayMonday);
                        week.LastSaldo = prevWeekEntity.Saldo;
                    }
                }

                return;
            }

            if (bPastWeek)
            {
                foreach (EmployeeWeek week in dict.Values)
                {
                    if (week.NewWeek)
                    {
                        week.LastSaldo = 0;
                    }
                    else
                    {
                        week.LastSaldo = EmployeeWeekProcessor.GetLastSaldoFromSaldo(week);
                    }
                }
            }
        }
Example #19
0
        public List <EmployeeWeek> BuildEmployeeWeeks(long storeid, long worldid, DateTime aBegin, DateTime aEnd, bool bPlanning)
        {
            Store store = ServerEnvironment.StoreService.FindById(storeid);

            if (store == null)
            {
                return(null);
            }
            long countryid = store.CountryID;
            bool IsAustria = store.CountryID == ServerEnvironment.CountryService.AustriaCountryID;


            // list of all employee for storeid and world
            IList employees = EmployeeService.EmployeeDao.GetPlanningEmployeesByWorld(storeid, worldid, aBegin, aEnd);

            if (employees == null && employees.Count == 0)
            {
                return(null);
            }

            long[] ids = new long[employees.Count];
            for (int i = 0; i < employees.Count; i++)
            {
                ids[i] = (employees[i] as Employee).ID;
            }

            EmployeeRelationService relationService = EmployeeService.EmployeeRelationService as EmployeeRelationService;

            List <EmployeeRelation> emplRelations = relationService.GetEmployeeRelationsByEmployeeIds(ids, aBegin, aEnd);

            //CountryStoreWorldManager swmanager = new CountryStoreWorldManager(EmployeeService.StoreWorldService);
            //swmanager.StoreId = storeid;
            if (swCountryManager == null)
            {
                //long countryid = EmployeeService.StoreService.GetCountryByStoreId(storeid);
                swCountryManager           = new CountryStoreWorldManager(EmployeeService.StoreWorldService);
                swCountryManager.CountryId = countryid;
            }

            List <EmployeeLongTimeAbsence> emplLongTimeAbsences =
                EmployeeService.EmployeeLongTimeAbsenceService.GetEmployeesHasLongTimeAbsence(ids, aBegin, aEnd);

            EmployeeLongTimeAbsenceIndexer absenceIndexer = new EmployeeLongTimeAbsenceIndexer(emplLongTimeAbsences);

            DictionListEmployeeRelations relationIndexer = new DictionListEmployeeRelations(emplRelations);

            List <EmployeeContract> contracts = EmployeeService.EmployeeContractService.GetEmployeeContracts(ids, aBegin, aEnd);

            ContractIndexer = new DictionListEmployeesContract(contracts);


            // applly relations
            EmployeeRelation relationWorld     = null;
            bool             bExistsRelation   = false;
            bool             bExistsContract   = false;
            bool             bNotExistsAbsence = true;

            _listweeks = new List <EmployeeWeek>();
            EmployeeWeek emplWeek = null;


            foreach (Employee empl in employees)
            {
                emplWeek           = new EmployeeWeek(empl.ID, empl.FullName, aBegin, aEnd, empl.OrderHwgrID.HasValue ? empl.OrderHwgrID.Value : 0);
                emplWeek.LastSaldo = (int)Math.Round(empl.BalanceHours);
                bExistsRelation    = false;

                foreach (EmployeeDay d in emplWeek.DaysList)
                {
                    relationWorld = relationIndexer.GetRelationEntity(empl.ID, d.Date);
                    if (relationWorld != null)
                    {
                        d.StoreWorldId = swCountryManager.GetStoreWorldIdByStoreAndWorldId(relationWorld.StoreID, relationWorld.WorldID.Value);
                        d.StoreId      = relationWorld.StoreID;
                    }

                    bExistsRelation |= d.HasRelation;
                }
                if (bExistsRelation)
                {
                    bExistsContract = ContractIndexer.FillEmployeeWeek(emplWeek);
                    if (bExistsContract)
                    {
                        bNotExistsAbsence = absenceIndexer.FillEmployeeWeek(emplWeek);

                        if (bNotExistsAbsence)
                        {
                            _listweeks.Add(emplWeek);
                        }
                    }
                }
            }

            FillEmployeeDayByStoreDay(storeid, aBegin, aEnd);

            _dictionWeek = EmployeeWeekProcessor.GetDictionary(_listweeks);
            _employeeids = EmployeeWeekProcessor.GetEmployeeIds(_listweeks);


            if (bPlanning)
            {
                FillPlanningEmployeeWeeks(storeid, worldid, aBegin, aEnd);
            }
            else
            {
                FillActualEmployeeWeeks(storeid, worldid, aBegin, aEnd);
            }

            //LastSaldoBuilder saldoBuilder = new LastSaldoBuilder();
            LastSaldoBuilder saldoBuilder = (IsAustria) ? new LastSaldoBuilderAustria() : new LastSaldoBuilder();



            saldoBuilder.FillLastSaldo(_dictionWeek, _employeeids, aBegin, bPlanning);

            EmployeeMonthWorkingTime monthData = new EmployeeMonthWorkingTime(EmployeeService.EmployeeTimeService as EmployeeTimeService);

            monthData.IsPlanning    = bPlanning;
            monthData.CurrentMonday = aBegin;
            CacheEmployeesAllIn managerAllIn = new CacheEmployeesAllIn();

            managerAllIn.LoadByStoreRelation(storeid);

            foreach (EmployeeWeek ew in _listweeks)
            {
                ew.WorkingTimeByMonth = monthData.GetMonthWorkingTime(ew.EmployeeId);
                ew.CountSaturday      = (byte)monthData.CountSaturday;
                ew.CountSunday        = (byte)monthData.CountSunday;

                ew.WorkingDaysBefore = (byte)monthData.WorkingDaysBefore;
                ew.WorkingDaysAfter  = (byte)monthData.WorkingDaysAfter;
                ew.AllIn             = managerAllIn.GetAllIn(ew.EmployeeId, aBegin, aEnd);
            }

            return(_listweeks);
        }