Всем привет.
У меня такая проблема. Добавил агент в битрикс, в файле init.php написал функцию которая меняет статус заказа если он оплачен. Но при активизации агента сайт вылетает в Fatal error
Fatal error: Call to a member function GetID() on a non-object in /bitrix/modules/sale/general/order.php on line 1750
Вот функция агента:
Смысл такой что после прошествия 3 дней у всех заказов которые оплачены меняется статус.
Вот кусок кода из файла /bitrix/modules/sale/general/order.php
Строка 1750 это где "EMP_STATUS_ID" => ( IntVal($USER->GetID())>0 ? IntVal($USER->GetID()) : false )
Сталкивался ли кто нибудь с подобным? И в чем может быть проблема? Заранее благодарен.
У меня такая проблема. Добавил агент в битрикс, в файле init.php написал функцию которая меняет статус заказа если он оплачен. Но при активизации агента сайт вылетает в Fatal error
Fatal error: Call to a member function GetID() on a non-object in /bitrix/modules/sale/general/order.php on line 1750
Вот функция агента:
Смысл такой что после прошествия 3 дней у всех заказов которые оплачены меняется статус.
| Код |
|---|
function My_Order_Clean()
{
global $USER;
if (CModule::IncludeModule('sale') && CModule::IncludeModule("iblock")) {
$filterdate = date('d.m.Y', strtotime('- 3 days'));
$arSelect3 = Array("ID", "NAME", "DATE_CREATE", "DATE_CREATE_UNIX", "DATE_ACTIVE_TO", "DATE_ACTIVE_FROM");
$arFilter3 = Array("IBLOCK_ID"=>5, "=DATE_ACTIVE_TO"=> date($filterdate), "ACTIVE"=>"Y");
$res3 = CIBlockElement::GetList(Array(), $arFilter3, false, Array("nPageSize"=>25000), $arSelect3);
while($ob3 = $res3->GetNextElement())
{
$arFields3 = $ob3->GetFields();
$dbBasketItems3 = CSaleBasket::GetList(array(),array("PRODUCT_ID" => $arFields3['ID'], "ORDER_PAYED" => "Y"),false,false,array("ID", "PRODUCT_ID", "ORDER_PAYED"));
while ($arItems3 = $dbBasketItems3->Fetch())
{
CSaleOrder::StatusOrder(intval($arItems3['ID']), "E");
}
}
}
return "My_Order_Clean();";
} |
Вот кусок кода из файла /bitrix/modules/sale/general/order.php
Строка 1750 это где "EMP_STATUS_ID" => ( IntVal($USER->GetID())>0 ? IntVal($USER->GetID()) : false )
| Код |
|---|
global $DB, $USER;
$ID = IntVal($ID);
$val = trim($val);
$db_events = GetModuleEvents("sale", "OnSaleBeforeStatusOrder");
while ($arEvent = $db_events->Fetch())
if (ExecuteModuleEventEx($arEvent, Array($ID, $val))===false)
return false;
$arFields = array(
"STATUS_ID" => $val,
"=DATE_STATUS" => $DB->GetNowFunction(),
"EMP_STATUS_ID" => ( IntVal($USER->GetID())>0 ? IntVal($USER->GetID()) : false )
);
$res = CSaleOrder::Update($ID, $arFields);
unset($GLOBALS["SALE_ORDER"]["SALE_ORDER_CACHE_".$ID]);
|
Сталкивался ли кто нибудь с подобным? И в чем может быть проблема? Заранее благодарен.