- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangecalendar2.php
- Класс: CDavExchangeCalendar
- Вызов: CDavExchangeCalendar::DoUpdateItem
static function DoUpdateItem($userId, $itemXmlId, $itemModificationLabel, $arFields, $params)
{
if (DAV_EXCH_DEBUG)
{
CDav::WriteToLog("EXCHANGE DoUpdateItem called for user ".$userId, "MDFE");
}
$exchangeScheme = COption::GetOptionString("dav", "exchange_scheme", "http");
$exchangeServer = COption::GetOptionString("dav", "exchange_server", "");
$exchangePort = COption::GetOptionString("dav", "exchange_port", "80");
$exchangeUsername = COption::GetOptionString("dav", "exchange_username", "");
$exchangePassword = COption::GetOptionString("dav", "exchange_password", "");
if (empty($exchangeServer))
{
return "";
}
$exchange = new CDavExchangeCalendar(
$exchangeScheme,
$exchangeServer,
$exchangePort,
$exchangeUsername,
$exchangePassword
);
if (GW_DEBUG)
{
$exchange->Debug();
}
$exchangeMailbox = COption::GetOptionString("dav", "exchange_mailbox", "");
$exchangeUseLogin = COption::GetOptionString("dav", "exchange_use_login", "Y");
self::InitUserEntity();
$userId = (int)$userId;
$dbUserList = CUser::GetList(
"",
"",
array("ACTIVE" => "Y", "!UF_DEPARTMENT" => false, "ID_EQUAL_EXACT" => $userId),
array("SELECT" => array("UF_BXDAVEX_MAILBOX", "UF_BXDAVEX_CALSYNC"),
"FIELDS" => array('ID', 'LOGIN'))
);
if ($arUser = $dbUserList->Fetch())
{
$mailbox = (($exchangeUseLogin === "Y")
? $arUser["LOGIN"] . $exchangeMailbox
: $arUser["UF_BXDAVEX_MAILBOX"])
;
if (!empty($mailbox))
{
if ($params['editInstance'])
{
[$itemXmlId, $itemModificationLabel] = $exchange->FindInstance([
'parentExchangeId' => $params['originalDavXmlId'],
'changekey' => $arFields['DAV_EXCH_LABEL'],
'parentDateFrom' => $params['parentDateFrom'],
'parentDateTo' => $params['parentDateTo'],
'dateFrom' => $arFields['DATE_FROM'],
'dateTo' => $arFields['DATE_TO'],
'parentTz' => $params['instanceTz']
]);
}
$arResult = $exchange->Update(
array("XML_ID" => $itemXmlId, "MODIFICATION_LABEL" => $itemModificationLabel),
$arFields,
[
'editInstance' => $params['editInstance'],
// 'instanceExchangeId' => $itemId['id'],
// 'changeKey' => $itemId['changekey'],
]
);
if (is_array($arResult) && !empty($arResult))
{
return $arResult[0];
}
}
}
return $exchange->GetErrors();
}