- Модуль: voximplant
- Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_phone.php
- Класс: CVoxImplantPhone
- Вызов: CVoxImplantPhone::SynchronizeUserPhones
static function SynchronizeUserPhones()
{
$offset = intval(COption::GetOptionInt("voximplant", "sync_offset", 0));
$result = BitrixMainUserTable::getList(Array(
'select' => Array('ID', 'WORK_PHONE', 'PERSONAL_PHONE', 'PERSONAL_MOBILE', 'UF_PHONE_INNER'),
'limit' => 100,
'offset' => $offset,
'order' => 'ID'
));
$count = 0;
while($user = $result->fetch())
{
$user["WORK_PHONE"] = CVoxImplantPhone::Normalize($user["WORK_PHONE"]);
if ($user["WORK_PHONE"])
{
VIPhoneTable::merge(['USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["WORK_PHONE"], 'PHONE_MNEMONIC' => "WORK_PHONE"]);
}
$user["PERSONAL_PHONE"] = CVoxImplantPhone::Normalize($user["PERSONAL_PHONE"]);
if ($user["PERSONAL_PHONE"])
{
VIPhoneTable::merge(Array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["PERSONAL_PHONE"], 'PHONE_MNEMONIC' => "PERSONAL_PHONE"));
}
$user["PERSONAL_MOBILE"] = CVoxImplantPhone::Normalize($user["PERSONAL_MOBILE"]);
if ($user["PERSONAL_MOBILE"])
{
VIPhoneTable::merge(Array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["PERSONAL_MOBILE"], 'PHONE_MNEMONIC' => "PERSONAL_MOBILE"));
}
$user["UF_PHONE_INNER"] = (int)preg_replace("/[^0-9]/i", "", $user["UF_PHONE_INNER"] ?? '');
if ($user["UF_PHONE_INNER"] > 0 && $user["UF_PHONE_INNER"] < 10000)
{
VIPhoneTable::merge(Array('USER_ID' => intval($user['ID']), 'PHONE_NUMBER' => $user["UF_PHONE_INNER"], 'PHONE_MNEMONIC' => "UF_PHONE_INNER"));
}
$count++;
}
if ($count > 0)
{
$offset = $offset+100;
COption::SetOptionInt("voximplant", "sync_offset", $offset);
return "CVoxImplantPhone::SynchronizeUserPhones();";
}
else
{
COption::RemoveOption("voximplant", "sync_offset");
return false;
}
}