- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/merger/requisitemerginghelper.php
- Класс: Bitrix\Crm\Merger\RequisiteMergingHelper
- Вызов: RequisiteMergingHelper::mergeBankDetail
protected function mergeBankDetail(array $targRequisite, array $seedRequisite,
array &$targBankDetail, array $seedBankDetail)
{
$seedCountryId = isset($seedBankDetail['COUNTRY_ID']) ? (int)$seedBankDetail['COUNTRY_ID'] : 0;
$targCountryId = isset($targBankDetail['COUNTRY_ID']) ? (int)$targBankDetail['COUNTRY_ID'] : 0;
if (!($seedCountryId > 0 && $seedCountryId === $targCountryId))
throw new Main\SystemException('To merge, the bank details must relate to one country.');
$countryId = $seedCountryId;
unset($seedCountryId, $targCountryId);
$fieldsToUpdate = array();
if (is_array($this->bankDetailFieldsMap[$countryId]) && !empty($this->bankDetailFieldsMap[$countryId]))
{
foreach ($this->bankDetailFieldsMap[$countryId] as $fieldName)
{
$seedValue = isset($seedBankDetail[$fieldName]) ? $seedBankDetail[$fieldName] : array();
$targValue = isset($targBankDetail[$fieldName]) ? $targBankDetail[$fieldName] : array();
$isSeedValueEmpty = ($seedValue === null
|| (is_string($seedValue) ? $seedValue == '' : empty($seedValue)));
$isTargValueEmpty = ($targValue === null
|| (is_string($targValue) ? $targValue == '' : empty($targValue)));
if (!$isSeedValueEmpty && $isTargValueEmpty)
{
$targBankDetail[$fieldName] = $seedValue;
$fieldsToUpdate[$fieldName] = $seedValue;
}
}
}
if (!empty($fieldsToUpdate))
{
$this->addMergeAction(
self::ACTION_BANK_DETAIL_UPDATE,
array(
'TARG_BANK_DETAIL_ID' => $targBankDetail['ID'],
'FIELDS' => $fieldsToUpdate
)
);
}
$this->addMergeAction(
self::ACTION_BANK_DETAIL_MOVE_DEPENDECIES,
array(
'TARG_ENTITY_TYPE_ID' => $targRequisite['ENTITY_TYPE_ID'],
'TARG_ENTITY_ID' => $targRequisite['ENTITY_ID'],
'SEED_ENTITY_TYPE_ID' => $seedRequisite['ENTITY_TYPE_ID'],
'SEED_ENTITY_ID' => $seedRequisite['ENTITY_ID'],
'TARG_REQUISITE_ID' => $targBankDetail['ENTITY_ID'],
'TARG_BANK_DETAIL_ID' => $targBankDetail['ID'],
'SEED_REQUISITE_ID' => $seedBankDetail['ENTITY_ID'],
'SEED_BANK_DETAIL_ID' => $seedBankDetail['ID']
)
);
$this->addMergeAction(
self::ACTION_BANK_DETAIL_DELETE,
array(
'SEED_BANK_DETAIL_ID' => $seedBankDetail['ID']
)
);
}