• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/stateservice.php
  • Класс: CBPStateService
  • Вызов: CBPStateService::deleteByDocument
static function deleteByDocument($documentId)
{
	global $DB;

	$arDocumentId = CBPHelper::ParseDocumentId($documentId);
	$users = array();

	$dbRes = $DB->Query(
		"SELECT ID, STARTED_BY ".
		"FROM b_bp_workflow_state ".
		"WHERE DOCUMENT_ID = '".$DB->ForSql($arDocumentId[2])."' ".
		"	AND ENTITY = '".$DB->ForSql($arDocumentId[1])."' ".
		"	AND MODULE_ID ".(($arDocumentId[0] <> '') ? "= '".$DB->ForSql($arDocumentId[0])."'" : "IS NULL")." "
	);
	while ($arRes = $dbRes->Fetch())
	{
		$DB->Query(
			"DELETE FROM b_bp_workflow_permissions ".
			"WHERE WORKFLOW_ID = '".$DB->ForSql($arRes["ID"])."' "
		);
		if (!empty($arRes['STARTED_BY']))
			$users[] = $arRes['STARTED_BY'];
	}

	$DB->Query(
		"DELETE FROM b_bp_workflow_state ".
		"WHERE DOCUMENT_ID = '".$DB->ForSql($arDocumentId[2])."' ".
		"	AND ENTITY = '".$DB->ForSql($arDocumentId[1])."' ".
		"	AND MODULE_ID ".(($arDocumentId[0] <> '') ? "= '".$DB->ForSql($arDocumentId[0])."'" : "IS NULL")." "
	);

	self::cleanRunningCountersCache($users);
}