- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/requisite/conversion/psrequisiteconverter.php
- Класс: Bitrix\Crm\Requisite\Conversion\PSRequisiteConverter
- Вызов: PSRequisiteConverter::updateCompanyMF
static function updateCompanyMF($id, $info)
{
// update IS_MY_COMPANY flag
$res = \CCrmCompany::GetListEx(
array(),
array('=ID' => $id),
false,
array('nTopCount' => 1),
array('ID', 'IS_MY_COMPANY')
);
$row = $res->Fetch();
if (isset($row['IS_MY_COMPANY']) && $row['IS_MY_COMPANY'] !== 'Y')
{
$connection = Main\Application::getConnection();
$strSql = '';
if ($connection instanceof Main\DB\MysqlCommonConnection)
{
$strSql = "UPDATE b_crm_company SET IS_MY_COMPANY = 'Y' WHERE ID = $id";
}
elseif ($connection instanceof Main\DB\MssqlConnection
|| $connection instanceof Main\DB\OracleConnection)
{
$strSql = "UPDATE B_CRM_COMPANY SET IS_MY_COMPANY = 'Y' WHERE ID = $id";
}
if (!empty($strSql))
{
$connection->queryExecute($strSql);
}
}
if ($id > 0 && is_array($info) && is_array($info['CO'])
&& ((is_array($info['CO']['PHONE']) && !empty($info['CO']['PHONE']))
|| (is_array($info['CO']['EMAIL'] && !empty($info['CO']['EMAIL'])))))
{
$phoneList = array();
$emailList = array();
$phoneToAdd = array();
$emailToAdd = array();
$res = \CCrmFieldMulti::GetList(
array('ID' => 'asc'),
array('ENTITY_ID' => 'COMPANY', 'ELEMENT_ID' => (int)$id)
);
while ($row = $res->Fetch())
{
if ($row['COMPLEX_ID'] === 'PHONE_WORK')
{
$phoneList[] = trim(strval($row['VALUE']));
}
else if ($row['COMPLEX_ID'] === 'EMAIL_WORK')
{
$emailList[] = trim(strval($row['VALUE']));
}
}
if (!empty($info['CO']['PHONE']))
{
if (empty($phoneList))
{
$phoneToAdd = $info['CO']['PHONE'];
}
else
{
foreach ($info['CO']['PHONE'] as $value)
{
if (!in_array($value, $phoneList, true))
$phoneToAdd[] = $value;
}
}
}
if (!empty($info['CO']['EMAIL']))
{
if (empty($emailList))
{
$emailToAdd = $info['CO']['EMAIL'];
}
else
{
foreach ($info['CO']['EMAIL'] as $value)
{
if (!in_array($value, $emailList, true))
$emailToAdd[] = $value;
}
}
}
$fieldMulti = new \CCrmFieldMulti();
foreach ($phoneToAdd as $value)
{
$fieldMulti->Add(array(
'ENTITY_ID' => 'COMPANY',
'ELEMENT_ID' => (int)$id,
'TYPE_ID' => 'PHONE',
'VALUE_TYPE' => 'WORK',
'COMPLEX_ID' => 'PHONE_WORK',
'VALUE' => $value
));
}
foreach ($emailToAdd as $value)
{
$fieldMulti->Add(array(
'ENTITY_ID' => 'COMPANY',
'ELEMENT_ID' => (int)$id,
'TYPE_ID' => 'EMAIL',
'VALUE_TYPE' => 'WORK',
'COMPLEX_ID' => 'EMAIL_WORK',
'VALUE' => $value
));
}
}
}