3namespace Bitrix\Calendar\Update;
5use Bitrix\Calendar\Internals\Counter\CounterService;
6use Bitrix\Calendar\Internals\Counter\Event\EventDictionary;
7use Bitrix\Calendar\Internals\Log\Logger;
8use Bitrix\Main\Update\Stepper;
9use Bitrix\Main\UserTable;
17 private const LIMIT = 50;
25 $lastId = (int)(
$option[
'lastId'] ?? 0);
32 if (!
count($this->users))
34 return self::FINISH_EXECUTION;
38 ->reCalculateCounters()
42 return self::CONTINUE_EXECUTION;
45 private function fillUsers(): self
51 $this->users = $this->getAllUsers();
53 catch (\Exception $exception)
55 (
new Logger())->log($exception);
61 private function reCalculateCounters(): self
64 foreach ($this->users as
$user)
70 CounterService::addEvent(EventDictionary::EVENT_ATTENDEES_UPDATED, [
71 'user_ids' => $userIds,
77 private function setLastId(
int $id = 0): self
83 private function updateLastId(): self
85 $this->lastId = max(array_map(fn (
array $user):
int => (
int)
$user[
'ID'], $this->users));
95 private function getAllUsers():
array
97 $query = UserTable::query()
99 ->where(
'ID',
'>', $this->lastId)
100 ->where(
'ACTIVE',
'Y')
101 ->where(
'IS_REAL_USER',
'Y')
102 ->where(
'UF_DEPARTMENT',
'!=',
false)
103 ->setLimit($this->getLimit());
105 return $query->exec()->fetchAll();
108 private function getLimit(): int
110 $limit = \COption::GetOptionString(
'calendar',
'calendarReCounterStepperLimit',
'');
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"