- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/requisite/importhelper.php
- Класс: Bitrix\Crm\Requisite\ImportHelper
- Вызов: ImportHelper::getParsedRequisiteDupParams
public function getParsedRequisiteDupParams($requisiteDupControlFieldMap)
{
$result = array(
'DUP_PARAM_LIST' => array(),
'DUP_PARAM_FIELDS' => array()
);
if (!$this->isReady())
return $result;
$dupParamList = $dupParamFieldMap = array();
$rqIndex = 0;
foreach ($this->getParsedRequisites() as $requisiteFields)
{
if ($this->assocPreset)
{
$presetId = isset($requisiteFields['PRESET_ID']) ? (int)$requisiteFields['PRESET_ID'] : 0;
if ($presetId <= 0 && $this->useDefPreset && $this->defPresetId > 0)
{
$presetId = $this->defPresetId;
}
}
else if ($this->defPresetId > 0)
{
$presetId = $this->defPresetId;
}
$presetInfo = self::getCachedPresetInfo($presetId);
if (is_array($presetInfo) && isset($presetInfo['COUNTRY_ID']))
{
$countryId = (int)$presetInfo['COUNTRY_ID'];
$rqDupParams = null;
if (is_array($requisiteDupControlFieldMap['requisite'][$countryId])
&& !empty($requisiteDupControlFieldMap['requisite'][$countryId]))
{
foreach (array_keys($requisiteDupControlFieldMap['requisite'][$countryId]) as $fieldName)
{
if (isset($requisiteFields[$fieldName])
&& ((is_string($requisiteFields[$fieldName])
&& $requisiteFields[$fieldName] <> '')
|| !empty($requisiteFields[$fieldName])))
{
if ($rqDupParams === null)
{
$rqDupParams = array(
'ID' => 'n'.$rqIndex++,
'PRESET_ID' => $presetId,
'PRESET_COUNTRY_ID' => $countryId
);
}
$rqDupParams[$fieldName] = $requisiteFields[$fieldName];
$dupParamFieldMap['RQ.'.$fieldName.'|'.$countryId] = true;
}
}
}
if (is_array($requisiteFields['BANK_DETAILS']))
{
$bdIndex = 0;
foreach ($requisiteFields['BANK_DETAILS'] as $bankDetailFields)
{
$bdDupParams = null;
if (is_array($requisiteDupControlFieldMap['bankDetail'][$countryId])
&& !empty($requisiteDupControlFieldMap['bankDetail'][$countryId]))
{
foreach (array_keys($requisiteDupControlFieldMap['bankDetail'][$countryId]) as $fieldName)
{
if (isset($bankDetailFields[$fieldName])
&& ((is_string($bankDetailFields[$fieldName])
&& $bankDetailFields[$fieldName] <> '')
|| !empty($bankDetailFields[$fieldName])))
{
if ($rqDupParams === null)
{
$rqDupParams = array(
'ID' => 'n'.$rqIndex++,
'PRESET_ID' => $presetId,
'PRESET_COUNTRY_ID' => $countryId
);
}
if ($bdDupParams === null)
{
$bdDupParams = array(
'ID' => 'n'.$bdIndex++,
'ENTITY_TYPE_ID' => \CCrmOwnerType::Requisite,
'ENTITY_ID' => $rqDupParams['ID'],
'COUNTRY_ID' => $countryId
);
}
$bdDupParams[$fieldName] = $bankDetailFields[$fieldName];
$dupParamFieldMap['RQ.BD.'.$fieldName.'|'.$countryId] = true;
}
}
}
if (is_array($bdDupParams))
{
if (!is_array($rqDupParams['BD']))
$rqDupParams['BD'] = array();
$rqDupParams['BD'][$bdDupParams['ID']] = $bdDupParams;
}
}
}
if (is_array($rqDupParams))
{
$dupParamList[$rqDupParams['ID']] = $rqDupParams;
}
}
}
if (!empty($dupParamList))
$result['DUP_PARAM_LIST'] = $dupParamList;
if (!empty($dupParamFieldMap))
$result['DUP_PARAM_FIELDS'] = array_keys($dupParamFieldMap);
return $result;
}