• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/services/company/restrictions/delivery.php
  • Класс: Bitrix\Sale\Services\Company\Restrictions\Delivery
  • Вызов: Delivery::save
static function save(array $fields, $restrictionId = 0)
{
	$serviceIds = $fields["PARAMS"];
	$fields["PARAMS"] = array();

	if ($restrictionId > 0)
	{
		$dbRes = CompanyServiceTable::getList(
			array(
				'select' => array('SERVICE_ID'),
				'filter' => array(
					'SERVICE_TYPE' => Sale\Services\Company\Restrictions\Manager::SERVICE_TYPE_SHIPMENT,
					'COMPANY_ID' => $fields['SERVICE_ID']
				)
			)
		);

		while($data = $dbRes->fetch())
		{
			$key = array_search($data['SERVICE_ID'], $serviceIds['DELIVERY']);
			if (!$key)
			{
				CompanyServiceTable::delete(array('COMPANY_ID' => $fields['SERVICE_ID'], 'SERVICE_ID' => $data['SERVICE_ID'], 'SERVICE_TYPE' => Sale\Services\Company\Restrictions\Manager::SERVICE_TYPE_SHIPMENT));
			}
			else
			{
				unset($serviceIds['DELIVERY'][$key]);
			}
		}
	}

	$result = parent::save($fields, $restrictionId);

	$addFields = array('COMPANY_ID' => $fields['SERVICE_ID'], 'SERVICE_TYPE' => Sale\Services\Company\Restrictions\Manager::SERVICE_TYPE_SHIPMENT);
	foreach ($serviceIds['DELIVERY'] as $id)
	{
		$addFields['SERVICE_ID'] = $id;
		CompanyServiceTable::add($addFields);
	}

	return $result;
}