CSaleOrder::PayOrder($arResult["ORDER_ID"], "Y", False, False); } } } if ($arResult["HAVE_PREPAYMENT"]) { if ($psPreAction && $psPreAction->IsAction()) { $psPreAction->orderId = $arResult["ORDER_ID"]; $psPreAction->orderAmount = $orderTotalSum; $psPreAction->deliveryAmount = $arResult["DELIVERY_PRICE"]; $psPreAction->taxAmount = $arResult["TAX_PRICE"]; $orderData = array(); $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => $arResult["ORDER_ID"]), false, false, array("ID", "QUANTITY", "PRICE", "WEIGHT", "NAME", "CURRENCY", "PRODUCT_ID", "DETAIL_PAGE_URL")); while ($arItem = $dbBasketItems->Fetch()) { $orderData['BASKET_ITEMS'][] = $arItem; } $psPreAction->payOrder($orderData); } } } if (empty($arResult["ERROR"])) { CSaleOrderUserProps::DoSaveUserProfile($USER->GetID(), $arUserResult["PROFILE_ID"], $arUserResult["PROFILE_NAME"], $arUserResult["PERSON_TYPE_ID"], $arUserResult["ORDER_PROP"], $arResult["ERROR"]); } // mail message if (empty($arResult["ERROR"])) { $i = 0; $strOrderList = ""; $arBasketList = array(); $dbBasketItems = CSaleBasket::GetList(array("ID" => "ASC"), array("ORDER_ID" => $arResult["ORDER_ID"]), false, false, array("ID", "PRODUCT_ID", "NAME", "QUANTITY", "PRICE", "CURRENCY", "TYPE", "SET_PARENT_ID")); while ($arItem = $dbBasketItems->Fetch()) { if (CSaleBasketHelper::isSetItem($arItem)) { continue;
if (empty($arResult["ERROR"])) { if ($arResult["PAY_FROM_ACCOUNT"] == "Y" && $arUserResult["PAY_CURRENT_ACCOUNT"] == "Y" && ($arParams["ONLY_FULL_PAY_FROM_ACCOUNT"] == "Y" && DoubleVal($arResult["USER_ACCOUNT"]["CURRENT_BUDGET"]) >= DoubleVal($totalOrderPrice) || $arParams["ONLY_FULL_PAY_FROM_ACCOUNT"] != "Y")) { $withdrawSum = CSaleUserAccount::Withdraw($USER->GetID(), $totalOrderPrice, $arResult["BASE_LANG_CURRENCY"], $arResult["ORDER_ID"]); if ($withdrawSum > 0) { $arFields = array("SUM_PAID" => $withdrawSum, "USER_ID" => $USER->GetID()); CSaleOrder::Update($arResult["ORDER_ID"], $arFields); if ($withdrawSum == $totalOrderPrice) { CSaleOrder::PayOrder($arResult["ORDER_ID"], "Y", False, False); } } } if ($arResult["HAVE_PREPAYMENT"]) { if ($psPreAction && $psPreAction->IsAction()) { $psPreAction->orderId = $arResult["ORDER_ID"]; $psPreAction->orderAmount = $totalOrderPrice; $psPreAction->payOrder(); } } } // mail message if (empty($arResult["ERROR"])) { $strOrderList = ""; $dbBasketItems = CSaleBasket::GetList(array("NAME" => "ASC"), array("ORDER_ID" => $arResult["ORDER_ID"]), false, false, array("ID", "NAME", "QUANTITY", "PRICE", "CURRENCY")); while ($arBasketItems = $dbBasketItems->Fetch()) { $strOrderList .= $arBasketItems["NAME"] . " - " . $arBasketItems["QUANTITY"] . " " . GetMessage("SOA_SHT") . ": " . SaleFormatCurrency($arBasketItems["PRICE"], $arBasketItems["CURRENCY"]); $strOrderList .= "\n"; } $arFields = array("ORDER_ID" => $arResult["ORDER_ID"], "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))), "ORDER_USER" => strlen($arUserResult["PAYER_NAME"]) > 0 ? $arUserResult["PAYER_NAME"] : $USER->GetFormattedName(false), "PRICE" => SaleFormatCurrency($totalOrderPrice, $arResult["BASE_LANG_CURRENCY"]), "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME), "EMAIL" => strlen($arUserResult["USER_EMAIL"]) > 0 ? $arUserResult["USER_EMAIL"] : $USER->GetEmail(), "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $SERVER_NAME), "DELIVERY_PRICE" => $arResult["DELIVERY_PRICE"]); $eventName = "SALE_NEW_ORDER"; $bSend = true; foreach (GetModuleEvents("sale", "OnOrderNewSendEmail", true) as $arEvent) {