static function Update($profileID, $arFields) { global $DB; $result = new WS_SaleUserProfilesErrorsContainer(); if (empty($profileID)) { return $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_required_id")); } $DB->StartTransaction(); if (!empty($arFields["PROPS"])) { $props = $arFields["PROPS"]; unset($arFields["PROPS"]); } // сохраняем поля if (!empty($arFields)) { if(!$profileID = CSaleOrderUserProps::Update($profileID, $arFields)){ $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_save_fields")); } else { $arFields = CSaleOrderUserProps::GetByID($profileID); } } // сохраняем свойства if (!empty($props) && !$result->getErrorsAsString()) { // удаляем все свойства CSaleOrderUserPropsValue::DeleteAll($profileID); $res = CSaleOrderProps::GetList(array(), array("PERSON_TYPE_ID" => $arFields["PERSON_TYPE_ID"], "USER_PROPS" => "Y"), false, false, array()); while ($arRes = $res->Fetch()) { if ($arRes['REQUIED'] === 'Y' && empty($props[$arRes['ID']])) { $result->addErrorString(GetMessage("ws.saleuserprofiles_save_error_required_field") . "\"" . $arRes["NAME"] . "\""); continue; } $arValueTemp = $props[$arRes['ID']]; if (is_array($arValueTemp)) { $arValueTemp = ""; for ($i = 0; $i < count($props[$arRes['ID']]); $i++) { if ($i > 0) { $arValueTemp .= ","; } $arValueTemp .= $props[$arRes['ID']][$i]; } } $arProp = array( "VALUE" => $arValueTemp, "NAME" => $arRes["NAME"], "ORDER_PROPS_ID" => $arRes['ID'], "USER_PROPS_ID" => $profileID ); CSaleOrderUserPropsValue::Add($arProp); } } if ($result->getErrorsAsString()) { $DB->Rollback(); } else { $DB->Commit(); } return $result; }
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/sale/prolog.php"; IncludeModuleLangFile(__FILE__); $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions == "D") { $APPLICATION->AuthForm(GetMessage("BUYER_PE_ACCESS_DENIED")); } if (!CBXFeatures::IsFeatureEnabled('SaleAccounts')) { require $DOCUMENT_ROOT . "/bitrix/modules/main/include/prolog_admin_after.php"; ShowError(GetMessage("SALE_FEATURE_NOT_ALLOW")); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } ClearVars(); $ID = IntVal($_REQUEST["id"]); $arErrors = array(); if ($arProfile = CSaleOrderUserProps::GetByID($ID)) { $USER_ID = IntVal($arProfile["USER_ID"]); $PERSON_TYPE = IntVal($arProfile["PERSON_TYPE_ID"]); $profileName = $arProfile["NAME"]; } else { $arErrors[] = GetMessage("BUYER_PE_NO_PROFILE"); } /*****************************************************************************/ /**************************** SAVE PROFILE ***********************************/ /*****************************************************************************/ if ($REQUEST_METHOD == "POST" && $saleModulePermissions >= "U" && check_bitrix_sessid() && !empty($arProfile)) { $CODE_PROFILE_NAME = trim($_REQUEST["CODE_PROFILE_NAME"]); if (strlen($CODE_PROFILE_NAME) > 0) { $profileName = $CODE_PROFILE_NAME; } $arOrderPropsValues = array();
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; if (isset($hrpd->MerchantInternalPaymentId)) { if ($hrpd->ErrorCode == 0) { if (CModule::IncludeModule('sale')) { $order_id = intval($hrpd->MerchantInternalPaymentId); if ($arOrder = CSaleOrder::GetByID(IntVal($order_id))) { CSalePaySystemAction::InitParamArrays($arOrder, $arOrder["ID"]); $urlGetMerchantInfo = 'http://payment.kaznachey.net/api/PaymentInterface/CreatePayment'; $urlGetClientMerchantInfo = 'http://payment.kaznachey.net/api/PaymentInterface/GetMerchatInformation'; $merchantGuid = CSalePaySystemAction::GetParamValue("MerchantId"); $merchnatSecretKey = CSalePaySystemAction::GetParamValue("SecretKey"); $order_id = IntVal($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]); $selectedPaySystemId = 1; $quantitys = 0; $order_info = CSaleOrder::GetByID($order_id); $user_info = CSaleOrderUserProps::GetByID($order_info['USER_ID']); $user_fullinfo = CSaleOrderUserPropsValue::GetByID($order_info['USER_ID']); $user_email = $USER->GetParam("EMAIL"); $user_id = $order_info['USER_ID']; $amount = number_format($order_info['PRICE'], 2, '.', ''); $dbBasketItems = CSaleBasket::GetList(array(), array("ORDER_ID" => $order_id)); while ($arItems = $dbBasketItems->Fetch()) { $quantitys += $arItems['QUANTITY']; } if ($order_info['PRICE_DELIVERY'] > 0) { $quantitys += 1; } $quantitys = number_format($quantitys, 2, '.', ''); $signature_u = md5(md5($merchantGuid . $merchnatSecretKey . "{$amount}" . "{$quantitys}" . $order_id)); if ($hrpd->CustomMerchantInfo == $signature_u) { $arFields = array("PS_STATUS" => "Y", "PS_STATUS_CODE" => "-", "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_SUM" => $out_summ, "PS_CURRENCY" => "", "PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "USER_ID" => $arOrder["USER_ID"]);