Здравствуйте, нужно реализовать пополнение счета пользователя, после изменения статуса заказа. Алгоритм реализовал, но функция по изменению не срабатывает. Подскажите пожалуйста, что делать. Может в коде что-то не то, хотя много раз перепроверял. Заранее спасибо!
| Код |
|---|
function MyDeliveryOrderCallbacks($userID, $bPaid, $orderID)
{
global $DB;
// Обработаем входные параметры
$userID = IntVal($userID); // Код пользователя-покупателя
$bPaid = IntVal($bPaid); // Устанавливается или снимается флаг доставки
$orderID = IntVal($orderID); // Код заказа
if ($userID <= 0 || $orderID <= 0)
return False;
// Внесем деньги на счет
if (!CSaleUserAccount::UpdateAccount($userID, $bPaid, "RUB", "MANUAL", $orderID))
return False;
return True;
}
AddEventHandler("sale", "OnSaleStatusOrder", array("OrderHandler", "saleDeliveryHandler"));
class OrderHandler
{
function saleDeliveryHandler()
{
global $USER;
AddMessage2Log("Произвольный текст сообщения");
$arFilter = Array(
"USER_ID" => $USER->GetID(),
);
$rsSales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
while ($arSales = $rsSales->Fetch()) {
if ($arSales['PRICE'] >= ATT_MIN_PRICE_BONUS) {
$arBonusPrice = ceil($arSales["PRICE"] * ATT_PCT_FROM_SUM / 100);
if ($arSales['STATUS_ID'] != "N") {
CSaleUserAccount::UpdateAccount(
$arSales['USER_ID'],
$arBonusPrice,
"RUB",
"MANUAL",
$arSales['ID']
);
}
}
}
}
} |
"У меня есть три сокровища, которыми я дорожу. Первое – милосердие; второе – бережливость. Третье – отсутствие стремления быть впереди других." - один древний китаец.