workTimeEntryAccessService
workTimeEntryAccessService
- workTimeEntryAccessService
- GetManyByUserAndPeriod(userId, dateFrom, dateTo) ⇒
Promise.<ApiResult.<GetWorkTimeEntriesByUserResponseDto>> - GetMany(params) ⇒
Promise.<ApiResult.<GetWorkTimeEntriesResponseDto>> - Get(id) ⇒
Promise.<ApiResult.<GetWorkTimeEntryResponseDto>> - Create(params) ⇒
Promise.<ApiResult.<CreateWorkTimeEntryResponseDto>> - Update(params) ⇒
Promise.<ApiResult.<UpdateWorkTimeEntryResponseDto>> - Remove(id) ⇒
Promise.<ApiResult> - GetCurrentTimer() ⇒
Promise.<ApiResult.<GetCurrentTimerResponseDto>> - StartTimer([params]) ⇒
Promise.<ApiResult.<StartTimerResponseDto>> - StopTimer([params]) ⇒
Promise.<ApiResult.<StopTimerResponseDto>> - CancelTimer() ⇒
Promise.<ApiResult>
- GetManyByUserAndPeriod(userId, dateFrom, dateTo) ⇒
WorkTimeEntryAccessService ⏏
Записи учёта рабочего времени офис-менеджеров (ManagerTimeTrackerService). CRUD по записям + методы запущенного таймера (Start / Stop / Cancel / GetCurrent).
Kind: Exported class
GetManyByUserAndPeriod(userId, dateFrom, dateTo) ⇒ Promise.<ApiResult.<GetWorkTimeEntriesByUserResponseDto>>
Возвращает все записи рабочего времени пользователя за период [dateFrom..dateTo].
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| userId | number | ID пользователя |
| dateFrom | string | Начало периода (ISO 8601 UTC, например 2026-05-01T00:00:00Z) |
| dateTo | string | Конец периода включительно (ISO 8601 UTC, например 2026-05-31T23:59:59Z) |
Возвращаемые данные
Returns: Promise.<ApiResult.<GetWorkTimeEntriesByUserResponseDto>> - Список записей и их количество (GetWorkTimeEntriesByUserResponseDto)
GetMany(params) ⇒ Promise.<ApiResult.<GetWorkTimeEntriesResponseDto>>
Возвращает страницу записей рабочего времени с фильтрами. Все фильтры опциональны: не переданы — условие не применяется. dateTimeFrom / dateTimeTo сравниваются с startedAt записи (ISO 8601 UTC). Контракт совпадает с GET /Api/Clients BusinessLogicService — пагинация передаётся вложенным объектом.
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| params | GetWorkTimeEntriesRequestDto | Фильтры и параметры пагинации. См. GetWorkTimeEntriesRequestDto |
Возвращаемые данные
Returns: Promise.<ApiResult.<GetWorkTimeEntriesResponseDto>> - Страница записей под полем pagination (GetWorkTimeEntriesResponseDto)
Get(id) ⇒ Promise.<ApiResult.<GetWorkTimeEntryResponseDto>>
Возвращает запись рабочего времени по идентификатору.
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| id | number | Идентификатор записи |
Возвращаемые данные
Returns: Promise.<ApiResult.<GetWorkTimeEntryResponseDto>> - Запись под полем entry (GetWorkTimeEntryResponseDto)
Create(params) ⇒ Promise.<ApiResult.<CreateWorkTimeEntryResponseDto>>
Создаёт запись рабочего времени
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| params | CreateWorkTimeEntryRequestDto | Поля новой записи. См. CreateWorkTimeEntryRequestDto |
Возвращаемые данные
Returns: Promise.<ApiResult.<CreateWorkTimeEntryResponseDto>> - Идентификатор записи и список soft-предупреждений (CreateWorkTimeEntryResponseDto)
WARNING
На стороне сервиса прогоняется полный пайплайн валидации (overlap, daily-limit, ArbZG break, 21-day backlog, absence-day-needs-note). Жёсткие нарушения приводят к 4xx; мягкие предупреждения возвращаются в problems.
INFO
Если день записи покрыт утверждённым отсутствием (Vacation / SickLeave / SpecialLeave / UnpaidLeave / TimeOffInLieu), note обязательно — без него сервер вернёт 400 work-time-entry-on-absence-day-needs-note. Если note передан, отсутствие на этот день автоматически прерывается: 1-дневное soft-удаляется, многодневное — обрезается с края или разбивается на две записи (docx Ч.1 §11.1).
Update(params) ⇒ Promise.<ApiResult.<UpdateWorkTimeEntryResponseDto>>
Обновляет существующую запись. Идентификатор передаётся в теле
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| params | UpdateWorkTimeEntryRequestDto | Новое состояние записи (включая id). См. UpdateWorkTimeEntryRequestDto |
Возвращаемые данные
Returns: Promise.<ApiResult.<UpdateWorkTimeEntryResponseDto>> - Список soft-предупреждений (UpdateWorkTimeEntryResponseDto)
WARNING
На записи в статусе Locked операция запрещена.
Remove(id) ⇒ Promise.<ApiResult>
Soft-удаление записи
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| id | number | Идентификатор записи |
Возвращаемые данные
Returns: Promise.<ApiResult> - Подтверждение операции (successfully: true)
WARNING
На записи в статусе Locked операция запрещена.
GetCurrentTimer() ⇒ Promise.<ApiResult.<GetCurrentTimerResponseDto>>
Возвращает текущий запущенный таймер вызывающего пользователя (запись с endedAt === null) или null, если таймер не запущен.
Возвращаемые данные
Returns: Promise.<ApiResult.<GetCurrentTimerResponseDto>> - Запись таймера (GetCurrentTimerResponseDto)
StartTimer([params]) ⇒ Promise.<ApiResult.<StartTimerResponseDto>>
Запускает таймер для вызывающего пользователя
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| [params] | StartTimerRequestDto | Опциональная заметка для запущенной сессии. См. StartTimerRequestDto |
Возвращаемые данные
Returns: Promise.<ApiResult.<StartTimerResponseDto>> - Запись запущенного таймера (endedAt === null) (StartTimerResponseDto)
INFO
Идемпотентно: если таймер уже запущен, возвращает существующую запись без изменений.
StopTimer([params]) ⇒ Promise.<ApiResult.<StopTimerResponseDto>>
Останавливает запущенный таймер: устанавливает endedAt = now, переносит опциональные breakMinutes / note и прогоняет полный пайплайн валидации
Принимаемые параметры
| Param | Type | Description |
|---|---|---|
| [params] | StopTimerRequestDto | Перерыв и/или заметка для финализируемой записи. См. StopTimerRequestDto |
Возвращаемые данные
Returns: Promise.<ApiResult.<StopTimerResponseDto>> - Идентификатор записи и список soft-предупреждений (StopTimerResponseDto)
WARNING
При жёстком нарушении возвращает 4xx и оставляет таймер запущенным — пользователь может исправить состояние и повторить вызов. На пересечении полуночи (день startedAt ≠ день now) явно отказывает с типом work-time-entry-timer-crossed-midnight.
INFO
Если сегодняшний день покрыт утверждённым отсутствием, note обязательно (work-time-entry-on-absence-day-needs-note без него); при наличии note отсутствие автоматически прерывается так же, как при Create (docx Ч.1 §11.1).
CancelTimer() ⇒ Promise.<ApiResult>
Отменяет запущенный таймер (soft-удаление записи)
Возвращаемые данные
Returns: Promise.<ApiResult> - Подтверждение операции (successfully: true)
INFO
Если таймер не запущен — операция no-op, без ошибки.