Exemple #1
0
 private static function GetSubSelect($arLogFields, $bDecrement = false)
 {
     global $DB;
     $author_id = CCrmSecurityHelper::GetCurrentUserID();
     if ($author_id <= 0 && isset($arLogFields["USER_ID"])) {
         $author_id = intval($arLogFields["USER_ID"]);
     }
     if ($author_id <= 0) {
         return "";
     }
     $entityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($arLogFields["ENTITY_TYPE"]);
     $entityID = $arLogFields["ENTITY_ID"];
     $arEntities = array();
     if ($entityTypeID == CCrmOwnerType::Activity) {
         if ($arActivity = CCrmActivity::GetByID($entityID)) {
             $entityTypeID = $arActivity["OWNER_TYPE_ID"];
             $entityID = $arActivity["OWNER_ID"];
             $entityName = CCrmOwnerType::ResolveName($entityTypeID);
             $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false);
             $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false);
             if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) {
                 if (!array_key_exists($entityName, $arEntities)) {
                     $arEntities[$entityName] = array();
                 }
                 $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id);
             }
             $arCommunications = CCrmActivity::GetCommunications($arActivity["ID"]);
             foreach ($arCommunications as $arActivityCommunication) {
                 $entityTypeID = $arActivityCommunication["ENTITY_TYPE_ID"];
                 $entityID = $arActivityCommunication["ENTITY_ID"];
                 $entityName = CCrmOwnerType::ResolveName($entityTypeID);
                 $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false);
                 $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false);
                 if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) {
                     if (!array_key_exists($entityName, $arEntities)) {
                         $arEntities[$entityName] = array();
                     }
                     $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id);
                 }
             }
         }
     } elseif ($entityTypeID == CCrmOwnerType::Invoice) {
         if ($arInvoice = CCrmInvoice::GetByID($entityID)) {
             $arBindings = array(CCrmOwnerType::Contact => $arInvoice["UF_CONTACT_ID"], CCrmOwnerType::Company => $arInvoice["UF_COMPANY_ID"], CCrmOwnerType::Deal => $arInvoice["UF_DEAL_ID"]);
             foreach ($arBindings as $entityTypeID => $entityID) {
                 if (intval($entityID) > 0) {
                     $entityName = CCrmOwnerType::ResolveName($entityTypeID);
                     $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false);
                     $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false);
                     if ($entityName && intval($responsible_id) > 0) {
                         if (!array_key_exists($entityName, $arEntities)) {
                             $arEntities[$entityName] = array();
                         }
                         $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id);
                     }
                 }
             }
         }
     } else {
         $entityName = CCrmOwnerType::ResolveName($entityTypeID);
         $bOpened = CCrmOwnerType::isOpened($entityTypeID, $entityID, false);
         $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false);
         if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0) {
             if (!array_key_exists($entityName, $arEntities)) {
                 $arEntities[$entityName] = array();
             }
             $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => $bOpened, "RESPONSIBLE_ID" => $responsible_id);
         }
     }
     if (intval($arLogFields["LOG_ID"]) > 0 && in_array($arLogFields["EVENT_ID"], array("crm_lead_message", "crm_deal_message", "crm_contact_message", "crm_company_message"))) {
         $dbRight = CSocNetLogRights::GetList(array(), array("LOG_ID" => $arLogFields["LOG_ID"]));
         while ($arRight = $dbRight->Fetch()) {
             if (preg_match('/^(' . CCrmLiveFeedEntity::Contact . '|' . CCrmLiveFeedEntity::Lead . '|' . CCrmLiveFeedEntity::Company . '|' . CCrmLiveFeedEntity::Deal . ')(\\d+)$/', $arRight["GROUP_CODE"], $matches)) {
                 $entityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($matches[1]);
                 $entityID = $matches[2];
                 $entityName = CCrmOwnerType::ResolveName($entityTypeID);
                 $responsible_id = CCrmOwnerType::GetResponsibleID($entityTypeID, $entityID, false);
                 if (!array_key_exists($entityName, $arEntities)) {
                     $arEntities[$entityName] = array();
                 }
                 if (intval($entityID) > 0 && $entityName && intval($responsible_id) > 0 && !array_key_exists($entityTypeID . "_" . $entityID, $arEntities[$entityName])) {
                     $arEntities[$entityName][$entityTypeID . "_" . $entityID] = array("ENTITY_TYPE_ID" => $entityTypeID, "ENTITY_ID" => $entityID, "ENTITY_NAME" => $entityName, "IS_OPENED" => CCrmOwnerType::isOpened($entityTypeID, $entityID, false), "RESPONSIBLE_ID" => $responsible_id);
                 }
             }
         }
     }
     $arUserID = array();
     foreach ($arEntities as $entityName => $arTmp) {
         $sSql = "SELECT RL.RELATION, RP.ATTR \n\t\t\t\tFROM b_crm_role_relation RL \n\t\t\t\tINNER JOIN b_crm_role_perms RP ON RL.ROLE_ID = RP.ROLE_ID AND RP.ENTITY = '" . $entityName . "' AND RP.PERM_TYPE = 'READ'\n\t\t\t";
         $res = $DB->Query($sSql, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
         while ($row = $res->Fetch()) {
             $user_id = false;
             switch ($row["ATTR"]) {
                 case BX_CRM_PERM_SELF:
                     foreach ($arTmp as $arEntity) {
                         $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tUA.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'";
                         $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
                         if (($arUser = $rsUser->Fetch()) && !in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) {
                             $arUserID[] = $arUser["USER_ID"];
                         }
                     }
                     break;
                 case BX_CRM_PERM_ALL:
                 case BX_CRM_PERM_CONFIG:
                     $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tUA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'";
                     $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
                     while ($arUser = $rsUser->Fetch()) {
                         if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) {
                             $arUserID[] = $arUser["USER_ID"];
                         }
                     }
                     break;
                 case BX_CRM_PERM_OPEN:
                     foreach ($arTmp as $arEntity) {
                         if ($arEntity["IS_OPENED"]) {
                             $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\tUA.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'";
                             $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
                             while ($arUser = $rsUser->Fetch()) {
                                 if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) {
                                     $arUserID[] = $arUser["USER_ID"];
                                 }
                             }
                         }
                     }
                     break;
                 case BX_CRM_PERM_DEPARTMENT:
                     foreach ($arTmp as $arEntity) {
                         $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tINNER JOIN b_user_access UA1 ON \n\t\t\t\t\t\t\t\tUA1.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE LIKE 'D%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE NOT LIKE 'DR%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE = UA.ACCESS_CODE\n\t\t\t\t\t\t\tINNER JOIN b_user_access UA2 ON \n\t\t\t\t\t\t\t\tUA2.USER_ID = UA.USER_ID\n\t\t\t\t\t\t\t\tAND UA2.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'";
                         $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
                         while ($arUser = $rsUser->Fetch()) {
                             if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) {
                                 $arUserID[] = $arUser["USER_ID"];
                             }
                         }
                     }
                     break;
                 case BX_CRM_PERM_SUBDEPARTMENT:
                     foreach ($arTmp as $arEntity) {
                         $strSQL = "SELECT UA.USER_ID \n\t\t\t\t\t\t\tFROM b_user_access UA \n\t\t\t\t\t\t\tINNER JOIN b_user_access UA1 ON \n\t\t\t\t\t\t\t\tUA1.USER_ID = " . intval($arEntity["RESPONSIBLE_ID"]) . "\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE LIKE 'DR%'\n\t\t\t\t\t\t\t\tAND UA1.ACCESS_CODE = UA.ACCESS_CODE\n\t\t\t\t\t\t\tINNER JOIN b_user_access UA2 ON \n\t\t\t\t\t\t\t\tUA2.USER_ID = UA.USER_ID\n\t\t\t\t\t\t\t\tAND UA2.ACCESS_CODE = '" . $DB->ForSQL($row["RELATION"]) . "'";
                         $rsUser = $DB->Query($strSQL, false, 'FILE: ' . __FILE__ . '<br /> LINE: ' . __LINE__);
                         while ($arUser = $rsUser->Fetch()) {
                             if (!in_array($arUser["USER_ID"], $arUserID) && $arUser["USER_ID"] != $author_id) {
                                 $arUserID[] = $arUser["USER_ID"];
                             }
                         }
                     }
                     break;
             }
         }
     }
     $strSubscription = "";
     $cnt = 0;
     foreach ($arEntities as $entityName => $arTmp) {
         foreach ($arTmp as $arEntity) {
             if ($cnt > 0) {
                 $strSubscription .= " OR ";
             }
             $strSubscription .= "\n\t\t\t\t\tEXISTS (\n\t\t\t\t\t\t\tSELECT S.USER_ID \n\t\t\t\t\t\t\tFROM " . CCrmSonetSubscription::TABLE_NAME . " S \n\t\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t\tS.SL_ENTITY_TYPE = '" . CCrmLiveFeedEntity::GetByEntityTypeID($arEntity["ENTITY_TYPE_ID"]) . "'\n\t\t\t\t\t\t\t\tAND S.ENTITY_ID = " . intval($arEntity["ENTITY_ID"]) . "\n\t\t\t\t\t\t\t\tAND U.ID = S.USER_ID\n\t\t\t\t\t\t) ";
             $cnt++;
         }
     }
     $strReturn = "SELECT \n\t\t\tU.ID as ID\n\t\t\t," . ($bDecrement ? "-1" : "1") . " as CNT\n\t\t\t,'**' as SITE_ID\n\t\t\t,'CRM_**' as CODE,\n\t\t\t0 as SENT\n\t\tFROM b_user U \n\t\tWHERE\n\t\t\t(\n\t\t\t\tU.ID IN (SELECT USER_ID FROM b_user_access WHERE ACCESS_CODE = 'G1' AND USER_ID <> " . $author_id . ")\n\t\t\t\t" . (!empty($arUserID) ? " OR U.ID IN (" . implode(",", $arUserID) . ") " : "") . "\n\t\t\t)" . (strlen($strSubscription) > 0 || intval($arLogFields["LOG_ID"]) > 0 ? "\n\t\t\t\t\tAND\n\t\t\t\t\t(\n\t\t\t\t\t\t" . $strSubscription . (intval($arLogFields["LOG_ID"]) > 0 ? (strlen($strSubscription) > 0 ? " OR " : "") . " \n\t\t\t\t\t\t\t\tEXISTS (\n\t\t\t\t\t\t\t\t\tSELECT GROUP_CODE \n\t\t\t\t\t\t\t\t\tFROM b_sonet_log_right LR\n\t\t\t\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\t\t\t\tLR.LOG_ID = " . intval($arLogFields["LOG_ID"]) . " \n\t\t\t\t\t\t\t\t\t\tAND LR.GROUP_CODE = " . $DB->Concat("'U'", $DB->type == "MSSQL" ? "CAST(U.ID as varchar(17))" : "U.ID") . "\n\t\t\t\t\t\t\t\t) " : "") . "\n\t\t\t\t\t)\n\t\t\t\t\t" : "");
     return $strReturn;
 }
Exemple #2
0
}
if (!CModule::IncludeModule('socialnetwork')) {
    ShowError(GetMessage('SONET_MODULE_NOT_INSTALLED'));
    return;
}
$arResult['POST_FORM_URI'] = isset($arParams['POST_FORM_URI']) ? $arParams['POST_FORM_URI'] : '';
$entityTypeID = isset($arParams['ENTITY_TYPE_ID']) ? intval($arParams['ENTITY_TYPE_ID']) : CCrmOwnerType::Undefined;
if (CCrmOwnerType::IsDefined($entityTypeID)) {
    $entityTypeName = CCrmOwnerType::ResolveName($entityTypeID);
} else {
    $entityTypeName = isset($arParams['ENTITY_TYPE_NAME']) ? $arParams['ENTITY_TYPE_NAME'] : '';
    $entityTypeID = CCrmOwnerType::ResolveID($entityTypeName);
}
$entityID = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0;
$arResult['ENABLE_LIVE_FEED_EXTENDED_MODE'] = true;
$arResult['LIVE_FEED_ENTITY_TYPE'] = CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID);
$arResult['ENTITY_TYPE_NAME'] = $entityTypeName;
$arResult['ENTITY_TYPE_ID'] = $entityTypeID;
$arResult['ENTITY_ID'] = $entityID;
$userID = CCrmSecurityHelper::GetCurrentUserID();
$arResult['USER_ID'] = $userID;
$userPerms = CCrmPerms::GetCurrentUserPermissions();
if ($entityTypeName !== '' && !CCrmAuthorizationHelper::CheckUpdatePermission($entityTypeName, $entityID, $userPerms)) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
$arResult['PERMISSIONS'] = $userPerms;
$uid = isset($arParams['UID']) ? $arParams['UID'] : '';
if ($uid === '') {
    $uid = 'crm_sl_event_edit';
}
 public function Rebind($entityTypeID, $srcEntityID, $dstEntityID)
 {
     global $DB;
     $tableName = self::TABLE_NAME;
     $slEntityType = $DB->ForSql(CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID));
     $rowCount = 0;
     $updateSql = "UPDATE {$tableName} SET ENTITY_ID = {$dstEntityID}\n\t\t\tWHERE SL_ENTITY_TYPE = '{$slEntityType}' AND ENTITY_ID = {$srcEntityID}";
     $dbResult = $DB->Query($updateSql, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__);
     if (is_object($dbResult)) {
         $rowCount += $dbResult->AffectedRowsCount();
     }
     $updateSql = "UPDATE {$tableName} SET PARENT_ENTITY_ID = {$dstEntityID}\n\t\t\tWHERE SL_PARENT_ENTITY_TYPE = '{$slEntityType}' AND PARENT_ENTITY_ID = {$srcEntityID}";
     $dbResult = $DB->Query($updateSql, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__);
     if (is_object($dbResult)) {
         $rowCount += $dbResult->AffectedRowsCount();
     }
     return $rowCount > 0;
 }
Exemple #4
0
add_email" class="crm-feed-top-nav-item"><?php 
    echo htmlspecialcharsbx(GetMessage('CRM_ENTITY_LF_MENU_BTN_EMAIL'));
    ?>
</span>
	<?php 
}
$APPLICATION->IncludeComponent('bitrix:socialnetwork.log.filter', 'body', array('arParams' => array_merge($arParams, array('USE_TARGET' => 'N', 'TARGET_ID' => '', 'SHOW_FOLLOW' => 'N', 'USE_SONET_GROUPS' => 'N', 'USE_SMART_FILTER' => $arResult['USE_SMART_FILTER'], 'MY_GROUPS_ONLY' => $arResult['USE_MY_GROUPS_FILTER_ONLY'], 'POST_FORM_URI' => $arResult['POST_FORM_URI'], 'ACTION_URI' => $arResult['ACTION_URI'], 'TOP_OUT' => isset($arParams["ENTITY_TYPE_ID"]) && !empty($arParams["ENTITY_TYPE_ID"]) && isset($arParams["ENTITY_ID"]) && !empty($arParams["ENTITY_ID"]) ? 'N' : 'Y')), 'arResult' => $arResult), null, array('HIDE_ICONS' => 'Y'));
?>
</div><?php 
$logID = isset($_REQUEST["log_id"]) ? intval($_REQUEST["log_id"]) : 0;
if ($canEdit && $logID <= 0) {
    $APPLICATION->IncludeComponent('bitrix:crm.socialnetwork.log_event.edit', '', array('UID' => $arResult['SL_EVENT_EDITOR_UID'], 'ENTITY_TYPE_ID' => $entityTypeID, 'ENTITY_ID' => $entityID, 'FORM_ID' => $arResult['FORM_ID'], 'POST_FORM_URI' => $arResult['POST_FORM_URI']), null, array('HIDE_ICONS' => 'Y'));
}
$liveFeedFilter = new CCrmLiveFeedFilter(array('EntityTypeID' => $entityTypeID));
AddEventHandler('socialnetwork', 'OnSonetLogFilterProcess', array($liveFeedFilter, 'OnSonetLogFilterProcess'));
$APPLICATION->IncludeComponent('bitrix:socialnetwork.log.ex', '', array('IS_CRM' => 'Y', 'USE_FOLLOW' => 'N', 'LOG_ID' => $logID, 'PATH_TO_LOG_ENTRY' => '/crm/stream/?log_id=#log_id#', 'CRM_ENTITY_TYPE' => CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID), 'CRM_ENTITY_ID' => $entityID, 'CRM_EXTENDED_MODE' => 'Y', 'HIDE_EDIT_FORM' => 'Y', 'USE_COMMENTS' => 'Y', 'SHOW_EVENT_ID_FILTER' => 'N', 'SHOW_SETTINGS_LINK' => 'Y', 'SET_LOG_CACHE' => 'Y', 'PAGER_DESC_NUMBERING' => 'N', 'AJAX_MODE' => 'N', 'AJAX_OPTION_SHADOW' => 'N', 'AJAX_OPTION_HISTORY' => 'N', 'AJAX_OPTION_JUMP' => 'N', 'AJAX_OPTION_STYLE' => 'Y', 'SHOW_YEAR' => 'Y', 'SHOW_LOGIN' => 'N', 'SET_TITLE' => 'N', 'NAME_TEMPLATE' => $arResult['NAME_TEMPLATE'], 'DATE_TIME_FORMAT' => $arResult['DATE_TIME_FORMAT'], 'CACHE_TYPE' => $arResult['CACHE_TYPE'], 'CACHE_TIME' => $arResult['CACHE_TIME'], 'PATH_TO_USER' => $arResult['PATH_TO_USER_PROFILE'], 'PATH_TO_GROUP' => $arResult['PATH_TO_GROUP'], 'PATH_TO_SMILE' => $arResult['PATH_TO_SMILE'], 'PATH_TO_SEARCH_TAG' => $arResult['PATH_TO_SEARCH_TAG'], 'PATH_TO_CONPANY_DEPARTMENT' => $arResult['PATH_TO_CONPANY_DEPARTMENT'], 'CONTAINER_ID' => 'log_external_container', 'SHOW_RATING' => '', 'RATING_TYPE' => '', 'SET_NAV_CHAIN' => 'N', 'NEW_TEMPLATE' => 'Y', 'USE_FAVORITES' => 'N'), null, array('HIDE_ICONS' => 'Y'));
?>
</div></div>
<script type="text/javascript">
	BX.ready(
		function()
		{
			var uid = "<?php 
echo CUtil::JSEscape($UID);
?>
";
			BX.CrmEntityLiveFeed.create(
				uid,
				{
					"prefix": "<?php 
echo CUtil::JSEscape($prefix);
 public static function GetRegistationTypes($entityTypeID, $entityID, $userID)
 {
     if (!CCrmOwnerType::IsDefined($entityTypeID)) {
         return array();
     }
     $userID = intval($userID);
     $entityID = intval($entityID);
     if ($userID <= 0 || $entityID <= 0) {
         return array();
     }
     $filter = array('SL_ENTITY_TYPE' => CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID), 'ENTITY_ID' => $entityID, 'USER_ID' => $userID);
     $dbResult = CCrmSonetSubscription::GetList(array(), $filter, false, false, array('TYPE_ID'));
     if (!is_object($dbResult)) {
         return array();
     }
     $result = array();
     while ($fields = $dbResult->Fetch()) {
         $result[] = intval($fields['TYPE_ID']);
     }
     return $result;
 }
 public function ImportResponsibility($entityTypeID, $userID, $top)
 {
     if (!CCrmOwnerType::IsDefined($entityTypeID)) {
         return false;
     }
     $userID = max(intval($userID), 0);
     $top = max(intval($top), 0);
     $typeID = CCrmSonetSubscriptionType::Observation;
     global $DB;
     $tableName = self::TABLE_NAME;
     $slEntityType = $DB->ForSql(CCrmLiveFeedEntity::GetByEntityTypeID($entityTypeID));
     $selectSql = '';
     if ($entityTypeID === CCrmOwnerType::Lead || $entityTypeID === CCrmOwnerType::Contact || $entityTypeID === CCrmOwnerType::Company || $entityTypeID === CCrmOwnerType::Deal || $entityTypeID === CCrmOwnerType::Activity) {
         if ($entityTypeID === CCrmOwnerType::Lead) {
             $selectTableName = CCrmLead::TABLE_NAME;
             $userFieldName = 'ASSIGNED_BY_ID';
         } elseif ($entityTypeID === CCrmOwnerType::Contact) {
             $selectTableName = CCrmContact::TABLE_NAME;
             $userFieldName = 'ASSIGNED_BY_ID';
         } elseif ($entityTypeID === CCrmOwnerType::Company) {
             $selectTableName = CCrmCompany::TABLE_NAME;
             $userFieldName = 'ASSIGNED_BY_ID';
         } elseif ($entityTypeID === CCrmOwnerType::Deal) {
             $selectTableName = CCrmDeal::TABLE_NAME;
             $userFieldName = 'ASSIGNED_BY_ID';
         } else {
             $selectTableName = CCrmActivity::TABLE_NAME;
             $userFieldName = 'RESPONSIBLE_ID';
         }
         $userFieldCondition = $userID > 0 ? " = {$userID}" : ' > 0';
         $selectSql = "SELECT {$userFieldName}, '{$slEntityType}', ID, {$typeID} FROM {$selectTableName} WHERE {$userFieldName}{$userFieldCondition} ORDER BY ID DESC";
     }
     if ($selectSql === '') {
         return false;
     }
     if ($top > 0) {
         CSqlUtil::PrepareSelectTop($selectSql, $top, self::DB_TYPE);
     }
     $deleteSql = "DELETE QUICK FROM {$tableName} WHERE SL_ENTITY_TYPE = '{$slEntityType}' AND TYPE_ID = {$typeID}";
     if ($userID > 0) {
         $deleteSql .= " AND USER_ID = {$userID}";
     }
     $DB->Query($deleteSql, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__);
     $insertSql = "INSERT INTO {$tableName}(USER_ID, SL_ENTITY_TYPE, ENTITY_ID, TYPE_ID) " . $selectSql;
     $dbResult = $DB->Query($insertSql, false, 'File: ' . __FILE__ . '<br/>Line: ' . __LINE__);
     return is_object($dbResult);
 }