/** * <p>Функция обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields.</p> * * * * * @param int $ID Код местоположения. </h * * * * @param array $arFields Ассоциативный массив параметров местоположения с ключами: <ul> <li> * <b>SORT</b> - индекс сортировки; </li> <li> <b>COUNTRY_ID</b> - код страны;</li> <li> * <b>REGION_ID</b> - код региона;</li> <li> <b>CITY_ID</b> - код города (если такой город * уже есть, иначе код должен быть нулем, и должен быть заполнен ключ * CITY).</li> </ul> * * * * @return int <p>Возвращается код измененного местоположения или <i>false</i> в * случае ошибки.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__updatelocation.3c5a6205.php * @author Bitrix */ public static function UpdateLocation($ID, $arFields) { global $DB; $ID = intval($ID); if ($ID <= 0 || !CSaleLocation::LocationCheckFields("UPDATE", $arFields)) { return false; } foreach (GetModuleEvents("sale", "OnBeforeLocationUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sale_location", $arFields); $strSql = "UPDATE b_sale_location SET " . $strUpdate . " WHERE ID = " . $ID . ""; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); foreach (GetModuleEvents("sale", "OnLocationUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
/** * <p>Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Метод динамичный.</p> * * * @param int $ID Код местоположения. </h * * @param array $arFields Ассоциативный массив параметров местоположения с ключами: <ul> <li> * <b>SORT</b> - индекс сортировки; </li> <li> <b>COUNTRY_ID</b> - код страны;</li> <li> * <b>REGION_ID</b> - код региона;</li> <li> <b>CITY_ID</b> - код города (если такой город * уже есть, иначе код должен быть нулем, и должен быть заполнен ключ * CITY).</li> </ul> * * @return int <p>Возвращается код измененного местоположения или <i>false</i> в * случае ошибки.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__updatelocation.3c5a6205.php * @author Bitrix */ public static function UpdateLocation($ID, $arFields) { // it seems that method is okay... we probably want to move region and city as it set in $arFields, but then we`ll have to adjsut the rest of locations global $DB; $ID = intval($ID); if ($ID <= 0 || !CSaleLocation::LocationCheckFields("UPDATE", $arFields)) { return false; } foreach (GetModuleEvents("sale", "OnBeforeLocationUpdate", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $strUpdate = $DB->PrepareUpdate("b_sale_location", $arFields); $strSql = "UPDATE b_sale_location SET " . $strUpdate . " WHERE ID = " . $ID . ""; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); foreach (GetModuleEvents("sale", "OnLocationUpdate", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
function AddLocation($arFields) { global $DB; if (!CSaleLocation::LocationCheckFields("ADD", $arFields)) return false; $db_events = GetModuleEvents("sale", "OnBeforeLocationAdd"); while ($arEvent = $db_events->Fetch()) if (ExecuteModuleEventEx($arEvent, array($arFields))===false) return false; $arInsert = $DB->PrepareInsert("b_sale_location", $arFields); $strSql = "INSERT INTO b_sale_location(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); $events = GetModuleEvents("sale", "OnLocationAdd"); while ($arEvent = $events->Fetch()) ExecuteModuleEventEx($arEvent, array($ID, $arFields)); return $ID; }
/** * <p>Метод добавляет новое местоположение на основании параметров массива <i> arFields</i>. Метод динамичный.</p> <p class="note"><b>Внимание!</b> Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть <a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3570" >здесь</a>.</p> * * * @param array $arFields Ассоциативный массив параметров местоположения с ключами: <ul> <li> * <b>SORT</b> - индекс сортировки; </li> <li> <b>COUNTRY_ID</b> - код страны;</li> <li> * <b>REGION_ID</b> - код региона;</li> <li> <b>CITY_ID</b> - код города.</li> </ul> * * @return int <p>Возвращается код добавленного местоположения или <i>false</i> у * случае ошибки.</p> <a name="examples"></a> * * <h4>Example</h4> * <pre> * Параметры вызова * </h * <tr> * <th width="15%">Параметр</th> * <th>Описание</th> * </tr> * <tr> * <td>arFields</td> * <td>Ассоциативный массив параметров местоположения с ключами: * <ul> * <li> * <b>SORT</b> - индекс сортировки; </li> * <li> * <b>COUNTRY_ID</b> - код страны;</li> * <li> * <b>REGION_ID</b> - код региона;</li> * <li> * <b>CITY_ID</b> - код города.</li> * </ul> * </td> * </tr> * * * * <? * // Добавим местоположение из страны с кодом 2 и города с кодом 10 * $ID = CSaleLocation::AddLocation( * array( * "COUNTRY_ID" => 2, * "CITY_ID" => 10 * ) * ); * ?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__addlocation.21fe0465.php * @author Bitrix */ public static function AddLocation($arFields) { global $DB; if (!CSaleLocation::LocationCheckFields("ADD", $arFields)) { return false; } if (self::isLocationProMigrated()) { return self::RebindLocationTriplet($arFields); } // make IX_B_SALE_LOC_CODE feel happy $arFields['CODE'] = 'randstr' . rand(999, 99999); foreach (GetModuleEvents('sale', 'OnBeforeLocationAdd', true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($arFields)) === false) { return false; } } $arInsert = $DB->PrepareInsert("b_sale_location", $arFields); $strSql = "INSERT INTO b_sale_location(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); // make IX_B_SALE_LOC_CODE feel happy Location\LocationTable::update($ID, array('CODE' => $ID)); foreach (GetModuleEvents('sale', 'OnLocationAdd', true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }
function AddLocation($arFields) { global $DB; if (!CSaleLocation::LocationCheckFields("ADD", $arFields)) return false; // make IX_B_SALE_LOC_CODE feel happy $arFields['CODE'] = 'randstr'.rand(999, 99999); $db_events = GetModuleEvents("sale", "OnBeforeLocationAdd"); while ($arEvent = $db_events->Fetch()) if (ExecuteModuleEventEx($arEvent, array($arFields))===false) return false; $arInsert = $DB->PrepareInsert("b_sale_location", $arFields); $strSql = "INSERT INTO b_sale_location(".$arInsert[0].") ". "VALUES(".$arInsert[1].")"; $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); $ID = IntVal($DB->LastID()); // make IX_B_SALE_LOC_CODE feel happy Location\LocationTable::update($ID, array('CODE' => $ID)); $events = GetModuleEvents("sale", "OnLocationAdd"); while ($arEvent = $events->Fetch()) ExecuteModuleEventEx($arEvent, array($ID, $arFields)); return $ID; }