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