- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/mailmessageuid.php
- Класс: BitrixMailMailMessageUidTable
- Вызов: MailMessageUidTable::deleteListSoft
static function deleteListSoft(array $filter)
{
$entity = static::getEntity();
$connection = $entity->getConnection();
$filter = array_merge($filter , static::getPresetRemoveFilters());
//mark selected messages for deletion if there are no messages in the download queue
$query = sprintf(
'UPDATE %s SET %s WHERE %s AND NOT EXISTS (SELECT 1 FROM %s WHERE %s)',
$connection->getSqlHelper()->quote($entity->getDbTableName()),
$connection->getSqlHelper()->prepareUpdate($entity->getDbTableName(), [
'DELETE_TIME' => time(),
])[0],
EntityQuery::buildFilterSql(
$entity,
$filter
),
$connection->getSqlHelper()->quote(InternalsMessageUploadQueueTable::getTableName()),
EntityQuery::buildFilterSql(
$entity,
[
'=ID' => new BitrixMainDBSqlExpression('?#', 'ID'),
'=MAILBOX_ID' => new BitrixMainDBSqlExpression('?#', 'MAILBOX_ID'),
]
)
);
$result = $connection->query($query);
$count = $connection->getAffectedRowsCount();
$result->setCount($count > 0 ? $count : 0);
return $result;
}