コード例 #1
0
ファイル: delivery.php プロジェクト: akniyev/arteva.ru
	function GetLocationList($arFilter = Array())
	{
		if(CSaleLocation::isLocationProMigrated())
		{
			try
			{
				return CSaleLocation::getDenormalizedLocationList(self::CONN_ENTITY_NAME, $arFilter);
			}
			catch(Exception $e)
			{
				return new DB\ArrayResult(array());
			}
		}
		else
		{

			global $DB;
			$arSqlSearch = Array();

			if(!is_array($arFilter))
				$filter_keys = Array();
			else
				$filter_keys = array_keys($arFilter);

			$countFilterKey = count($filter_keys);
			for($i=0; $i < $countFilterKey; $i++)
			{
				$val = $DB->ForSql($arFilter[$filter_keys[$i]]);
				if (strlen($val)<=0) continue;

				$key = $filter_keys[$i];
				if ($key[0]=="!")
				{
					$key = substr($key, 1);
					$bInvert = true;
				}
				else
					$bInvert = false;

				switch(ToUpper($key))
				{
				case "DELIVERY_ID":
					$arSqlSearch[] = "DL.DELIVERY_ID ".($bInvert?"<>":"=")." ".IntVal($val)." ";
					break;
				case "LOCATION_ID":
					$arSqlSearch[] = "DL.LOCATION_CODE ".($bInvert?"<>":"=")." ".IntVal($val)." ";
					break;
				case "LOCATION_TYPE":
					$arSqlSearch[] = "DL.LOCATION_TYPE ".($bInvert?"<>":"=")." '".$val."' ";
					break;
				}
			}

			$strSqlSearch = "";
			$countSqlSearch = count($arSqlSearch);
			for($i=0; $i < $countSqlSearch; $i++)
			{
				$strSqlSearch .= " AND ";
				$strSqlSearch .= " (".$arSqlSearch[$i].") ";
			}

			$strSql =
				"SELECT DL.DELIVERY_ID, DL.LOCATION_CODE as LOCATION_ID, DL.LOCATION_TYPE ".
				"FROM b_sale_delivery2location DL ".
				"WHERE 1 = 1 ".
				"	".$strSqlSearch." ";

			$db_res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
			return $db_res;

		}
	}
コード例 #2
0
ファイル: delivery.php プロジェクト: Satariall/izurit
 /**
  * @param array $arFilter
  * @return bool|CDBResult
  * @deprecated
  */
 function GetLocationList($arFilter = array())
 {
     $deliveryId = 0;
     if (!empty($arFilter['DELIVERY_ID'])) {
         $deliveryId = $arFilter['DELIVERY_ID'];
         $arFilter['DELIVERY_ID'] = \Bitrix\Sale\Delivery\Services\Table::getIdByCode($deliveryId);
     }
     try {
         $locations = array();
         $res = CSaleLocation::getDenormalizedLocationList(self::CONN_ENTITY_NAME, $arFilter);
         while ($loc = $res->Fetch()) {
             $loc['DELIVERY_ID'] = $deliveryId;
             $locations[] = $loc;
         }
     } catch (Exception $e) {
         $locations = array();
     }
     $dbResult = new CDBResult();
     $dbResult->InitFromArray($locations);
     return $dbResult;
 }