- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/requisite/conversion/psrequisiteconverter.php
- Класс: Bitrix\Crm\Requisite\Conversion\PSRequisiteConverter
- Вызов: PSRequisiteConverter::updatePSParams
static function updatePSParams()
{
if (!is_array(self::$psEntityTreeMap))
return;
$paySystem = new \CSalePaySystemAction();
foreach (self::$paySystemData as $psInfo)
{
if (is_array($psInfo) && is_array($psInfo['PSA_PARAMS']) && is_array($psInfo['PSA_PARAMS_ORIG']))
{
$psId = isset($psInfo['PS_ID']) ? (int)$psInfo['PS_ID'] : 0;
$relatedCompanyId = isset(self::$psEntityTreeMap[$psId]['CO']) ?
(int)self::$psEntityTreeMap[$psId]['CO'] : 0;
$paramsAllEmpty = isset($psInfo['PSA_PARAMS_ALL_EMPTY']) ?
($psInfo['PSA_PARAMS_ALL_EMPTY'] === 'Y' ? 'Y' : 'N') : 'N';
if ($relatedCompanyId > 0 || $paramsAllEmpty === 'Y')
{
$psaId = isset($psInfo['PSA_ID']) ? (int)$psInfo['PSA_ID'] : 0;
$personTypeId = isset($psInfo['PSA_PERSON_TYPE_ID']) ? (int)$psInfo['PSA_PERSON_TYPE_ID'] : 0;
$presetCountryId = isset($psInfo['PRESET_COUNTRY_ID']) ? (int)$psInfo['PRESET_COUNTRY_ID'] : 0;
$origPsaParams = $psInfo['PSA_PARAMS_ORIG'];
// convert params
$origPsaParamsModified = false;
foreach ($psInfo['PSA_PARAMS'] as $paramName => $convInfo)
{
if (isset($convInfo['VALUE']) && (!empty($convInfo['VALUE']) || $paramsAllEmpty === 'Y'))
{
$paramType = '';
$paramValue = '';
switch ($convInfo['ENTITY_ABBR'])
{
case 'CO':
$paramType = 'CRM_MYCOMPANY';
$paramValue = $convInfo['FIELD_NAME'];
break;
case 'CO.MF':
$paramType = 'CRM_MYCOMPANY';
$paramValue = $convInfo['FIELD_NAME'];
if (isset($convInfo['MF_VALUE_TYPE']) && !empty($convInfo['MF_VALUE_TYPE']))
$paramValue .= '_'.$convInfo['MF_VALUE_TYPE'];
break;
case 'RQ':
if ($presetCountryId > 0)
{
$paramType = 'MC_REQUISITE';
$paramValue = $convInfo['FIELD_NAME'];
if ($paramValue === EntityRequisite::ADDRESS && isset($convInfo['ADDR_TYPE']))
$paramValue .= '_'.(int)$convInfo['ADDR_TYPE'];
$paramValue .= '|'.$presetCountryId;
}
break;
case 'BD':
if ($presetCountryId > 0)
{
$paramType = 'MC_BANK_DETAIL';
$paramValue = $convInfo['FIELD_NAME'].'|'.$presetCountryId;
}
break;
}
if (!empty($paramType) && !empty($paramValue))
{
if (is_array($origPsaParams[$paramName]))
{
$origPsaParams[$paramName]['TYPE'] = $paramType;
$origPsaParams[$paramName]['VALUE'] = $paramValue;
$origPsaParamsModified = true;
}
}
}
}
// save modified params
if ($origPsaParamsModified)
{
$psaParams = \CSalePaySystemAction::SerializeParams($origPsaParams);
$psaFields = array('PARAMS' => $psaParams, 'PERSON_TYPE_ID' => $personTypeId);
$paySystem->Update($psaId, $psaFields);
}
}
}
}
}