/** * getRegionsList * @return array regions (locations) list */ public static function getRegionsList($countryId = 0, $bFlip = false) { static $arRegions = array(); $flipIndex = intval($bFlip); if (isset($arRegions[$countryId][$flipIndex])) { return $arRegions[$countryId][$flipIndex]; } if (CSaleLocation::isLocationProMigrated()) { $types = array(); $res = \Bitrix\Sale\Location\TypeTable::getList(array('select' => array('ID', 'CODE'))); while ($item = $res->fetch()) { $types[$item['CODE']] = $item['ID']; } $filter = array(array('LOGIC' => 'OR', array('=TYPE_ID' => $types['CITY'], '=NAME.LANGUAGE_ID' => LANGUAGE_ID, array('LOGIC' => 'OR', array('=PARENT.TYPE_ID' => $types['COUNTRY']), array('=PARENT.TYPE_ID' => $types['COUNTRY_DISTRICT']), array('=PARENT_ID' => '0'))), array('=TYPE_ID' => $types['REGION']))); if (intval($countryId)) { $filter['=PARENTS.TYPE_ID'] = $types['COUNTRY']; $filter['=PARENTS.ID'] = $countryId; } $dbRegionList = \Bitrix\Sale\Location\LocationTable::getList(array('filter' => $filter, 'select' => array('ID', 'CODE', 'NAME_LANG' => 'NAME.NAME'), 'order' => array('NAME.NAME' => 'asc'))); } else { $arFilterRegion = array(); if (intval($countryId) > 0) { $arFilterRegion["COUNTRY_ID"] = $countryId; } $dbRegionList = CSaleLocation::GetRegionList(array("NAME_LANG" => "ASC"), $arFilterRegion, LANGUAGE_ID); } $key = 'ID'; while ($arRegionList = $dbRegionList->Fetch()) { if ($key == 'ID' && isset($arRegionList['CODE'])) { $key = 'CODE'; } if ($key == 'CODE' && strlen($arRegionList['CODE']) <= 0) { continue; } $arRegions[$countryId][0][$arRegionList[$key]] = $arRegionList["NAME_LANG"]; // $bFlip == false $arRegions[$countryId][1][$arRegionList["NAME_LANG"]] = $arRegionList[$key]; // $bFlip == true } return isset($arRegions[$countryId][$flipIndex]) ? $arRegions[$countryId][$flipIndex] : array(); }
protected static function prepareParamsForSaving(array $params = array(), $deliveryId = 0) { if ($deliveryId > 0) { $arLocation = array(); if (!!\CSaleLocation::isLocationProEnabled()) { if (strlen($params["LOCATION"]['L'])) { $LOCATION1 = explode(':', $params["LOCATION"]['L']); } if (strlen($params["LOCATION"]['G'])) { $LOCATION2 = explode(':', $params["LOCATION"]['G']); } } if (isset($LOCATION1) && is_array($LOCATION1) && count($LOCATION1) > 0) { $arLocation["L"] = array(); $locationCount = count($LOCATION1); for ($i = 0; $i < $locationCount; $i++) { if (strlen($LOCATION1[$i])) { $arLocation["L"][] = $LOCATION1[$i]; } } } if (isset($LOCATION2) && is_array($LOCATION2) && count($LOCATION2) > 0) { $arLocation["G"] = array(); $locationCount = count($LOCATION2); for ($i = 0; $i < $locationCount; $i++) { if (strlen($LOCATION2[$i])) { $arLocation["G"][] = $LOCATION2[$i]; } } } DeliveryLocationTable::resetMultipleForOwner($deliveryId, $arLocation); } return array(); }
public function onAfterPerformIteration() { $this->data['migrator_data'] = serialize($this->migrator); if ($this->getPercent() == 100) { \CSaleLocation::locationProSetMigrated(); \CSaleLocation::locationProEnable(); } }
function __GetLocationPrice($LOCATION_ID, $arConfig) { $dbLocationGroups = CSaleLocationGroup::GetLocationList(array("LOCATION_" . (CSaleLocation::checkIsCode($LOCATION_ID) ? 'CODE' : 'ID') => $LOCATION_ID)); while ($arLocationGroup = $dbLocationGroups->Fetch()) { if (array_key_exists('price_' . $arLocationGroup["LOCATION_GROUP_ID"], $arConfig) && strlen($arConfig['price_' . $arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"]) > 0) { return $arConfig['price_' . $arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"]; } } return false; }
/** * 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; }
protected static function addPropertyValueField($tableAlias = 'V', &$arFields, &$arSelectFields) { $tableAlias = \Bitrix\Main\HttpApplication::getConnection()->getSqlHelper()->forSql($tableAlias); // locations kept in CODEs, but must be shown as IDs if (CSaleLocation::isLocationProMigrated()) { $arSelectFields = array_merge(array('PROP_TYPE'), $arSelectFields); // P.TYPE should be there and go above our join $arFields['VALUE'] = array("FIELD" => "\n\t\t\t\tCASE\n\n\t\t\t\t\tWHEN\n\t\t\t\t\t\tP.TYPE = 'LOCATION'\n\t\t\t\t\tTHEN\n\t\t\t\t\t\tCAST(L.ID as " . \Bitrix\Sale\Location\DB\Helper::getSqlForDataType('char', 255) . ")\n\n\t\t\t\t\tELSE\n\t\t\t\t\t\t" . $tableAlias . ".VALUE\n\t\t\t\tEND\n\t\t\t", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_location L ON (P.TYPE = 'LOCATION' AND " . $tableAlias . ".VALUE IS NOT NULL AND " . $tableAlias . ".VALUE = L.CODE)"); $arFields['VALUE_ORIG'] = array("FIELD" => $tableAlias . ".VALUE", "TYPE" => "string"); } else { $arFields['VALUE'] = array("FIELD" => $tableAlias . ".VALUE", "TYPE" => "string"); } }
function __GetLocation($location_id) { static $arDHLUSACountryList; $arLocation = CSaleLocation::GetByID($location_id, 'en'); $dbZipList = CSaleLocation::GetLocationZIP($location_id); while ($arZip = $dbZipList->Fetch()) { $arLocation['ZIP_LIST'][] = $arZip['ZIP']; } if (!is_array($arDHLUSACountryList)) { require 'dhl_usa/country.php'; } $arLocation['COUNTRY_DHLUSA'] = $arDHLUSACountryList[ToUpper($arLocation['COUNTRY_NAME'])]; return $arLocation; }
function __GetLocation($location, $bGetZIP = false) { $arLocation = CSaleHelper::getLocationByIdHitCached($location); $arLocation["IS_RUSSIAN"] = CDeliveryRUSSIANPOST::__IsRussian($arLocation) ? "Y" : "N"; if ($bGetZIP) { $arLocation["ZIP"] = array(); if ($arLocation["IS_RUSSIAN"] == "Y") { $rsZIPList = CSaleLocation::GetLocationZIP($location); while ($arZIP = $rsZIPList->Fetch()) { $arLocation["ZIP"][] = $arZIP["ZIP"]; } } } return $arLocation; }
public static function getConfig($siteId = false) { $shopLocationId = CSaleHelper::getShopLocationId($siteId); $arShopLocation = CSaleLocation::GetByID($shopLocationId); $locString = strlen($arShopLocation["COUNTRY_NAME_LANG"]) > 0 ? $arShopLocation["COUNTRY_NAME_LANG"] : ""; $locString .= strlen($arShopLocation["REGION_NAME_LANG"]) > 0 ? (strlen($locString) > 0 ? ", " : "") . $arShopLocation["REGION_NAME_LANG"] : ""; $locString .= strlen($arShopLocation["CITY_NAME_LANG"]) > 0 ? (strlen($locString) > 0 ? ", " : "") . $arShopLocation["CITY_NAME_LANG"] : ""; $locDelivery = Adapter::mapLocation($shopLocationId); $arConfig = array('CONFIG_GROUPS' => array('exchange_sett' => GetMessage('SALE_DH_PECOM_EXCH_TITLE'), 'add_services' => GetMessage('SALE_DH_PECOM_ADD_SERVICES_TITLE'), 'auto' => GetMessage('SALE_DH_PECOM_AUTO_TITLE'), 'avia' => GetMessage('SALE_DH_PECOM_AVIA_TITLE')), "CONFIG" => array("LOGIN" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_LOGIN'), "GROUP" => "exchange_sett"), "KEY" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_KEY'), "GROUP" => "exchange_sett"), "NAME" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_NAME'), "GROUP" => "exchange_sett"), "INN" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_INN'), "GROUP" => "exchange_sett"), "CITY" => array("TYPE" => "TEXT_RO", "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_CITY'), "VALUE" => $locString, "GROUP" => "exchange_sett"), "CITY_DELIVERY" => array("TYPE" => "DROPDOWN", "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_CITY_DELIVERY'), "VALUES" => $locDelivery, "GROUP" => "exchange_sett"), "PHONE" => array("DEFAULT" => '', "TITLE" => GetMessage('SALE_DH_PECOM_EXCH_PHONE'), "GROUP" => "exchange_sett"), "PAYMENT_FORM" => array("TYPE" => "DROPDOWN", "DEFAULT" => self::$PAYER_BUYER, "TITLE" => GetMessage('SALE_DH_PECOM_AS_PAYMENT_FORM'), "GROUP" => "exchange_sett", "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYMENT_BANK'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYMENT_KASSA'))), "SERVICE_TAKE" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE'), 'GROUP' => 'add_services'), "SERVICE_TAKE_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_TAKE_TENT_ENABLED', 'SERVICE_TAKE_HYDRO_ENABLED')), "SERVICE_TAKE_TENT_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_TENT'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_TAKE_HYDRO_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_TAKE_HYDRO'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_DELIVERY" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY'), 'GROUP' => 'add_services'), "SERVICE_DELIVERY_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_DELIVERY_TENT_ENABLED', 'SERVICE_DELIVERY_HYDRO_ENABLED', 'SERVICE_OTHER_DELIVERY_PAYER')), "SERVICE_DELIVERY_TENT_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_TENT'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_DELIVERY_HYDRO_ENABLED" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_DELIVERY_HYDRO'), 'GROUP' => 'add_services', 'DEFAULT' => ''), "SERVICE_OTHER_DELIVERY_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER" => array('TYPE' => 'SECTION', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER'), 'GROUP' => 'add_services'), "SERVICE_OTHER_PLOMBIR_ENABLE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PLOMBIR_ENABLE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_PLOMBIR_COUNT', 'SERVICE_OTHER_PLOMBIR_PAYER')), "SERVICE_OTHER_PLOMBIR_COUNT" => array('TYPE' => 'STRING', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PLOMBIR_COUNT'), 'GROUP' => 'add_services', 'DEFAULT' => '0'), "SERVICE_OTHER_PLOMBIR_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_PALLETE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_PALLETE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_PALLETE_PAYER')), "SERVICE_OTHER_PALLETE_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_INSURANCE" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_INSURANCE'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_INSURANCE_PAYER')), "SERVICE_OTHER_INSURANCE_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))), "SERVICE_OTHER_RIGID_PACKING" => array('TYPE' => 'CHECKBOX', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_OTHER_RIGID_PACKING'), 'GROUP' => 'add_services', 'DEFAULT' => '', 'TOP_LINE' => 'Y', 'HIDE_BY_NAMES' => array('SERVICE_OTHER_RIGID_PAYER')), "SERVICE_OTHER_RIGID_PAYER" => array('TYPE' => 'DROPDOWN', 'TITLE' => GetMessage('SALE_DH_PECOM_AS_PAYER'), 'GROUP' => 'add_services', 'DEFAULT' => self::$PAYER_BUYER, "VALUES" => array(self::$PAYER_SHOP => GetMessage('SALE_DH_PECOM_AS_PAYER_SHOP'), self::$PAYER_BUYER => GetMessage('SALE_DH_PECOM_AS_PAYER_BUYER'))))); $aviableBoxes = self::getAviableBoxes(); foreach ($aviableBoxes as $boxId => $arBox) { CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'auto', $arConfig); CSaleDeliveryHelper::makeBoxConfig($boxId, $arBox, 'avia', $arConfig); } return $arConfig; }
function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); // need to check here if we got CODE or ID came if (isset($arFields['VALUE']) && (string) $arFields['VALUE'] != '' && CSaleLocation::isLocationProMigrated()) { $propValue = self::GetByID($ID); if ($propValue['TYPE'] == 'LOCATION') { $arFields['VALUE'] = CSaleLocation::tryTranslateIDToCode($arFields['VALUE']); } } $strUpdate = $DB->PrepareUpdate("b_sale_user_props_value", $arFields); $strSql = "UPDATE b_sale_user_props_value SET " . "\t" . $strUpdate . " " . "WHERE ID = " . $ID . " "; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $ID; }
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; }
function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false) { $arPacks = CSaleDeliveryHelper::getBoxesFromConfig($profile, $arConfig); $arPackagesParams = CSaleDeliveryHelper::getRequiredPacks($arOrder["ITEMS"], $arPacks, self::$MAX_WEIGHT); $packageCount = count($arPackagesParams); if (intval($packageCount) <= 0) { return array("RESULT" => "ERROR", "TEXT" => GetMessage("SALE_DH_KP_OVERLOAD")); } $totalPrice = 0; $shopLocationId = CSaleHelper::getShopLocationId(SITE_ID); $arShopLocation = CSaleLocation::GetByID($shopLocationId); $arLocationTo = CSaleLocation::GetByID($arOrder['LOCATION_TO']); foreach ($arPackagesParams as $arPackage) { $totalPrice += self::calculatePackPrice($arPackage, $profile, $arConfig, $arShopLocation['REGION_ID'], $arLocationTo['REGION_ID']); } $arResult = array('RESULT' => 'OK', 'VALUE' => $totalPrice, 'PACKS_COUNT' => $packageCount); return $arResult; }
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; }
/** * getRegionsList * @return array regions (locations) list */ public static function getRegionsList($countryId = 0, $bFlip = false) { static $arRegions = array(); $flipIndex = intval($bFlip); if (isset($arRegions[$countryId][$flipIndex])) { return $arRegions[$countryId][$flipIndex]; } $arFilterRegion = array(); if (intval($countryId) > 0) { $arFilterRegion["COUNTRY_ID"] = $countryId; } $dbRegionList = CSaleLocation::GetRegionList(array("NAME_LANG" => "ASC"), $arFilterRegion, LANGUAGE_ID); while ($arRegionList = $dbRegionList->Fetch()) { $arRegions[$countryId][0][$arRegionList['ID']] = $arRegionList["NAME_LANG"]; // $bFlip == false $arRegions[$countryId][1][$arRegionList["NAME_LANG"]] = $arRegionList['ID']; // $bFlip == true } return isset($arRegions[$countryId][$flipIndex]) ? $arRegions[$countryId][$flipIndex] : array(); }
), ); /* LOCATIONS BEGIN */ // this file can be loaded directly, without module include, so ... require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/include.php"); if(class_exists('CSaleLocation')) { $locationMenu = array( "text" => GetMessage("SALE_LOCATION"), "title" => GetMessage("SALE_LOCATION_DESCR"), "items_id" => "menu_sale_locations", ); if(CSaleLocation::isLocationProEnabled()) { $locationMenu["items"] = array( array( "text" => GetMessage("sale_menu_locations"), "title" => GetMessage("sale_menu_locations_title"), "url" => Location\Admin\LocationHelper::getListUrl(0), "more_url" => array(Location\Admin\LocationHelper::getEditUrl()), "module_id" => "sale", "items_id" => Location\Admin\LocationHelper::packItemsQueryString(), "dynamic" => true, "items" => Location\Admin\LocationHelper::getLocationSubMenu() ), array( "text" => GetMessage("SALE_LOCATION_GROUPS"),
} $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)); }
public static function getCityNameFromLocationId($locationId) { $loc = \CSaleLocation::GetById($locationId); return isset($loc["CITY_NAME_LANG"]) ? $loc["CITY_NAME_LANG"] : false; }
$arResult['FIELDS']['tab_params'][] = array('id' => 'CITY_NAME', 'name' => GetMessage('CRM_LOC_FIELD_NAME'), 'value' => htmlspecialcharsEx($arLoc['CITY_NAME_ORIG']), 'required' => true, 'type' => 'text'); $arResult['FIELDS']['tab_params'][] = array('id' => 'CITY_SHORT_NAME', 'name' => GetMessage('CRM_LOC_FIELD_SHORT_NAME'), 'value' => htmlspecialcharsEx($arLoc['CITY_SHORT_NAME']), 'type' => 'text'); for ($i = 0; $i < $countLang; $i++) { $arCity = CSaleLocation::GetCityLangByID($arLoc['CITY_ID'], $arSysLangs[$i]); /* $arResult['FIELDS']['tab_params'][] = array( 'id' => 'CI_LANG_'.$arSysLangs[$i], 'value' => '<b>['.$arSysLangs[$i].'] '.$arSysLangNames[$i].'</b>', 'colspan' => true, 'type' => 'label' ); */ $arResult['FIELDS']['tab_params'][] = array('id' => 'CITY_NAME_' . $arSysLangs[$i], 'name' => GetMessage('CRM_LOC_FIELD_NAME'), 'value' => htmlspecialcharsEx($arCity["NAME"]), 'required' => true, 'type' => 'text'); $arResult['FIELDS']['tab_params'][] = array('id' => 'CITY_SHORT_NAME_' . $arSysLangs[$i], 'name' => GetMessage('CRM_LOC_FIELD_SHORT_NAME'), 'value' => htmlspecialcharsEx($arCity["SHORT_NAME"]), 'type' => 'text'); } /*ZIP TAB*/ $arResult['FIELDS']['tab_zip'][] = array('id' => 'loc_zip', 'name' => GetMessage('CRM_LOC_SECTION_ZIP'), 'type' => 'section'); $zipHtml = '<div id="zip_list">'; $arZipList = array(); $rsZipList = CSaleLocation::GetLocationZIP($locID); while ($arZip = $rsZipList->Fetch()) { $arZipList[] = $arZip; } foreach ($arZipList as $key => $zip) { $zipHtml .= '<input type="text" name="ZIP[]" value="' . htmlspecialcharsEx($zip["ZIP"]) . '" size="10" /><span class="bx-crm-location-zip-delete" onclick="BX.crmLocationZip.delete(this);">' . GetMessage("CRM_DEL_ZIP") . '</span><br />'; } $zipHtml .= '<input type="text" name="ZIP[]" value="" size="10" /><br /> </div> <button onClick="return BX.crmLocationZip.add();">' . GetMessage("CRM_ADD_ZIP") . '</button>'; $arResult['FIELDS']['tab_zip'][] = array('id' => 'ZIP_INPUTS', 'name' => GetMessage('CRM_LOC_FIELD_LOC_ZIP'), 'value' => $zipHtml, 'type' => 'custom'); $this->IncludeComponentTemplate();
function PrepareGetListArray($key, &$arFields, &$arPropIDsTmp) { $propIDTmp = false; if (StrPos($key, "PROPERTY_ID_") === 0) { $propIDTmp = IntVal(substr($key, StrLen("PROPERTY_ID_"))); } elseif (StrPos($key, "PROPERTY_NAME_") === 0) { $propIDTmp = IntVal(substr($key, StrLen("PROPERTY_NAME_"))); } elseif (StrPos($key, "PROPERTY_VALUE_") === 0) { $propIDTmp = IntVal(substr($key, StrLen("PROPERTY_VALUE_"))); } elseif (StrPos($key, "PROPERTY_CODE_") === 0) { $propIDTmp = IntVal(substr($key, StrLen("PROPERTY_CODE_"))); } elseif (StrPos($key, "PROPERTY_VAL_BY_CODE_") === 0) { $propIDTmp = preg_replace("/[^a-zA-Z0-9_-]/is", "", trim(substr($key, StrLen("PROPERTY_VAL_BY_CODE_")))); } $locationPropInfo = self::getLocationPropertyInfo(); if (strlen($propIDTmp) > 0 || $propIDTmp > 0) { if (!in_array($propIDTmp, $arPropIDsTmp)) { $arPropIDsTmp[] = $propIDTmp; $arFields["PROPERTY_ID_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); $arFields["PROPERTY_ORDER_PROPS_ID_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".ORDER_PROPS_ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); $arFields["PROPERTY_NAME_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); if (CSaleLocation::isLocationProMigrated() && isset($locationPropInfo['ID'][$propIDTmp])) { $arFields["PROPERTY_VALUE_" . $propIDTmp] = array("FIELD" => "L_" . $propIDTmp . ".ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID) INNER JOIN b_sale_location L_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".VALUE = L_" . $propIDTmp . ".CODE)"); } else { $arFields["PROPERTY_VALUE_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".VALUE", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); } $arFields["PROPERTY_CODE_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".CODE", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".ORDER_PROPS_ID = " . $propIDTmp . " AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); if (CSaleLocation::isLocationProMigrated() && isset($locationPropInfo['CODE'][$propIDTmp])) { $arFields["PROPERTY_VAL_BY_CODE_" . $propIDTmp] = array("FIELD" => "L_" . $propIDTmp . ".ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".CODE = '" . $propIDTmp . "' AND O.ID = SP_" . $propIDTmp . ".ORDER_ID) INNER JOIN b_sale_location L_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".VALUE = L_" . $propIDTmp . ".CODE)"); } else { $arFields["PROPERTY_VAL_BY_CODE_" . $propIDTmp] = array("FIELD" => "SP_" . $propIDTmp . ".VALUE", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_order_props_value SP_" . $propIDTmp . " ON (SP_" . $propIDTmp . ".CODE = '" . $propIDTmp . "' AND O.ID = SP_" . $propIDTmp . ".ORDER_ID)"); } } } }
// get prop values $arPropValsTmp = Array(); if (!$bInitVars) { $dbPropVals = CSaleOrderUserPropsValue::GetList( array("SORT" => "ASC"), array("USER_PROPS_ID" => $arUserProps["ID"]), false, false, array("ID", "ORDER_PROPS_ID", "VALUE", "SORT") ); while ($arPropVals = $dbPropVals->GetNext()) { // replace here if(CSaleLocation::isLocationProMigrated() && isset($propsOfTypeLocation[$arPropVals['ORDER_PROPS_ID']])) $arPropVals["VALUE"] = CSaleLocation::getLocationIDbyCODE($arPropVals["VALUE"]); $arPropValsTmp["ORDER_PROP_".$arPropVals["ORDER_PROPS_ID"]] = $arPropVals["VALUE"]; } } else { foreach ($_REQUEST as $key => $value) { if (substr($key, 0, strlen("ORDER_PROP_"))=="ORDER_PROP_") $arPropValsTmp[$key] = htmlspecialcharsbx($value); } } $arResult["ORDER_PROPS_VALUES"] = $arPropValsTmp; } else
/** * Function gets order properties from database * @param mixed[] $cached Cached data taken from obtainDataCachedStructure() * @return void */ protected function obtainProps(&$cached) { if (empty($this->dbResult["ID"])) { return; } $props = array(); $dbOrderProps = CSaleOrderPropsValue::GetOrderProps($this->dbResult["ID"]); $iGroup = -1; while ($arOrderProps = $dbOrderProps->GetNext()) { if (empty($this->arParams["PROP_" . $this->dbResult["PERSON_TYPE_ID"]]) || !in_array($arOrderProps["ORDER_PROPS_ID"], $this->arParams["PROP_" . $this->dbResult["PERSON_TYPE_ID"]])) { if ($arOrderProps["ACTIVE"] == "Y" && $arOrderProps["UTIL"] == "N") { $arOrderPropsTmp = $arOrderProps; if ($iGroup != intval($arOrderProps["PROPS_GROUP_ID"])) { $arOrderPropsTmp["SHOW_GROUP_NAME"] = "Y"; $iGroup = intval($arOrderProps["PROPS_GROUP_ID"]); } if ($arOrderProps["TYPE"] == "SELECT" || $arOrderProps["TYPE"] == "RADIO") { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderProps["ORDER_PROPS_ID"], $arOrderProps["VALUE"]); $arOrderPropsTmp["VALUE"] = htmlspecialcharsEx($arVal["NAME"]); } elseif ($arOrderProps["TYPE"] == "MULTISELECT") { $arOrderPropsTmp["VALUE"] = ""; $curVal = explode(",", $arOrderProps["VALUE"]); for ($i = 0, $intCount = count($curVal); $i < $intCount; $i++) { $arVal = CSaleOrderPropsVariant::GetByValue($arOrderProps["ORDER_PROPS_ID"], $curVal[$i]); if ($i > 0) { $arOrderPropsTmp["VALUE"] .= ", "; } $arOrderPropsTmp["VALUE"] .= htmlspecialcharsEx($arVal["NAME"]); } } elseif ($arOrderProps["TYPE"] == "LOCATION") { $locationName = ""; if (CSaleLocation::isLocationProMigrated()) { $locationName = Location\Admin\LocationHelper::getLocationStringById($arOrderProps["VALUE"]); } else { $arVal = CSaleLocation::GetByID($arOrderProps["VALUE"], LANGUAGE_ID); $locationName .= !strlen($arVal["COUNTRY_NAME"]) ? "" : $arVal["COUNTRY_NAME"]; if (strlen($arVal["COUNTRY_NAME"]) && strlen($arVal["REGION_NAME"])) { $locationName .= " - " . $arVal["REGION_NAME"]; } elseif (strlen($arVal["REGION_NAME"])) { $locationName .= $arVal["REGION_NAME"]; } if (strlen($arVal["COUNTRY_NAME"]) || strlen($arVal["REGION_NAME"])) { $locationName .= " - " . $arVal["CITY_NAME"]; } elseif (strlen($arVal["CITY_NAME"])) { $locationName .= $arVal["CITY_NAME"]; } } $arOrderPropsTmp["VALUE"] = $locationName; } elseif ($arOrderProps["TYPE"] == "FILE") { if (strpos($arOrderProps["VALUE"], ",") !== false) { $fileValue = ""; $values = explode(",", $arOrderProps["VALUE"]); if (self::isNonemptyArray($values)) { foreach ($values as $fileId) { $fileValue .= CFile::ShowFile(trim($fileId), 0, 90, 90, true) . "<br/>"; } } $arOrderPropsTmp["VALUE"] = $fileValue; } else { $arOrderPropsTmp["VALUE"] = CFile::ShowFile($arOrderProps["VALUE"], 0, 90, 90, true); } } $props[] = $arOrderPropsTmp; } } } $cached["ORDER_PROPS"] = $props; }
// 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,
public static function getAllCMTarifsFromCsv() { $csvFile = CSaleHelper::getCsvObject(__DIR__ . '/ru/cm_tarif.csv'); $arTarifs = array(); $regNames = array(); $arResult = array(); while ($arRes = $csvFile->Fetch()) { $arRegName = array_shift($arRes); $arTarifs[$arRegName] = $arRes; if ($arRegName != 'default') { $regNames[] = $arRegName; } } if (isset($arTarifs['default'])) { $arResult[0] = array("TARIFS" => self::getTarifArrayCSV($arTarifs['default']), "REG_NAME" => GetMessage('SPFPCT_TARIF_DEFAULT')); } $regInfo = CSaleLocation::GetRegionsIdsByNames($regNames); foreach ($regInfo as $regName => $regId) { $assocTarif = self::getTarifArrayCSV($arTarifs[$regName]); $arResult[$regInfo[$regName]]["TARIFS"] = $assocTarif; $arResult[$regInfo[$regName]]["REG_NAME"] = $regName; } return $arResult; }
$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) { $item['NAME'] = $item["COUNTRY_NAME"] . (strlen($item["CITY_NAME"]) > 0 ? " - " : "") . $item["CITY_NAME"]; $item['SELECTED'] = 'Y'; $arProperties["VARIANTS"][] = $item; } } if (count($arProperties["VARIANTS"]) == 1) { $arProperties["VALUE"] = $arProperties["VARIANTS"][0]["ID"]; } } elseif ($arProperties["TYPE"] == "RADIO") { $arProperties["VARIANTS"] = array(); $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";
function PrintPropsForm($arSource=Array(), $PRINT_TITLE = "", $arParams) { if (!empty($arSource)) { if (strlen($PRINT_TITLE) > 0) { ?> <b><?php echo $PRINT_TITLE; ?> </b><br /><br /> <? } ?> <table class="sale_order_full_table"> <? foreach($arSource as $arProperties) { if($arProperties["SHOW_GROUP_NAME"] == "Y") { ?> <tr> <td colspan="2" align="center"> <b><?php echo $arProperties["GROUP_NAME"]; ?> </b> </td> </tr> <? } ?> <tr> <td align="right" valign="top"> <?php echo $arProperties["NAME"]; ?> :<? if($arProperties["REQUIED_FORMATED"]=="Y") { ?><span class="sof-req">*</span><? } ?> </td> <td> <? if($arProperties["TYPE"] == "CHECKBOX") { ?> <input type="checkbox" name="<?php echo $arProperties["FIELD_NAME"]; ?> " value="Y"<?if ($arProperties["CHECKED"]=="Y") echo " checked";?>> <? } elseif($arProperties["TYPE"] == "TEXT") { ?> <input type="text" maxlength="250" size="<?php echo $arProperties["SIZE1"]; ?> " value="<?php echo $arProperties["VALUE"]; ?> " name="<?php echo $arProperties["FIELD_NAME"]; ?> "> <? } elseif($arProperties["TYPE"] == "SELECT") { ?> <select name="<?php echo $arProperties["FIELD_NAME"]; ?> " size="<?php echo $arProperties["SIZE1"]; ?> "> <? foreach($arProperties["VARIANTS"] as $arVariants) { ?> <option value="<?php echo $arVariants["VALUE"]; ?> "<?if ($arVariants["SELECTED"] == "Y") echo " selected";?>><?php echo $arVariants["NAME"]; ?> </option> <? } ?> </select> <? } elseif ($arProperties["TYPE"] == "MULTISELECT") { ?> <select multiple name="<?php echo $arProperties["FIELD_NAME"]; ?> " size="<?php echo $arProperties["SIZE1"]; ?> "> <? foreach($arProperties["VARIANTS"] as $arVariants) { ?> <option value="<?php echo $arVariants["VALUE"]; ?> "<?if ($arVariants["SELECTED"] == "Y") echo " selected";?>><?php echo $arVariants["NAME"]; ?> </option> <? } ?> </select> <? } elseif ($arProperties["TYPE"] == "TEXTAREA") { ?> <textarea rows="<?php echo $arProperties["SIZE2"]; ?> " cols="<?php echo $arProperties["SIZE1"]; ?> " name="<?php echo $arProperties["FIELD_NAME"]; ?> "><?php echo $arProperties["VALUE"]; ?> </textarea> <? } elseif ($arProperties["TYPE"] == "LOCATION") { $value = 0; foreach ($arProperties["VARIANTS"] as $arVariant) { if ($arVariant["SELECTED"] == "Y") { $value = $arVariant["ID"]; break; } } if ($arParams["USE_AJAX_LOCATIONS"] == "Y"): CSaleLocation::proxySaleAjaxLocationsComponent( array( "AJAX_CALL" => "N", "COUNTRY_INPUT_NAME" => "COUNTRY_".$arProperties["FIELD_NAME"], "REGION_INPUT_NAME" => "REGION_".$arProperties["FIELD_NAME"], "CITY_INPUT_NAME" => $arProperties["FIELD_NAME"], "CITY_OUT_LOCATION" => "Y", "LOCATION_VALUE" => $value, "ORDER_PROPS_ID" => $arProperties["ID"], "ONCITYCHANGE" => "", ), array( "ID" => "", "CODE" => $arProperties["VALUE"], "PROVIDE_LINK_BY" => "code", ) ); else: ?> <select name="<?php echo $arProperties["FIELD_NAME"]; ?> " size="<?php echo $arProperties["SIZE1"]; ?> "> <? foreach($arProperties["VARIANTS"] as $arVariants) { ?> <option value="<?php echo $arVariants["ID"]; ?> "<?if ($arVariants["SELECTED"] == "Y") echo " selected";?>><?php echo $arVariants["NAME"]; ?> </option> <? } ?> </select> <? endif; } elseif ($arProperties["TYPE"] == "RADIO") { foreach($arProperties["VARIANTS"] as $arVariants) { ?> <input type="radio" name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> _<?php echo $arVariants["ID"]; ?> " value="<?php echo $arVariants["VALUE"]; ?> "<?if($arVariants["CHECKED"] == "Y") echo " checked";?>> <label for="<?php echo $arProperties["FIELD_NAME"]; ?> _<?php echo $arVariants["ID"]; ?> "><?php echo $arVariants["NAME"]; ?> </label><br /> <? } } if (strlen($arProperties["DESCRIPTION"]) > 0) { ?><br /><small><?echo $arProperties["DESCRIPTION"] ?></small><? } ?> </td> </tr> <? } ?> </table> <? return true; } return false; }
function getOrderPropertiesHTML($arOrderProps, $arPropValues = array(), $LID, $USER_ID = '', $ORDER_ID = 0, $formVarsSubmit = false) { $propertyGroupID = -1; $arDisableFieldForLocation = array(); $resultHtml = "<table id=\"order_related_props\">"; // get order properties values if ($formVarsSubmit) { $locationIndexForm = ""; foreach ($_POST as $key => $value) { if (substr($key, 0, strlen("CITY_ORDER_PROP_")) == "CITY_ORDER_PROP_") { $arPropValues[intval(substr($key, strlen("CITY_ORDER_PROP_")))] = htmlspecialcharsbx($value); $locationIndexForm = intval(substr($key, strlen("CITY_ORDER_PROP_"))); } if (substr($key, 0, strlen("ORDER_PROP_")) == "ORDER_PROP_") { if ($locationIndexForm != intval(substr($key, strlen("ORDER_PROP_")))) { if (!is_array($value)) $arPropValues[intval(substr($key, strlen("ORDER_PROP_")))] = htmlspecialcharsbx($value); else { $arValues = array(); foreach ($value as $k => $v) $arValues[$key] = htmlspecialcharsbx($v); $arPropValues[intval(substr($key, strlen("ORDER_PROP_")))] = $arValues; } } } } } // iterate over list of properties if (is_array($arOrderProps)) { foreach ($arOrderProps as $arProperties) { if (intval($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID) { $resultHtml .= "<tr><td colspan=\"2\" style=\"text-align:center;font-weight:bold;font-size:14px;color:rgb(75, 98, 103);\" >".htmlspecialcharsEx($arProperties["GROUP_NAME"])."\n</td>\n</tr>"; $propertyGroupID = intval($arProperties["PROPS_GROUP_ID"]); } if (intval($arProperties["PROPS_GROUP_ID"]) != $propertyGroupID) $propertyGroupID = intval($arProperties["PROPS_GROUP_ID"]); $adit = ""; $requiredField = ""; if ($arProperties["REQUIED"] == "Y" || $arProperties["IS_PROFILE_NAME"] == "Y" || $arProperties["IS_LOCATION"] == "Y" || $arProperties["IS_LOCATION4TAX"] == "Y" || $arProperties["IS_PAYER"] == "Y" || $arProperties["IS_ZIP"] == "Y") { $adit = " class=\"adm-detail-required-field\""; $requiredField = " class=\"adm-detail-content-cell-l\""; } //delete town from location if (in_array($arProperties["ID"], $arDisableFieldForLocation)) $resultHtml .= "<tr style=\"display:none;\" id=\"town_location_".$arProperties["ID"]."\"".$adit.">\n"; else $resultHtml .= "<tr id=\"town_location_".$arProperties["ID"]."\"".$adit.">\n"; if(($arProperties["TYPE"] == "MULTISELECT" || $arProperties["TYPE"] == "TEXTAREA") || ($ORDER_ID <= 0 && $arProperties["IS_PROFILE_NAME"] == "Y") ) $resultHtml .= "<td valign=\"top\" class=\"adm-detail-content-cell-l\" width=\"40%\">\n"; else $resultHtml .= "<td align=\"right\" width=\"40%\" ".$requiredField.">\n"; $resultHtml .= $arProperties["NAME"].":</td>"; $curVal = $arPropValues[intval($arProperties["ID"])]; if($arProperties["IS_EMAIL"] == "Y" || $arProperties["IS_PAYER"] == "Y") { if(strlen($arProperties["DEFAULT_VALUE"]) <= 0 && intval($USER_ID) > 0) { $rsUser = CUser::GetByID($USER_ID); if ($arUser = $rsUser->Fetch()) { if($arProperties["IS_EMAIL"] == "Y") $arProperties["DEFAULT_VALUE"] = $arUser["EMAIL"]; else { if (strlen($arUser["LAST_NAME"]) > 0) $arProperties["DEFAULT_VALUE"] .= $arUser["LAST_NAME"]; if (strlen($arUser["NAME"]) > 0) $arProperties["DEFAULT_VALUE"] .= " ".$arUser["NAME"]; if (strlen($arUser["SECOND_NAME"]) > 0 AND strlen($arUser["NAME"]) > 0) $arProperties["DEFAULT_VALUE"] .= " ".$arUser["SECOND_NAME"]; } } } } $resultHtml .= "<td class=\"adm-detail-content-cell-r\" width=\"60%\">"; if ($arProperties["TYPE"] == "CHECKBOX") { $resultHtml .= '<input type="checkbox" class="inputcheckbox" '; $resultHtml .= 'name="ORDER_PROP_'.$arProperties["ID"].'" value="Y"'; $resultHtml .= 'id="ORDER_PROP_'.$arProperties["ID"].'" '; if ($curVal=="Y" || !isset($curVal) && $arProperties["DEFAULT_VALUE"]=="Y") $resultHtml .= " checked"; $resultHtml .= '>'; } elseif ($arProperties["TYPE"] == "TEXT") { $change = ""; if ($arProperties["IS_ZIP"] == "Y") { $DELIVERY_LOCATION_ZIP = $curVal; $resultHtml .= '<script> locationZipID = \''.$arProperties["ID"].'\';</script>'; $locationZipID = ((isset($curVal)) ? htmlspecialcharsEx($curVal) : htmlspecialcharsex($arProperties["DEFAULT_VALUE"])); } if ($arProperties["IS_PAYER"] == "Y" && intval($USER_ID) <= 0) { $resultHtml .= '<div id="BREAK_NAME"'; if ($ORDER_ID > 0 || ($formVarsSubmit && $_REQUEST["btnTypeBuyer"] == "btnBuyerExist")) $resultHtml .= ' style="display:none"'; $resultHtml .= '>'; $BREAK_LAST_NAME_TMP = GetMessage('NEWO_BREAK_LAST_NAME'); if (isset($_REQUEST["BREAK_LAST_NAME"]) && strlen($_REQUEST["BREAK_LAST_NAME"]) > 0) $BREAK_LAST_NAME_TMP = htmlspecialcharsbx(trim($_REQUEST["BREAK_LAST_NAME"])); $NEWO_BREAK_NAME_TMP = GetMessage('NEWO_BREAK_NAME'); if (isset($_REQUEST["BREAK_NAME"]) && strlen($_REQUEST["BREAK_NAME"]) > 0) $NEWO_BREAK_NAME_TMP = htmlspecialcharsbx(trim($_REQUEST["BREAK_NAME"])); $BREAK_SECOND_NAME_TMP = GetMessage('NEWO_BREAK_SECOND_NAME'); if (isset($_REQUEST["BREAK_SECOND_NAME"]) && strlen($_REQUEST["BREAK_SECOND_NAME"]) > 0) $BREAK_SECOND_NAME_TMP = htmlspecialcharsbx(trim($_REQUEST["BREAK_SECOND_NAME"])); $resultHtml .= "<div class=\"fio newo_break_active\"><input onblur=\"if (this.value==''){this.value='".CUtil::JSEscape(GetMessage('NEWO_BREAK_LAST_NAME'))."';BX.addClass(this.parentNode,'newo_break_active');}\" onfocus=\"if (this.value=='".CUtil::JSEscape(GetMessage('NEWO_BREAK_LAST_NAME'))."') {this.value='';BX.removeClass(this.parentNode,'newo_break_active');}\" type=\"text\" name=\"BREAK_LAST_NAME\" id=\"BREAK_LAST_NAME\" size=\"30\" value=\"".$BREAK_LAST_NAME_TMP."\" /></div>"; $resultHtml .= "<div class=\"fio newo_break_active\"><input onblur=\"if (this.value==''){this.value='".CUtil::JSEscape(GetMessage('NEWO_BREAK_NAME'))."';BX.addClass(this.parentNode,'newo_break_active');}\" onfocus=\"if (this.value=='".CUtil::JSEscape(GetMessage('NEWO_BREAK_NAME'))."') {this.value='';BX.removeClass(this.parentNode,'newo_break_active');}\" type=\"text\" name=\"BREAK_NAME\" id=\"BREAK_NAME_BUYER\" size=\"30\" value=\"".$NEWO_BREAK_NAME_TMP."\" /></div>"; $resultHtml .= "<div class=\"fio newo_break_active\"><input onblur=\"if (this.value==''){this.value='".CUtil::JSEscape(GetMessage('NEWO_BREAK_SECOND_NAME'))."';BX.addClass(this.parentNode,'newo_break_active');}\" onfocus=\"if (this.value=='".CUtil::JSEscape(GetMessage('NEWO_BREAK_SECOND_NAME'))."') {this.value='';BX.removeClass(this.parentNode,'newo_break_active');}\" type=\"text\" name=\"BREAK_SECOND_NAME\" id=\"BREAK_SECOND_NAME\" size=\"30\" value=\"".$BREAK_SECOND_NAME_TMP."\" /></div>"; $resultHtml .= '</div>'; $resultHtml .= '<div id="NO_BREAK_NAME"'; if ($ORDER_ID <= 0) $tmpNone = ' style="display:none"'; if ($formVarsSubmit && $_REQUEST["btnTypeBuyer"] == "btnBuyerExist") $tmpNone = ' style="display:block"'; $resultHtml .= $tmpNone.'>'; } $resultHtml .= '<input type="text" maxlength="250" '; $resultHtml .= 'size="30" '; $resultHtml .= 'value="'.((isset($curVal)) ? $curVal : $arProperties["DEFAULT_VALUE"]).'" '; $resultHtml .= 'name="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'id="ORDER_PROP_'.$arProperties["ID"].'" '.$change.'>'; if ($arProperties["IS_PAYER"] == "Y" && intval($USER_ID) <= 0) $resultHtml .= '</div>'; } elseif ($arProperties["TYPE"] == "SELECT") { $size = (intval($arProperties["SIZE1"]) > 0) ? intval($arProperties["SIZE1"]) : 5; $resultHtml .= '<select name="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'id="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'size='.$size.' '; $resultHtml .= 'class="typeselect">'; $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); while ($arVariants = $dbVariants->Fetch()) { $resultHtml .= '<option value="'.htmlspecialcharsex($arVariants["VALUE"]).'"'; if ($arVariants["VALUE"] == $curVal || !isset($curVal) && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) $resultHtml .= " selected"; $resultHtml .= '>'.htmlspecialcharsEx($arVariants["NAME"]).'</option>'; } $resultHtml .= '</select>'; } elseif ($arProperties["TYPE"] == "MULTISELECT") { $size = (intval($arProperties["SIZE1"]) > 0) ? intval($arProperties["SIZE1"]) : 5; $resultHtml .= '<select multiple name="ORDER_PROP_'.$arProperties["ID"].'[]" '; $resultHtml .= 'id="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'size='.$size.' '; $resultHtml .= 'class="typeselect" type="multyselect">'; if (!is_array($curVal)) { if (strlen($curVal) > 0 OR $ORDER_ID != "") $curVal = explode(",", $curVal); else $curVal = explode(",", $arProperties["DEFAULT_VALUE"]); $arCurVal = array(); $countCurVal = count($curVal); for ($i = 0; $i < $countCurVal; $i++) $arCurVal[$i] = Trim($curVal[$i]); } else $arCurVal = $curVal; $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); while ($arVariants = $dbVariants->Fetch()) { $resultHtml .= '<option value="'.htmlspecialcharsex($arVariants["VALUE"]).'"'; if (in_array($arVariants["VALUE"], $arCurVal)) $resultHtml .= " selected"; $resultHtml .= '>'.htmlspecialcharsEx($arVariants["NAME"]).'</option>'; } $resultHtml .= '</select>'; } elseif ($arProperties["TYPE"] == "TEXTAREA") { $resultHtml .= '<textarea '; $resultHtml .= 'rows="4" '; $resultHtml .= 'cols="40" '; $resultHtml .= 'name="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'id="ORDER_PROP_'.$arProperties["ID"].'" type="textarea">'; $resultHtml .= ((isset($curVal)) ? $curVal : $arProperties["DEFAULT_VALUE"]); $resultHtml .= '</textarea>'; } elseif ($arProperties["TYPE"] == "LOCATION") { $countryID = ""; $cityID = ""; $cityList = ""; $DELIVERY_LOCATION = $arPropValues[intval($arProperties["ID"])]; $locationID = $curVal; $tmpLocation = ''; ob_start(); CSaleLocation::proxySaleAjaxLocationsComponent( array( "SITE_ID" => $LID, "AJAX_CALL" => "N", "COUNTRY_INPUT_NAME" => "ORDER_PROP_".$arProperties["ID"], "REGION_INPUT_NAME" => "REGION_ORDER_PROP_".$arProperties["ID"], "CITY_INPUT_NAME" => "CITY_ORDER_PROP_".$arProperties["ID"], "CITY_OUT_LOCATION" => "Y", "ALLOW_EMPTY_CITY" => "Y", "LOCATION_VALUE" => $curVal, "COUNTRY" => "", "ONCITYCHANGE" => "", "PUBLIC" => "N", ), array( "ID" => "", "CODE" => $curVal, "PROVIDE_LINK_BY" => "code", ) ); $tmpLocation = ob_get_contents(); ob_end_clean(); $resultHtml .= '<script>var locationID = \''.$arProperties["ID"].'\';</script>'; $resultHtml .= $tmpLocation; } elseif ($arProperties["TYPE"] == "RADIO") { $dbVariants = CSaleOrderPropsVariant::GetList( array("SORT" => "ASC"), array("ORDER_PROPS_ID" => $arProperties["ID"]), false, false, array("*") ); $resultHtml .= '<div id="ORDER_PROP_'.$arProperties["ID"].'">';// type="radio" while ($arVariants = $dbVariants->Fetch()) { $resultHtml .= '<input type="radio" class="inputradio" '; $resultHtml .= 'name="ORDER_PROP_'.$arProperties["ID"].'" '; $resultHtml .= 'value="'.htmlspecialcharsex($arVariants["VALUE"]).'"'; if ($arVariants["VALUE"] == $curVal || !isset($curVal) && $arVariants["VALUE"] == $arProperties["DEFAULT_VALUE"]) $resultHtml .= " checked"; $resultHtml .= '>'.htmlspecialcharsEx($arVariants["NAME"]).'<br>'; } $resultHtml .= '</div>'; } elseif ($arProperties["TYPE"] == "FILE") { $arValues = array(); $arTmpValues = array(); if (isset($arPropValues[$arProperties["ID"]]) && !is_array($arPropValues[$arProperties["ID"]])) { $arTmpValues = explode(", ", $arPropValues[$arProperties["ID"]]); foreach ($arTmpValues as $key => $value) $arValues[$value] = $value; } $resultHtml .= fShowFilePropertyField("ORDER_PROP_".$arProperties["ID"], $arProperties, $arValues, $arProperties["SIZE1"], $formVarsSubmit); } if (strlen($arProperties["DESCRIPTION"]) > 0) { $resultHtml .= "<br><small>".htmlspecialcharsEx($arProperties["DESCRIPTION"])."</small>"; } $resultHtml .= "\n</td>\n</tr>"; }//end while } $resultHtml .= "</table>"; return $resultHtml; }
$arResult['FIELDS']['tab_1'][] = array('id' => 'DEAL_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_DEAL_ID'), 'type' => 'crm_entity_selector', 'componentParams' => array('ENTITY_TYPE' => 'DEAL', 'INPUT_NAME' => 'DEAL_ID', 'NEW_INPUT_NAME' => '', 'INPUT_VALUE' => isset($arResult['ELEMENT']['DEAL_ID']) ? $arResult['ELEMENT']['DEAL_ID'] : '', 'FORM_NAME' => $arResult['FORM_ID'], 'MULTIPLE' => 'N', 'NAME_TEMPLATE' => \Bitrix\Crm\Format\PersonNameFormatter::getFormat())); } $arResult['FIELDS']['tab_1'][] = array('id' => 'OPENED', 'name' => GetMessage('CRM_QUOTE_FIELD_OPENED'), 'type' => 'vertical_checkbox', 'params' => array(), 'value' => isset($arResult['ELEMENT']['OPENED']) ? $arResult['ELEMENT']['OPENED'] : true, 'title' => GetMessage('CRM_QUOTE_FIELD_OPENED_TITLE')); $arResult['FIELDS']['tab_1'][] = array('id' => 'section_contact_info', 'name' => GetMessage('CRM_SECTION_CLIENT_INFO'), 'type' => 'section'); if (CCrmContact::CheckReadPermission()) { $arResult['FIELDS']['tab_1'][] = array('id' => 'CONTACT_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_CONTACT_ID'), 'type' => 'crm_entity_selector', 'componentParams' => array('ENTITY_TYPE' => 'CONTACT', 'INPUT_NAME' => 'CONTACT_ID', 'NEW_INPUT_NAME' => CCrmContact::CheckCreatePermission() ? 'NEW_CONTACT_ID' : '', 'INPUT_VALUE' => isset($arResult['ELEMENT']['CONTACT_ID']) ? $arResult['ELEMENT']['CONTACT_ID'] : '', 'FORM_NAME' => $arResult['FORM_ID'], 'MULTIPLE' => 'N', 'NAME_TEMPLATE' => \Bitrix\Crm\Format\PersonNameFormatter::getFormat())); } if (CCrmCompany::CheckReadPermission()) { $arResult['FIELDS']['tab_1'][] = array('id' => 'COMPANY_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_COMPANY_ID'), 'type' => 'crm_entity_selector', 'componentParams' => array('ENTITY_TYPE' => 'COMPANY', 'INPUT_NAME' => 'COMPANY_ID', 'NEW_INPUT_NAME' => CCrmCompany::CheckCreatePermission() ? 'NEW_COMPANY_ID' : '', 'INPUT_VALUE' => isset($arResult['ELEMENT']['COMPANY_ID']) ? $arResult['ELEMENT']['COMPANY_ID'] : '', 'FORM_NAME' => $arResult['FORM_ID'], 'MULTIPLE' => 'N', 'NAME_TEMPLATE' => \Bitrix\Crm\Format\PersonNameFormatter::getFormat())); } if ($bTaxMode) { // CLIENT LOCATION $sLocationHtml = ''; $locValue = isset($arResult['ELEMENT']['LOCATION_ID']) ? $arResult['ELEMENT']['LOCATION_ID'] : ''; ob_start(); CSaleLocation::proxySaleAjaxLocationsComponent(array('AJAX_CALL' => 'N', 'COUNTRY_INPUT_NAME' => 'LOC_COUNTRY', 'REGION_INPUT_NAME' => 'LOC_REGION', 'CITY_INPUT_NAME' => 'LOC_CITY', 'CITY_OUT_LOCATION' => 'Y', 'LOCATION_VALUE' => $locValue, 'ORDER_PROPS_ID' => 'QUOTE_' . $arResult['ELEMENT']['ID'], 'ONCITYCHANGE' => 'BX.onCustomEvent(\'CrmProductRowSetLocation\', [\'LOC_CITY\']);', 'SHOW_QUICK_CHOOSE' => 'N'), array("CODE" => $locValue, "ID" => "", "PROVIDE_LINK_BY" => "code", "JS_CALLBACK" => 'CrmProductRowSetLocation'), 'popup'); $sLocationHtml = ob_get_contents(); ob_end_clean(); $locationField = array('id' => 'LOCATION_ID', 'name' => GetMessage('CRM_QUOTE_FIELD_LOCATION_ID'), 'type' => 'custom', 'value' => $sLocationHtml . '<div>' . '<span class="bx-crm-edit-content-location-description">' . GetMessage('CRM_QUOTE_FIELD_LOCATION_ID_DESCRIPTION') . '</span>' . '</div>', 'required' => true); $arResult['FIELDS']['tab_1'][] = $locationField; $arResult['FORM_FIELDS_TO_ADD']['LOCATION_ID'] = $locationField; unset($locationField); } // Rewrite client fields if (!($bEdit || $bCopy || !empty($arResult['ERROR_MESSAGE']))) { CCrmQuote::RewriteClientFields($arResult['ELEMENT']); } // person type $arResult['ELEMENT']['PERSON_TYPE_ID'] = 0; $arResult['PERSON_TYPE'] = 'CONTACT'; if (isset($arPersonTypes['CONTACT']) && (!isset($arResult['ELEMENT']['COMPANY_ID']) || intval($arResult['ELEMENT']['COMPANY_ID']) <= 0)) {
if (strlen($arVal["REGION_NAME"]) > 0 && strlen($locationString) > 0) $locationString .= " - ".$arVal["REGION_NAME"]; elseif (strlen($locationString) <= 0 && strlen($arVal["REGION_NAME"]) > 0) $locationString = $arVal["REGION_NAME"]; if (strlen($locationString) > 0 && strlen($arVal["CITY_NAME"]) > 0) $locationString .= " - ".$arVal["CITY_NAME"]; elseif (strlen($locationString) <= 0 && strlen($arVal["CITY_NAME"]) > 0) $locationString = $arVal["CITY_NAME"]; echo htmlspecialcharsEx($locationString); } $locationData = $arOrderProps["VALUE"]; $rsZipList = CSaleLocation::GetLocationZIP($locationData); if ($arZip = $rsZipList->Fetch()) { if (strlen($arZip["ZIP"]) > 0) $locationZip = $arZip["ZIP"]; } } elseif ($arOrderProps["TYPE"] == "FILE") { if (strpos($arOrderProps["VALUE"], ",") !== false) { $arValues = explode(",", $arOrderProps["VALUE"]); foreach ($arValues as $fileId) { echo showImageOrDownloadLink(trim($fileId), $ID); echo "<br/>";
if (CModule::IncludeModule("sale")) { if ($arOrder = CSaleOrder::GetByID($ORDER_ID)) { $rep_file_name = GetRealPath2Report($doc . ".php"); if (strlen($rep_file_name) <= 0) { ShowError("PRINT TEMPLATE NOT FOUND"); die; } $arOrderProps = array(); $dbOrderPropVals = CSaleOrderPropsValue::GetList(array(), array("ORDER_ID" => $ORDER_ID), false, false, array("ID", "CODE", "VALUE", "ORDER_PROPS_ID", "PROP_TYPE")); while ($arOrderPropVals = $dbOrderPropVals->Fetch()) { $arCurOrderPropsTmp = CSaleOrderProps::GetRealValue($arOrderPropVals["ORDER_PROPS_ID"], $arOrderPropVals["CODE"], $arOrderPropVals["PROP_TYPE"], $arOrderPropVals["VALUE"], LANGUAGE_ID); foreach ($arCurOrderPropsTmp as $key => $value) { $arOrderProps[$key] = $value; } } if (CSaleLocation::isLocationProMigrated()) { if (strlen($arOrderProps['LOCATION_VILLAGE']) && !strlen($arOrderProps['LOCATION_CITY'])) { $arOrderProps['LOCATION_CITY'] = $arOrderProps['LOCATION_VILLAGE']; } // street added to the beginning of address, as it used to be before if (strlen($arOrderProps['LOCATION_STREET']) && isset($arOrderProps['ADDRESS'])) { $arOrderProps['ADDRESS'] = $arOrderProps['LOCATION_STREET'] . (strlen($arOrderProps['ADDRESS']) ? ', ' . $arOrderProps['ADDRESS'] : ''); } } $arBasketIDs = array(); $arQuantities = array(); if (!isset($SHOW_ALL) || $SHOW_ALL == "N") { $arBasketIDs_tmp = explode(",", $BASKET_IDS); $arQuantities_tmp = explode(",", $QUANTITIES); if (count($arBasketIDs_tmp) != count($arQuantities_tmp)) { die("INVALID PARAMS");
function PrintPropsForm($arSource = array(), $locationTemplate = ".default") { if (!empty($arSource)) { ?> <div> <?php foreach ($arSource as $arProperties) { ?> <div data-property-id-row="<?php echo intval(intval($arProperties["ID"])); ?> "> <?php if ($arProperties["TYPE"] == "CHECKBOX") { ?> <input type="hidden" name="<?php echo $arProperties["FIELD_NAME"]; ?> " value=""> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r1x3 pt8"> <input type="checkbox" name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> " value="Y"<?php if ($arProperties["CHECKED"] == "Y") { echo " checked"; } ?> > <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "TEXT") { ?> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <input type="text" maxlength="250" size="<?php echo $arProperties["SIZE1"]; ?> " value="<?php echo $arProperties["VALUE"]; ?> " name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> " /> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div><br/> <?php } elseif ($arProperties["TYPE"] == "SELECT") { ?> <br/> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <select name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> " size="<?php echo $arProperties["SIZE1"]; ?> "> <?php foreach ($arProperties["VARIANTS"] as $arVariants) { ?> <option value="<?php echo $arVariants["VALUE"]; ?> "<?php if ($arVariants["SELECTED"] == "Y") { echo " selected"; } ?> ><?php echo $arVariants["NAME"]; ?> </option> <?php } ?> </select> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "MULTISELECT") { ?> <br/> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <select multiple name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> " size="<?php echo $arProperties["SIZE1"]; ?> "> <?php foreach ($arProperties["VARIANTS"] as $arVariants) { ?> <option value="<?php echo $arVariants["VALUE"]; ?> "<?php if ($arVariants["SELECTED"] == "Y") { echo " selected"; } ?> ><?php echo $arVariants["NAME"]; ?> </option> <?php } ?> </select> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "TEXTAREA") { $rows = $arProperties["SIZE2"] > 10 ? 4 : $arProperties["SIZE2"]; ?> <br/> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <textarea rows="<?php echo $rows; ?> " cols="<?php echo $arProperties["SIZE1"]; ?> " name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> "><?php echo $arProperties["VALUE"]; ?> </textarea> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "LOCATION") { ?> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <?php $value = 0; if (is_array($arProperties["VARIANTS"]) && count($arProperties["VARIANTS"]) > 0) { foreach ($arProperties["VARIANTS"] as $arVariant) { if ($arVariant["SELECTED"] == "Y") { $value = $arVariant["ID"]; break; } } } // here we can get '' or 'popup' // map them, if needed if (CSaleLocation::isLocationProMigrated()) { $locationTemplateP = $locationTemplate == 'popup' ? 'search' : 'steps'; $locationTemplateP = $_REQUEST['PERMANENT_MODE_STEPS'] == 1 ? 'steps' : $locationTemplateP; // force to "steps" } ?> <?php if ($locationTemplateP == 'steps') { ?> <input type="hidden" id="LOCATION_ALT_PROP_DISPLAY_MANUAL[<?php echo intval($arProperties["ID"]); ?> ]" name="LOCATION_ALT_PROP_DISPLAY_MANUAL[<?php echo intval($arProperties["ID"]); ?> ]" value="<?php echo $_REQUEST['LOCATION_ALT_PROP_DISPLAY_MANUAL'][intval($arProperties["ID"])] ? '1' : '0'; ?> " /> <?php } ?> <?php CSaleLocation::proxySaleAjaxLocationsComponent(array("AJAX_CALL" => "N", "COUNTRY_INPUT_NAME" => "COUNTRY", "REGION_INPUT_NAME" => "REGION", "CITY_INPUT_NAME" => $arProperties["FIELD_NAME"], "CITY_OUT_LOCATION" => "Y", "LOCATION_VALUE" => $value, "ORDER_PROPS_ID" => $arProperties["ID"], "ONCITYCHANGE" => $arProperties["IS_LOCATION"] == "Y" || $arProperties["IS_LOCATION4TAX"] == "Y" ? "submitForm()" : "", "SIZE1" => $arProperties["SIZE1"]), array("ID" => $value, "CODE" => "", "SHOW_DEFAULT_LOCATIONS" => "Y", "JS_CALLBACK" => "submitFormProxy", "JS_CONTROL_DEFERRED_INIT" => intval($arProperties["ID"]), "JS_CONTROL_GLOBAL_ID" => intval($arProperties["ID"]), "DISABLE_KEYBOARD_INPUT" => "Y", "PRECACHE_LAST_LEVEL" => "Y", "PRESELECT_TREE_TRUNK" => "Y", "SUPPRESS_ERRORS" => "Y"), $locationTemplateP, true, 'location-block-wrapper'); ?> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "RADIO") { ?> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <?php if (is_array($arProperties["VARIANTS"])) { foreach ($arProperties["VARIANTS"] as $arVariants) { ?> <input type="radio" name="<?php echo $arProperties["FIELD_NAME"]; ?> " id="<?php echo $arProperties["FIELD_NAME"]; ?> _<?php echo $arVariants["VALUE"]; ?> " value="<?php echo $arVariants["VALUE"]; ?> " <?php if ($arVariants["CHECKED"] == "Y") { echo " checked"; } ?> /> <label for="<?php echo $arProperties["FIELD_NAME"]; ?> _<?php echo $arVariants["VALUE"]; ?> "><?php echo $arVariants["NAME"]; ?> </label></br> <?php } } ?> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div> <?php } elseif ($arProperties["TYPE"] == "FILE") { ?> <br/> <div class="bx_block r1x3 pt8"> <?php echo $arProperties["NAME"]; ?> <?php if ($arProperties["REQUIED_FORMATED"] == "Y") { ?> <span class="bx_sof_req">*</span> <?php } ?> </div> <div class="bx_block r3x1"> <?php echo showFilePropertyField("ORDER_PROP_" . $arProperties["ID"], $arProperties, $arProperties["VALUE"], $arProperties["SIZE1"]); ?> <?php if (strlen(trim($arProperties["DESCRIPTION"])) > 0) { ?> <div class="bx_description"> <?php echo $arProperties["DESCRIPTION"]; ?> </div> <?php } ?> </div> <div style="clear: both;"></div><br/> <?php } ?> </div> <?php if (CSaleLocation::isLocationProEnabled()) { ?> <?php $propertyAttributes = array('type' => $arProperties["TYPE"], 'valueSource' => $arProperties['SOURCE'] == 'DEFAULT' ? 'default' : 'form'); if (intval($arProperties['IS_ALTERNATE_LOCATION_FOR'])) { $propertyAttributes['isAltLocationFor'] = intval($arProperties['IS_ALTERNATE_LOCATION_FOR']); } if (intval($arProperties['CAN_HAVE_ALTERNATE_LOCATION'])) { $propertyAttributes['altLocationPropId'] = intval($arProperties['CAN_HAVE_ALTERNATE_LOCATION']); } if ($arProperties['IS_ZIP'] == 'Y') { $propertyAttributes['isZip'] = true; } ?> <script> <?php // add property info to have client-side control on it ?> (window.top.BX || BX).saleOrderAjax.addPropertyDesc(<?php echo CUtil::PhpToJSObject(array('id' => intval($arProperties["ID"]), 'attributes' => $propertyAttributes)); ?> ); </script> <?php } ?> <?php } ?> </div> <?php } }