• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/WebForm/WebFormScenarioService.php
  • Класс: Bitrix\Crm\Service\WebForm\WebFormScenarioService
  • Вызов: WebFormScenarioService::prepareDeliveryAddressScenario
private function prepareDeliveryAddressScenario(BaseScenario $baseScenario, bool $usePayment = false): BaseScenario
{
	$scheme = $usePayment ? Entity::ENUM_ENTITY_SCHEME_DEAL_INVOICE : Entity::ENUM_ENTITY_SCHEME_DEAL;
	$optionsBuilder = (new ScenarioOptionBuilder())
		->usePayment($usePayment)
		->addAgreements(true)
		->addCaptcha(true)
		->addRecaptcha()
		->addFields([
			['name' => 'CONTACT_NAME', 'autocomplete' => true, 'required'=> true],
			['name' => 'CONTACT_PHONE','autocomplete' => true, 'required'=> true ],
			['name' => 'CONTACT_DELIVERY_ADDRESS', 'autocomplete' => true, 'required'=> true ],
			['name' => 'DEAL_COMMENTS', 'label' => Loc::getMessage('CRM_WEBFORM_COMMENTS_DELIVERY_DATE')],
			['type' => 'product', 'bigPic' => false,],
		])
		->setButtonCaption(
			$usePayment
				? Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_DELIVERY_AND_PAY_BUTTON')
				: Loc::getMessage('CRM_SERVICE_FORM_SCENARIO_DELIVERY_BUTTON')
		)
		->addDocumentScheme($scheme)
	;
	$this->prepareDealAndResponsibilitiesConfiguration($optionsBuilder, false);

	return $baseScenario->setCategory(ScenarioCategory::DELIVERY)
		->setCreateDateInTitle(true)
		->setMenuItems([
			ScenarioMenuItem::FIELDS['id'],
			ScenarioMenuItem::AGREEMENTS['id'],
			ScenarioMenuItem::CRM['id'],
			ScenarioMenuItem::PAY_SYSTEMS['id'],
			ScenarioMenuItem::BUTTON_AND_HEADER['id'],
			ScenarioMenuItem::DESIGN['id'],
			ScenarioMenuItem::OTHER['id'],
		])
		->setExpertModeMenuItems($this->getExpertModeDefaultItems())
		->prepareBuilder($optionsBuilder)
	;
}