Бизнес-календарь
Назначение |
Предназначена для хранения информации о расписании работы сотрудников (количество рабочих дней, рабочих часов и др.) на определённый период времени. |
Класс карточки |
|
Для работы с карточкой предназначен сервис ICalendarService
. Сервис предоставляет следующие операции:
-
Добавление рабочих дат в бизнес-календарь.
-
Добавление рабочего время.
-
Получение сроков рабочего времени для различных условий.
В примере создаётся бизнес-календарь в котором все пятницы 2014 года объявляются сокращенными (рабочее время с 10 до 15 часов). По созданному календарю будет работать текущий пользователь. Дополнительных проверок не проводим.
ICalendarService calendarService = objectContext.GetService<ICalendarService>();
IStaffService staffService = objectContext.GetService<IStaffService>(); (1)
CardData cardData = userSession.CardManager.CreateCardData(DocsVision.BackOffice.CardLib.CardDefs.CardCalendar.ID); (2)
DocsVision.BackOffice.ObjectModel.Calendar calendar = objectContext.GetObject<DocsVision.BackOffice.ObjectModel.Calendar>(cardData.Id); (3)
calendar.MainInfo.Name = "bestWorks";
calendar.Description = "Легкий день";
int year = 2014;
CalendarYear calendarYear = calendarService.AddCalendarYear(year); (4)
calendarYear.Days = new ObjectCollection<CalendarDay>();
DateTime startDate = new DateTime(year, 1, 1); (5)
for (DateTime i = startDate; i <= new DateTime(year, 12, 31); i = i.AddDays(1))
{
if (i.DayOfWeek = DayOfWeek.Friday)
{ (6)
CalendarWorkTime calendarWorkTime = calendarService.AddCalendarWorkTime(new System.DateTime(2000, 1, 1, 10, 0, 0), new System.DateTime(2000, 1, 1, 15, 0, 0)); (7)
CalendarDay calendarDay = calendarService.AddCalendarDay(i.DayOfYear);
calendarDay.WorkTime = new ObjectCollection<CalendarWorkTime>();
calendarDay.WorkTime.Add(calendarWorkTime); (8)
calendarYear.Days.Add(calendarDay); (9)
}
}
calendar.Years.Add(calendarYear); (10)
staffService.GetCurrentEmployee().CalendarID = cardData.Id; (11)
objectContext.AcceptChanges(); (12)
1 | Инициализация контекста объектов и получение сервисов. |
2 | Инициализация карточки типа Бизнес-календарь (использует CardManager , старый API). |
3 | Доступ к карточке через объектную модель. |
4 | Создание объекта типа "Год". |
5 | Инициализация коллекции дней в году. |
6 | Заполнение дней. |
7 | Создание объекта содержащего укороченное рабочее время. |
8 | Создание объекта типа "День" и добавление в него рабочего времени. |
9 | Добавление дня в год. |
10 | Сохранение года в календаре. |
11 | Присвоение календаря текущему пользователю. |
12 | Сохранение всех изменений. |