- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/integration/timeman/worktime.php
- Класс: BitrixIntranetIntegrationTimemanWorktime
- Вызов: Worktime::getTMDayDataFromDB
static function getTMDayDataFromDB()
{
if (!Loader::includeModule("timeman"))
{
return;
}
$openedDayCount = 0;
$closedDayCount = 0;
$currentDate = new Date;
$currentDate = $currentDate->getTimestamp();
$newValue = [
"date" => $currentDate,
"tm_days" => []
];
$worktimeRepository = DependencyManager::getInstance()->getWorktimeRepository();
$currentDate = new Date;
$filter = Query::filter()->where('RECORDED_START_TIMESTAMP', '>=', $currentDate->getTimestamp());
$records = $worktimeRepository->findAll(['*'], $filter);
foreach ($records as $record)
{
$recordManager = DependencyManager::getInstance()->buildWorktimeRecordManager($record, $record->obtainSchedule(), $record->obtainShift());
if ($record->getCurrentStatus() === 'OPENED' && !$recordManager->isRecordExpired())
{
$openedDayCount++;
$newValue["tm_days"][$record->getUserId()] = "O";
}
elseif ($record->getCurrentStatus() === 'CLOSED')
{
$closedDayCount++;
if (!array_key_exists($record->getUserId(), $newValue["tm_days"]))
{
$newValue["tm_days"][$record->getUserId()] = "C";
}
}
}
Option::set("intranet", "ustat_online_timeman", serialize($newValue));
$res = [
"OPENED" => $openedDayCount,
"CLOSED" => $closedDayCount
];
return $res;
}