public static function getListWithInner(array $parameters = array()) { if (isset($parameters['filter'])) { $parameters['filter'] = array('LOGIC' => 'OR', $parameters['filter'], array('ID' => PaySystemInner::getId())); } return parent::getList($parameters); }
public static function resort($dontCareEvents = false) { $edges = array(); $nodes = array(); $res = parent::getList(array('select' => array('ID', 'PARENT_ID', 'LEFT_MARGIN', 'RIGHT_MARGIN'))); while ($item = $res->Fetch()) { $nodes[$item['ID']] = array('LEFT_MARGIN' => $item['LEFT_MARGIN'], 'RIGHT_MARGIN' => $item['RIGHT_MARGIN']); if (!intval($item['PARENT_ID'])) { $edges['ROOT'][] = $item['ID']; } else { $edges[$item['PARENT_ID']][] = $item['ID']; } } // walk tree in-deep to obtain correct margins self::walkTreeInDeep('ROOT', $edges, $nodes, 0, 0, $dontCareEvents); // now massively insert new values into the database, using a temporal table $tabName = 'b_sale_location_temp_' . rand(99, 9999); $entityTableName = static::getTableName(); $dbConnection = Main\HttpApplication::getConnection(); $dbConnection->query("create table " . $tabName . " (\n\t\t\tID " . Helper::getSqlForDataType('int') . ",\n\t\t\tLEFT_MARGIN " . Helper::getSqlForDataType('int') . ",\n\t\t\tRIGHT_MARGIN " . Helper::getSqlForDataType('int') . ",\n\t\t\tDEPTH_LEVEL " . Helper::getSqlForDataType('int') . "\n\t\t)"); $handle = new BlockInserter(array('tableName' => $tabName, 'exactFields' => array('ID' => array('data_type' => 'integer'), 'LEFT_MARGIN' => array('data_type' => 'integer'), 'RIGHT_MARGIN' => array('data_type' => 'integer'), 'DEPTH_LEVEL' => array('data_type' => 'integer')), 'parameters' => array('mtu' => self::BLOCK_INSERT_MTU))); foreach ($nodes as $id => $node) { $node['ID'] = $id; $handle->insert($node); } $handle->flush(); // merge temp table with location table Helper::mergeTables($entityTableName, $tabName, array('LEFT_MARGIN' => 'LEFT_MARGIN', 'RIGHT_MARGIN' => 'RIGHT_MARGIN', 'DEPTH_LEVEL' => 'DEPTH_LEVEL'), array('ID' => 'ID')); $dbConnection->query("drop table {$tabName}"); }
/** * Get un subscription list * * @param array $parameters * @return \Bitrix\Main\DB\Result */ public static function getUnSubscriptionList(array $parameters = array()) { $parameters['filter'] = array('=IS_UNSUB' => 'Y') + (!isset($parameters['filter']) ? array() : $parameters['filter']); return parent::getList($parameters); }