<?php
// CBPAllStateService :: DeleteByDocument()
// /dist/bitrix/modules/bizproc/classes/general/stateservice.php:410
public 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 ".((strlen($arDocumentId[0]) > 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 ".((strlen($arDocumentId[0]) > 0) ? "= '".$DB->ForSql($arDocumentId[0])."'" : "IS NULL")." "
);
self::cleanRunningCountersCache($users);
}