• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic_profile.php
  • Класс: BitrixSaleDeliveryServicesAutomaticProfile
  • Вызов: AutomaticProfile::__construct
public function __construct(array $initParams)
{
	if(!isset($initParams["PARENT_ID"]))
		throw new ArgumentNullException('initParams["PARENT_ID"]');

	$this->parentAutomatic = Manager::getObjectById($initParams["PARENT_ID"]);

	if(!$this->parentAutomatic || !($this->parentAutomatic instanceof Automatic))
		throw new SystemException("Can't initialize AutomaticProfile's id: ".$initParams["ID"]." parent Automatic parent_id: ".$initParams["PARENT_ID"]);

	$this->parentSid = $this->parentAutomatic->getSid();

	if($this->parentSid == '')
		throw new SystemException("Can't determine AutomaticProfile's SID. profile id: ".$initParams["ID"]." parent Automatic id: ".$initParams["PARENT_ID"]);

	$this->parentHandlerInitParams = $this->parentAutomatic->getHandlerInitParams($this->parentSid);

	if($this->parentHandlerInitParams === false)
		throw new SystemException("Can't get init services params of Automatic delivery service with sid: ".$this->parentSid);

	parent::__construct($initParams);

	if(isset($initParams['PROFILE_ID']) && $initParams['PROFILE_ID'] <> '')
		$this->profileId = $initParams['PROFILE_ID'];
	elseif(isset($this->config["MAIN"]["PROFILE_ID"]))
		$this->profileId = $this->config["MAIN"]["PROFILE_ID"];

	if($this->profileId <> '' && !array_key_exists($this->profileId, $this->parentHandlerInitParams["PROFILES"]))
		throw new SystemException("Profile "".$this->profileId."" is not part of Automatic delivery service with sid: ".$this->parentSid);

	if($this->name == '' && isset($this->parentHandlerInitParams['PROFILES'][$this->profileId]['TITLE']))
		$this->name = $this->parentHandlerInitParams['PROFILES'][$this->profileId]['TITLE'];

	if($this->description == '' && isset($this->parentHandlerInitParams['PROFILES'][$this->profileId]['DESCRIPTION']))
		$this->description = $this->parentHandlerInitParams['PROFILES'][$this->profileId]['DESCRIPTION'];

	if(!empty($this->parentHandlerInitParams["PROFILES"][$this->profileId]["TRACKING_CLASS_NAME"]))
		$this->trackingClass = $this->parentHandlerInitParams["PROFILES"][$this->profileId]["TRACKING_CLASS_NAME"];

	$this->inheritParams();
}