CBPAllStateService::DeleteByDocument: Bitrix method

      
<?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);
    }