本文整理汇总了PHP中CSaleOrder::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CSaleOrder::CheckFields方法的具体用法?PHP CSaleOrder::CheckFields怎么用?PHP CSaleOrder::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSaleOrder
的用法示例。
在下文中一共展示了CSaleOrder::CheckFields方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
function Update($ID, $arFields, $bDateUpdate = true)
{
global $DB;
$ID = IntVal($ID);
$arFields1 = array();
foreach ($arFields as $key => $value) {
if (substr($key, 0, 1) == "=") {
$arFields1[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (!CSaleOrder::CheckFields("UPDATE", $arFields)) {
return false;
}
foreach (GetModuleEvents("sale", "OnBeforeOrderUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
$strUpdate = $DB->PrepareUpdate("b_sale_order", $arFields);
foreach ($arFields1 as $key => $value) {
if (strlen($strUpdate) > 0) {
$strUpdate .= ", ";
}
$strUpdate .= $key . "=" . $value . " ";
}
//get old fields
$arOrderOldFields = CSaleOrder::GetByID($ID);
$strSql = "UPDATE b_sale_order SET " . "\t" . $strUpdate . " ";
if ($bDateUpdate) {
$strSql .= ",\tDATE_UPDATE = " . $DB->GetNowFunction() . " ";
}
$strSql .= "WHERE ID = " . $ID . " ";
$res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if ($res) {
CSaleOrder::AddOrderHistory($arOrderOldFields, $arFields);
}
unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]);
foreach (GetModuleEvents("sale", "OnOrderUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
return $ID;
}
示例2: Update
function Update($ID, $arFields, $bDateUpdate = true)
{
global $DB, $USER_FIELD_MANAGER, $CACHE_MANAGER;
$ID = IntVal($ID);
$arFields1 = array();
foreach ($arFields as $key => $value) {
if (substr($key, 0, 1) == "=") {
$arFields1[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (!CSaleOrder::CheckFields("UPDATE", $arFields, $ID)) {
return false;
}
foreach (GetModuleEvents("sale", "OnBeforeOrderUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
$strUpdate = $DB->PrepareUpdate("b_sale_order", $arFields);
foreach ($arFields1 as $key => $value) {
if (strlen($strUpdate) > 0) {
$strUpdate .= ", ";
}
$strUpdate .= $key . "=" . $value . " ";
}
//get old fields
$arOrderOldFields = CSaleOrder::GetByID($ID);
$strSql = "UPDATE b_sale_order SET " . "\t" . $strUpdate . " ";
if ($bDateUpdate) {
$strSql .= ",\tDATE_UPDATE = " . $DB->GetNowFunction() . " ";
}
$strSql .= "WHERE ID = " . $ID . " ";
$res = $DB->Query($strSql, true, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (!$res) {
return false;
}
$USER_FIELD_MANAGER->Update("ORDER", $ID, $arFields);
if ($res) {
CSaleOrderChange::AddRecordsByFields($ID, $arOrderOldFields, $arFields);
}
unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]);
foreach (GetModuleEvents("sale", "OnOrderUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
if (isset($arFields["TRACKING_NUMBER"])) {
foreach (GetModuleEvents("sale", "OnTrackingNumberChange", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields["TRACKING_NUMBER"]));
}
if (strlen($arFields["TRACKING_NUMBER"]) > 0 && $arOrderOldFields["TRACKING_NUMBER"] != $arFields["TRACKING_NUMBER"]) {
$accountNumber = isset($arFields["ACCOUNT_NUMBER"]) ? $arFields["ACCOUNT_NUMBER"] : $arOrderOldFields["ACCOUNT_NUMBER"];
$userId = isset($arFields["USER_ID"]) ? $arFields["USER_ID"] : $arOrderOldFields["USER_ID"];
$payerName = "";
$payerEMail = '';
$dbUser = CUser::GetByID($userId);
if ($arUser = $dbUser->Fetch()) {
if (strlen($payerName) <= 0) {
$payerName = $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"];
}
if (strlen($payerEMail) <= 0) {
$payerEMail = $arUser["EMAIL"];
}
}
$arEmailFields = array("ORDER_ID" => $accountNumber, "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", $arOrderOldFields["LID"]))), "ORDER_USER" => $payerName, "ORDER_TRACKING_NUMBER" => $arFields["TRACKING_NUMBER"], "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME), "EMAIL" => $payerEMail, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME));
$event = new CEvent();
$event->Send("SALE_ORDER_TRACKING_NUMBER", $arOrderOldFields["LID"], $arEmailFields, "N");
}
}
if (defined("CACHED_b_sale_order") && $bDateUpdate && $arFields["UPDATED_1C"] != "Y") {
$CACHE_MANAGER->Read(CACHED_b_sale_order, "sale_orders");
$CACHE_MANAGER->SetImmediate("sale_orders", true);
}
return $ID;
}
示例3: Update
/**
* <p>Функция изменяет параметры заказа с кодом ID на новые параметры из массива <i> arFields</i>. Перед добавлением заказа вызываются обработчики события OnBeforeOrderUpdate модуля магазина, а после добавления - обработчики события OnOrderUpdate модуля магазина. </p>
*
*
*
*
* @param int $ID Код заказа.
*
*
*
* @param array $arFields Ассоциативный массив параметров заказа, ключами в котором
* являются названия параметров заказа, а значениями - новые
* значения.<br> Допустимые ключи: <ul> <li> <b>LID</b> - код сайта, на котором
* сделан заказ;</li> <li> <b>PERSON_TYPE_ID</b> - тип плательщика, к которому
* принадлежит посетитель, сделавший заказ (заказчик);</li> <li> <b>PAYED</b> -
* флаг (Y/N) оплачен ли заказ;</li> <li> <b>DATE_PAYED</b> - дата оплаты заказа;</li>
* <li> <b>EMP_PAYED_ID</b> - код пользователя (сотрудника магазина), который
* установил флаг оплаты;</li> <li> <b>CANCELED</b> - флаг (Y/N) отменён ли
* заказ;</li> <li> <b>DATE_CANCELED</b> - дата отмены заказа;</li> <li> <b>EMP_CANCELED_ID</b> -
* код пользователя, который установил флаг отмены заказа;</li> <li>
* <b>REASON_CANCELED</b> - текстовое описание причины отмены заказа;</li> <li>
* <b>STATUS_ID</b> - код статуса заказа;</li> <li> <b>EMP_STATUS_ID</b> - код пользователя
* (сотрудника магазина), который установил текущий статус
* заказа;</li> <li> <b>PRICE_DELIVERY</b> - стоимость доставки заказа;</li> <li>
* <b>ALLOW_DELIVERY</b> - флаг (Y/N) разрешена ли доставка (отгрузка) заказа;</li>
* <li> <b>DATE_ALLOW_DELIVERY</b> - дата, когда была разрешена доставка заказа;</li>
* <li> <b>EMP_ALLOW_DELIVERY_ID</b> - код пользователя (сотрудника магазина),
* который разрешил доставку заказа; </li> <li> <b>PRICE</b> - общая стоимость
* заказа;</li> <li> <b>CURRENCY</b> - валюта стоимости заказа;</li> <li> <b>DISCOUNT_VALUE</b>
* - общая величина скидки;</li> <li> <b>USER_ID</b> - код пользователя
* заказчика;</li> <li> <b>PAY_SYSTEM_ID</b> - платежная система, которой (будет)
* оплачен заказа;</li> <li> <b>DELIVERY_ID</b> - способ (служба) доставки
* заказа;</li> <li> <b>USER_DESCRIPTION</b> - описание заказа заказчиком;</li> <li>
* <b>ADDITIONAL_INFO</b> - дополнительная информация по заказу;</li> <li> <b>COMMENTS</b>
* - произвольные комментарии;</li> <li> <b>TAX_VALUE</b> - общая сумма
* налогов;</li> <li> <b>STAT_GID</b> - параметр события в статистике; </li> <li>
* <b>PS_STATUS</b> - флаг (Y/N) статуса платежной системы - успешно ли оплачен
* заказ (для платежных систем, которые позволяют автоматически
* получать данные по проведенным через них заказам);</li> <li>
* <b>PS_STATUS_CODE</b> - код статуса платежной системы (значение зависит от
* системы);</li> <li> <b>PS_STATUS_DESCRIPTION</b> - описание результата работы
* платежной системы;</li> <li> <b>PS_STATUS_MESSAGE</b> - сообщение от платежной
* системы;</li> <li> <b>PS_SUM</b> - сумма, которая была реально оплачена через
* платежную систему;</li> <li> <b>PS_CURRENCY</b> - валюта суммы;</li> <li>
* <b>PS_RESPONSE_DATE</b> - дата получения статуса платежной системы;</li> <li>
* <b>SUM_PAID </b> - сумма, которая уже была оплачена покупателем по
* данному счету (например, с внутреннего счета);</li> <li> <b>PAY_VOUCHER_NUM </b> -
* номер платежного поручения;</li> <li> <b>PAY_VOUCHER_DATE</b> - дата платежного
* поручения.</li> <li> <b>DATE_INSERT</b> - дата создания заказа.</li> </ul>
*
*
*
* @param bDateUpdat $e Обновление даты изменения заказа. Значения <i>true/false</i>
* (по-умолчанию <i>true</i>).
*
*
*
* @return int <p>Возвращается код добавленного заказа или <i>false</i> в случае
* ошибки.</p><a name="examples"></a>
*
*
* <h4>Example</h4>
* <pre>
* <?
* $arOrder = CSaleOrder::GetByID($ID);
* if ($arOrder)
* {
* $arFields = array(
* "PAYED" => "Y",
* "DATE_PAYED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
* "USER_ID" => $arOrder["USER_ID"],
* "EMP_PAYED_ID" => $USER->GetID()
* );
* CSaleOrder::Update($ID, $arFields);
* }
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/sale/classes/csaleorder/csaleorder__update.a8be5ffa.php
* @author Bitrix
*/
public static function Update($ID, $arFields, $bDateUpdate = true)
{
global $DB, $USER_FIELD_MANAGER;
$ID = IntVal($ID);
$arFields1 = array();
foreach ($arFields as $key => $value)
{
if (substr($key, 0, 1)=="=")
{
$arFields1[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (!CSaleOrder::CheckFields("UPDATE", $arFields, $ID))
//.........这里部分代码省略.........
示例4: Update
function Update($ID, $arFields, $bDateUpdate = true)
{
global $DB, $USER_FIELD_MANAGER, $CACHE_MANAGER, $APPLICATION;
$isOrderConverted = \Bitrix\Main\Config\Option::get("main", "~sale_converted_15", 'N');
$ID = IntVal($ID);
$arFields1 = array();
foreach ($arFields as $key => $value) {
if (substr($key, 0, 1) == "=") {
$arFields1[substr($key, 1)] = $value;
unset($arFields[$key]);
}
}
if (!CSaleOrder::CheckFields("UPDATE", $arFields, $ID)) {
return false;
}
foreach (GetModuleEvents("sale", "OnBeforeOrderUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
if ($isOrderConverted == "Y") {
if (!empty($arFields1)) {
$arFields1 = \Bitrix\Sale\Compatible\OrderCompatibility::backRawField(\Bitrix\Sale\Compatible\OrderCompatibility::ENTITY_ORDER, $arFields1);
}
$result = \Bitrix\Sale\Compatible\OrderCompatibility::update($ID, array_merge($arFields, $arFields1), $bDateUpdate);
if (!$result->isSuccess()) {
foreach ($result->getErrorMessages() as $error) {
$APPLICATION->ThrowException($error);
}
return false;
} else {
$arOrderOldFields = array();
$resultFields = $result->getData();
if (!empty($resultFields['OLD_FIELDS']) && is_array($resultFields['OLD_FIELDS'])) {
$arOrderOldFields = $resultFields['OLD_FIELDS'];
}
$updated = true;
}
} else {
$strUpdate = $DB->PrepareUpdate("b_sale_order", $arFields);
foreach ($arFields1 as $key => $value) {
if (strlen($strUpdate) > 0) {
$strUpdate .= ", ";
}
$strUpdate .= $key . "=" . $value . " ";
}
//get old fields
$arOrderOldFields = CSaleOrder::GetByID($ID);
$strSql = "UPDATE b_sale_order SET " . "\t" . $strUpdate . " ";
if ($bDateUpdate) {
$strSql .= ",\tDATE_UPDATE = " . $DB->GetNowFunction() . " ";
}
$strSql .= "WHERE ID = " . $ID . " ";
$updated = $DB->Query($strSql, true, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (!$updated) {
return false;
}
}
$USER_FIELD_MANAGER->Update("ORDER", $ID, $arFields);
if ($updated) {
CSaleOrderChange::AddRecordsByFields($ID, $arOrderOldFields, $arFields);
}
unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_" . $ID]);
foreach (GetModuleEvents("sale", "OnOrderUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
if (isset($arFields["TRACKING_NUMBER"])) {
foreach (GetModuleEvents("sale", "OnTrackingNumberChange", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields["TRACKING_NUMBER"]));
}
if (strlen($arFields["TRACKING_NUMBER"]) > 0 && $arOrderOldFields["TRACKING_NUMBER"] != $arFields["TRACKING_NUMBER"]) {
$accountNumber = isset($arFields["ACCOUNT_NUMBER"]) ? $arFields["ACCOUNT_NUMBER"] : $arOrderOldFields["ACCOUNT_NUMBER"];
$userId = isset($arFields["USER_ID"]) ? $arFields["USER_ID"] : $arOrderOldFields["USER_ID"];
$payerName = "";
$payerEMail = '';
$dbUser = CUser::GetByID($userId);
if ($arUser = $dbUser->Fetch()) {
if (strlen($payerName) <= 0) {
$payerName = $arUser["NAME"] . (strlen($arUser["NAME"]) <= 0 || strlen($arUser["LAST_NAME"]) <= 0 ? "" : " ") . $arUser["LAST_NAME"];
}
if (strlen($payerEMail) <= 0) {
$payerEMail = $arUser["EMAIL"];
}
}
$arEmailFields = array("ORDER_ID" => $accountNumber, "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", $arOrderOldFields["LID"]))), "ORDER_USER" => $payerName, "ORDER_TRACKING_NUMBER" => $arFields["TRACKING_NUMBER"], "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER['SERVER_NAME']), "EMAIL" => $payerEMail, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER['SERVER_NAME']));
$event = new CEvent();
$event->Send("SALE_ORDER_TRACKING_NUMBER", $arOrderOldFields["LID"], $arEmailFields, "N");
}
}
if (defined("CACHED_b_sale_order") && $bDateUpdate && $arFields["UPDATED_1C"] != "Y") {
$CACHE_MANAGER->Read(CACHED_b_sale_order, "sale_orders");
$CACHE_MANAGER->SetImmediate("sale_orders", true);
}
return $ID;
}