// must call after change store or date protected void LoadContext() { if (CurrentStoreId != 0) { ErrorCode = ErrorCodes.Empty; ClearContext(); m_storedays = ClientEnvironment.StoreService.GetStoreDays(CurrentStoreId, BeginTime, EndTime); if (m_storedays.IsUndefined()) { ErrorCode |= ErrorCodes.NotExistsOpenTime; } if (m_storedays.AvgDayInWeek == 0) { ErrorCode |= ErrorCodes.NotExistsAvgDaysPerWeek; } if (ErrorCodes.Empty != ErrorCode) { ProcessError(); return; } _ListPlanningEmployees = ClientEnvironment.EmployeeService.GetTimePlannignEmployee2(CurrentStoreId, BeginTime, EndTime); if (_ListPlanningEmployees != null) { foreach (EmployeePlanningWeek week in _ListPlanningEmployees) { week.AvgDaysWeek = StoreDays.AvgDayInWeek; week.InitWeekState(); } } ApplyStoreDays(); BuildNewWeekWorldPlanningList(); LoadWorkingAndAbsenceTimes(); } }
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(); } }