28 while ($arRegion = $dbRegionList->fetch())
29 $result[$arRegion[
"ID"]] = $arRegion[
"NAME_LANG"];
47 while($arCity = $dbCityList->fetch())
48 $result[$arCity[
"ID"]] = $arCity[
"NAME_LANG"];
65 $cIds = static::getCountriesIds(
$siteId);
66 return !$cIds || in_array($countryId, $cIds) || in_array(
"", $cIds);
80 $rIds = static::getRegionsIds(
$siteId);
81 return !$rIds || in_array($regionId, $rIds) || in_array(
"", $rIds);
95 $cIds = static::getCitiesIds(
$siteId);
96 return !$cIds || in_array($cityId, $cIds) || in_array(
"", $cIds);
109 if(!intval($locationId) || !mb_strlen(
$siteId))
134 private static function checkLocationIsInLinkedPart($locationId,
$siteId)
137 $class = self::CONN_ENTITY_NAME.
'Table';
139 if(!$class::checkLinkUsageAny(
$siteId))
142 if((
string) $locationId ==
'')
145 $node = \Bitrix\Sale\Location\LocationTable::getList(
array(
146 'filter' =>
array(
'=ID' => $locationId),
147 'select' =>
array(
'ID',
'LEFT_MARGIN',
'RIGHT_MARGIN')
152 $stat = $class::getLinkStatusForMultipleNodes(
array($node),
$siteId);
154 return $stat[$node[
'ID']] !== $class::LSTAT_IN_NOT_CONNECTED_BRANCH;
159 static::$zoneCache[
$siteId] = $ids;
167 if(isset($typesAll[
'COUNTRY']))
168 $types[] =
"'".intval($typesAll[
'COUNTRY']).
"'";
169 if(isset($typesAll[
'REGION']))
170 $types[] =
"'".intval($typesAll[
'REGION']).
"'";
171 if(isset($typesAll[
'CITY']))
172 $types[] =
"'".intval($typesAll[
'CITY']).
"'";
174 $typesAll = array_flip($typesAll);
182 array(
'select' =>
array(
'ID',
'LEFT_MARGIN',
'RIGHT_MARGIN')),
183 array(
'GET_LINKED_THROUGH_GROUPS' =>
true)
186 if((
string) $sql !=
'')
190 select SL.ID, SL.TYPE_ID from b_sale_location SL
197 SL.LEFT_MARGIN >= TT.LEFT_MARGIN
199 SL.RIGHT_MARGIN <= TT.RIGHT_MARGIN
203 SL.LEFT_MARGIN <= TT.LEFT_MARGIN
205 SL.RIGHT_MARGIN >= TT.RIGHT_MARGIN
209 SL.TYPE_ID in (".implode(
', ', $types).
")
215 while($item =
$res->fetch())
217 $typeId = $item[
'TYPE_ID'];
218 unset($item[
'TYPE_ID']);
220 $result[$typesAll[$typeId]][$item[
'ID']] = $item[
'ID'];
225 $res = Location\LocationTable::getList(
array(
231 'data_type' =>
'integer',
232 'expression' =>
array(
'COUNT(*)')
240 while($item =
$res->fetch())
242 if(intval($item[
'TYPE_ID']))
244 $typeCode = $typesAll[$item[
'TYPE_ID']];
258 'COUNTRY' =>
array(
''),
259 'REGION' =>
array(
''),
266 private static function getSelectedTypeIds(
$type,
$siteId)
268 $index =& static::$zoneCache;
287 return self::getSelectedTypeIds(
'CITY',
$siteId);
289 return explode(
":" , \COption::GetOptionString(
'sale',
'sales_zone_cities',
'',
$siteId));
299 return self::getSelectedTypeIds(
'REGION',
$siteId);
301 return explode(
":" , \COption::GetOptionString(
'sale',
'sales_zone_regions',
'',
$siteId));
311 return self::getSelectedTypeIds(
'COUNTRY',
$siteId);
313 return explode(
":" , \COption::GetOptionString(
'sale',
'sales_zone_countries',
'',
$siteId));
332 if(is_array($typeList[
'COUNTRY']) && !empty($typeList[
'COUNTRY']))
333 $typeList[
'COUNTRY'] = array_flip($typeList[
'COUNTRY']);
335 if(is_array($typeList[
'REGION']) && !empty($typeList[
'REGION']))
336 $typeList[
'REGION'] = array_flip($typeList[
'REGION']);
338 if(is_array($typeList[
'CITY']) && !empty($typeList[
'CITY']))
339 $typeList[
'CITY'] = array_flip($typeList[
'CITY']);
341 $allCountries = isset($typeList[
'COUNTRY'][
'']);
342 $allRegions = isset($typeList[
'REGION'][
'']);
343 $allCities = isset($typeList[
'CITY'][
'']);
346 $noCountry = isset($typeList[
'COUNTRY'][
'NULL']);
347 $noRegion = isset($typeList[
'REGION'][
'NULL']);
357 ),
'filter' =>
array(
360 while($item =
$res->fetch())
363 $countryId = intval($item[
'COUNTRY_ID']);
364 $regionId = intval($item[
'REGION_ID']);
365 $cityId = intval($item[
'CITY_ID']);
366 $typeId = intval($item[
'TYPE_ID']);
369 $countryTaken =
false;
370 $regionTaken =
false;
372 if($typeId == $types[
'COUNTRY'])
376 isset($typeList[
'COUNTRY'][$countryId])
380 $countryTaken =
true;
384 if($typeId == $types[
'REGION'])
392 isset($typeList[
'REGION'][$regionId])
394 ($noCountry && !$countryId)
402 if($typeId == $types[
'CITY'])
410 isset($typeList[
'REGION'][$regionId])
412 ($noRegion && !$regionId)
420 if(isset($typeList[
'CITY'][$cityId]) && $typeId == $types[
'CITY'])
428 $class = self::CONN_ENTITY_NAME.
'Table';
434 $class::resetMultipleForOwner(
$siteId <> ''?
$siteId : $class::ALL_SITES, $locations);
447 $countries = static::getCountriesIds(
$siteId);
448 $regions = static::getRegionsIds(
$siteId);
449 $cities = static::getCitiesIds(
$siteId);
451 if(!in_array(
"", $cities) && $object ==
"city")
453 elseif(!in_array(
"", $regions) && ($object ==
"city" || $object ==
"region"))
455 elseif(!in_array(
"", $countries))
470 $regionsList = static::getAllRegions(
$lang);
471 $getCountryNull = in_array(
"NULL", $countriesIds);
472 $filter = in_array(
"", $countriesIds) ?
array() :
array(($getCountryNull ?
"+" :
"").
"COUNTRY_ID" => $countriesIds);
477 array(
"REGION_ID",
"COUNTRY_ID")
480 while($arRegion = $dbLocationsList->GetNext())
482 if($arRegion[
"REGION_ID"] <>
'' && $arRegion[
"REGION_ID"] !=
"0")
483 $regions[$arRegion[
"REGION_ID"]] = $regionsList[$arRegion[
"REGION_ID"]];
498 $citiesList = static::getAllCities(
$lang);
499 $getRegionNull = in_array(
"NULL", $regionsIds);
500 $getRegionAll = in_array(
"", $regionsIds);
501 $getCountryNull = in_array(
"NULL", $countriesIds);
502 $getCountryAll = in_array(
"", $countriesIds);
504 $filter = in_array(
"", $regionsIds) ?
array() :
array(($getRegionNull ?
"+" :
"").
"REGION_ID" => $regionsIds);
506 foreach($countriesIds as $countryId)
508 if(($getRegionNull || $getRegionAll) && !$getCountryAll)
509 $filter[($getCountryNull ?
"+" :
"").
"COUNTRY_ID"] = $countryId;
517 while($arCity = $dbLocationsList->GetNext())
518 if($arCity[
"CITY_ID"] <>
'')
519 $cities[$arCity[
"CITY_ID"]] = $citiesList[$arCity[
"CITY_ID"]];
static checkConnectionExists($entityPrimary, $locationPrimary, array $behaviour=array('LOCATION_LINK_TYPE'=> 'ID'))
static getConnectedLocationsSql($entityPrimary, $parameters=array(), $behaviour=array('GET_LINKED_THROUGH_GROUPS'=> false))
static getRegions($countriesIds=array(), $lang=LANGUAGE_ID)
static saveSelectedTypes($typeList, $siteId)
static setSelectedIds($siteId, $ids)
static getSelectedIds($siteId)
const LOCATION_ENTITY_NAME
static getCities($countriesIds=array(), $regionsIds=array(), $lang)
static getAllCities($lang)
static getCitiesIds($siteId)
static checkCityId($cityId, $siteId)
static checkRegionId($regionId, $siteId)
static checkLocationId($locationId, $siteId)
static makeSearchFilter($object, $siteId)
static getCountriesIds($siteId)
static checkCountryId($countryId, $siteId)
static getRegionsIds($siteId)
static getAllRegions($lang)
static isLocationProMigrated()
static GetList($arOrder=array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
static GetByID($primary, $strLang=LANGUAGE_ID)
static GetRegionList($arOrder=Array("NAME_LANG"=>"ASC"), $arFilter=Array(), $strLang=LANGUAGE_ID)
static GetCityList($arOrder=Array("NAME_LANG"=>"ASC"), $arFilter=Array(), $strLang=LANGUAGE_ID)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!defined('SITE_ID')) $lang
$GLOBALS['____1690880296']
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
$arLocation['REGION_NAME']