示例#1
0
$arResult['FIELDS']['tab_params'][] = array('id' => 'SORT', 'name' => GetMessage('CRM_LOC_FIELD_SORT'), 'value' => $arLoc['SORT'], 'required' => true, 'type' => 'text');
$arResult['FIELDS']['tab_params'][] = array('id' => 'LOC_DEFAULT', 'name' => GetMessage('CRM_LOC_FIELD_LOC_DEFAULT'), 'value' => $arLoc['LOC_DEFAULT'] == 'Y', 'type' => 'checkbox');
/* COUNTRY SECTION*/
$arResult['FIELDS']['tab_params'][] = array('id' => 'loc_country', 'name' => GetMessage('CRM_LOC_SECTION_COUNTRY'), 'type' => 'section');
$arCountries[CRM_LOC_NEW_COUNTRY] = '< ' . GetMessage('CRM_LOC_NEW_COUNTRY') . ' >';
$arCountries[CRM_LOC_WITHOUT_COUNTRY] = '< ' . GetMessage('CRM_LOC_WITHOUT_COUNTRY') . ' >';
$arCountriesArr = CCrmLocations::getCountriesNames();
foreach ($arCountriesArr as $countyID => $country) {
    $arCountries[$countyID] = $country;
}
$arResult['FIELDS']['tab_params'][] = array('id' => 'COUNTRY_ID', 'name' => GetMessage('CRM_LOC_FIELD_COUNTRY_ID'), 'value' => intval($arLoc['COUNTRY_ID']) > 0 ? $arLoc['COUNTRY_ID'] : '', 'type' => 'list', 'required' => true, 'items' => $arCountries);
$arResult['FIELDS']['tab_params'][] = array('id' => 'CHANGE_COUNTRY', 'name' => GetMessage('CRM_LOC_FIELD_CHANGE_COUNTRY'), 'value' => 'N', 'type' => 'checkbox');
$arResult['FIELDS']['tab_params'][] = array('id' => 'COUNTRY_NAME', 'name' => GetMessage('CRM_LOC_FIELD_NAME'), 'value' => htmlspecialcharsEx($arLoc['COUNTRY_NAME_ORIG']), 'required' => true, 'type' => 'text');
$arResult['FIELDS']['tab_params'][] = array('id' => 'COUNTRY_SHORT_NAME', 'name' => GetMessage('CRM_LOC_FIELD_SHORT_NAME'), 'value' => htmlspecialcharsEx($arLoc['COUNTRY_SHORT_NAME']), 'type' => 'text');
for ($i = 0; $i < $countLang; $i++) {
    $arCountry = CSaleLocation::GetCountryLangByID($arLoc['COUNTRY_ID'], $arSysLangs[$i]);
    /*
    	$arResult['FIELDS']['tab_params'][] = array(
    		'id' => 'C_LANG_'.$arSysLangs[$i],
    		'value' => '<b>['.$arSysLangs[$i].'] '.$arSysLangNames[$i].'</b>',
    		'colspan' => true,
    		'type' =>  'label'
    	);
    */
    $arResult['FIELDS']['tab_params'][] = array('id' => 'COUNTRY_NAME_' . $arSysLangs[$i], 'name' => GetMessage('CRM_LOC_FIELD_NAME'), 'value' => htmlspecialcharsEx($arCountry["NAME"]), 'required' => true, 'type' => 'text');
    $arResult['FIELDS']['tab_params'][] = array('id' => 'COUNTRY_SHORT_NAME_' . $arSysLangs[$i], 'name' => GetMessage('CRM_LOC_FIELD_SHORT_NAME'), 'value' => htmlspecialcharsEx($arCountry["SHORT_NAME"]), 'type' => 'text');
}
/* REGION SECTION */
$arResult['FIELDS']['tab_params'][] = array('id' => 'loc_region', 'name' => GetMessage('CRM_LOC_SECTION_REGION'), 'type' => 'section');
$arRegionList[CRM_LOC_NEW_REGION] = '< ' . GetMessage('CRM_LOC_NEW_REGION') . ' >';
$arRegionList[CRM_LOC_WITHOUT_REGION] = '< ' . GetMessage('CRM_LOC_WITHOUT_REGION') . ' >';
示例#2
0
 public static function Compability($arOrder, $arConfig)
 {
     if (intval($arOrder["LOCATION_FROM"]) <= 0) {
         return array();
     }
     $arLocationFrom = CSaleLocation::GetByID($arOrder["LOCATION_FROM"]);
     $arLocationTo = CSaleLocation::GetByID($arOrder["LOCATION_TO"]);
     if ($arLocationFrom["COUNTRY_ID"] == $arLocationTo["COUNTRY_ID"]) {
         return array();
     }
     if (LANGUAGE_ID !== 'en') {
         $arCountry = CSaleLocation::GetCountryLangByID($arLocationTo['COUNTRY_ID'], 'en');
         if (false !== $arCountry) {
             $arLocationTo['COUNTRY_NAME_LANG'] = $arCountry['NAME'];
         }
     }
     CDeliveryUPS::__GetLocation($arLocationTo, $arConfig);
     if (strlen($arLocationTo["COUNTRY_SID"]) <= 0) {
         return array();
     }
     $zones_file = $arConfig["zones_csv"]["VALUE"];
     $arZones = CDeliveryUPS::__GetZones($zones_file);
     $arZoneTo = $arZones[$arLocationTo["COUNTRY_SID"]];
     if (intval($arZoneTo[1]) > 0) {
         return array("express", "express_saver");
     } else {
         return array("express");
     }
 }
示例#3
0
 /**
  * <p>Функция изменяет параметры страны с кодом ID на новые параметры из массива arFields </p>
  *
  *
  *
  *
  * @param int $ID  Код страны.
  *
  *
  *
  * @param array $arFields  Массив с параметрами страны должен содержать ключи: <ul> <li> <b>NAME</b> -
  * название страны (не зависящее от языка);</li> <li> <b>SHORT_NAME</b> -
  * сокращенное название страны - абревиатура (не зависящее от
  * языка);</li> <li> <b>&lt;код языка&gt;</b> - ключем является код языка, а
  * значением ассоциативный массив вида <pre class="syntax">array("LID" =&gt; "код
  * языка", "NAME" =&gt; "название страны на этом языке", "SHORT_NAME" =&gt;
  * "сокращенное название страны (аббревиатура) на этом языке")</pre> Эта
  * пара ключ-значение должна присутствовать для каждого языка
  * системы.</li> </ul>
  *
  *
  *
  * @return int <p>Возвращается код измененной страны или <i>false</i> у случае
  * ошибки.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__updatecountry.d8fa5b90.php
  * @author Bitrix
  */
 public static function UpdateCountry($ID, $arFields)
 {
     global $DB;
     $ID = intval($ID);
     if ($ID <= 0 || !CSaleLocation::CountryCheckFields("UPDATE", $arFields)) {
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeCountryUpdate", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     $strUpdate = $DB->PrepareUpdate("b_sale_location_country", $arFields);
     $strSql = "UPDATE b_sale_location_country SET " . $strUpdate . " WHERE ID = " . $ID . "";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y"));
     while ($arLang = $db_lang->Fetch()) {
         if ($arCntLang = CSaleLocation::GetCountryLangByID($ID, $arLang["LID"])) {
             $strUpdate = $DB->PrepareUpdate("b_sale_location_country_lang", $arFields[$arLang["LID"]]);
             $strSql = "UPDATE b_sale_location_country_lang SET " . $strUpdate . " WHERE ID = " . $arCntLang["ID"] . "";
         } else {
             $arInsert = $DB->PrepareInsert("b_sale_location_country_lang", $arFields[$arLang["LID"]]);
             $strSql = "INSERT INTO b_sale_location_country_lang(COUNTRY_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")";
         }
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     }
     foreach (GetModuleEvents("sale", "OnCountryUpdate", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return $ID;
 }
		<td>
			<?php 
echo GetMessage("SALE_SHORT_NAME");
?>
:
		</td>
		<td>
			<input type="text" name="COUNTRY_SHORT_NAME" value="<?php 
echo $str_COUNTRY_SHORT_NAME;
?>
" size="30">
		</td>
	</tr>
	<?php 
for ($i = 0; $i < count($arSysLangs); $i++) {
    $arCountry = CSaleLocation::GetCountryLangByID($str_COUNTRY_ID, $arSysLangs[$i]);
    $str_COUNTRY_NAME = htmlspecialcharsEx($arCountry["NAME"]);
    $str_COUNTRY_SHORT_NAME = htmlspecialcharsEx($arCountry["SHORT_NAME"]);
    if ($bInitVars && $CHANGE_COUNTRY == 'Y') {
        $str_COUNTRY_NAME = htmlspecialcharsEx(${"COUNTRY_NAME_" . $arSysLangs[$i]});
        $str_COUNTRY_SHORT_NAME = htmlspecialcharsEx(${"COUNTRY_SHORT_NAME_" . $arSysLangs[$i]});
    }
    ?>
		<tr>
			<td valign="top" align="center" colspan="2">
				<b>[<?php 
    echo $arSysLangs[$i];
    ?>
] <?php 
    echo $arSysLangNames[$i];
    ?>
示例#5
0
 /**
  * <p>Метод изменяет параметры страны с кодом ID на новые параметры из массива arFields. Метод динамичный.</p>
  *
  *
  * @param int $ID  Код страны.
  *
  * @param array $arFields  Массив с параметрами страны должен содержать ключи: <ul> <li> <b>NAME</b> -
  * название страны (не зависящее от языка);</li> <li> <b>SHORT_NAME</b> -
  * сокращенное название страны - абревиатура (не зависящее от
  * языка);</li> <li> <b>&lt;код языка&gt;</b> - ключем является код языка, а
  * значением ассоциативный массив вида <pre class="syntax">array("LID" =&gt; "код
  * языка", "NAME" =&gt; "название страны на этом языке", "SHORT_NAME" =&gt;
  * "сокращенное название страны (аббревиатура) на этом языке")</pre> Эта
  * пара ключ-значение должна присутствовать для каждого языка
  * системы.</li> </ul>
  *
  * @return int <p>Возвращается код измененной страны или <i>false</i> у случае
  * ошибки.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__updatecountry.d8fa5b90.php
  * @author Bitrix
  */
 public static function UpdateCountry($ID, $arFields)
 {
     global $DB;
     $ID = intval($ID);
     if ($ID <= 0 || !CSaleLocation::CountryCheckFields("UPDATE", $arFields)) {
         return false;
     }
     foreach (GetModuleEvents("sale", "OnBeforeCountryUpdate", true) as $arEvent) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     //////////////////////////////////////
     if (self::isLocationProMigrated()) {
         try {
             // get location id by country id
             $locId = self::getLocationIdByCountryId($ID);
             if (!$locId) {
                 return false;
             }
             $res = Location\LocationTable::update($locId, self::refineFieldsForSaveCRC($item['ID'], $arFields), array('REBALANCE' => false));
             if ($res->isSuccess()) {
                 return $ID;
             }
             return false;
         } catch (Exception $e) {
             return false;
         }
     } else {
         $strUpdate = $DB->PrepareUpdate("b_sale_location_country", $arFields);
         $strSql = "UPDATE b_sale_location_country SET " . $strUpdate . " WHERE ID = " . $ID . "";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $db_lang = CLangAdmin::GetList($b = "sort", $o = "asc", array("ACTIVE" => "Y"));
         while ($arLang = $db_lang->Fetch()) {
             if ($arCntLang = CSaleLocation::GetCountryLangByID($ID, $arLang["LID"])) {
                 $strUpdate = $DB->PrepareUpdate("b_sale_location_country_lang", $arFields[$arLang["LID"]]);
                 $strSql = "UPDATE b_sale_location_country_lang SET " . $strUpdate . " WHERE ID = " . $arCntLang["ID"] . "";
             } else {
                 $arInsert = $DB->PrepareInsert("b_sale_location_country_lang", $arFields[$arLang["LID"]]);
                 $strSql = "INSERT INTO b_sale_location_country_lang(COUNTRY_ID, " . $arInsert[0] . ") " . "VALUES(" . $ID . ", " . $arInsert[1] . ")";
             }
             $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
     }
     //////////////////////////////////////
     foreach (GetModuleEvents("sale", "OnCountryUpdate", true) as $arEvent) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return $ID;
 }
示例#6
0
     $arSysLangNames[$langCount] = htmlspecialcharsbx($arLang["NAME"]);
     $langCount++;
 }
 switch ($action) {
     case 'get_country_params':
         if ($ID <= 0) {
             break;
         }
         $arCountry = CSaleLocation::GetCountryByID($ID);
         $arCountry['COUNTRY_NAME'] = $arCountry['NAME'];
         $arCountry['COUNTRY_SHORT_NAME'] = $arCountry['SHORT_NAME'];
         unset($arCountry['NAME']);
         unset($arCountry['SHORT_NAME']);
         $countLang = count($arSysLangs);
         for ($i = 0; $i < $countLang; $i++) {
             $arLngCountry = CSaleLocation::GetCountryLangByID($ID, $arSysLangs[$i]);
             $arCountry['COUNTRY_NAME_' . $arSysLangs[$i]] = $arLngCountry['NAME'];
             $arCountry['COUNTRY_SHORT_NAME_' . $arSysLangs[$i]] = $arLngCountry['SHORT_NAME_'];
         }
         $arReturn['COUNTRY'] = $arCountry;
         $arRegions = CCrmLocations::getRegionsNames($ID);
         $arReturn['COUNTRY']['REGIONS'] = array();
         foreach ($arRegions as $id => $region) {
             $arReturn['COUNTRY']['REGIONS'][] = array($id, $region);
         }
         break;
     case 'get_region_params':
         $arRegion = CSaleLocation::GetRegionByID($ID);
         $arRegion['REGION_NAME'] = $arRegion['NAME'];
         $arRegion['REGION_SHORT_NAME'] = $arRegion['SHORT_NAME'];
         unset($arRegion['NAME']);