• Модуль: 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;
}