示例#1
0
 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);
 }
示例#2
0
 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}");
 }
示例#3
0
 /**
  * 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);
 }