- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/WebForm/WebFormScenarioService.php
- Класс: Bitrix\Crm\Service\WebForm\WebFormScenarioService
- Вызов: WebFormScenarioService::getScenario
private function getScenario($templateId): BaseScenario
{
$baseScenario = new BaseScenario($templateId, $this->culture);
switch ($templateId)
{
case BaseScenario::SCENARIO_EXPERT:
return $this->prepareExpertScenario($baseScenario);
case BaseScenario::SCENARIO_CONTACTS:
return $this->prepareContactsScenario($baseScenario);
case BaseScenario::SCENARIO_CALLBACK:
return $this->prepareCallbackScenario($baseScenario);
case BaseScenario::SCENARIO_FEEDBACK:
return $this->prepareFeedbackScenario($baseScenario);
case BaseScenario::SCENARIO_PRODUCT1:
case BaseScenario::SCENARIO_PRODUCT3:
return $this->prepareProductsScenario($baseScenario);
case BaseScenario::SCENARIO_PRODUCT2:
return $this->prepareProductsScenario(
$baseScenario,
false,
Entity::ENUM_ENTITY_SCHEME_DEAL_INVOICE,
true,
Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_PRODUCT2')
);
case BaseScenario::SCENARIO_PRODUCT4:
return $this->prepareProductsScenario($baseScenario, true);
case BaseScenario::SCENARIO_VK:
return $this->prepareSocialScenario($baseScenario, ScenarioMenuItem::VK['id']);
case BaseScenario::SCENARIO_FACEBOOK:
return $this->prepareSocialScenario($baseScenario, ScenarioMenuItem::FACEBOOK['id']);
case BaseScenario::SCENARIO_PERSONALISATION:
return $this->preparePersonalisationScenario($baseScenario);
case BaseScenario::SCENARIO_WHATSAPP:
return $this->prepareWhatsAppScenario($baseScenario);
case BaseScenario::SCENARIO_DELIVERY_AND_PAY:
return $this->prepareDeliveryAddressScenario($baseScenario, true);
case BaseScenario::SCENARIO_DELIVERY_ADDRESS:
return $this->prepareDeliveryAddressScenario($baseScenario);
case BaseScenario::SCENARIO_OFFLINE_EVENT:
return $this->prepareEventScenario($baseScenario, true, false);
case BaseScenario::SCENARIO_OFFLINE_REGISTRATION_EVENT:
return $this->prepareEventScenario($baseScenario, false, true,'live');
case BaseScenario::SCENARIO_EVENT_REGISTRATION:
return $this->prepareEventScenario($baseScenario, false, true, 'online');
case BaseScenario::SCENARIO_FORM_ON_SITE:
case BaseScenario::SCENARIO_FORM_IN_BUTTON:
case BaseScenario::SCENARIO_FORM_ON_PAGE:
case BaseScenario::SCENARIO_FORM_IN_LINK:
case BaseScenario::SCENARIO_FORM_IN_WIDGET:
case BaseScenario::SCENARIO_FORM_ON_TIMER:
return $this->prepareTourScenario($baseScenario, $templateId);
case BaseScenario::SCENARIO_DEPENDENCY_UNRELATED:
case BaseScenario::SCENARIO_DEPENDENCY_EXCLUDING:
case BaseScenario::SCENARIO_DEPENDENCY_RELATED:
$dependencyScenario = DependencyScenarioCreator::getDependencyScenario($templateId);
if (!$dependencyScenario)
{
$baseScenario->setCanUse(false);
return $baseScenario;
}
return $this->prepareDependencyScenario(
$baseScenario,
$dependencyScenario->getFields(),
$dependencyScenario->getDependencies()
);
case BaseScenario::SCENARIO_FILLING_DATA:
return $this->prepareFillingDataScenario($baseScenario);
case BaseScenario::SCENARIO_MULTI_PAGE:
return $this->prepareMultiPageContactsScenario($baseScenario);
}
return $baseScenario;
}