...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicatebankdetailcriterion.php
- Класс: Bitrix\Crm\Integrity\DuplicateBankDetailCriterion
- Вызов: DuplicateBankDetailCriterion::prepareBulkData
static function prepareBulkData(array $bankDetails) { $result = array(); $requisiteCountryMap = array(); $presetCountryMap = array(); $bdFieldsMap = self::getFieldsMap(); foreach ($bankDetails as $bankDetailFields) { $countryId = 0; if (isset($bankDetailFields['REQUISITE_PRESET_COUNTRY_ID'])) { $countryId = (int)$bankDetailFields['REQUISITE_PRESET_COUNTRY_ID']; } else if (isset($bankDetailFields['COUNTRY_ID'])) { $countryId = (int)$bankDetailFields['COUNTRY_ID']; } else if (isset($bankDetailFields['REQUISITE_PRESET_ID'])) { $presetId = (int)$bankDetailFields['REQUISITE_PRESET_ID']; if ($presetId > 0) { if (isset($presetCountryMap[$presetId])) { $countryId = $presetCountryMap[$presetId]; } else { $preset = new EntityPreset(); $presetInfo = $preset->getById($presetId); if (is_array($presetInfo) && isset($presetInfo['COUNTRY_ID'])) $countryId = $presetCountryMap[$presetId] = (int)$presetInfo['COUNTRY_ID']; } } unset($presetId); } else if (isset($bankDetailFields['ENTITY_TYPE_ID']) && isset($bankDetailFields['ENTITY_ID'])) { $entityTypeId = (int)$bankDetailFields['ENTITY_TYPE_ID']; $entityId = (int)$bankDetailFields['ENTITY_ID']; if ($entityTypeId === \CCrmOwnerType::Requisite && $entityId > 0) { $requisite = self::getRequisite(); if (isset($requisiteCountryMap[$entityId])) { $countryId = $requisiteCountryMap[$entityId]; } else { $res = $requisite->getList( array( 'select' => array('PRESET_COUNTRY_ID' => 'PRESET.COUNTRY_ID'), 'filter' => array('=ID' => $entityId) ) ); if ($row = $res->fetch()) { if (isset($row['PRESET_COUNTRY_ID']) && $row['PRESET_COUNTRY_ID'] > 0) $countryId = $requisiteCountryMap[$entityId] = (int)$row['PRESET_COUNTRY_ID']; } unset($res); } } } if ($countryId > 0) { if (is_array($bdFieldsMap[$countryId] ?? null)) { foreach ($bdFieldsMap[$countryId] as $bdFieldName) { if (isset($bankDetailFields[$bdFieldName]) && !empty($bankDetailFields[$bdFieldName])) { if (!is_array($result[$countryId] ?? null)) $result[$countryId] = []; if (!is_array($result[$countryId][$bdFieldName] ?? null)) $result[$countryId][$bdFieldName] = []; $result[$countryId][$bdFieldName][] = $bankDetailFields[$bdFieldName]; } } } } } return $result; }