Всем привет.
У меня такая проблема. Добавил агент в битрикс, в файле 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]); |
Сталкивался ли кто нибудь с подобным? И в чем может быть проблема? Заранее благодарен.