• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/synchronizer.php
  • Класс: BitrixSaleControllerSynchronizer
  • Вызов: Synchronizer::getSettings
protected function getSettings()
{
	$manager = new BitrixSaleRestSynchronizationManager();

	$internal = [];
	foreach(BitrixSalePersonType::getList(['select'=>['ID', 'NAME']]) as $row)
		$internal['PERSON_TYPE'][$row['ID']] = $row;

	foreach(BitrixSalePaySystemManager::getList(['select'=>['ID', 'NAME']])->fetchAll() as $row)
		$internal['PAY_SYSTEMS'][$row['ID']] = $row;

	foreach(BitrixSaleDeliveryServicesManager::getActiveList() as $row)
		$internal['DELIVERY_SYSTEMS'][$row['ID']] = $row;

	$r = CSite::GetList();
	while ($row = $r->fetch())
		$internal['SITES'][$row['ID']] = $row;

	foreach(OrderStatus::getList(['select' => ['*', 'NAME' => 'BitrixSaleInternalsStatusLangTable:STATUS.NAME'],
		'filter' => [
			'=BitrixSaleInternalsStatusLangTable:STATUS.LID' => LANGUAGE_ID
		]]) as $row)
		$internal['ORDER_STATUSES'][$row['ID']] = $row;

	foreach(DeliveryStatus::getList(['select' => ['*', 'NAME' => 'BitrixSaleInternalsStatusLangTable:STATUS.NAME'],
		'filter' => [
			'=BitrixSaleInternalsStatusLangTable:STATUS.LID' => LANGUAGE_ID
		]]) as $row)
		$internal['DELIVERY_STATUSES'][$row['ID']] = $row;

	$catalogList = [];
	if(BitrixMainLoader::includeModule('catalog'))
	{
		$r = BitrixCatalogCatalogIblockTable::getList([
			'select' => ['IBLOCK_ID', 'IBLOCK.NAME'],
			'filter' => ['=IBLOCK.ACTIVE'=>'Y']]);

		while($row = $r->fetch())
			$catalogList[] = ['id'=>$row['IBLOCK_ID'], 'name'=>$row['CATALOG_CATALOG_IBLOCK_IBLOCK_NAME']];
	}

	$site=[];
	if(isset($internal['SITES'][$manager->getDefaultSiteId()]))
		$site = $internal['SITES'][$manager->getDefaultSiteId()];

	$paySystem=[];
	if(isset($internal['PAY_SYSTEMS'][$manager->getDefaultPaySystemId()]))
		$paySystem = $internal['PAY_SYSTEMS'][$manager->getDefaultPaySystemId()];

	$deliverySystem=[];
	if(isset($internal['DELIVERY_SYSTEMS'][$manager->getDefaultDeliverySystemId()]))
		$deliverySystem = $internal['DELIVERY_SYSTEMS'][$manager->getDefaultDeliverySystemId()];

	$personType=[];
	if(isset($internal['PERSON_TYPE'][$manager->getDefaultPersonTypeId()]))
		$personType = $internal['PERSON_TYPE'][$manager->getDefaultPersonTypeId()];

	$orderStatuses=[];
	if(isset($internal['ORDER_STATUSES'][$manager->getDefaultOrderStatusId()]))
		$orderStatuses = $internal['ORDER_STATUSES'][$manager->getDefaultOrderStatusId()];

	$deliveryStatus=[];
	if(isset($internal['DELIVERY_STATUSES'][$manager->getDefaultDeliveryStatusId()]))
		$deliveryStatus = $internal['DELIVERY_STATUSES'][$manager->getDefaultDeliveryStatusId()];


	return [
		'synchronizer'=>[
			'isActive'=>$manager->isActive() && $manager->checkDefaultSettings()->isSuccess()?'Y':'N',
			'site'=>count($site)>0? ['id'=>$site['ID'], 'name'=>$site['NAME']]:[],
			'paySystem'=>count($paySystem)>0? ['id'=>$paySystem['ID'], 'name'=>$paySystem['NAME']]:[],
			'deliverySystem'=>count($deliverySystem)>0? ['id'=>$deliverySystem['ID'], 'name'=>$deliverySystem['NAME']]:[],
			'personType'=>count($personType)>0? ['id'=>$personType['ID'], 'name'=>$personType['NAME']]:[],
			'orderStatus'=>count($orderStatuses)>0? ['id'=>$orderStatuses['ID'], 'name'=>$orderStatuses['NAME']]:[],
			'deliveryStatus'=>count($deliveryStatus)>0? ['id'=>$deliveryStatus['ID'], 'name'=>$deliveryStatus['NAME']]:[],
			'catalogs'=>$catalogList
		],
	];
}