...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/deal/orderfilter.php
- Класс: Bitrix\Crm\Deal\OrderFilter
- Вызов: OrderFilter::prepareDeliveryStageFilter
static function prepareDeliveryStageFilter(array $deliveryStageList): array { $map = [ DeliveryStage::SHIPPED => 'Y', DeliveryStage::NO_SHIPPED => 'N', ]; $enum = []; foreach ($deliveryStageList as $stage) { $enum[] = $map[$stage]; } $sql = self::convertEnumToSql($enum); $shipmentTable = Internals\ShipmentTable::getTableName(); $deliveryTable = Delivery\Services\Table::getTableName(); $orderEntityTable = Binding\OrderEntityTable::getTableName(); $dealTableAlias = \CCrmDeal::TABLE_ALIAS; $helper = Main\Application::getConnection()->getSqlHelper(); return [ "TYPE" => "WHERE", "SQL" => "EXISTS ( SELECT 1 FROM {$shipmentTable} shipment INNER JOIN {$orderEntityTable} orderentity ON orderentity.ORDER_ID = shipment.ORDER_ID INNER JOIN {$deliveryTable} delivery ON delivery.ID = shipment.DELIVERY_ID WHERE shipment.SYSTEM = 'N' AND orderentity.OWNER_ID = {$dealTableAlias}.ID AND orderentity.OWNER_TYPE_ID = " . \CCrmOwnerType::Deal . " AND shipment.DEDUCTED IN ({$sql}) AND delivery.CLASS_NAME != '" . $helper->forSql('\\' . Delivery\Services\EmptyDeliveryService::class) . "' )", ]; }