Автоматическая отмена неоплаченных заказов, сделанных более 5 дней назад

В ситуации, когда курс рубля нестабилен, а цена товара привязана к доллару, заказчик захотел отменять все неоплаченные в течении пяти дней заказы.
[spoiler]
Напишем функцию в init.php и будем ее запускать на агенте раз в день, например.

function My_Clear_Orders()
{
   require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
   if (CModule::IncludeModule("sale")) {
      //получим текущую дату в формате сайта
         $date=date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), time());?><br/><?
      // получим Unix timestamp даты
         $stmp = MakeTimeStamp($date, "DD.MM.YYYY");?><br/><?
      //создадим массив добавления(отнимания) срока(5 дней) 
         $arrAddTime = array(
            "DD"   => -5,
            "MM"   => 0,
            "YYYY"   => 0,
            "HH"   => 0,
            "MI"   => 0,
            "SS"   => 0,
         ); 
      //Получим дату, младше которой заказы аннулируются
      //echo $date_critical_order = date("d.m.Y",AddToTimeStamp($arrAddTime, $stmp));
      // получим все заказы старше текущей даты на 5 дней  
         $arFilter = Array(
            "PAYED"=>"N",
            "CANCELED"=>"N",
            "<=DATE_INSERT"=>date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),AddToTimeStamp($arrAddTime, $stmp)) 
         );  

         $db_sales = CSaleOrder::GetList(
            array("ID"=>"DESC"),
            $arFilter,
            false,
            false,
            //array()
            array("ID", "PAYED", "CANCELED", "DATE_INSERT", "USER_LOGIN")
         );
            while ($id_sales = $db_sales->Fetch())
               {
                  CSaleOrder::CancelOrder($id_sales["ID"], "Y", "Заказ не был оплачен более 5 дней с момента оформления и аннулирован.");
               }
         return "My_Clear_Orders();"; // обязательно сделаем return для агента, иначе агент самоуничтожится после одного запуска 
   } 
}