コード例 #1
0
ファイル: ym_location.php プロジェクト: Satariall/izurit
 /**
  * Loads data from base
  */
 private function loadDataToCache()
 {
     $cityNames = array();
     $dbLocations = CSaleLocation::GetList(array(), array(), false, false, array("ID", "CITY_NAME_LANG"));
     while ($arLocation = $dbLocations->Fetch()) {
         if (isset($arLocation["CITY_NAME_LANG"]) && strlen($arLocation["CITY_NAME_LANG"]) > 0) {
             $cityNames[$arLocation["ID"]] = ToLower($arLocation["CITY_NAME_LANG"]);
         }
     }
     return $cityNames;
 }
コード例 #2
0
ファイル: crm_locations.php プロジェクト: DarneoStudio/bitrix
 public static function isLocationsCreated()
 {
     if (CSaleLocation::isLocationProMigrated()) {
         $res = Location\LocationTable::getList(array('select' => array('CNT')))->fetch();
         return $res['CNT'] > 0;
     }
     $dbResultList = CSaleLocation::GetList();
     if ($dbResultList->Fetch()) {
         return true;
     }
     return false;
 }
コード例 #3
0
ファイル: Cart.class.php プロジェクト: ASDAFF/bitrix_lib
 public function getLocation()
 {
     if (!$this->getLocationId()) {
         throw new \Exception('Не указано место доставки ' . __METHOD__);
     }
     $retval = false;
     $res = \CSaleLocation::GetList(array(), array('LID' => LANGUAGE_ID, 'ID' => $this->getLocationId()));
     while ($city = $res->GetNext()) {
         if (!\Bitrix\Sale\SalesZone::checkCityId($city['CITY_ID'], SITE_ID)) {
             continue;
         }
         if (empty($city['CITY_NAME'])) {
             continue;
         }
         $retval = $city;
     }
     return $retval;
 }
コード例 #4
0
ファイル: delivery_handler.php プロジェクト: ASDAFF/gpbitrix
	function GetConfig() {
		// $locations = array();
		// $locationRes = CSaleLocation::GetList();
		// while ($locationAr = $locationRes->Fetch()) {
			// if ($locationAr["CITY_NAME"]) {
				// $locations[$locationAr["ID"]] = $locationAr["CITY_NAME"];
			// }
		// }
		$moduleID = 'getparcel.gpwidget';
		if (CModule::IncludeModule($moduleID)) {
			$default = COption::GetOptionString($moduleID, 'default_location');
		}
		$location_list = array();
		$location_res = CSaleLocation::GetList(
			array("SORT" => "ASC", "CITY_NAME" => "ASC"), array("LID" => LANGUAGE_ID, ">CITY_ID" => ""),
			false, false, array("ID", "CITY_NAME")
		);
		while ($location_ar = $location_res->Fetch()) {
			$location_list[$location_ar['ID']] = $location_ar['CITY_NAME'];
		}
		$arConfig = array(
			"CONFIG_GROUPS" => array(
				"all" => GetMessage("CONFIG_GROUPS_ALL"),
			),

			"CONFIG" => array(
				"LOCATION_ID" => array(
					"TYPE" => "DROPDOWN",
					"DEFAULT" => intVal($default) > 0 ? $default : "",
					"TITLE" => GetMessage("CONFIG_LOCATION_ID_TITLE"),
					"GROUP" => "all",
					"VALUES" => $location_list,
				),
                "URLES" => array(
                    "SYSTEM_STATUS_URL" => "api/shop-company/v1/system_status",
                    "TOKEN_URL" => "api/widget/v1/auth_token.json",
                    "POST_URL" => "api/shop-company/v1/orders.json",
                    "PATCH_URL" => "api/shop-company/v1/orders/#ID#.json",
                    "DELIVERY_URL" => "api/shop-company/v1/orders/delivery_price",
                )
			),
		);
		return $arConfig;
	}
コード例 #5
0
            $arZipList = $_REQUEST["ZIP"];
            CSaleLocation::SetLocationZIP($ID, $arZipList);
        }
    }
    if (strlen($strError) > 0) {
        $bInitVars = True;
    } else {
        if (strlen($save) > 0) {
            LocalRedirect("sale_location_admin.php?lang=" . LANG . GetFilterParams("filter_", false));
        } else {
            LocalRedirect("sale_location_edit.php?lang=" . LANG . "&ID=" . $ID . GetFilterParams("filter_", false));
        }
    }
}
if ($ID > 0) {
    $db_location = CSaleLocation::GetList(array("SORT" => "ASC"), array("ID" => $ID), LANG);
    if (!$db_location->ExtractFields("str_")) {
        $ID = 0;
    }
    $arZipList = array();
    $rsZipList = CSaleLocation::GetLocationZIP($ID);
    while ($arZip = $rsZipList->Fetch()) {
        $arZipList[] = $arZip;
    }
}
if ($bInitVars) {
    $DB->InitTableVarsForEdit("b_sale_location", "", "str_");
    if (is_array($_REQUEST['ZIP'])) {
        $arZipList = array();
        foreach ($_REQUEST['ZIP'] as $zip) {
            $arZipList[] = array('ZIP' => $zip);
コード例 #6
0
function getOrderPropFormated($arProperties, $arResult, &$arUserResult, &$arDeleteFieldLocation = array())
{
    global $USER;
    $curVal = $arUserResult["ORDER_PROP"][$arProperties["ID"]];
    $curLocation = false;
    static $propertyGroupID = 0;
    static $propertyUSER_PROPS = "";
    // take data from user profile
    if ($arUserResult["PROFILE_CHANGE"] == "Y" && intval($arUserResult["PROFILE_ID"]) > 0 && !($arResult["HAVE_PREPAYMENT"] && $arUserResult["PROFILE_DEFAULT"] == "Y" && !empty($arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]]))) {
        $dbUserPropsValues = CSaleOrderUserPropsValue::GetList(array("SORT" => "ASC"), array("USER_PROPS_ID" => $arUserResult["PROFILE_ID"], "ORDER_PROPS_ID" => $arProperties["ID"], "USER_ID" => intval($USER->GetID())), false, false, array("VALUE", "PROP_TYPE", "VARIANT_NAME", "SORT", "ORDER_PROPS_ID"));
        if ($arUserPropsValues = $dbUserPropsValues->Fetch()) {
            $valueTmp = "";
            if ($arUserPropsValues["PROP_TYPE"] == "MULTISELECT") {
                $arUserPropsValues["VALUE"] = explode(",", $arUserPropsValues["VALUE"]);
            }
            $curVal = $arUserPropsValues["VALUE"];
        }
    } elseif ($arUserResult["PROFILE_CHANGE"] == "Y" && intval($arUserResult["PROFILE_ID"]) <= 0) {
        if (isset($curVal)) {
            unset($curVal);
        }
    } elseif (isset($arUserResult["ORDER_PROP"][$arProperties["ID"]])) {
        $curVal = $arUserResult["ORDER_PROP"][$arProperties["ID"]];
    } elseif ($arResult["HAVE_PREPAYMENT"] && !empty($arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]])) {
        $curVal = $arResult["PREPAY_ORDER_PROPS"][$arProperties["CODE"]];
        if ($arProperties["TYPE"] == "LOCATION") {
            $curLocation = $curVal;
        }
    }
    if (intval($_REQUEST["NEW_LOCATION_" . $arProperties["ID"]]) > 0) {
        $curVal = intval($_REQUEST["NEW_LOCATION_" . $arProperties["ID"]]);
    }
    $arProperties["FIELD_NAME"] = "ORDER_PROP_" . $arProperties["ID"];
    if (strlen($arProperties["CODE"]) > 0) {
        $arProperties["FIELD_ID"] = "ORDER_PROP_" . $arProperties["CODE"];
    } else {
        $arProperties["FIELD_ID"] = "ORDER_PROP_" . $arProperties["ID"];
    }
    if (intval($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID || $propertyUSER_PROPS != $arProperties["USER_PROPS"]) {
        $arProperties["SHOW_GROUP_NAME"] = "Y";
    }
    $propertyGroupID = $arProperties["PROPS_GROUP_ID"];
    $propertyUSER_PROPS = $arProperties["USER_PROPS"];
    if ($arProperties["REQUIED"] == "Y" || $arProperties["IS_EMAIL"] == "Y" || $arProperties["IS_PROFILE_NAME"] == "Y" || $arProperties["IS_LOCATION"] == "Y" || $arProperties["IS_LOCATION4TAX"] == "Y" || $arProperties["IS_PAYER"] == "Y" || $arProperties["IS_ZIP"] == "Y") {
        $arProperties["REQUIED_FORMATED"] = "Y";
    }
    if ($arProperties["TYPE"] == "CHECKBOX") {
        if ($curVal == "Y" || !isset($curVal) && $arProperties["DEFAULT_VALUE"] == "Y") {
            $arProperties["CHECKED"] = "Y";
            $arProperties["VALUE_FORMATED"] = GetMessage("SOA_Y");
        } else {
            $arProperties["VALUE_FORMATED"] = GetMessage("SOA_N");
        }
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 30;
    } elseif ($arProperties["TYPE"] == "TEXT") {
        if (strlen($curVal) <= 0) {
            if (strlen($arProperties["DEFAULT_VALUE"]) > 0 && !isset($curVal)) {
                $arProperties["VALUE"] = $arProperties["DEFAULT_VALUE"];
            } elseif ($arProperties["IS_EMAIL"] == "Y") {
                $arProperties["VALUE"] = $USER->GetEmail();
            } elseif ($arProperties["IS_PAYER"] == "Y") {
                //$arProperties["VALUE"] = $USER->GetFullName();
                $rsUser = CUser::GetByID($USER->GetID());
                $fio = "";
                if ($arUser = $rsUser->Fetch()) {
                    $fio = CUser::FormatName(CSite::GetNameFormat(false), array("NAME" => $arUser["NAME"], "LAST_NAME" => $arUser["LAST_NAME"], "SECOND_NAME" => $arUser["SECOND_NAME"]), false, false);
                }
                $arProperties["VALUE"] = $fio;
            }
        } else {
            $arProperties["VALUE"] = $curVal;
        }
        //select ZIP for LOCATION
        if ($arProperties["IS_ZIP"] == "Y" && $arUserResult["PROFILE_CHANGE"] == "N") {
            $dbPropertiesLoc = CSaleOrderProps::GetList(array("ID" => "DESC"), array("PERSON_TYPE_ID" => $arUserResult["PERSON_TYPE_ID"], "ACTIVE" => "Y", "UTIL" => "N", "IS_LOCATION" => "Y"), false, false, array("ID"));
            $arPropertiesLoc = $dbPropertiesLoc->Fetch();
            if ($arPropertiesLoc["ID"] > 0) {
                $arZipLocation = array();
                if (strlen($curVal) > 0) {
                    $arZipLocation = CSaleLocation::GetByZIP($curVal);
                }
                $rsZipList = CSaleLocation::GetLocationZIP($arUserResult["ORDER_PROP"][$arPropertiesLoc["ID"]]);
                if ($arZip = $rsZipList->Fetch()) {
                    if (strlen($arZip["ZIP"]) > 0 && (empty($arZipLocation) || $arZipLocation["ID"] != $arUserResult["ORDER_PROP"][$arPropertiesLoc["ID"]])) {
                        $arProperties["VALUE"] = $arZip["ZIP"];
                    }
                }
            }
        }
        if ($arProperties["IS_ZIP"] == "Y") {
            $arUserResult["DELIVERY_LOCATION_ZIP"] = $arProperties["VALUE"];
        }
        $arProperties["VALUE"] = htmlspecialcharsEx($arProperties["VALUE"]);
        $arProperties["VALUE_FORMATED"] = $arProperties["VALUE"];
    } elseif ($arProperties["TYPE"] == "SELECT") {
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 1;
        $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*"));
        $flagDefault = "N";
        $nameProperty = "";
        while ($arVariants = $dbVariants->GetNext()) {
            if ($flagDefault == "N" && $nameProperty == "") {
                $nameProperty = $arVariants["NAME"];
            }
            if ($arVariants["VALUE"] == $curVal || (!isset($curVal) || $curVal == "") && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) {
                $arVariants["SELECTED"] = "Y";
                $arProperties["VALUE_FORMATED"] = $arVariants["NAME"];
                $flagDefault = "Y";
            }
            $arProperties["VARIANTS"][] = $arVariants;
        }
        if ($flagDefault == "N") {
            $arProperties["VARIANTS"][0]["SELECTED"] = "Y";
            $arProperties["VARIANTS"][0]["VALUE_FORMATED"] = $nameProperty;
        }
    } elseif ($arProperties["TYPE"] == "MULTISELECT") {
        $arProperties["FIELD_NAME"] = "ORDER_PROP_" . $arProperties["ID"] . '[]';
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 5;
        $arDefVal = explode(",", $arProperties["DEFAULT_VALUE"]);
        $countDefVal = count($arDefVal);
        for ($i = 0; $i < $countDefVal; $i++) {
            $arDefVal[$i] = Trim($arDefVal[$i]);
        }
        $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*"));
        $i = 0;
        while ($arVariants = $dbVariants->GetNext()) {
            if (is_array($curVal) && in_array($arVariants["VALUE"], $curVal) || !isset($curVal) && in_array($arVariants["VALUE"], $arDefVal)) {
                $arVariants["SELECTED"] = "Y";
                if ($i > 0) {
                    $arProperties["VALUE_FORMATED"] .= ", ";
                }
                $arProperties["VALUE_FORMATED"] .= $arVariants["NAME"];
                $i++;
            }
            $arProperties["VARIANTS"][] = $arVariants;
        }
    } elseif ($arProperties["TYPE"] == "TEXTAREA") {
        $arProperties["SIZE2"] = intval($arProperties["SIZE2"]) > 0 ? $arProperties["SIZE2"] : 4;
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 40;
        $arProperties["VALUE"] = htmlspecialcharsEx(isset($curVal) ? $curVal : $arProperties["DEFAULT_VALUE"]);
        $arProperties["VALUE_FORMATED"] = $arProperties["VALUE"];
    } elseif ($arProperties["TYPE"] == "LOCATION") {
        //enable location town text
        if ($_REQUEST["is_ajax_post"] == "Y" && $arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0 && isset($_REQUEST["ORDER_PROP_" . $arProperties["ID"]])) {
            $rsLocationsList = CSaleLocation::GetList(array(), array("ID" => $curVal), false, false, array("ID", "CITY_ID"));
            $arCity = $rsLocationsList->GetNext();
            if (intval($arCity["CITY_ID"]) <= 0) {
                unset($arDeleteFieldLocation[$arProperties["ID"]]);
            } else {
                $arDeleteFieldLocation[$arProperties["ID"]] = $arProperties["INPUT_FIELD_LOCATION"];
            }
        } elseif ($arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0) {
            $arDeleteFieldLocation[$arProperties["ID"]] = $arProperties["INPUT_FIELD_LOCATION"];
        }
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 1;
        $dbVariants = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "COUNTRY_NAME", "CITY_NAME", "SORT", "COUNTRY_NAME_LANG", "CITY_NAME_LANG"));
        while ($arVariants = $dbVariants->GetNext()) {
            if (intval($arVariants["ID"]) == intval($curVal) || !isset($curVal) && intval($arVariants["ID"]) == intval($arProperties["DEFAULT_VALUE"]) || strlen($curLocation) > 0 && ToUpper($curLocation) == ToUpper($arVariants["CITY_NAME"])) {
                $arVariants["SELECTED"] = "Y";
                $arProperties["VALUE_FORMATED"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"];
                $arProperties["VALUE"] = $arVariants["ID"];
                if ($arProperties["IS_LOCATION"] == "Y") {
                    $arUserResult["DELIVERY_LOCATION"] = $arProperties["VALUE"];
                }
                if ($arProperties["IS_LOCATION4TAX"] == "Y") {
                    $arUserResult["TAX_LOCATION"] = $arProperties["VALUE"];
                }
            }
            $arVariants["NAME"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"];
            $arProperties["VARIANTS"][] = $arVariants;
        }
        if (count($arProperties["VARIANTS"]) == 1) {
            $arProperties["VALUE"] = $arProperties["VARIANTS"][0]["ID"];
            if ($arProperties["IS_LOCATION"] == "Y") {
                $arUserResult["DELIVERY_LOCATION"] = $arProperties["VALUE"];
            }
            if ($arProperties["IS_LOCATION4TAX"] == "Y") {
                $arUserResult["TAX_LOCATION"] = $arProperties["VALUE"];
            }
        }
    } elseif ($arProperties["TYPE"] == "RADIO") {
        $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*"));
        while ($arVariants = $dbVariants->GetNext()) {
            if ($arVariants["VALUE"] == $curVal || !isset($curVal) && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) {
                $arVariants["CHECKED"] = "Y";
                $arProperties["VALUE_FORMATED"] = $arVariants["NAME"];
            }
            $arProperties["VARIANTS"][] = $arVariants;
        }
    } elseif ($arProperties["TYPE"] == "FILE") {
        $arProperties["SIZE1"] = intval($arProperties["SIZE1"]);
        $arProperties["VALUE"] = isset($curVal) ? CSaleHelper::getFileInfo($curVal) : $arProperties["DEFAULT_VALUE"];
    }
    return $arProperties;
}
コード例 #7
0
ファイル: step2.php プロジェクト: Satariall/izurit
$siteID = $arParams["site_id"];
if (strlen($arParams["site_id"]) <= 0) {
    $siteID = "s1";
}
$dbSite = CSite::GetByID($siteID);
if ($arSite = $dbSite->Fetch()) {
    $lang = $arSite["LANGUAGE_ID"];
}
if (strlen($lang) <= 0) {
    $lang = "ru";
}
$bRus = false;
if ($lang == "ru") {
    $bRus = true;
}
$dbLocation = CSaleLocation::GetList(array());
if (!$dbLocation->Fetch()) {
    //Locations
    include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php";
    $csvFile = new CCSVData();
    $csvFile->LoadFile(dirname(__FILE__) . "/data/" . $lang . "/loc.csv");
    if (IntVal($_SESSION["LOC_POST"]) > 0) {
        $csvFile->SetPos($_SESSION["LOC_POST"]);
    }
    $csvFile->SetFieldsType("R");
    $csvFile->SetFirstHeader(false);
    $csvFile->SetDelimiter(",");
    $arRes = $csvFile->Fetch();
    $arLocation = array();
    $arLocationMap = array();
    if (is_array($arRes) && count($arRes) > 0 && strlen($arRes[0]) == 2) {
コード例 #8
0
ファイル: component.php プロジェクト: akniyev/arteva.ru
					$arOrderProps["VALUES"][] = $vars;
			}
			elseif($arOrderProps["TYPE"]=="LOCATION")
			{
				$propsOfTypeLocation[$arOrderProps['ID']] = true; // required for mapping ID<=>CODE below

				if(CSaleLocation::isLocationProMigrated())
				{
					$arOrderProps["VALUES"] = array();
					if(strlen($arOrderProps["DEFAULT_VALUE"]))
						$arOrderProps["DEFAULT_VALUE"] = CSaleLocation::getLocationIDbyCODE($arOrderProps["DEFAULT_VALUE"]);
				}
				else
				{
					// perfomance hole
					$dbVars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array(), LANGUAGE_ID);
					while($vars = $dbVars->GetNext())
						$arOrderProps["VALUES"][] = $vars;
				}
			}
			$arrayTmp[$arOrderPropsGroup["ID"]]["PROPS"][] = $arOrderProps;
		}
	}
	$arResult["ORDER_PROPS"] = $arrayTmp;

	// get prop values
	$arPropValsTmp = Array();
	if (!$bInitVars)
	{
		$dbPropVals = CSaleOrderUserPropsValue::GetList(
				array("SORT" => "ASC"),
コード例 #9
0
ファイル: ajax.php プロジェクト: CheBurashka334/zakrepi
		if (intval($rsUser->SelectedRowsCount())>0)
			$arRes["RESULT"] = "Y";
		else
			$arRes["RESULT"] = "N";
	}
}
elseif(isset($_POST['ADDRESS_ID']) && CModule::IncludeModule("useraddress") && CModule::IncludeModule("sale"))
{
	$addressID = intval($_POST['ADDRESS_ID']);
	$addressInfo = CUserAddress::getAddressId($addressID);
	
	//поиск LOCATION по названию города
	$db_vars = CSaleLocation::GetList(
        array(),
        array("LID" => LANGUAGE_ID, "CITY_NAME" => trim($addressInfo[0]["CITY"])),
        false,
        false,
        array("ID")
    );
	while ($vars = $db_vars->Fetch()):
		$arRes["LOCATION_ID"] = $vars["ID"];
	endwhile;
}
elseif(isset($_POST["getAddressData"])){
	include($_SERVER["DOCUMENT_ROOT"].'/local/components/zakrepi/sale.order.ajax/functions.php');
	$arResult = Array();
	getJsUserAddress($arResult, $USER->GetID());

	$arRes = $arResult["JS_USER_ADDRESS"];
}
コード例 #10
0
ファイル: location.php プロジェクト: rasuldev/torino
 /**
  * <p>Функция удаляет местоположение с кодом ID. Функция так же удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а так же связи этого местоположения с группами местоположений и службами доставки. </p>
  *
  *
  *
  *
  * @param int $ID  Код местоположения. </h
  *
  *
  *
  * @return bool <p>Функция возвращает <i>true</i> в случае успешного удаления
  * местоположения и <i>false</i> - в противном случае.</p> <a name="examples"></a>
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * if (!CSaleLocation::Delete(12))
  *    echo "Ошибка удаления местоположения";<br>?&gt;
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__delete.008e0aa2.php
  * @author Bitrix
  */
 public static function Delete($ID)
 {
     global $DB;
     $ID = IntVal($ID);
     if (!($arLocRes = CSaleLocation::GetByID($ID, LANGUAGE_ID))) {
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeLocationDelete", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID)) === false) {
             return false;
         }
     }
     if (IntVal($arLocRes["CITY_ID"]) > 0) {
         CSaleLocation::DeleteCity($arLocRes["CITY_ID"]);
     }
     $bDelCountry = True;
     $db_res = CSaleLocation::GetList(array("SORT" => "ASC"), array("COUNTRY_ID" => $arLocRes["COUNTRY_ID"], "!ID" => $ID), LANGUAGE_ID);
     if ($db_res->Fetch()) {
         $bDelCountry = false;
     }
     if ($bDelCountry && IntVal($arLocRes["COUNTRY_ID"]) > 0) {
         CSaleLocation::DeleteCountry($arLocRes["COUNTRY_ID"]);
     }
     $bDelRegion = True;
     $db_res = CSaleLocation::GetList(array("SORT" => "ASC"), array("REGION_ID" => $arLocRes["REGION_ID"], "!ID" => $ID), LANGUAGE_ID);
     if ($db_res->Fetch()) {
         $bDelRegion = false;
     }
     if ($bDelRegion && IntVal($arLocRes["REGION_ID"]) > 0) {
         CSaleLocation::DeleteRegion($arLocRes["REGION_ID"]);
     }
     $DB->Query("DELETE FROM b_sale_location2location_group WHERE LOCATION_ID = " . $ID . "", true);
     $DB->Query("DELETE FROM b_sale_delivery2location WHERE LOCATION_ID = " . $ID . " AND LOCATION_TYPE = 'L'", true);
     $DB->Query("DELETE FROM b_sale_location_zip WHERE LOCATION_ID = " . $ID . "", true);
     $bDelete = $DB->Query("DELETE FROM b_sale_location WHERE ID = " . $ID . "", true);
     foreach (GetModuleEvents("sale", "OnLocationDelete", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID));
     }
     return $bDelete;
 }
コード例 #11
0
ファイル: component.php プロジェクト: webgksupport/alpina
    $arResult["REGION_LIST"] = array();
} elseif (count($arResult["REGION_LIST"]) == 1) {
    $arParams["REGION"] = $arResult["REGION_LIST"][0]["ID"];
}
//select city
$arResult["CITY_LIST"] = array();
if ($arResult["EMPTY_CITY"] == "N" && (count($arResult["COUNTRY_LIST"]) > 0 && count($arResult["REGION_LIST"]) > 0 && $arParams["COUNTRY"] > 0 && $arParams["REGION"] > 0 || count($arResult["COUNTRY_LIST"]) <= 0 && count($arResult["REGION_LIST"]) > 0 && $arParams["REGION"] > 0 || count($arResult["COUNTRY_LIST"]) > 0 && count($arResult["REGION_LIST"]) <= 0 && $arParams["COUNTRY"] > 0 || count($arResult["COUNTRY_LIST"]) <= 0 && count($arResult["REGION_LIST"]) <= 0)) {
    $arCityFilter = array("LID" => LANGUAGE_ID);
    if ($arParams["COUNTRY"] > 0) {
        $arCityFilter["COUNTRY_ID"] = $arParams["COUNTRY"];
    }
    if ($arParams["REGION"] > 0) {
        $arCityFilter["REGION_ID"] = $arParams["REGION"];
    }
    if ($arParams['ALLOW_EMPTY_CITY'] == 'Y') {
        $rsLocationsList = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), $arCityFilter, false, false, array("ID", "CITY_ID", "CITY_NAME"));
        while ($arCity = $rsLocationsList->GetNext()) {
            if (!SalesZone::checkCityId($arCity["CITY_ID"], $arParams["SITE_ID"])) {
                continue;
            }
            $arResult["CITY_LIST"][] = array("ID" => $arCity[$arParams["CITY_OUT_LOCATION"] == "Y" ? "ID" : "CITY_ID"], "CITY_ID" => $arCity['CITY_ID'], "CITY_NAME" => $arCity["CITY_NAME"]);
            if ($arCity["ID"] == $arParams["CITY"]) {
                $locationString = (strlen($arCity["CITY_NAME"]) > 0 ? $arCity["CITY_NAME"] . ", " : "") . $locationString;
                if (IntVal($arParams["LOCATION_VALUE"]) <= 0) {
                    $arParams["LOCATION_VALUE"] = $arCity["ID"];
                }
                $arResult["LOCATION_DEFAULT"] = $arCity["ID"];
            }
        }
        //end while
    }
コード例 #12
0
ファイル: migrate.php プロジェクト: andy-profi/bxApiDocs
 private function grabTree()
 {
     $this->data['LOC'] = array();
     $auxIndex = array('COUNTRY' => array(), 'REGION' => array(), 'CITY' => array());
     $this->data['LOC'] = array('COUNTRY' => array(), 'REGION' => array(), 'CITY' => array());
     // level 1: country
     $res = \CSaleLocation::GetList(array(), array('!COUNTRY_ID' => false, 'REGION_ID' => false, 'CITY_ID' => false, 'LID' => 'en'));
     while ($item = $res->Fetch()) {
         if (!isset($this->data['LOC']['COUNTRY'][$item['ID']])) {
             $this->data['LOC']['COUNTRY'][$item['ID']] = array('SUBJ_ID' => $item['COUNTRY_ID'], 'PARENT_ID' => false, 'PARENT_TYPE' => false);
             $auxIndex['COUNTRY'][$item['COUNTRY_ID']] = $item['ID'];
         }
     }
     // level 2: country - region
     $res = \CSaleLocation::GetList(array(), array('!REGION_ID' => false, 'CITY_ID' => false, 'LID' => 'en'));
     while ($item = $res->Fetch()) {
         if (!isset($this->data['LOC']['REGION'][$item['ID']])) {
             $this->data['LOC']['REGION'][$item['ID']] = array('SUBJ_ID' => $item['REGION_ID'], 'PARENT_ID' => $auxIndex['COUNTRY'][$item['COUNTRY_ID']], 'PARENT_TYPE' => 'COUNTRY');
             $auxIndex['REGION'][$item['REGION_ID']] = $item['ID'];
         }
     }
     // level 2: country - city
     $res = \CSaleLocation::GetList(array(), array('REGION_ID' => false, '!CITY_ID' => false, 'LID' => 'en'));
     while ($item = $res->Fetch()) {
         if (!isset($this->data['LOC']['CITY'][$item['ID']])) {
             $this->data['LOC']['CITY'][$item['ID']] = array('SUBJ_ID' => $item['CITY_ID'], 'PARENT_ID' => $auxIndex['COUNTRY'][$item['COUNTRY_ID']], 'PARENT_TYPE' => 'COUNTRY');
         }
     }
     // level 3: country - region - city
     $res = \CSaleLocation::GetList(array(), array('!REGION_ID' => false, '!CITY_ID' => false, 'LID' => 'en'));
     while ($item = $res->Fetch()) {
         if (!isset($this->data['LOC']['CITY'][$item['ID']])) {
             $this->data['LOC']['CITY'][$item['ID']] = array('SUBJ_ID' => $item['CITY_ID'], 'PARENT_ID' => $auxIndex['REGION'][$item['REGION_ID']], 'PARENT_TYPE' => 'REGION');
         }
     }
     // language list
     $a = false;
     $b = false;
     $lang = new \CLanguage();
     $res = $lang->GetList($a, $b);
     $this->data['LANG'] = array();
     while ($item = $res->Fetch()) {
         $this->data['LANG'][] = $item['LID'];
     }
     // type list
     $res = Location\TypeTable::getList();
     while ($item = $res->Fetch()) {
         $this->data['TYPE'][$item['CODE']] = $item['ID'];
     }
 }
コード例 #13
0
ファイル: functions.php プロジェクト: CheBurashka334/zakrepi
function getLocationFromNameCity($name_city){
	$arRes = Array();
	if($name_city != '' && CModule::IncludeModule("useraddress") && CModule::IncludeModule("sale"))
	{
		//поиск LOCATION по названию города
		$db_vars = CSaleLocation::GetList(
			array(),
			array("LID" => LANGUAGE_ID, "CITY_NAME" => trim($name_city)),
			false,
			false,
			array("ID")
		);
		while ($vars = $db_vars->Fetch()):
			$arRes["LOCATION_ID"] = $vars["ID"];
		endwhile;
	}
	return $arRes["LOCATION_ID"];
}
コード例 #14
0
ファイル: order_props.php プロジェクト: Satariall/izurit
 static function DoProcessOrder(&$arOrder, $arOrderPropsValues, &$arErrors, &$arWarnings, $paysystemId = 0, $deliveryId = "", $arOptions = array())
 {
     if (!is_array($arOrderPropsValues)) {
         $arOrderPropsValues = array();
     }
     $arUser = null;
     $arFilter = array("PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "ACTIVE" => "Y");
     if ($paysystemId != 0) {
         $arFilter["RELATED"]["PAYSYSTEM_ID"] = $paysystemId;
         $arFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED";
     }
     if (strlen($deliveryId) > 0) {
         $arFilter["RELATED"]["DELIVERY_ID"] = $deliveryId;
         $arFilter["RELATED"]["TYPE"] = "WITH_NOT_RELATED";
     }
     $dbOrderProps = CSaleOrderProps::GetList(array("SORT" => "ASC"), $arFilter, false, false, array("ID", "NAME", "TYPE", "IS_LOCATION", "IS_LOCATION4TAX", "IS_PROFILE_NAME", "IS_PAYER", "IS_EMAIL", "REQUIED", "SORT", "IS_ZIP", "CODE", "DEFAULT_VALUE"));
     while ($arOrderProp = $dbOrderProps->Fetch()) {
         if (!array_key_exists($arOrderProp["ID"], $arOrderPropsValues)) {
             $curVal = $arOrderProp["DEFAULT_VALUE"];
             if (strlen($curVal) <= 0) {
                 if ($arOrderProp["IS_EMAIL"] == "Y" || $arOrderProp["IS_PAYER"] == "Y") {
                     if ($arUser == null) {
                         $dbUser = CUser::GetList($by = "ID", $order = "desc", array("ID_EQUAL_EXACT" => $arOrder["USER_ID"]));
                         $arUser = $dbUser->Fetch();
                     }
                     if ($arOrderProp["IS_EMAIL"] == "Y") {
                         $curVal = is_array($arUser) ? $arUser["EMAIL"] : "";
                     } elseif ($arOrderProp["IS_PAYER"] == "Y") {
                         $curVal = is_array($arUser) ? $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"] : "";
                     }
                 }
             }
         } else {
             $curVal = $arOrderPropsValues[$arOrderProp["ID"]];
         }
         if (!is_array($curVal) && strlen($curVal) > 0 || is_array($curVal) && count($curVal) > 0) {
             //if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "MULTISELECT" || $arOrderProp["TYPE"] == "RADIO")
             if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "RADIO") {
                 $arVariants = array();
                 $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("ORDER_PROPS_ID" => $arOrderProp["ID"]), false, false, array("*"));
                 while ($arVariant = $dbVariants->Fetch()) {
                     $arVariants[] = $arVariant["VALUE"];
                 }
                 if (!is_array($curVal)) {
                     $curVal = array($curVal);
                 }
                 $arKeys = array_keys($curVal);
                 foreach ($arKeys as $k) {
                     if (!in_array($curVal[$k], $arVariants)) {
                         unset($curVal[$k]);
                     }
                 }
                 if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "RADIO") {
                     $curVal = array_shift($curVal);
                 }
             } elseif ($arOrderProp["TYPE"] == "LOCATION") {
                 if (is_array($curVal)) {
                     $curVal = array_shift($curVal);
                 }
                 if (CSaleLocation::isLocationProMigrated()) {
                     // if we came from places like CRM, we got location in CODEs, because CRM knows nothing about location IDs.
                     // so, CRM sends LOCATION_IN_CODES in options array. In the other case, we assume we got locations as IDs
                     $res = CSaleLocation::GetById($curVal);
                     if (intval($res['ID'])) {
                         $curVal = $res['ID'];
                         $locId = $res['ID'];
                     } else {
                         $curVal = null;
                         $locId = false;
                     }
                 } else {
                     $dbVariants = CSaleLocation::GetList(array(), array("ID" => $curVal), false, false, array("ID"));
                     if ($arVariant = $dbVariants->Fetch()) {
                         $curVal = intval($arVariant["ID"]);
                     } else {
                         $curVal = null;
                     }
                 }
             }
         }
         if ($arOrderProp["TYPE"] == "LOCATION" && ($arOrderProp["IS_LOCATION"] == "Y" || $arOrderProp["IS_LOCATION4TAX"] == "Y")) {
             if ($arOrderProp["IS_LOCATION"] == "Y") {
                 $arOrder["DELIVERY_LOCATION"] = $locId;
             }
             if ($arOrderProp["IS_LOCATION4TAX"] == "Y") {
                 $arOrder["TAX_LOCATION"] = $locId;
             }
             if (!$locId) {
                 $bErrorField = true;
             }
         } elseif ($arOrderProp["IS_PROFILE_NAME"] == "Y" || $arOrderProp["IS_PAYER"] == "Y" || $arOrderProp["IS_EMAIL"] == "Y" || $arOrderProp["IS_ZIP"] == "Y") {
             $curVal = trim($curVal);
             if ($arOrderProp["IS_PROFILE_NAME"] == "Y") {
                 $arOrder["PROFILE_NAME"] = $curVal;
             }
             if ($arOrderProp["IS_PAYER"] == "Y") {
                 $arOrder["PAYER_NAME"] = $curVal;
             }
             if ($arOrderProp["IS_ZIP"] == "Y") {
                 $arOrder["DELIVERY_LOCATION_ZIP"] = $curVal;
             }
             if ($arOrderProp["IS_EMAIL"] == "Y") {
                 $arOrder["USER_EMAIL"] = $curVal;
                 if (!check_email($curVal)) {
                     $arWarnings[] = array("CODE" => "PARAM", "TEXT" => str_replace(array("#EMAIL#", "#NAME#"), array(htmlspecialcharsbx($curVal), htmlspecialcharsbx($arOrderProp["NAME"])), GetMessage("SALE_GOPE_WRONG_EMAIL")));
                 }
             }
             if (strlen($curVal) <= 0) {
                 $bErrorField = true;
             }
         } elseif ($arOrderProp["REQUIED"] == "Y") {
             if ($arOrderProp["TYPE"] == "TEXT" || $arOrderProp["TYPE"] == "TEXTAREA" || $arOrderProp["TYPE"] == "RADIO" || $arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "CHECKBOX") {
                 if (strlen($curVal) <= 0) {
                     $bErrorField = true;
                 }
             } elseif ($arOrderProp["TYPE"] == "LOCATION") {
                 if (intval($curVal) <= 0) {
                     $bErrorField = true;
                 }
             } elseif ($arOrderProp["TYPE"] == "MULTISELECT") {
                 //if (!is_array($curVal) || count($curVal) <= 0)
                 if (strlen($curVal) <= 0) {
                     $bErrorField = true;
                 }
             } elseif ($arOrderProp["TYPE"] == "FILE") {
                 if (is_array($curVal)) {
                     foreach ($curVal as $index => $arFileData) {
                         if (!array_key_exists("name", $arFileData) && !array_key_exists("file_id", $arFileData)) {
                             $bErrorField = true;
                         }
                     }
                 } else {
                     $bErrorField = true;
                 }
             }
         }
         if ($bErrorField) {
             $arWarnings[] = array("CODE" => "PARAM", "TEXT" => str_replace("#NAME#", htmlspecialcharsbx($arOrderProp["NAME"]), GetMessage("SALE_GOPE_FIELD_EMPTY")));
             $bErrorField = false;
         }
         $arOrder["ORDER_PROP"][$arOrderProp["ID"]] = $curVal;
     }
 }
コード例 #15
0
ファイル: locations.php プロジェクト: vim84/b-markt
         }
     }
 }
 if ($bFinish) {
     unset($_SESSION["LOC_POS"]);
 } else {
     return true;
 }
 $time_limit = ini_get('max_execution_time');
 if ($time_limit < LOC_STEP_LENGTH) {
     set_time_limit(LOC_STEP_LENGTH + 5);
 }
 $start_time = time();
 $finish_time = $start_time + LOC_STEP_LENGTH;
 if ($loc_file == "loc_ussr.csv" && file_exists($_SERVER['DOCUMENT_ROOT'] . WIZARD_SERVICE_RELATIVE_PATH . "/locations/ru/zip_ussr.csv")) {
     $rsLocations = CSaleLocation::GetList(array(), array("LID" => 'ru'), false, false, array("ID", "CITY_NAME_LANG", "REGION_NAME_LANG"));
     $arLocationMap = array();
     while ($arLocation = $rsLocations->Fetch()) {
         if (strlen($arLocation["CITY_NAME_LANG"]) > 0) {
             if (strlen($arLocation["REGION_NAME_LANG"]) > 0) {
                 $arLocationMap[$arLocation["CITY_NAME_LANG"]][$arLocation["REGION_NAME_LANG"]] = $arLocation["ID"];
             } else {
                 $arLocationMap[$arLocation["CITY_NAME_LANG"]] = $arLocation["ID"];
             }
         }
     }
     $DB->StartTransaction();
     include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php";
     $csvFile = new CCSVData();
     $csvFile->LoadFile($_SERVER['DOCUMENT_ROOT'] . WIZARD_SERVICE_RELATIVE_PATH . "/locations/ru/zip_ussr.csv");
     $csvFile->SetFieldsType("R");
コード例 #16
0
	function Delete($ID)
	{
		global $DB;
		$ID = IntVal($ID);

		if (!($arLocRes = CSaleLocation::GetByID($ID, LANGUAGE_ID)))
			return false;

		foreach (GetModuleEvents("sale", "OnBeforeLocationDelete", true) as $arEvent)
			if (ExecuteModuleEventEx($arEvent, array($ID))===false)
				return false;

		if (IntVal($arLocRes["CITY_ID"]) > 0)
			CSaleLocation::DeleteCity($arLocRes["CITY_ID"]);

		$bDelCountry = True;
		$db_res = CSaleLocation::GetList(
				array("SORT" => "ASC"),
				array("COUNTRY_ID" => $arLocRes["COUNTRY_ID"], "!ID"=>$ID),
				LANGUAGE_ID
			);
		if ($db_res->Fetch())
			$bDelCountry = false;

		if ($bDelCountry && IntVal($arLocRes["COUNTRY_ID"]) > 0)
			CSaleLocation::DeleteCountry($arLocRes["COUNTRY_ID"]);

		$bDelRegion = True;
		$db_res = CSaleLocation::GetList(
				array("SORT" => "ASC"),
				array("REGION_ID" => $arLocRes["REGION_ID"], "!ID"=>$ID),
				LANGUAGE_ID
			);
		if ($db_res->Fetch())
			$bDelRegion = false;

		if ($bDelRegion && IntVal($arLocRes["REGION_ID"]) > 0)
			CSaleLocation::DeleteRegion($arLocRes["REGION_ID"]);

		$DB->Query("DELETE FROM b_sale_location2location_group WHERE LOCATION_ID = ".$ID."", true);
		$DB->Query("DELETE FROM b_sale_delivery2location WHERE LOCATION_ID = ".$ID." AND LOCATION_TYPE = 'L'", true);
		$DB->Query("DELETE FROM b_sale_location_zip WHERE LOCATION_ID = ".$ID."", true);

		if(self::isLocationProMigrated())
		{
			try
			{
				$res = Location\LocationTable::delete($ID); // the whole subtree will be deleted
				if(!$res->isSuccess())
					return false;

				$bDelete = true;
			}
			catch(Exception $e)
			{
				return false;
			}
		}
		else
		{
			$bDelete = $DB->Query("DELETE FROM b_sale_location WHERE ID = ".$ID."", true);
		}

		foreach (GetModuleEvents("sale", "OnLocationDelete", true) as $arEvent)
			ExecuteModuleEventEx($arEvent, array($ID));

		return $bDelete;
	}
コード例 #17
0
?>
		</td>
	</tr>
	<tr>
		<td><?php 
echo GetMessage("SALE_F_LOCATION");
?>
:</td>
		<td>
			<select name="filter_location">
				<option value=""><?php 
echo GetMessage("SALE_ALL");
?>
</option>
				<?php 
$db_vars = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array(), LANG);
?>
				<?php 
while ($vars = $db_vars->Fetch()) {
    ?>
					<option value="<?php 
    echo $vars["ID"];
    ?>
"<?php 
    if (IntVal($vars["ID"]) == IntVal($filter_location)) {
        echo " selected";
    }
    ?>
><?php 
    echo htmlspecialcharsbx($vars["COUNTRY_NAME"] . " - " . $vars["CITY_NAME"]);
    ?>
コード例 #18
0
function saleLocationImport($arParams)
{
    global $DB;
    $arReturn = array('STEP' => false, 'ERROR' => '', 'AMOUNT' => 0, 'POS' => 0, 'MESSAGE' => '');
    $step_length = intval($arParams["STEP_LENGTH"]);
    if ($step_length <= 0) {
        $step_length = 10;
    }
    define('ZIP_STEP_LENGTH', $step_length);
    define('LOC_STEP_LENGTH', $step_length);
    define('DLZIPFILE', $arParams["DLZIPFILE"]);
    $STEP = intval($arParams['STEP']);
    $CSVFILE = $arParams["CSVFILE"];
    $LOADZIP = $arParams["LOADZIP"];
    $bSync = $arParams["SYNC"] == "Y";
    if (isset($arParams['TMP_PATH'])) {
        $sTmpFilePath = $arParams['TMP_PATH'];
    } else {
        $sTmpFilePath = CTempFile::GetDirectoryName(12, 'sale');
    }
    if (strlen($CSVFILE) > 0 && !in_array($CSVFILE, array('loc_ussr.csv', 'loc_ua.csv', 'loc_kz.csv', 'loc_usa.csv', 'loc_cntr.csv', 'locations.csv'))) {
        //echo GetMessage('SL_IMPORT_ERROR_FILES');
        $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_FILES');
    } else {
        if ($STEP == 1 && strlen($CSVFILE) <= 0) {
            if ($LOADZIP == 'Y') {
                $STEP = 2;
            } else {
                $STEP = 3;
            }
        }
        switch ($STEP) {
            case 0:
                $arReturn['MESSAGE'] = GetMessage('WSL_IMPORT_FILES_LOADING');
                $arReturn['STEP'] = 1;
                break;
            case 1:
                $time_limit = ini_get('max_execution_time');
                if ($time_limit < LOC_STEP_LENGTH) {
                    set_time_limit(LOC_STEP_LENGTH + 5);
                }
                $start_time = time();
                $finish_time = $start_time + LOC_STEP_LENGTH;
                $file_url = $sTmpFilePath . $CSVFILE;
                if (!file_exists($file_url)) {
                    $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_NO_LOC_FILE');
                    break;
                }
                $bFinish = true;
                $arSysLangs = array();
                $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y"));
                while ($arLang = $db_lang->Fetch()) {
                    $arSysLangs[$arLang["LID"]] = $arLang["LID"];
                }
                $arLocations = array();
                if (!$bSync) {
                    if (!is_set($_SESSION["LOC_POS"])) {
                        CSaleLocation::DeleteAll();
                    }
                } else {
                    $dbLocations = CSaleLocation::GetList(array(), array(), false, false, array("ID", "COUNTRY_ID", "REGION_ID", "CITY_ID"));
                    while ($arLoc = $dbLocations->Fetch()) {
                        $arLocations[$arLoc["ID"]] = $arLoc;
                    }
                }
                if (count($arLocations) <= 0) {
                    $bSync = false;
                }
                include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php";
                $csvFile = new CCSVData();
                $csvFile->LoadFile($file_url);
                $csvFile->SetFieldsType("R");
                $csvFile->SetFirstHeader(false);
                $csvFile->SetDelimiter(",");
                $arRes = $csvFile->Fetch();
                if (!is_array($arRes) || count($arRes) <= 0 || strlen($arRes[0]) != 2) {
                    $strWarning .= GetMessage('SL_IMPORT_ERROR_WRONG_LOC_FILE') . "<br />";
                }
                if (strlen($strWarning) <= 0) {
                    $DefLang = $arRes[0];
                    if (!in_array($DefLang, $arSysLangs)) {
                        $strWarning .= GetMessage('SL_IMPORT_ERROR_NO_LANG') . "<br />";
                    }
                }
                if (strlen($strWarning) > 0) {
                    $arReturn['ERROR'] = $strWarning . "<br />";
                    break;
                }
                if (is_set($_SESSION["LOC_POS"])) {
                    $csvFile->SetPos($_SESSION["LOC_POS"]);
                    $CurCountryID = $_SESSION["CUR_COUNTRY_ID"];
                    $CurRegionID = $_SESSION["CUR_REGION_ID"];
                    $numCountries = $_SESSION["NUM_COUNTRIES"];
                    $numRegiones = $_SESSION["NUM_REGIONES"];
                    $numCities = $_SESSION["NUM_CITIES"];
                    $numLocations = $_SESSION["NUM_LOCATIONS"];
                } else {
                    $CurCountryID = 0;
                    $CurRegionID = 0;
                    $numCountries = 0;
                    $numRegiones = 0;
                    $numCities = 0;
                    $numLocations = 0;
                }
                $tt = 0;
                while ($arRes = $csvFile->Fetch()) {
                    $type = ToUpper($arRes[0]);
                    $tt++;
                    $arArrayTmp = array();
                    foreach ($arRes as $ind => $value) {
                        if ($ind % 2 && isset($arSysLangs[$value])) {
                            $arArrayTmp[$value] = array("LID" => $value, "NAME" => $arRes[$ind + 1]);
                            if ($value == $DefLang) {
                                $arArrayTmp["NAME"] = $arRes[$ind + 1];
                            }
                        }
                    }
                    //country
                    if (is_array($arArrayTmp) && strlen($arArrayTmp["NAME"]) > 0) {
                        if ($type == "S") {
                            $CurRegionID = null;
                            $arRegionList = array();
                            $CurCountryID = null;
                            $arContList = array();
                            $LLL = 0;
                            if ($bSync) {
                                $db_contList = CSaleLocation::GetList(array(), array("COUNTRY_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang));
                                if ($arContList = $db_contList->Fetch()) {
                                    $LLL = IntVal($arContList["ID"]);
                                    $CurCountryID = IntVal($arContList["COUNTRY_ID"]);
                                }
                            }
                            if (IntVal($CurCountryID) <= 0) {
                                $CurCountryID = CSaleLocation::AddCountry($arArrayTmp);
                                $CurCountryID = IntVal($CurCountryID);
                                if ($CurCountryID > 0) {
                                    $numCountries++;
                                    if (IntVal($LLL) <= 0) {
                                        $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID));
                                        if (IntVal($LLL) > 0) {
                                            $numLocations++;
                                        }
                                    }
                                }
                            }
                        } elseif ($type == "R") {
                            $CurRegionID = null;
                            $arRegionList = array();
                            $LLL = 0;
                            if ($bSync) {
                                $db_rengList = CSaleLocation::GetList(array(), array("COUNTRY_ID" => $CurCountryID, "REGION_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang));
                                if ($arRegionList = $db_rengList->Fetch()) {
                                    $LLL = $arRegionList["ID"];
                                    $CurRegionID = IntVal($arRegionList["REGION_ID"]);
                                }
                            }
                            if (IntVal($CurRegionID) <= 0) {
                                $CurRegionID = CSaleLocation::AddRegion($arArrayTmp);
                                $CurRegionID = IntVal($CurRegionID);
                                if ($CurRegionID > 0) {
                                    $numRegiones++;
                                    if (IntVal($LLL) <= 0) {
                                        $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID, "REGION_ID" => $CurRegionID));
                                        if (IntVal($LLL) > 0) {
                                            $numLocations++;
                                        }
                                    }
                                }
                            }
                        } elseif ($type == "T" && IntVal($CurCountryID) > 0) {
                            $city_id = 0;
                            $LLL = 0;
                            $arCityList = array();
                            if ($bSync) {
                                $arFilter = array("COUNTRY_ID" => $CurCountryID, "CITY_NAME" => $arArrayTmp["NAME"], "LID" => $DefLang);
                                if (IntVal($CurRegionID) > 0) {
                                    $arFilter["REGION_ID"] = $CurRegionID;
                                }
                                $db_cityList = CSaleLocation::GetList(array(), $arFilter);
                                if ($arCityList = $db_cityList->Fetch()) {
                                    $LLL = $arCityList["ID"];
                                    $city_id = IntVal($arCityList["CITY_ID"]);
                                }
                            }
                            if ($city_id <= 0) {
                                $city_id = CSaleLocation::AddCity($arArrayTmp);
                                $city_id = IntVal($city_id);
                                if ($city_id > 0) {
                                    $numCities++;
                                }
                            }
                            if ($city_id > 0) {
                                if (IntVal($LLL) <= 0) {
                                    $LLL = CSaleLocation::AddLocation(array("COUNTRY_ID" => $CurCountryID, "REGION_ID" => $CurRegionID, "CITY_ID" => $city_id));
                                    if (intval($LLL) > 0) {
                                        $numLocations++;
                                    }
                                }
                            }
                        }
                    }
                    if ($tt == 10) {
                        $tt = 0;
                        $cur_time = time();
                        if ($cur_time >= $finish_time) {
                            $cur_step = $csvFile->GetPos();
                            $amount = $csvFile->iFileLength;
                            $_SESSION["LOC_POS"] = $cur_step;
                            $_SESSION["CUR_COUNTRY_ID"] = $CurCountryID;
                            $_SESSION["CUR_REGION_ID"] = $CurRegionID;
                            $_SESSION["NUM_COUNTRIES"] = $numCountries;
                            $_SESSION["NUM_REGIONES"] = $numRegiones;
                            $_SESSION["NUM_CITIES"] = $numCities;
                            $_SESSION["NUM_LOCATIONS"] = $numLocations;
                            $bFinish = false;
                            //echo "<script>Import(1, {AMOUNT:".CUtil::JSEscape($amount).",POS:".CUtil::JSEscape($cur_step)."})</script>";
                            $arReturn['STEP'] = 1;
                            $arReturn['AMOUNT'] = $amount;
                            $arReturn['POS'] = $cur_step;
                            break;
                        }
                    }
                }
                if ($bFinish) {
                    unset($_SESSION["LOC_POS"]);
                    $strOK = GetMessage('SL_IMPORT_LOC_STATS') . '<br />';
                    $strOK = str_replace('#NUMCOUNTRIES#', intval($numCountries), $strOK);
                    $strOK = str_replace('#NUMREGIONES#', intval($numRegiones), $strOK);
                    $strOK = str_replace('#NUMCITIES#', intval($numCities), $strOK);
                    $strOK = str_replace('#NUMLOCATIONS#', intval($numLocations), $strOK);
                    $arReturn['MESSAGE'] = $strOK;
                    $arReturn['STEP'] = $LOADZIP == "Y" ? 2 : 3;
                    //echo '<script>Import('.($LOADZIP == "Y" ? 2 : 3).')</script>';
                }
                break;
            case 2:
                $time_limit = ini_get('max_execution_time');
                if ($time_limit < ZIP_STEP_LENGTH) {
                    set_time_limit(ZIP_STEP_LENGTH + 5);
                }
                $start_time = time();
                $finish_time = $start_time + ZIP_STEP_LENGTH;
                if ($LOADZIP == "Y" && file_exists($sTmpFilePath . DLZIPFILE)) {
                    $rsLocations = CSaleLocation::GetList(array(), array("LID" => 'ru'), false, false, array("ID", "CITY_NAME_LANG", "REGION_NAME_LANG"));
                    $arLocationMap = array();
                    while ($arLocation = $rsLocations->Fetch()) {
                        if (strlen($arLocation["REGION_NAME_LANG"]) > 0) {
                            if (strlen($arLocation["CITY_NAME_LANG"]) > 0) {
                                $arLocationMap[$arLocation["CITY_NAME_LANG"]][$arLocation["REGION_NAME_LANG"]] = $arLocation["ID"];
                            }
                        } else {
                            $arLocationMap[$arLocation["CITY_NAME_LANG"]] = $arLocation["ID"];
                        }
                    }
                    $DB->StartTransaction();
                    include_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php";
                    $csvFile = new CCSVData();
                    $csvFile->LoadFile($sTmpFilePath . DLZIPFILE);
                    $csvFile->SetFieldsType("R");
                    $csvFile->SetFirstHeader(false);
                    $csvFile->SetDelimiter(";");
                    if (is_set($_SESSION, 'ZIP_POS')) {
                        $numZIP = $_SESSION["NUM_ZIP"];
                        $csvFile->SetPos($_SESSION["ZIP_POS"]);
                    } else {
                        CSaleLocation::ClearAllLocationZIP();
                        unset($_SESSION["NUM_ZIP"]);
                        $numZIP = 0;
                    }
                    $bFinish = true;
                    $tt = 0;
                    $REGION = "";
                    while ($arRes = $csvFile->Fetch()) {
                        $tt++;
                        $CITY = $arRes[1];
                        if (strlen($arRes[3]) > 0) {
                            $REGION = $arRes[3];
                        }
                        if (array_key_exists($CITY, $arLocationMap)) {
                            if (strlen($REGION) > 0) {
                                $ID = $arLocationMap[$CITY][$REGION];
                            } else {
                                $ID = $arLocationMap[$CITY];
                            }
                        } else {
                            $ID = 0;
                        }
                        if ($ID) {
                            CSaleLocation::AddLocationZIP($ID, $arRes[2]);
                            $numZIP++;
                        }
                        if ($tt == 10) {
                            $tt = 0;
                            $cur_time = time();
                            if ($cur_time >= $finish_time) {
                                $cur_step = $csvFile->GetPos();
                                $amount = $csvFile->iFileLength;
                                $_SESSION["ZIP_POS"] = $cur_step;
                                $_SESSION["NUM_ZIP"] = $numZIP;
                                $bFinish = false;
                                $arReturn['STEP'] = 2;
                                $arReturn['AMOUNT'] = $amount;
                                $arReturn['POS'] = $cur_step;
                                break;
                            }
                        }
                    }
                    $DB->Commit();
                    if ($bFinish) {
                        unset($_SESSION["ZIP_POS"]);
                        $numCity = CSaleLocation::_GetZIPImportStats();
                        $strOK = GetMessage('SL_IMPORT_ZIP_STATS');
                        $strOK = str_replace('#NUMZIP#', intval($numZIP), $strOK);
                        $strOK = str_replace('#NUMCITIES#', intval($numCity["CITY_CNT"]), $strOK);
                        $arReturn['MESSAGE'] = $strOK;
                        $arReturn['STEP'] = 3;
                        $arReturn['PB_REMOVE'] = true;
                        break;
                    }
                } else {
                    $arReturn['ERROR'] = GetMessage('SL_IMPORT_ERROR_NO_ZIP_FILE') . '<br>';
                    $arReturn['STEP'] = 3;
                    break;
                }
                break;
            case 3:
                $arReturn['COMPLETE'] = true;
                break;
        }
    }
    return $arReturn;
}
コード例 #19
0
 static function DoProcessOrder(&$arOrder, $arOrderPropsValues, &$arErrors, &$arWarnings)
 {
     if (!is_array($arOrderPropsValues)) {
         $arOrderPropsValues = array();
     }
     $arUser = null;
     $dbOrderProps = CSaleOrderProps::GetList(array("SORT" => "ASC"), array("PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], "ACTIVE" => "Y"), false, false, array("ID", "NAME", "TYPE", "IS_LOCATION", "IS_LOCATION4TAX", "IS_PROFILE_NAME", "IS_PAYER", "IS_EMAIL", "REQUIED", "SORT", "IS_ZIP", "CODE", "DEFAULT_VALUE"));
     while ($arOrderProp = $dbOrderProps->Fetch()) {
         if (!array_key_exists($arOrderProp["ID"], $arOrderPropsValues)) {
             $curVal = $arOrderProp["DEFAULT_VALUE"];
             if (strlen($curVal) <= 0) {
                 if ($arOrderProp["IS_EMAIL"] == "Y" || $arOrderProp["IS_PAYER"] == "Y") {
                     if ($arUser == null) {
                         $dbUser = CUser::GetList($by = "ID", $order = "desc", array("ID_EQUAL_EXACT" => $arOrder["USER_ID"]));
                         $arUser = $dbUser->Fetch();
                     }
                     if ($arOrderProp["IS_EMAIL"] == "Y") {
                         $curVal = is_array($arUser) ? $arUser["EMAIL"] : "";
                     } elseif ($arOrderProp["IS_PAYER"] == "Y") {
                         $curVal = is_array($arUser) ? $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"] : "";
                     }
                 }
             }
         } else {
             $curVal = $arOrderPropsValues[$arOrderProp["ID"]];
         }
         if (!is_array($curVal) && strlen($curVal) > 0 || is_array($curVal) && count($curVal) > 0) {
             //if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "MULTISELECT" || $arOrderProp["TYPE"] == "RADIO")
             if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "RADIO") {
                 $arVariants = array();
                 $dbVariants = CSaleOrderPropsVariant::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("ORDER_PROPS_ID" => $arOrderProp["ID"]), false, false, array("*"));
                 while ($arVariant = $dbVariants->Fetch()) {
                     $arVariants[] = $arVariant["VALUE"];
                 }
                 if (!is_array($curVal)) {
                     $curVal = array($curVal);
                 }
                 $arKeys = array_keys($curVal);
                 foreach ($arKeys as $k) {
                     if (!in_array($curVal[$k], $arVariants)) {
                         unset($curVal[$k]);
                     }
                 }
                 if ($arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "RADIO") {
                     $curVal = array_shift($curVal);
                 }
             } elseif ($arOrderProp["TYPE"] == "LOCATION") {
                 if (is_array($curVal)) {
                     $curVal = array_shift($curVal);
                 }
                 $curVal = intval($curVal);
                 $dbVariants = CSaleLocation::GetList(array(), array("ID" => $curVal), false, false, array("ID"));
                 if ($arVariant = $dbVariants->Fetch()) {
                     $curVal = intval($arVariant["ID"]);
                 } else {
                     $curVal = null;
                 }
             }
         }
         if ($arOrderProp["TYPE"] == "LOCATION" && ($arOrderProp["IS_LOCATION"] == "Y" || $arOrderProp["IS_LOCATION4TAX"] == "Y")) {
             $curVal = intval($curVal);
             if ($arOrderProp["IS_LOCATION"] == "Y") {
                 $arOrder["DELIVERY_LOCATION"] = $curVal;
             }
             if ($arOrderProp["IS_LOCATION4TAX"] == "Y") {
                 $arOrder["TAX_LOCATION"] = $curVal;
             }
             if ($curVal <= 0) {
                 $bErrorField = true;
             }
         } elseif ($arOrderProp["IS_PROFILE_NAME"] == "Y" || $arOrderProp["IS_PAYER"] == "Y" || $arOrderProp["IS_EMAIL"] == "Y" || $arOrderProp["IS_ZIP"] == "Y") {
             $curVal = trim($curVal);
             if ($arOrderProp["IS_PROFILE_NAME"] == "Y") {
                 $arOrder["PROFILE_NAME"] = $curVal;
             }
             if ($arOrderProp["IS_PAYER"] == "Y") {
                 $arOrder["PAYER_NAME"] = $curVal;
             }
             if ($arOrderProp["IS_ZIP"] == "Y") {
                 $arOrder["DELIVERY_LOCATION_ZIP"] = $curVal;
             }
             if ($arOrderProp["IS_EMAIL"] == "Y") {
                 $arOrder["USER_EMAIL"] = $curVal;
                 if (!check_email($curVal)) {
                     $arWarnings[] = array("CODE" => "PARAM", "TEXT" => str_replace(array("#EMAIL#", "#NAME#"), array(htmlspecialcharsbx($curVal), htmlspecialcharsbx($arOrderProp["NAME"])), GetMessage("SALE_GOPE_WRONG_EMAIL")));
                 }
             }
             if (strlen($curVal) <= 0) {
                 $bErrorField = true;
             }
         } elseif ($arOrderProp["REQUIED"] == "Y") {
             if ($arOrderProp["TYPE"] == "TEXT" || $arOrderProp["TYPE"] == "TEXTAREA" || $arOrderProp["TYPE"] == "RADIO" || $arOrderProp["TYPE"] == "SELECT" || $arOrderProp["TYPE"] == "CHECKBOX") {
                 if (strlen($curVal) <= 0) {
                     $bErrorField = true;
                 }
             } elseif ($arOrderProp["TYPE"] == "LOCATION") {
                 if (intval($curVal) <= 0) {
                     $bErrorField = true;
                 }
             } elseif ($arOrderProp["TYPE"] == "MULTISELECT") {
                 //if (!is_array($curVal) || count($curVal) <= 0)
                 if (strlen($curVal) <= 0) {
                     $bErrorField = true;
                 }
             }
         }
         if ($bErrorField) {
             $arWarnings[] = array("CODE" => "PARAM", "TEXT" => str_replace("#NAME#", htmlspecialcharsbx($arOrderProp["NAME"]), GetMessage("SALE_GOPE_FIELD_EMPTY")));
             $bErrorField = false;
         }
         $arOrder["ORDER_PROP"][$arOrderProp["ID"]] = $curVal;
     }
 }
コード例 #20
0
 $curVal = $arUserResult["ORDER_PROP"][$arOrderProps["ID"]];
 if ($arOrderProps["TYPE"] == "LOCATION" && ($arOrderProps["IS_LOCATION"] == "Y" || $arOrderProps["IS_LOCATION4TAX"] == "Y")) {
     if ($arOrderProps["IS_LOCATION"] == "Y") {
         $arUserResult["DELIVERY_LOCATION"] = IntVal($curVal);
     }
     if ($arOrderProps["IS_LOCATION4TAX"] == "Y") {
         $arUserResult["TAX_LOCATION"] = IntVal($curVal);
     }
     if (IntVal($curVal) <= 0 && IntVal($arUserResult["ORDER_PROP"]["REGION_" . $arOrderProps["ID"]]) > 0) {
         $dbLoc = CSaleLocation::GetList(array(), array("REGION_ID" => $arUserResult["ORDER_PROP"]["REGION_" . $arOrderProps["ID"]], "CITY_ID" => false), false, false, array("ID", "REGION_ID", "CITY_ID"));
         if ($arLoc = $dbLoc->Fetch()) {
             $curVal = $arLoc["ID"];
         }
     }
     if (IntVal($curVal) <= 0 && IntVal($arUserResult["ORDER_PROP"]["COUNTRY_" . $arOrderProps["ID"]]) > 0) {
         $dbLoc = CSaleLocation::GetList(array(), array("COUNTRY_ID" => $arUserResult["ORDER_PROP"]["COUNTRY_" . $arOrderProps["ID"]], "REGION_ID" => false, "CITY_ID" => false), false, false, array("ID", "COUNTRY_ID", "REGION_ID", "CITY_ID"));
         if ($arLoc = $dbLoc->Fetch()) {
             $curVal = $arLoc["ID"];
         }
     }
     if (IntVal($curVal) <= 0) {
         $bErrorField = True;
     } else {
         $arUserResult["ORDER_PROP"][$arOrderProps["ID"]] = $curVal;
     }
 } elseif ($arOrderProps["IS_PROFILE_NAME"] == "Y" || $arOrderProps["IS_PAYER"] == "Y" || $arOrderProps["IS_EMAIL"] == "Y" || $arOrderProps["IS_ZIP"] == "Y") {
     if ($arOrderProps["IS_PROFILE_NAME"] == "Y") {
         $arUserResult["PROFILE_NAME"] = Trim($curVal);
         if (strlen($arUserResult["PROFILE_NAME"]) <= 0) {
             $bErrorField = True;
         }
コード例 #21
0
ファイル: wizard.php プロジェクト: Satariall/izurit
 function ShowStep()
 {
     $wizard =& $this->GetWizard();
     $siteID = $wizard->GetVar("siteID", true);
     CModule::IncludeModule("sale");
     $arDeliveries = array();
     $dbDelivery = CSaleDeliveryHandler::GetList(array("SORT" => "ASC"), array("SITE_ID" => $siteID, "ACTIVE" => "Y"));
     while ($arDelivery = $dbDelivery->Fetch()) {
         $arDeliveries[$arDelivery["SID"] . "_new"] = $arDelivery["NAME"] . " " . GetMessage("WW_STEP8_1");
     }
     $dbDelivery = CSaleDelivery::GetList(array("SORT" => "ASC"), array("LID" => $siteID, "ACTIVE" => "Y"));
     while ($arDelivery = $dbDelivery->Fetch()) {
         $arDeliveries[$arDelivery["ID"]] = $arDelivery["NAME"];
     }
     $location = array();
     $dbLocationList = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array());
     while ($arLocation = $dbLocationList->Fetch()) {
         $location[$arLocation["ID"]] = $arLocation["COUNTRY_NAME"] . (strlen($arLocation["CITY_NAME"]) > 0 ? " - " . $arLocation["CITY_NAME"] : "");
     }
     $this->content .= GetMessage("WW_STEP8_2") . "<br />";
     $this->content .= $this->ShowSelectField("location", $location);
     $this->content .= "<br /><br />" . GetMessage("WW_STEP8_3") . "<br /><br />";
     foreach ($arDeliveries as $k => $v) {
         $this->content .= $this->ShowCheckboxField("delivery[]", $k, array("id" => $k)) . " <label for=\"" . $k . "\">" . htmlspecialcharsEx($v) . "</label><br />";
     }
 }
コード例 #22
0
ファイル: component.php プロジェクト: webgksupport/alpina
         }
     } else {
         $rsLocationsList = CSaleLocation::GetList(array(), array("ID" => $curVal), false, false, array("ID", "CITY_ID"));
         $arCity = $rsLocationsList->GetNext();
         if (intval($arCity["CITY_ID"]) <= 0) {
             $bDeleteFieldLocation = "";
         } else {
             $bDeleteFieldLocation = intval($arProperties["INPUT_FIELD_LOCATION"]);
         }
     }
 } elseif ($arProperties["IS_LOCATION"] == "Y" && intval($arProperties["INPUT_FIELD_LOCATION"]) > 0) {
     $bDeleteFieldLocation = intval($arProperties["INPUT_FIELD_LOCATION"]);
 }
 $arProperties["SIZE1"] = intval($arProperties["SIZE1"]) > 0 ? $arProperties["SIZE1"] : 1;
 $locationFound = false;
 $dbVariants = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array("ID", "COUNTRY_NAME", "CITY_NAME", "SORT", "COUNTRY_NAME_LANG", "CITY_NAME_LANG"));
 while ($arVariants = $dbVariants->GetNext()) {
     if (intval($arVariants["ID"]) == intval($curVal) || !isset($curVal) && intval($arVariants["ID"]) == intval($arProperties["DEFAULT_VALUE"])) {
         $locationFound = true;
         $arVariants["SELECTED"] = "Y";
         $arProperties["VALUE_FORMATED"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"];
         $arProperties["VALUE"] = $arVariants["ID"];
     }
     $arVariants["NAME"] = $arVariants["COUNTRY_NAME"] . (strlen($arVariants["CITY_NAME"]) > 0 ? " - " : "") . $arVariants["CITY_NAME"];
     $arProperties["VARIANTS"][] = $arVariants;
 }
 // this is not a COUNTRY, REGION or CITY, but must appear in $arProperties["VARIANTS"]
 if (CSaleLocation::isLocationProMigrated() && !$locationFound && IntVal($curVal)) {
     // CSaleLocation::GetById() is enought intelligent to accept modern (not-country-or-region-or-city) ID or CODE
     $item = CSaleLocation::GetById($curVal);
     if ($item) {
コード例 #23
0
ファイル: profilesManager.php プロジェクト: ASDAFF/mp
 static function SelectBoxLocations($lid, $name, $locationID, $onChange="") {
     $html = '<select name="'.$name.'" onChange="'.$onChange.'">';
     $res = \CSaleLocation::GetList(array(), array("LID" => $lid), false, false, array());
     while ($arRes = $res->Fetch()) {
         $html .= '<option '.(($arRes['ID']==$locationID)?'selected':'').' value="'.$arRes['ID'].'">'.htmlspecialcharsbx($arRes["COUNTRY_NAME"] . ((!empty($arRes["REGION_NAME"]))?' - '.$arRes["REGION_NAME"]:'') . ((!empty($arRes["CITY_NAME"]))?' - '.$arRes["CITY_NAME"]:'')) . '</option>';
     }
     $html .= '</select>';
     return $html;
 }
コード例 #24
0
ファイル: geo_bitrix.php プロジェクト: safindr/snippets
 /**
  * Получаем данные с сервера или из cookie
  * @param boolean $cookie
  * @return string|array
  */
 function get_data($cookie = true)
 {
     // если используем куки и параметр уже получен, то достаем и возвращаем данные из куки
     if ($cookie && filter_input(INPUT_COOKIE, 'geobase')) {
         return unserialize(filter_input(INPUT_COOKIE, 'geobase'));
     }
     $data = $this->get_geobase_data();
     if (!empty($data)) {
         CModule::IncludeModule('sale');
         $db_vars = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("CITY" => array("NAME" => $data['city'])), false, false, array());
         $vars = $db_vars->Fetch();
         $data["ID"] = $vars['ID'];
         setcookie('geobase', serialize($data), time() + 3600 * 24 * 7, '/');
         //устанавливаем куки на неделю
     }
     return $data;
 }
コード例 #25
0
ファイル: saleszone.php プロジェクト: rasuldev/torino
 /**
  * @param array $countriesIds
  * @param array $regionsIds
  * @param string $lang
  * @return array cities list from sales zone
  */
 public static function getCities($countriesIds = array(), $regionsIds = array(), $lang)
 {
     $cities = array();
     $citiesList = static::getAllCities($lang);
     $getRegionNull = in_array("NULL", $regionsIds) ? true : false;
     $getRegionAll = in_array("", $regionsIds) ? true : false;
     $getCountryNull = in_array("NULL", $countriesIds) ? true : false;
     $getCountryAll = in_array("", $countriesIds) ? true : false;
     $filter = in_array("", $regionsIds) ? array() : array(($getRegionNull ? "+" : "") . "REGION_ID" => $regionsIds);
     foreach ($countriesIds as $countryId) {
         if (($getRegionNull || $getRegionAll) && !$getCountryAll) {
             $filter[($getCountryNull ? "+" : "") . "COUNTRY_ID"] = $countryId;
         }
         $dbLocationsList = \CSaleLocation::GetList(array("SORT" => "ASC", "CITY_NAME_LANG" => "ASC"), $filter, array("CITY_ID"));
         while ($arCity = $dbLocationsList->GetNext()) {
             if (strlen($arCity["CITY_ID"]) > 0) {
                 $cities[$arCity["CITY_ID"]] = $citiesList[$arCity["CITY_ID"]];
             }
         }
     }
     return $cities;
 }
コード例 #26
0
ファイル: init.php プロジェクト: ASDAFF/alba
/**
 * Получение текущего местоположения по текущему городу
 */
function GetCurrentLocation()
{
	return 537;	//
	static $LOCATION_ID = 0;

	if(!$LOCATION_ID)
	{
		if(!CModule::IncludeModule("iblock") || !CModule::IncludeModule("sale"))
			return;

		$rs = CSaleLocation::GetList(
			array(),
			array("CITY_NAME" => GetCurCityName(), "LID" => LANGUAGE_ID),
			false,
			false
		);

		if($rs -> SelectedRowsCount())
		{
			$ar = $rs -> Fetch();
			
			$LOCATION_ID = $ar["ID"];
		}
	}
	
	return $LOCATION_ID;
}
コード例 #27
0
ファイル: order_new.php プロジェクト: ASDAFF/entask.ru
		// enable/disable town for location
		$dbProperties = CSaleOrderProps::GetList(
			array("SORT" => "ASC"),
			array("ID" => $locationID, "ACTIVE" => "Y", ">INPUT_FIELD_LOCATION" => 0, "RELATED" => false),
			false,
			false,
			array("INPUT_FIELD_LOCATION")
		);
		if ($arProperties = $dbProperties->Fetch())
			$bDeleteFieldLocationID = $arProperties["INPUT_FIELD_LOCATION"];

		$rsLocationsList = CSaleLocation::GetList(
			array(),
			array("ID" => $location),
			false,
			false,
			array("ID", "CITY_ID")
		);
		$arCity = $rsLocationsList->GetNext();
		if (intval($arCity["CITY_ID"]) <= 0)
			$bDeleteFieldLocation = "Y";
		else
			$bDeleteFieldLocation = "N";

		$arOrder = CSaleOrder::DoCalculateOrder(
			$LID,
			$user_id,
			$arShoppingCart,
			$buyerTypeId,
			$arOrderPropsValues,
コード例 #28
0
ファイル: options.php プロジェクト: webgksupport/alpina
						<?php 
            $APPLICATION->IncludeComponent("bitrix:sale.location.selector." . \Bitrix\Sale\Location\Admin\Helper::getWidgetAppearance(), "", array("ID" => "", "CODE" => $location, "INPUT_NAME" => "location[" . $siteList[$i]["ID"] . "]", "PROVIDE_LINK_BY" => "code", "SHOW_ADMIN_CONTROLS" => 'N', "SELECT_WHEN_SINGLE" => 'N', "FILTER_BY_SITE" => 'N', "SHOW_DEFAULT_LOCATIONS" => 'N', "SEARCH_BY_PRIMARY" => 'Y'), false);
            ?>

					<?php 
        } else {
            ?>

						<select name="location[<?php 
            echo $siteList[$i]["ID"];
            ?>
]">
							<option value=''></option>
							<?php 
            $dbLocationList = CSaleLocation::GetList(array("COUNTRY_NAME_LANG" => "ASC", "REGION_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array(), LANGUAGE_ID);
            ?>
							<?php 
            while ($arLocation = $dbLocationList->GetNext()) {
                $locationName = $arLocation["COUNTRY_NAME"];
                if (strlen($arLocation["REGION_NAME"]) > 0) {
                    if (strlen($locationName) > 0) {
                        $locationName .= " - ";
                    }
                    $locationName .= $arLocation["REGION_NAME"];
                }
                if (strlen($arLocation["CITY_NAME"]) > 0) {
                    if (strlen($locationName) > 0) {
                        $locationName .= " - ";
                    }
                    $locationName .= $arLocation["CITY_NAME"];
コード例 #29
0
ファイル: step18.php プロジェクト: Satariall/izurit
}
$siteID = $arParams["site_id"];
if (strlen($arParams["site_id"]) <= 0) {
    $siteID = "s1";
}
$dbSite = CSite::GetByID($siteID);
if ($arSite = $dbSite->Fetch()) {
    $lang = $arSite["LANGUAGE_ID"];
}
if (strlen($lang) <= 0) {
    $lang = "ru";
}
$bRus = false;
if ($lang == "ru") {
    $bRus = true;
}
__IncludeLang(GetLangFileName(dirname(__FILE__) . "/lang/", "/" . basename(__FILE__), $lang));
$dbLocation = CSaleLocation::GetList(array("ID" => "ASC"), array("LID" => $lang));
if ($arLocation = $dbLocation->Fetch()) {
    $arLocationArr = array();
    $arLocation4Delivery = array();
    do {
        $arLocationArr[] = $arLocation["ID"];
    } while ($arLocation = $dbLocation->Fetch());
    //Location group
    $groupLang = array(array("LID" => "en", "NAME" => "Group 1"));
    if ($bRus) {
        $groupLang[] = array("LID" => "ru", "NAME" => GetMessage("SALE_WIZARD_GROUP"));
    }
    $locationGroupID = CSaleLocationGroup::Add(array("SORT" => 150, "LOCATION_ID" => $arLocationArr, "LANG" => $groupLang));
}
コード例 #30
0
ファイル: tax_rate_edit.php プロジェクト: DarneoStudio/bitrix
    ?>

			</td>
		</tr>

	<?php 
} else {
    ?>
		<tr class="adm-detail-required-field">
			<td width="40%" valign="top"><?php 
    echo GetMessage("F_LOCATION1");
    ?>
:</td>
			<td width="60%" valign="top">
				<?php 
    $db_vars = CSaleLocation::GetList(array("SORT" => "ASC", "COUNTRY_NAME_LANG" => "ASC", "REGION_NAME_LANG" => "ASC", "CITY_NAME_LANG" => "ASC"), array("LID" => LANGUAGE_ID), LANG);
    ?>

				<?php 
    $db_location = CSaleTaxRate::GetLocationList(array("TAX_RATE_ID" => $ID, "LOCATION_TYPE" => "L"));
    ?>
				<select name="LOCATION1[]" size="5" multiple>
					<?php 
    $arLOCATION1 = array();
    if ($bInitVars) {
        $arLOCATION1 = $LOCATION1;
    } else {
        while ($arLocation = $db_location->Fetch()) {
            $arLOCATION1[] = $arLocation["LOCATION_ID"];
        }
    }