- Модуль: 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
],
];
}