- Модуль: bizproc
- Путь к файлу: ~/bitrix/modules/bizproc/classes/general/trackingservice.php
- Класс: CBPTrackingService
- Вызов: CBPTrackingService::clearOld
static function clearOld($days = 0)
{
$connection = BitrixMainApplication::getConnection();
$days = intval($days);
if ($days <= 0)
{
$days = 90;
}
$completed = self::shouldClearCompletedTracksOnly() ? "= 'Y'" : "IN ('N', 'Y')";
$limit = static::CLEAR_LOG_SELECT_LIMIT;
$partLimit = static::CLEAR_LOG_DELETE_LIMIT;
$strSql = "SELECT ID FROM b_bp_tracking t WHERE t.COMPLETED {$completed} "
. " AND t.MODIFIED < DATE_SUB(NOW(), INTERVAL " . $days . " DAY)"
. " AND t.TYPE IN (0,1,2,3,4,5,7,8,9) LIMIT {$limit}"
;
$ids = $connection->query($strSql)->fetchAll();
while ($partIds = array_splice($ids, 0, $partLimit))
{
$connection->query(
sprintf(
'DELETE from b_bp_tracking WHERE ID IN(%s)',
implode(',', array_column($partIds, 'ID'))
)
);
}
return true;
}