- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/conversion/leadconversionwizard.php
- Класс: Bitrix\Crm\Conversion\LeadConversionWizard
- Вызов: LeadConversionWizard::execute
public function execute(array $contextData = null)
{
if ($this->isNewApi())
{
return parent::execute($contextData);
}
/** @var LeadConverter $converter */
$converter = $this->converter;
if(is_array($contextData) && !empty($contextData))
{
$converter->setContextData(array_merge($converter->getContextData(), $contextData));
}
$result = false;
try
{
$converter->initialize();
do
{
$converter->executePhase();
}
while($converter->moveToNextPhase());
$resultData = $converter->getResultData();
if($this->isRedirectToShowEnabled())
{
if(isset($resultData[\CCrmOwnerType::DealName]))
{
if ($this->isMobileContext)
{
$this->redirectUrl = "/mobile/crm/deal/?page=view&deal_id=".$resultData[\CCrmOwnerType::DealName];
}
else
{
$this->redirectUrl = \CCrmOwnerType::GetEntityShowPath(
\CCrmOwnerType::Deal,
$resultData[\CCrmOwnerType::DealName],
false,
array('ENABLE_SLIDER' => $this->enableSlider)
);
}
}
elseif(isset($resultData[\CCrmOwnerType::ContactName]))
{
if ($this->isMobileContext)
{
$this->redirectUrl = "/mobile/crm/contact/?page=view&contact_id=".$resultData[\CCrmOwnerType::ContactName];
}
else
{
$this->redirectUrl = \CCrmOwnerType::GetEntityShowPath(
\CCrmOwnerType::Contact,
$resultData[\CCrmOwnerType::ContactName],
false,
array('ENABLE_SLIDER' => $this->enableSlider)
);
}
}
elseif(isset($resultData[\CCrmOwnerType::CompanyName]))
{
if ($this->isMobileContext)
{
$this->redirectUrl = "/mobile/crm/company/?page=view&company_id=".$resultData[\CCrmOwnerType::CompanyName];
}
else
{
$this->redirectUrl = \CCrmOwnerType::GetEntityShowPath(
\CCrmOwnerType::Company,
$resultData[\CCrmOwnerType::CompanyName],
false,
array('ENABLE_SLIDER' => $this->enableSlider)
);
}
}
$this->eventParams = array(
'name' => 'onCrmEntityConvert',
'args' => array(
'entityTypeId' => \CCrmOwnerType::Lead,
'entityTypeName' => \CCrmOwnerType::LeadName,
'entityId' => $this->getEntityID()
)
);
}
$result = true;
}
catch(EntityConversionException $e)
{
$this->exception = $e;
if($e->getTargetType() === EntityConversionException::TARG_DST)
{
if ($this->isMobileContext)
{
switch($e->getDestinationEntityTypeID())
{
case (\CCrmOwnerType::Deal):
{
$this->redirectUrl = "/mobile/crm/deal/?page=edit&lead_id=".$converter->getEntityID();
break;
}
case (\CCrmOwnerType::Contact):
{
$this->redirectUrl = "/mobile/crm/contact/?page=edit&lead_id=".$converter->getEntityID();
break;
}
case (\CCrmOwnerType::Company):
{
$this->redirectUrl = "/mobile/crm/company/?page=edit&lead_id=".$converter->getEntityID();
break;
}
}
}
else
{
//Required for Deal category
$config = $converter->getConfig();
$options = array(
'ENTITY_SETTINGS' => $config->getEntityInitData($e->getDestinationEntityTypeID()),
'ENABLE_SLIDER' => $this->enableSlider
);
$this->redirectUrl = \CCrmUrlUtil::AddUrlParams(
\CCrmOwnerType::GetEntityEditPath(
$e->getDestinationEntityTypeID(),
0,
false,
$options
),
array('lead_id' => $converter->getEntityID(), 'entityTypeId' => $e->getDestinationEntityTypeID())
);
}
}
}
catch(\Exception $e)
{
$this->errorText = $e->getMessage();
}
$this->save();
return $result;
}