Всем привет!
Наткнулся на топик на форуме там выложили код, который при смене статуса заказа запускает авто калькуляцию афилиатов от пользователя с админ правами, но калькуляцию не проходит...
Мб кто подскажет что не так?
AddEventHandler("sale", "OnSaleStatusOrder", "StatusUpdate"); // смена статуса, автоматическая калькуляция аффилиатов
AddEventHandler("sale", "OnSaleComponentOrderOneStepComplete", "StatusUpdate") ; // смена статуса, автоматическая калькуляция аффилиатов
AddEventHandler("sale", "OnSalePayOrder", "StatusUpdate"); // оплачен
function StatusUpdate($ID, $val) // смена статуса
{
$user = 1; // код менеджера магазина или админа
if($val['STATUS_ID']=="F" || $val['STATUS_ID']=="P") { // тут казать ваши коды статусов заказ при оплате или отгрузки
CSaleOrder::Update($ID, array("ALLOW_DELIVERY" => "Y", "DATE_ALLOW_DELIVERY" => Date(CDatabase::ateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "EMP_ALLOW_DELIVERY_ID" => $user));
}
// автоматическая калькуляция аффилиатов
if ($val["PAYED"] == "Y" || $val == "Y" ) {
// без кода из трех строк ниже не работает калькуляция!
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("sale" ) ;
$arOrder = CSaleOrder::GetByID($ID);
//-! фикс калькуляции
CSaleAffiliate::CalculateAffiliate($arOrder["AFFILIATE_ID"], false, false, false, false);
}
}
function StatusUpdate($ID, $val) // смена статуса
{
$user = 1; // код менеджера магазина или админа
if($val['STATUS_ID']=="F") { // тут казать ваши коды статусов заказ при оплате или отгрузки
CSaleOrder::Update($ID, array("ALLOW_DELIVERY" => "Y", "DATE_ALLOW_DELIVERY" => Date(CDatabase::ateFormatToPHP(CLang::GetDateFormat("FULL", LANG))), "EMP_ALLOW_DELIVERY_ID" => $user));
}
// автоматическая калькуляция аффилиатов
if ($val == "Y") {
// без кода из трех строк ниже не работает калькуляция!
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("sale" ) ;
$arOrder = CSaleOrder::GetByID($ID);
//-! фикс калькуляции
CSaleAffiliate::CalculateAffiliate($arOrder["AFFILIATE_ID"], false, false, false, false);
}
}
Я правильно понимаю?