Пример #1
0
 function __CrmDedupeListErrorText(Merger\EntityMergerException $e)
 {
     __IncludeLang(dirname(__FILE__) . '/lang/' . LANGUAGE_ID . '/' . basename(__FILE__));
     $entityTypeID = $e->getEntityTypeID();
     $entityID = $e->getEntityID();
     $code = $e->getCode();
     if ($code === Merger\EntityMergerException::GENERAL) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_GENERAL_ERROR');
     } elseif ($code === Merger\EntityMergerException::NOT_FOUND) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_NOT_FOUND', array('#ID#' => $entityID));
     }
     $title = CCrmOwnerType::GetCaption($entityTypeID, $entityID, false);
     if (strlen($title) > 20) {
         $title = substr($title, 0, 17) . '...';
     }
     if ($code === Merger\EntityMergerException::READ_DENIED) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_READ_DENIED', array('#TITLE#' => $title, '#ID#' => $entityID));
     } elseif ($code === Merger\EntityMergerException::UPDATE_DENIED) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_UPDATE_DENIED', array('#TITLE#' => $title, '#ID#' => $entityID));
     } elseif ($code === Merger\EntityMergerException::DELETE_DENIED) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_DELETE_DENIED', array('#TITLE#' => $title, '#ID#' => $entityID));
     } elseif ($code === Merger\EntityMergerException::UPDATE_FAILED) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_UPDATE_FAILED', array('#TITLE#' => $title, '#ID#' => $entityID));
     } elseif ($code === Merger\EntityMergerException::DELETE_FAILED) {
         return GetMessage('CRM_DEDUPE_LIST_MERGE_ERROR_DELETE_FAILED', array('#TITLE#' => $title, '#ID#' => $entityID));
     }
     return $e->getMessage();
 }
Пример #2
0
             $showUrl = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Deal, $v, true);
         }
         if ($showUrl === '') {
             $entityData[$k] = array('type' => 'text', 'data' => array('text' => $caption));
         } else {
             $entityData[$k] = array('type' => 'link', 'data' => array('text' => $caption, 'url' => $showUrl));
         }
     }
 } elseif ($k === 'UF_QUOTE_ID') {
     $v = (int) $v;
     if ($v <= 0) {
         $entityData[$k] = array('type' => 'text', 'data' => array('text' => GetMessage('CRM_ENTITY_QPV_QUOTE_NOT_ASSIGNED')));
     } else {
         $caption = isset($entityFields['UF_QUOTE_TITLE']) ? $entityFields['UF_QUOTE_TITLE'] : '';
         if ($caption === '') {
             $caption = CCrmOwnerType::GetCaption(CCrmOwnerType::Quote, $v);
         }
         $showUrl = isset($entityFields['UF_QUOTE_SHOW_URL']) ? $entityFields['UF_QUOTE_SHOW_URL'] : '';
         if ($showUrl === '') {
             $showUrl = CCrmOwnerType::GetShowUrl(CCrmOwnerType::Quote, $v, true);
         }
         if ($showUrl === '') {
             $entityData[$k] = array('type' => 'text', 'data' => array('text' => $caption));
         } else {
             $entityData[$k] = array('type' => 'link', 'data' => array('text' => $caption, 'url' => $showUrl));
         }
     }
 } elseif ($k === 'RESPONSIBLE_ID') {
     $entityData['RESPONSIBLE_ID'] = __CrmQuickPanelViewPrepareResponsible($entityFields, $userProfilePath, $nameTemplate, $enableInstantEdit, $arResult['INSTANT_EDITOR_ID'], $arResult['SERVICE_URL'], 'RESPONSIBLE', false);
 } elseif ($k === 'PR_LOCATION') {
     //HACK: EDIT FORM REFERS 'PR_LOCATION' BY 'LOCATION_ID'
Пример #3
0
 protected static function PrepareCrmUserTypeValueView($value, $defaultTypeName = '')
 {
     $parts = explode('_', $value);
     if (count($parts) > 1) {
         return CCrmOwnerType::GetCaption(CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($parts[0])), $parts[1]);
     } elseif ($defaultTypeName !== '') {
         return CCrmOwnerType::GetCaption(CCrmOwnerType::ResolveID($defaultTypeName), $value);
     }
     return $value;
 }
Пример #4
0
                     $arFileTmp = CFile::ResizeImageGet($arRes["PHOTO"], array('width' => 21, 'height' => 21), BX_RESIZE_IMAGE_EXACT, false);
                     if (is_array($arFileTmp) && isset($arFileTmp["src"])) {
                         $arTmp["PHOTO"] = $arFileTmp['src'];
                     }
                 }
             } elseif ($arCommunication["ENTITY_TYPE_ID"] == CCrmOwnerType::Company) {
                 $dbRes = CCrmCompany::GetListEx(array(), array('=ID' => $arCommunication["ENTITY_ID"], 'CHECK_PERMISSIONS' => 'N'), false, false, array('LOGO'));
                 if (($arRes = $dbRes->Fetch()) && intval($arRes["LOGO"]) > 0) {
                     $arFileTmp = CFile::ResizeImageGet($arRes["LOGO"], array('width' => 21, 'height' => 21), BX_RESIZE_IMAGE_EXACT, false);
                     if (is_array($arFileTmp) && isset($arFileTmp["src"])) {
                         $arTmp["PHOTO"] = $arFileTmp['src'];
                     }
                 }
             }
         }
         $arTmp["NAME"] = CCrmOwnerType::GetCaption($arCommunication["ENTITY_TYPE_ID"], $arCommunication["ENTITY_ID"], false);
         $arTmp["URL"] = CCrmOwnerType::GetShowURL($arCommunication["ENTITY_TYPE_ID"], $arCommunication["ENTITY_ID"], false);
         if (in_array($arCommunication["TYPE"], array('EMAIL', 'PHONE'))) {
             $arTmp["COMM"] = array("TYPE" => $arCommunication["TYPE"], "VALUE" => $arCommunication["VALUE"]);
         }
         if (is_array($arCommunication["ENTITY_SETTINGS"]) && isset($arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"])) {
             $arTmp["COMPANY"] = $arCommunication["ENTITY_SETTINGS"]["COMPANY_TITLE"];
         }
         $arResult["CLIENTS_FOR_JS"][] = $arTmp;
     }
 }
 $arResult["STORAGE_ELEMENTS"] = array();
 $arResult["RECORDS"] = array();
 if ($arActivity["TYPE_ID"] == CCrmActivityType::Call && !empty($arActivity["STORAGE_ELEMENT_IDS"])) {
     $arStorageElementID = unserialize($arActivity["STORAGE_ELEMENT_IDS"]);
     if (is_array($arStorageElementID) && !empty($arStorageElementID)) {
Пример #5
0
 public function __toString()
 {
     $entityTypeName = \CCrmOwnerType::ResolveName($this->entityTypeID);
     $entityCaption = \CCrmOwnerType::IsDefined($this->entityTypeID) && $this->entityID > 0 ? \CCrmOwnerType::GetCaption($this->entityTypeID, $this->entityID, false) : '';
     return "{ type: \"{$entityTypeName}\", id: {$this->entityID}, caption: \"{$entityCaption}\" }";
 }
Пример #6
0
    function __CrmActivityListRenderItems($items, $showMode, $showTop, &$editorCfg)
    {
        $editorItems = array();
        $count = count($items);
        $now = time() + CTimeZone::GetOffset();
        $toolbarID = '';
        if ($editorCfg['ENABLE_TOOLBAR']) {
            $toolbarID = $editorCfg['EDITOR_ID'] . '_toolbar';
            ?>
<ul id="<?php 
            echo htmlspecialcharsbx($toolbarID);
            ?>
" class="crm-view-actions">
			<?php 
            if ($editorCfg['ENABLE_TASK_ADD']) {
                ?>
			<li class="crm-activity-command-add-task">
				<i></i>
				<span><?php 
                echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_LIST_ADD_TASK'));
                ?>
</span>
			</li>
			<?php 
            }
            ?>
			<?php 
            if ($editorCfg['ENABLE_CALENDAR_EVENT_ADD']) {
                ?>
			<li class="crm-activity-command-add-call">
				<i></i>
				<span><?php 
                echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_LIST_ADD_CALL'));
                ?>
</span>
			</li>
			<li class="crm-activity-command-add-meeting">
				<i></i>
				<span><?php 
                echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_LIST_ADD_MEETING'));
                ?>
</span>
			</li>
			<?php 
            }
            ?>
			<?php 
            if ($editorCfg['ENABLE_EMAIL_ADD']) {
                ?>
			<li class="crm-activity-command-add-email">
				<i></i>
				<span><?php 
                echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_LIST_ADD_EMAIL'));
                ?>
</span>
			</li>
			<?php 
            }
            ?>
		</ul>
	<?php 
        }
        ?>
	<table class="crm-view-table crm-activity-table">
		<thead>
			<tr class="crm-activity-table-head" style="<?php 
        echo $count > 0 ? '' : 'display:none;';
        ?>
" >
				<td>&nbsp;</td>
				<td><?php 
        echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_ROW_COL_TTL_TYPE'));
        ?>
</td>
				<td><?php 
        echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_ROW_COL_TTL_SUBJECT'));
        ?>
</td>
				<td><?php 
        echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_ROW_COL_TTL_DEAD_LINE'));
        ?>
</td>
				<td><?php 
        echo htmlspecialcharsbx(GetMessage('CRM_ACTIVITY_ROW_COL_TTL_RESPONSIBLE'));
        ?>
</td>
			</tr>
		</thead>
		<tbody>
			<?php 
        $processed = 0;
        for ($i = 0; $i < $count; $i++) {
            $item =& $items[$i];
            if ($showMode == 'NOT_COMPLETED' && $item['COMPLETED'] == 'Y' || $showMode == 'COMPLETED' && $item['COMPLETED'] == 'N') {
                continue;
            }
            $processed++;
            $commData = array();
            if (isset($item['COMMUNICATIONS'])) {
                foreach ($item['COMMUNICATIONS'] as &$arComm) {
                    CCrmActivity::PrepareCommunicationInfo($arComm);
                    $commData[] = array('id' => $arComm['ID'], 'type' => $arComm['TYPE'], 'value' => $arComm['VALUE'], 'entityId' => $arComm['ENTITY_ID'], 'entityType' => CCrmOwnerType::ResolveName($arComm['ENTITY_TYPE_ID']), 'entityTitle' => $arComm['TITLE']);
                }
                unset($arComm);
            }
            $rowID = $editorCfg['PREFIX'];
            if ($rowID !== '') {
                $rowID .= '_';
            }
            $rowID .= '_row_' . strval($processed);
            $editorItem = array('ID' => $item['~ID'], 'rowID' => $rowID, 'typeID' => $item['~TYPE_ID'], 'subject' => strval($item['~SUBJECT']), 'description' => strval($item['~DESCRIPTION']), 'direction' => intval($item['~DIRECTION']), 'location' => strval($item['~LOCATION']), 'start' => isset($item['~START_TIME']) ? ConvertTimeStamp(MakeTimeStamp($item['~START_TIME']), 'FULL', SITE_ID) : '', 'end' => isset($item['~END_TIME']) ? ConvertTimeStamp(MakeTimeStamp($item['~END_TIME']), 'FULL', SITE_ID) : '', 'deadline' => isset($item['~DEADLINE']) ? ConvertTimeStamp(MakeTimeStamp($item['~DEADLINE']), 'FULL', SITE_ID) : '', 'completed' => strval($item['~COMPLETED']) == 'Y', 'notifyType' => intval($item['~NOTIFY_TYPE']), 'notifyValue' => intval($item['~NOTIFY_VALUE']), 'priority' => intval($item['~PRIORITY']), 'responsibleID' => isset($item['~RESPONSIBLE_ID'][0]) ? intval($item['~RESPONSIBLE_ID']) : 0, 'responsibleName' => isset($item['~RESPONSIBLE_FULL_NAME'][0]) ? $item['~RESPONSIBLE_FULL_NAME'] : GetMessage('CRM_UNDEFINED_VALUE'), 'storageTypeID' => intval($item['STORAGE_TYPE_ID']), 'files' => $item['FILES'], 'webdavelements' => $item['WEBDAV_ELEMENTS'], 'associatedEntityID' => isset($item['~ASSOCIATED_ENTITY_ID']) ? intval($item['~ASSOCIATED_ENTITY_ID']) : 0, 'communications' => $commData);
            if (isset($item['OWNER_TYPE_ID']) && isset($item['OWNER_ID'])) {
                $editorItem['ownerType'] = CCrmOwnerType::ResolveName($item['OWNER_TYPE_ID']);
                $editorItem['ownerID'] = $item['OWNER_ID'];
                $editorItem['ownerTitle'] = CCrmOwnerType::GetCaption($item['OWNER_TYPE_ID'], $item['OWNER_ID']);
                $editorItem['ownerUrl'] = CCrmOwnerType::GetShowUrl($item['OWNER_TYPE_ID'], $item['OWNER_ID']);
            }
            $editorItems[] = $editorItem;
            $rowClass = 'crm-activity-row';
            if ($processed % 2 === 0) {
                $rowClass .= ' crm-activity-row-even';
            }
            if (intval($item['~PRIORITY']) === CCrmActivityPriority::High) {
                $rowClass .= ' crm-activity-row-important';
            }
            ?>
			<tr id="<?php 
            echo htmlspecialcharsbx($rowID);
            ?>
" class="<?php 
            echo htmlspecialcharsbx($rowClass);
            ?>
" style="<?php 
            echo $showTop > 0 && $processed > $showTop ? 'display:none;' : '';
            ?>
">
				<td><!--Delete-->
					<?php 
            if (!$arResult['READ_ONLY']) {
                ?>
						<span class="crm-view-table-column-delete"></span>
					<?php 
            }
            ?>
				</td>
				<td> <!--Type-->
					<a class="crm-activity-type" href="#"><?php 
            echo $item['TYPE_NAME'];
            ?>
</a>
				</td>
				<td> <!--Subject-->
					<a class="crm-activity-subject" href="#"><?php 
            echo $item['SUBJECT'];
            ?>
</a>
				</td>
				<td> <!--End time-->
					<?php 
            $deadline = isset($item['~DEADLINE']) ? MakeTimeStamp($item['~DEADLINE']) : null;
            ?>
					<span <?php 
            echo $item['~COMPLETED'] !== 'Y' && $deadline !== null && $deadline < $now ? 'style="color:#ff0000;"' : '';
            ?>
>
						<?php 
            echo $deadline !== null ? htmlspecialcharsbx(CCrmComponentHelper::TrimDateTimeString(FormatDate('FULL', $deadline))) : '';
            ?>
					</span>
				</td>
				<td> <!--Responsible-->
			<span>
				<?php 
            echo isset($item['RESPONSIBLE_FULL_NAME'][0]) ? $item['RESPONSIBLE_FULL_NAME'] : GetMessage('CRM_UNDEFINED_VALUE');
            ?>
			</span>
				</td>
			</tr>
				<?php 
        }
        unset($item);
        ?>
		</tbody>
	</table>
	<?php 
        if ($showTop > 0 && $processed > $showTop) {
            ?>
	<div class="crm-activity-show-all-wrapper">
		<a href="#" class="crm-activity-command-show-all" ><?php 
            echo str_replace('#COUNT#', strval($processed), GetMessage('CRM_ACTIVITY_SHOW_ALL'));
            ?>
</a>
	</div>
	<?php 
        }
        $GLOBALS['APPLICATION']->IncludeComponent('bitrix:crm.activity.editor', '', array('CONTAINER_ID' => $editorCfg['CONTAINER_ID'], 'EDITOR_ID' => $editorCfg['EDITOR_ID'], 'EDITOR_TYPE' => $editorCfg['EDITOR_TYPE'], 'PREFIX' => $editorCfg['PREFIX'], 'OWNER_TYPE' => $editorCfg['OWNER_TYPE'], 'OWNER_ID' => $editorCfg['OWNER_ID'], 'ENABLE_TASK_ADD' => $editorCfg['ENABLE_TASK_ADD'], 'ENABLE_CALENDAR_EVENT_ADD' => $editorCfg['ENABLE_CALENDAR_EVENT_ADD'], 'ENABLE_EMAIL_ADD' => $editorCfg['ENABLE_EMAIL_ADD'], 'READ_ONLY' => $editorCfg['READ_ONLY'], 'ENABLE_UI' => $editorCfg['ENABLE_UI'], 'ENABLE_TOOLBAR' => $editorCfg['ENABLE_TOOLBAR'], 'TOOLBAR_ID' => $toolbarID, 'BUTTON_ID' => $editorCfg['BUTTON_ID'], 'EDITOR_ITEMS' => $editorItems), null, array('HIDE_ICONS' => 'Y'));
    }
Пример #7
0
$arResult['STATUS_SUCCESS'] = $arResult['ELEMENT']['STATUS_SUCCESS'] = $bStatusSuccess ? 'Y' : 'N';
$arResult['STATUS_FAILED'] = $arResult['ELEMENT']['STATUS_FAILED'] = $bStatusFailed ? 'Y' : 'N';
$arResult['ELEMENT']['REASON_MARKED_SUCCESS'] = $bStatusSuccess ? $arResult['ELEMENT']['REASON_MARKED'] : '';
if (!$bStatusFailed) {
    $arResult['ELEMENT']['REASON_MARKED'] = '';
}
$currencyID = isset($arResult['ELEMENT']['CURRENCY']) ? $arResult['ELEMENT']['CURRENCY'] : CCrmInvoice::GetCurrencyID();
$dealID = isset($arResult['ELEMENT']['UF_DEAL_ID']) ? $arResult['ELEMENT']['UF_DEAL_ID'] : 0;
$arResult['PATH_TO_DEAL_SHOW'] = $arResult['ELEMENT']['UF_DEAL_SHOW_URL'] = $dealID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_SHOW'], array('deal_id' => $dealID)) : '';
if ($dealID > 0) {
    $arResult['ELEMENT']['UF_DEAL_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Deal, $dealID, false);
}
$quoteID = isset($arResult['ELEMENT']['UF_QUOTE_ID']) ? $arResult['ELEMENT']['UF_QUOTE_ID'] : 0;
$arResult['PATH_TO_QUOTE_SHOW'] = $arResult['ELEMENT']['UF_QUOTE_SHOW_URL'] = $quoteID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_QUOTE_SHOW'], array('quote_id' => $quoteID)) : '';
if ($quoteID > 0) {
    $arResult['ELEMENT']['UF_QUOTE_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Quote, $quoteID, false);
}
$companyID = isset($arResult['ELEMENT']['UF_COMPANY_ID']) ? $arResult['ELEMENT']['UF_COMPANY_ID'] : 0;
$arResult['PATH_TO_COMPANY_SHOW'] = $arResult['ELEMENT']['UF_COMPANY_SHOW_URL'] = $companyID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_SHOW'], array('company_id' => $companyID)) : '';
if ($companyID > 0) {
    $dbResult = CCrmCompany::GetListEx(array(), array('=ID' => $companyID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'TITLE', 'LOGO'));
    $entityInfo = $dbResult ? $dbResult->Fetch() : null;
    if (is_array($entityInfo)) {
        $arResult['ELEMENT']['UF_COMPANY_TITLE'] = isset($entityInfo['TITLE']) ? $entityInfo['TITLE'] : '';
        $arResult['ELEMENT']['UF_COMPANY_LOGO'] = isset($entityInfo['LOGO']) ? $entityInfo['LOGO'] : 0;
    }
}
$contactID = isset($arResult['ELEMENT']['UF_CONTACT_ID']) ? $arResult['ELEMENT']['UF_CONTACT_ID'] : 0;
$arResult['PATH_TO_CONTACT_SHOW'] = $arResult['ELEMENT']['UF_CONTACT_SHOW_URL'] = $contactID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CONTACT_SHOW'], array('contact_id' => $contactID)) : '';
if ($contactID > 0) {
    $dbResult = CCrmContact::GetListEx(array(), array('=ID' => $contactID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'POST', 'PHOTO'));
Пример #8
0
 public static function Notify(&$arFields, $schemeTypeID, $tag = '')
 {
     if (!is_array($arFields)) {
         return false;
     }
     $responsibleID = $arFields['RESPONSIBLE_ID'] ? intval($arFields['RESPONSIBLE_ID']) : 0;
     if ($responsibleID <= 0) {
         return false;
     }
     if ($schemeTypeID === CCrmNotifierSchemeType::IncomingEmail) {
         $showUrl = CCrmOwnerType::GetShowUrl($arFields['OWNER_TYPE_ID'] ? intval($arFields['OWNER_TYPE_ID']) : 0, $arFields['OWNER_ID'] ? intval($arFields['OWNER_ID']) : 0);
         if ($showUrl === '') {
             return false;
         }
         $subject = isset($arFields['SUBJECT']) ? $arFields['SUBJECT'] : '';
         $addresserHtml = '';
         $communications = isset($arFields['COMMUNICATIONS']) ? $arFields['COMMUNICATIONS'] : array();
         if (!empty($communications)) {
             $comm = $communications[0];
             $caption = '';
             if (isset($comm['ENTITY_TYPE_ID']) && isset($comm['ENTITY_ID'])) {
                 $caption = CCrmOwnerType::GetCaption($comm['ENTITY_TYPE_ID'], $comm['ENTITY_ID']);
             }
             if ($caption === '') {
                 $caption = $comm['VALUE'];
             }
             $addresserShowUrl = CCrmOwnerType::GetShowUrl($comm['ENTITY_TYPE_ID'], $comm['ENTITY_ID']);
             $addresserHtml = $addresserShowUrl !== '' ? '<a target="_blank" href="' . htmlspecialcharsbx($addresserShowUrl) . '">' . htmlspecialcharsbx($caption) . '</a>' : htmlspecialcharsbx($caption);
         }
         if ($addresserHtml === '') {
             $messageTemplate = GetMessage('CRM_ACTIVITY_NOTIFY_MESSAGE_INCOMING_EMAIL');
             return CCrmNotifier::Notify($responsibleID, str_replace('#VIEW_URL#', htmlspecialcharsbx($showUrl), $messageTemplate), str_replace('#VIEW_URL#', htmlspecialcharsbx(CCrmUrlUtil::ToAbsoluteUrl($showUrl)), $messageTemplate), $schemeTypeID, $tag);
         }
         $messageTemplate = GetMessage('CRM_ACTIVITY_NOTIFY_MESSAGE_INCOMING_EMAIL_EXT');
         return CCrmNotifier::Notify($responsibleID, str_replace(array('#VIEW_URL#', '#SUBJECT#', '#ADDRESSER#'), array(htmlspecialcharsbx($showUrl), htmlspecialcharsbx($subject), $addresserHtml), $messageTemplate), str_replace(array('#VIEW_URL#', '#SUBJECT#', '#ADDRESSER#'), array(htmlspecialcharsbx(CCrmUrlUtil::ToAbsoluteUrl($showUrl)), htmlspecialcharsbx($subject), $addresserHtml), $messageTemplate), $schemeTypeID, $tag);
     }
     return false;
 }
Пример #9
0
 public function createInvoices(array $params)
 {
     $count = isset($params['COUNT']) ? (int) $params['COUNT'] : 0;
     if ($count <= 0) {
         return;
     }
     $sum = isset($params['SUM']) ? (int) $params['SUM'] : 0;
     if ($sum <= 0) {
         return;
     }
     $dealID = isset($params['DEAL_ID']) ? (int) $params['DEAL_ID'] : 0;
     $companyID = isset($params['COMPANY_ID']) ? (int) $params['COMPANY_ID'] : 0;
     $contactID = isset($params['CONTACT_ID']) ? (int) $params['CONTACT_ID'] : 0;
     $userIDs = isset($params['USER_IDS']) && is_array($params['USER_IDS']) ? $params['USER_IDS'] : array();
     if (empty($userIDs)) {
         $userIDs[] = \CCrmSecurityHelper::GetCurrentUserID();
     }
     $prefix = isset($params['PREFIX']) ? $params['PREFIX'] : '';
     if ($prefix === '') {
         $prefix = $this->id;
     }
     $date = isset($params['DATE']) ? $params['DATE'] : null;
     if (!$date) {
         $date = $date = new Date();
     }
     $maxDateOffset = isset($params['MAX_DATE_OFFSET']) ? (int) $params['MAX_DATE_OFFSET'] : 0;
     $dateFormat = Date::convertFormatToPhp(FORMAT_DATE);
     $dateTimeFormat = Date::convertFormatToPhp(FORMAT_DATETIME);
     $isWon = isset($params['IS_WON']) ? $params['IS_WON'] : false;
     if ($isWon) {
         $totalSum = $sum;
     } else {
         $totalSum = $sum - mt_rand((int) ($sum / 3), $sum);
     }
     $entity = new \CCrmInvoice(false);
     $invoiceSum = (int) $totalSum / $count;
     $totalInvoiceSum = 0;
     for ($i = 1; $i <= $count; $i++) {
         if ($i == $count) {
             $invoiceSum = $totalSum - $totalInvoiceSum;
         }
         $totalInvoiceSum += $invoiceSum;
         $time = DateTime::createFromTimestamp($date->getTimestamp());
         if ($maxDateOffset > 0) {
             $time->add(mt_rand(0, $maxDateOffset) . ' days');
         }
         $time->setTime(mt_rand(8, 20), mt_rand(0, 59), 0);
         $siteTime = $time->format($dateTimeFormat);
         $siteDate = $time->format($dateFormat);
         \CCrmOwnerType::GetCaption(\CCrmOwnerType::Company, $companyID, false);
         $companyInfo = self::getCompanyInfo($companyID);
         $contactInfo = self::getContactInfo($contactID);
         $fields = array('ORDER_TOPIC' => "{$prefix} invoice # {$i}", 'STATUS_ID' => $isWon ? 'P' : 'N', 'DATE_INSERT' => $siteTime, 'DATE_BILL' => $siteDate, 'RESPONSIBLE_ID' => self::getRandomItem($userIDs), 'UF_DEAL_ID' => $dealID, 'UF_COMPANY_ID' => $companyID, 'UF_CONTACT_ID' => $contactID, 'PERSON_TYPE_ID' => 1, 'PAY_SYSTEM_ID' => 1, 'INVOICE_PROPERTIES' => array(10 => $companyInfo['TITLE'], 11 => $companyInfo['FULL_ADDRESS'], 12 => $contactInfo['FULL_NAME'], 13 => $contactInfo['EMAIL'], 14 => $contactInfo['PHONE']), 'PRODUCT_ROWS' => array(array('ID' => 0, 'PRODUCT_NAME' => "{$prefix} product", 'QUANTITY' => 1, 'PRICE' => $invoiceSum, 'PRODUCT_ID' => 0, 'CUSTOMIZED' => 'Y')));
         $ID = $entity->Add($fields);
     }
 }
Пример #10
0
    $responsibleID = isset($item['~RESPONSIBLE_ID']) ? intval($item['~RESPONSIBLE_ID']) : 0;
    $responsibleUrl = isset($item['PATH_TO_RESPONSIBLE']) ? $item['PATH_TO_RESPONSIBLE'] : '';
    if ($responsibleUrl === '') {
        $responsibleUrl = CComponentEngine::MakePathFromTemplate($arResult['PATH_TO_USER_PROFILE'], array('user_id' => $responsibleID));
    }
    $editorItem = array('ID' => $item['~ID'], 'typeID' => $item['~TYPE_ID'], 'subject' => $item['~SUBJECT'], 'description' => isset($item['DESCRIPTION_RAW']) ? $item['DESCRIPTION_RAW'] : '', 'descriptionHtml' => isset($item['DESCRIPTION_HTML']) ? $item['DESCRIPTION_HTML'] : '', 'direction' => intval($item['~DIRECTION']), 'location' => $item['~LOCATION'], 'start' => isset($item['~START_TIME']) ? ConvertTimeStamp(MakeTimeStamp($item['~START_TIME']), 'FULL', SITE_ID) : '', 'end' => isset($item['~END_TIME']) ? ConvertTimeStamp(MakeTimeStamp($item['~END_TIME']), 'FULL', SITE_ID) : '', 'deadline' => isset($item['~DEADLINE']) ? ConvertTimeStamp(MakeTimeStamp($item['~DEADLINE']), 'FULL', SITE_ID) : '', 'completed' => $item['~COMPLETED'] == 'Y', 'notifyType' => intval($item['~NOTIFY_TYPE']), 'notifyValue' => intval($item['~NOTIFY_VALUE']), 'priority' => intval($item['~PRIORITY']), 'responsibleID' => $responsibleID, 'responsibleName' => isset($item['~RESPONSIBLE_FULL_NAME'][0]) ? $item['~RESPONSIBLE_FULL_NAME'] : GetMessage('CRM_UNDEFINED_VALUE'), 'responsibleUrl' => $responsibleUrl, 'storageTypeID' => intval($item['STORAGE_TYPE_ID']), 'files' => $item['FILES'], 'webdavelements' => $item['WEBDAV_ELEMENTS'], 'diskfiles' => $item['DISK_FILES'], 'associatedEntityID' => isset($item['~ASSOCIATED_ENTITY_ID']) ? intval($item['~ASSOCIATED_ENTITY_ID']) : 0);
    if (!$commLoaded) {
        $editorItem['communicationsLoaded'] = false;
    } else {
        $editorItem['communicationsLoaded'] = true;
        $editorItem['communications'] = $commData;
    }
    if (isset($item['OWNER_TYPE_ID']) && isset($item['OWNER_ID'])) {
        $editorItem['ownerType'] = CCrmOwnerType::ResolveName($item['OWNER_TYPE_ID']);
        $editorItem['ownerID'] = $item['OWNER_ID'];
        $editorItem['ownerTitle'] = CCrmOwnerType::GetCaption($item['OWNER_TYPE_ID'], $item['OWNER_ID']);
        $editorItem['ownerUrl'] = CCrmOwnerType::GetShowUrl($item['OWNER_TYPE_ID'], $item['OWNER_ID']);
    }
    $editorItems[] = $editorItem;
    // <-- Preparing activity editor item
}
unset($item);
if ($arResult['NEED_FOR_CONVERTING_OF_CALENDAR_EVENTS']) {
    ?>
<div class="crm-view-message"><?php 
    echo GetMessage('CRM_ACTION_CONVERTING_OF_CALENDAR_EVENTS', array('#URL_EXECUTE_CONVERTING#' => htmlspecialcharsbx($arResult['CAL_EVENT_CONV_EXEC_URL']), '#URL_SKIP_CONVERTING#' => htmlspecialcharsbx($arResult['CAL_EVENT_CONV_SKIP_URL'])));
    ?>
</div><?php 
}
if ($arResult['NEED_FOR_CONVERTING_OF_TASKS']) {
    ?>
Пример #11
0
    return;
}
if ($ownerID > 0 && $ownerTypeID !== CCrmOwnerType::Undefined) {
    if (!CCrmActivity::CheckUpdatePermission($ownerTypeID, $ownerID, $userPerms)) {
        ShowError(GetMessage('CRM_PERMISSION_DENIED'));
        return;
    }
} elseif (!CCrmPerms::IsAccessEnabled()) {
    ShowError(GetMessage('CRM_PERMISSION_DENIED'));
    return;
}
$arResult['TYPE_ID'] = $typeID;
$arResult['OWNER_ID'] = $ownerID;
$arResult['OWNER_TYPE_ID'] = $ownerTypeID;
$arResult['OWNER_TYPE_NAME'] = $ownerTypeName = $ownerTypeID !== CCrmOwnerType::Undefined ? CCrmOwnerType::ResolveName($ownerTypeID) : '';
$arResult['OWNER_TITLE'] = $ownerTypeID !== CCrmOwnerType::Undefined && $ownerID > 0 ? CCrmOwnerType::GetCaption($ownerTypeID, $ownerID) : '';
$arResult['CAN_CHANGE_OWNER'] = $ownerTypeID !== CCrmOwnerType::Deal;
if ($entityID > 0) {
    $storageTypeID = isset($arFields['STORAGE_TYPE_ID']) ? intval($arFields['STORAGE_TYPE_ID']) : \Bitrix\Crm\Integration\StorageType::Undefined;
    CCrmActivity::PrepareStorageElementIDs($arFields);
    CCrmActivity::PrepareStorageElementInfo($arFields);
    $arFields['START_TIME_STAMP'] = isset($arFields['START_TIME']) ? MakeTimeStamp($arFields['START_TIME']) : 0;
    $arFields['END_TIME_STAMP'] = isset($arFields['END_TIME']) ? MakeTimeStamp($arFields['END_TIME']) : 0;
    $arFields['NOTIFY_TYPE'] = isset($arFields['NOTIFY_TYPE']) ? intval($arFields['NOTIFY_TYPE']) : CCrmActivityNotifyType::None;
    $arFields['NOTIFY_VALUE'] = isset($arFields['NOTIFY_VALUE']) ? intval($arFields['NOTIFY_VALUE']) : 0;
} else {
    $arFields['ID'] = 0;
    $arFields['START_TIME_STAMP'] = $arFields['END_TIME_STAMP'] = time() + CTimeZone::GetOffset();
    $arFields['START_TIME'] = $arFields['END_TIME'] = ConvertTimeStamp($arFields['START_TIME_STAMP'], 'FULL', SITE_ID);
    $arFields['NOTIFY_TYPE'] = CCrmActivityNotifyType::None;
    $arFields['NOTIFY_VALUE'] = 0;
Пример #12
0
 public static function PrepareActivityItem(&$item, &$params, $options = null)
 {
     if (!is_array($options)) {
         $options = array();
     }
     $itemID = intval($item['ID']);
     if (!isset($item['SUBJECT'])) {
         $item['SUBJECT'] = '';
     }
     if (!isset($item['DESCRIPTION'])) {
         $item['DESCRIPTION'] = '';
     }
     if (!isset($item['LOCATION'])) {
         $item['LOCATION'] = '';
     }
     $typeID = isset($item['TYPE_ID']) ? intval($item['TYPE_ID']) : CCrmActivityType::Undefined;
     $item['TYPE_ID'] = $typeID;
     $direction = isset($item['DIRECTION']) ? intval($item['DIRECTION']) : CCrmActivityDirection::Undefined;
     $item['DIRECTION'] = $direction;
     $priority = isset($item['PRIORITY']) ? intval($item['PRIORITY']) : CCrmActivityPriority::None;
     $item['PRIORITY'] = $priority;
     $item['IS_IMPORTANT'] = $priority === CCrmActivityPriority::High;
     $completed = isset($item['COMPLETED']) ? $item['COMPLETED'] === 'Y' : false;
     $item['COMPLETED'] = $completed ? 'Y' : 'N';
     if ($typeID === CCrmActivityType::Task) {
         $taskID = isset($item['ASSOCIATED_ENTITY_ID']) ? intval($item['ASSOCIATED_ENTITY_ID']) : 0;
         $item['SHOW_URL'] = $taskID > 0 && isset($params['TASK_SHOW_URL_TEMPLATE']) ? CComponentEngine::MakePathFromTemplate($params['TASK_SHOW_URL_TEMPLATE'], array('user_id' => isset($params['USER_ID']) ? $params['USER_ID'] : CCrmSecurityHelper::GetCurrentUserID(), 'task_id' => $taskID)) : '';
         $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['END_TIME']) ? $item['END_TIME'] : '');
     } else {
         if (isset($params['ACTIVITY_SHOW_URL_TEMPLATE'])) {
             $item['SHOW_URL'] = CComponentEngine::makePathFromTemplate($params['ACTIVITY_SHOW_URL_TEMPLATE'], array('activity_id' => $itemID));
         }
         $item['DEAD_LINE'] = isset($item['DEADLINE']) ? $item['DEADLINE'] : (isset($item['START_TIME']) ? $item['START_TIME'] : '');
     }
     //OWNER_TITLE
     $ownerTitle = '';
     $ownerID = isset($item['OWNER_ID']) ? intval($item['OWNER_ID']) : 0;
     $item['OWNER_ID'] = $ownerID;
     $ownerTypeID = isset($item['OWNER_TYPE_ID']) ? intval($item['OWNER_TYPE_ID']) : 0;
     $item['OWNER_TYPE_ID'] = $ownerTypeID;
     if ($ownerID > 0 && $ownerTypeID > 0) {
         $ownerTitle = CCrmOwnerType::GetCaption($ownerTypeID, $ownerID);
     }
     $item['OWNER_TITLE'] = $ownerTitle;
     //OWNER_SHOW_URL
     $ownerShowUrl = '';
     if ($ownerID > 0) {
         if ($ownerTypeID === CCrmOwnerType::Lead) {
             $ownerShowUrl = isset($params['LEAD_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['LEAD_SHOW_URL_TEMPLATE'], array('lead_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Contact) {
             $ownerShowUrl = isset($params['CONTACT_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['CONTACT_SHOW_URL_TEMPLATE'], array('contact_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Company) {
             $ownerShowUrl = isset($params['COMPANY_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['COMPANY_SHOW_URL_TEMPLATE'], array('company_id' => $ownerID)) : '';
         } elseif ($ownerTypeID === CCrmOwnerType::Deal) {
             $ownerShowUrl = isset($params['DEAL_SHOW_URL_TEMPLATE']) ? CComponentEngine::makePathFromTemplate($params['DEAL_SHOW_URL_TEMPLATE'], array('deal_id' => $ownerID)) : '';
         }
     }
     $item['OWNER_SHOW_URL'] = $ownerShowUrl;
     //IS_EXPIRED
     if ($item['COMPLETED'] === 'Y') {
         $item['IS_EXPIRED'] = false;
     } else {
         $time = isset($item['DEAD_LINE']) ? MakeTimeStamp($item['DEAD_LINE']) : 0;
         $item['IS_EXPIRED'] = $time !== 0 && $time <= time() + CTimeZone::GetOffset();
     }
     $responsibleID = isset($item['RESPONSIBLE_ID']) ? intval($item['RESPONSIBLE_ID']) : 0;
     $item['RESPONSIBLE_ID'] = $responsibleID;
     $item['RESPONSIBLE_SHOW_URL'] = $responsibleID > 0 ? CComponentEngine::MakePathFromTemplate($params['USER_PROFILE_URL_TEMPLATE'], array('user_id' => $responsibleID)) : '';
     $item['RESPONSIBLE_FORMATTED_NAME'] = $responsibleID > 0 && isset($params['NAME_TEMPLATE']) ? CUser::FormatName($params['NAME_TEMPLATE'], array('LOGIN' => isset($item['RESPONSIBLE_LOGIN']) ? $item['RESPONSIBLE_LOGIN'] : '', 'NAME' => isset($item['RESPONSIBLE_NAME']) ? $item['RESPONSIBLE_NAME'] : '', 'LAST_NAME' => isset($item['RESPONSIBLE_LAST_NAME']) ? $item['RESPONSIBLE_LAST_NAME'] : '', 'SECOND_NAME' => isset($item['RESPONSIBLE_SECOND_NAME']) ? $item['RESPONSIBLE_SECOND_NAME'] : ''), true, false) : '';
     //COMMUNICATIONS
     if ($itemID > 0 && isset($options['ENABLE_COMMUNICATIONS']) && $options['ENABLE_COMMUNICATIONS'] && !isset($item['COMMUNICATIONS'])) {
         $item['COMMUNICATIONS'] = CCrmActivity::GetCommunications($itemID);
     }
     $storageTypeID = isset($item['STORAGE_TYPE_ID']) ? intval($item['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined;
     if ($storageTypeID === CCrmActivityStorageType::Undefined || !CCrmActivityStorageType::IsDefined($storageTypeID)) {
         $storageTypeID = CCrmActivity::GetDefaultStorageTypeID();
     }
     $item['STORAGE_TYPE_ID'] = $storageTypeID;
     $item['FILES'] = array();
     $item['DISK_FILES'] = array();
     $item['WEBDAV_ELEMENTS'] = array();
     if (isset($options['ENABLE_FILES']) && $options['ENABLE_FILES']) {
         CCrmActivity::PrepareStorageElementIDs($item);
         CCrmActivity::PrepareStorageElementInfo($item);
     }
 }
Пример #13
0
     echo GetMessage('TASKS_LIST_ITEMS_STATUS_' . $task['REAL_STATUS']);
     break;
 case CTaskColumnList::COLUMN_PRIORITY:
     echo GetMessage('TASKS_LIST_ITEMS_PRIORITY_' . $task['PRIORITY']);
     break;
 case CTaskColumnList::COLUMN_UF_CRM:
     if (empty($task['UF_CRM_TASK'])) {
         break;
     }
     $collection = array();
     sort($task['UF_CRM_TASK']);
     foreach ($task['UF_CRM_TASK'] as $value) {
         $crmElement = explode('_', $value);
         $type = $crmElement[0];
         $typeId = CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($type));
         $title = CCrmOwnerType::GetCaption($typeId, $crmElement[1]);
         $url = CCrmOwnerType::GetShowUrl($typeId, $crmElement[1]);
         if (!isset($collection[$type])) {
             $collection[$type] = array();
         }
         $collection[$type][] = '<a href="' . $url . '">' . $title . '</a>';
     }
     if ($collection) {
         echo '<div class="tasks-list-crm-div">';
         $prevType = null;
         foreach ($collection as $type => $items) {
             if ($type !== $prevType) {
                 if ($prevType !== null) {
                     echo ' &nbsp;&nbsp; ';
                 }
                 echo '<span class="tasks-list-crm-div-type">' . GetMessage('TASKS_LIST_CRM_TYPE_' . $type) . ':</span>';
Пример #14
0
    }
}
$arResult['FORM_ID'] = 'CRM_QUOTE_SHOW_V12';
$arResult['GRID_ID'] = 'CRM_QUOTE_LIST_V12';
$arResult['PRODUCT_ROW_TAB_ID'] = 'tab_product_rows';
$arResult['BACK_URL'] = $arParams['PATH_TO_QUOTE_LIST'];
$leadID = isset($arResult['ELEMENT']['LEAD_ID']) ? intval($arResult['ELEMENT']['LEAD_ID']) : 0;
$arResult['PATH_TO_LEAD_SHOW'] = $leadID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_LEAD_SHOW'], array('lead_id' => $leadID)) : '';
if ($leadID) {
    $arResult['ELEMENT']['~LEAD_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Lead, $leadID, false);
    $arResult['ELEMENT']['LEAD_TITLE'] = htmlspecialcharsbx($arResult['ELEMENT']['~LEAD_TITLE']);
}
$dealID = isset($arResult['ELEMENT']['DEAL_ID']) ? intval($arResult['ELEMENT']['DEAL_ID']) : 0;
$arResult['PATH_TO_DEAL_SHOW'] = $dealID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_SHOW'], array('deal_id' => $dealID)) : '';
if ($dealID) {
    $arResult['ELEMENT']['~DEAL_TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Deal, $dealID, false);
    $arResult['ELEMENT']['DEAL_TITLE'] = htmlspecialcharsbx($arResult['ELEMENT']['~DEAL_TITLE']);
}
$companyID = isset($arResult['ELEMENT']['COMPANY_ID']) ? intval($arResult['ELEMENT']['COMPANY_ID']) : 0;
$arResult['PATH_TO_COMPANY_SHOW'] = $companyID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_COMPANY_SHOW'], array('company_id' => $companyID)) : '';
$contactID = isset($arResult['ELEMENT']['CONTACT_ID']) ? intval($arResult['ELEMENT']['CONTACT_ID']) : 0;
$arResult['PATH_TO_CONTACT_SHOW'] = $contactID > 0 ? CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CONTACT_SHOW'], array('contact_id' => $contactID)) : '';
$clientEmail = isset($arResult['ELEMENT']['CLIENT_EMAIL']) ? $arResult['ELEMENT']['CLIENT_EMAIL'] : '';
if ($clientEmail !== '' && ($companyID > 0 || $contactID > 0)) {
    $clientCaption = isset($arResult['ELEMENT']['CLIENT_CONTACT']) ? $arResult['ELEMENT']['CLIENT_CONTACT'] : '';
    if ($clientCaption === '') {
        $clientCaption = isset($arResult['ELEMENT']['CLIENT_TITLE']) ? $arResult['ELEMENT']['CLIENT_TITLE'] : '';
    }
    $comm = array('TITLE' => $clientCaption, 'TYPE' => 'EMAIL', 'VALUE' => $clientEmail);
    if ($contactID > 0) {
        $comm['ENTITY_ID'] = $contactID;
Пример #15
0
 public static function PrepareEntityBaloonHtml($arParams)
 {
     if (!is_array($arParams)) {
         return '';
     }
     $entityTypeID = isset($arParams['ENTITY_TYPE_ID']) ? intval($arParams['ENTITY_TYPE_ID']) : 0;
     $entityID = isset($arParams['ENTITY_ID']) ? intval($arParams['ENTITY_ID']) : 0;
     $prefix = isset($arParams['PREFIX']) ? $arParams['PREFIX'] : '';
     $className = isset($arParams['CLASS_NAME']) ? $arParams['CLASS_NAME'] : '';
     if ($entityTypeID <= 0 || $entityID <= 0) {
         return '';
     }
     $showPath = isset($arParams['SHOW_URL']) ? $arParams['SHOW_URL'] : '';
     if ($entityTypeID === CCrmOwnerType::Company) {
         if ($showPath === '') {
             $showPath = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_company_show'), array('company_id' => $entityID));
         }
         $title = isset($arParams['TITLE']) ? $arParams['TITLE'] : '';
         if ($title === '') {
             $title = CCrmOwnerType::GetCaption(CCrmOwnerType::Company, $entityID, isset($arParams['CHECK_PERMISSIONS']) && $arParams['CHECK_PERMISSIONS'] == 'N' ? false : true);
         }
         $baloonID = $prefix !== '' ? "BALLOON_{$prefix}_CO_{$entityID}" : "BALLOON_CO_{$entityID}";
         return '<a href="' . htmlspecialcharsbx($showPath) . '" id="' . $baloonID . '"' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . '>' . htmlspecialcharsbx($title) . '</a>' . '<script type="text/javascript">BX.tooltip("COMPANY_' . $entityID . '", "' . $baloonID . '", "/bitrix/components/bitrix/crm.company.show/card.ajax.php", "crm_balloon_company", true);</script>';
     } elseif ($entityTypeID === CCrmOwnerType::Contact) {
         if ($showPath === '') {
             $showPath = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_contact_show'), array('contact_id' => $entityID));
         }
         $title = isset($arParams['TITLE']) ? $arParams['TITLE'] : '';
         if ($title === '') {
             $title = CCrmOwnerType::GetCaption(CCrmOwnerType::Contact, $entityID, isset($arParams['CHECK_PERMISSIONS']) && $arParams['CHECK_PERMISSIONS'] == 'N' ? false : true);
         }
         $baloonID = $prefix !== '' ? "BALLOON_{$prefix}_C_{$entityID}" : "BALLOON_C_{$entityID}";
         return '<a href="' . htmlspecialcharsbx($showPath) . '" id="' . $baloonID . '"' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . '>' . htmlspecialcharsbx($title) . '</a>' . '<script type="text/javascript">BX.tooltip("CONTACT_' . $entityID . '", "' . $baloonID . '", "/bitrix/components/bitrix/crm.contact.show/card.ajax.php", "crm_balloon_contact", true);</script>';
     } elseif ($entityTypeID === CCrmOwnerType::Lead) {
         if ($showPath === '') {
             $showPath = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_lead_show'), array('lead_id' => $entityID));
         }
         $title = isset($arParams['TITLE']) ? $arParams['TITLE'] : '';
         if ($title === '') {
             $title = CCrmOwnerType::GetCaption(CCrmOwnerType::Lead, $entityID, isset($arParams['CHECK_PERMISSIONS']) && $arParams['CHECK_PERMISSIONS'] == 'N' ? false : true);
         }
         $baloonID = $prefix !== '' ? "BALLOON_{$prefix}_L_{$entityID}" : "BALLOON_L_{$entityID}";
         return '<a href="' . htmlspecialcharsbx($showPath) . '" id="' . $baloonID . '"' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . '>' . htmlspecialcharsbx($title) . '</a>' . '<script type="text/javascript">BX.tooltip("LEAD_' . $entityID . '", "' . $baloonID . '", "/bitrix/components/bitrix/crm.lead.show/card.ajax.php", "crm_balloon_no_photo", true);</script>';
     } elseif ($entityTypeID === CCrmOwnerType::Deal) {
         if ($showPath === '') {
             $showPath = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_deal_show'), array('deal_id' => $entityID));
         }
         $title = isset($arParams['TITLE']) ? $arParams['TITLE'] : '';
         if ($title === '') {
             $title = CCrmOwnerType::GetCaption(CCrmOwnerType::Deal, $entityID, isset($arParams['CHECK_PERMISSIONS']) && $arParams['CHECK_PERMISSIONS'] == 'N' ? false : true);
         }
         $baloonID = $prefix !== '' ? "BALLOON_{$prefix}_D_{$entityID}" : "BALLOON_D_{$entityID}";
         return '<a href="' . htmlspecialcharsbx($showPath) . '" id="' . $baloonID . '"' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . '>' . htmlspecialcharsbx($title) . '</a>' . '<script type="text/javascript">BX.tooltip("DEAL_' . $entityID . '", "' . $baloonID . '", "/bitrix/components/bitrix/crm.deal.show/card.ajax.php", "crm_balloon_no_photo", true);</script>';
     } elseif ($entityTypeID === CCrmOwnerType::Quote) {
         if ($showPath === '') {
             $showPath = CComponentEngine::MakePathFromTemplate(COption::GetOptionString('crm', 'path_to_quote_show'), array('quote_id' => $entityID));
         }
         $title = isset($arParams['TITLE']) ? $arParams['TITLE'] : '';
         if ($title === '') {
             $title = CCrmOwnerType::GetCaption(CCrmOwnerType::Quote, $entityID, isset($arParams['CHECK_PERMISSIONS']) && $arParams['CHECK_PERMISSIONS'] == 'N' ? false : true);
         }
         $baloonID = $prefix !== '' ? "BALLOON_{$prefix}_" . CCrmQuote::OWNER_TYPE . "_{$entityID}" : "BALLOON_" . CCrmQuote::OWNER_TYPE . "_{$entityID}";
         return '<a href="' . htmlspecialcharsbx($showPath) . '" id="' . $baloonID . '"' . ($className !== '' ? ' class="' . htmlspecialcharsbx($className) . '"' : '') . '>' . htmlspecialcharsbx($title) . '</a>' . '<script type="text/javascript">BX.tooltip("QUOTE_' . $entityID . '", "' . $baloonID . '", "/bitrix/components/bitrix/crm.quote.show/card.ajax.php", "crm_balloon_no_photo", true);</script>';
     }
     return '';
 }
Пример #16
0
    $filterID = $arResult['GRID_FILTER_ID'] = isset($filter['GRID_FILTER_ID']) ? $filter['GRID_FILTER_ID'] : '';
    $arResult['GRID_FILTER_NAME'] = isset($arResult['FILTER_PRESETS'][$filterID]) ? $arResult['FILTER_PRESETS'][$filterID]['name'] : '';
} else {
    $arResult['GRID_FILTER_ID'] = '';
    $arResult['GRID_FILTER_NAME'] = '';
}
if (isset($filter['SUBJECT'])) {
    if ($filter['SUBJECT'] !== '') {
        $filter['%SUBJECT'] = $arResult['SEARCH_VALUE'] = $filter['SUBJECT'];
    }
    unset($filter['SUBJECT']);
}
if ($entityTypeID > 0 && $entityID > 0) {
    $arResult['RUBRIC']['ENABLED'] = true;
    $filter['BINDINGS'] = array(array('OWNER_TYPE_ID' => $entityTypeID, 'OWNER_ID' => $entityID));
    $arResult['RUBRIC']['TITLE'] = CCrmOwnerType::GetCaption($entityTypeID, $entityID);
    $arResult['RUBRIC']['FILTER_PRESETS'] = array('clear_filter', 'filter_not_completed', 'filter_completed');
}
$arResult['ITEMS'] = array();
$dbRes = CCrmActivity::GetList($sort, $filter, false, $navParams, $select);
$dbRes->NavStart($navParams['nPageSize'], false);
$arResult['PAGE_NAVNUM'] = intval($dbRes->NavNum);
// pager index
$arResult['PAGE_NUMBER'] = intval($dbRes->NavPageNomer);
// current page index
$arResult['PAGE_NAVCOUNT'] = intval($dbRes->NavPageCount);
// page count
$arResult['PAGER_PARAM'] = "PAGEN_{$arResult['PAGE_NAVNUM']}";
$arResult['PAGE_NEXT_NUMBER'] = $arResult['PAGE_NUMBER'] + 1;
while ($item = $dbRes->Fetch()) {
    $itemID = intval($item['ID']);
Пример #17
0
 public static function ProcessLogEventEditPOST($arPOST, $entityTypeID, $entityID, &$arResult)
 {
     $arEntityData = array();
     $errors = array();
     $enableTitle = isset($arPOST['ENABLE_POST_TITLE']) && strtoupper($arPOST['ENABLE_POST_TITLE']) === 'Y';
     $title = $enableTitle && isset($arPOST['POST_TITLE']) ? $arPOST['POST_TITLE'] : '';
     $message = isset($arPOST['MESSAGE']) ? htmlspecialcharsback($arPOST['MESSAGE']) : '';
     $arResult['EVENT']['MESSAGE'] = $message;
     $arResult['EVENT']['TITLE'] = $title;
     $arResult['ENABLE_TITLE'] = $enableTitle;
     $attachedFiles = array();
     $webDavFileFieldName = $arResult['WEB_DAV_FILE_FIELD_NAME'];
     if ($webDavFileFieldName !== '' && isset($GLOBALS[$webDavFileFieldName]) && is_array($GLOBALS[$webDavFileFieldName])) {
         foreach ($GLOBALS[$webDavFileFieldName] as $fileID) {
             if ($fileID === '') {
                 continue;
             }
             //fileID:  "888|165|16"
             $attachedFiles[] = $fileID;
         }
         if (!empty($attachedFiles) && is_array($arResult['WEB_DAV_FILE_FIELD'])) {
             $arResult['WEB_DAV_FILE_FIELD']['VALUE'] = $attachedFiles;
         }
     }
     $allowToAll = COption::GetOptionString('socialnetwork', 'allow_livefeed_toall', 'Y') === 'Y';
     if ($allowToAll) {
         $arToAllRights = unserialize(COption::GetOptionString("socialnetwork", "livefeed_toall_rights", 'a:1:{i:0;s:2:"AU";}'));
         if (!$arToAllRights) {
             $arToAllRights = array('AU');
         }
         $arUserGroupCode = array_merge(array('AU'), CAccess::GetUserCodesArray($arResult['USER_ID']));
         if (count(array_intersect($arToAllRights, $arUserGroupCode)) <= 0) {
             $allowToAll = false;
         }
     }
     $arSocnetRights = array();
     if (!empty($arPOST['SPERM'])) {
         foreach ($arPOST['SPERM'] as $v => $k) {
             if (strlen($v) > 0 && is_array($k) && !empty($k)) {
                 foreach ($k as $vv) {
                     if (strlen($vv) > 0) {
                         $arSocnetRights[] = $vv;
                     }
                 }
             }
         }
     }
     if (in_array('UA', $arSocnetRights) && !$allowToAll) {
         foreach ($arSocnetRights as $key => $value) {
             if ($value == 'UA') {
                 unset($arSocnetRights[$key]);
                 break;
             }
         }
     }
     foreach ($arSocnetRights as $key => $value) {
         if ($value == 'UA') {
             $arSocnetRights[] = 'AU';
             unset($arSocnetRights[$key]);
             break;
         }
     }
     $arSocnetRights = array_unique($arSocnetRights);
     $allFeedEtityTypes = CCrmLiveFeedEntity::GetAll();
     $userPerms = CCrmPerms::GetCurrentUserPermissions();
     foreach ($arSocnetRights as $key => $value) {
         $groupCodeData = array();
         if (CCrmLiveFeed::TryParseGroupCode($value, $groupCodeData) && in_array($groupCodeData['ENTITY_TYPE'], $allFeedEtityTypes, true)) {
             $groupCodeEntityType = $groupCodeData['ENTITY_TYPE'];
             $groupCodeEntityID = $groupCodeData['ENTITY_ID'];
             if (!CCrmLiveFeed::CheckCreatePermission($groupCodeEntityType, $groupCodeEntityID, $userPerms)) {
                 $canonicalEntityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($groupCodeEntityType);
                 $errors[] = GetMessage('CRM_SL_EVENT_EDIT_PERMISSION_DENIED', array('#TITLE#' => CCrmOwnerType::GetCaption($canonicalEntityTypeID, $groupCodeEntityID, false)));
             } else {
                 $arEntityData[] = array('ENTITY_TYPE' => $groupCodeEntityType, 'ENTITY_ID' => $groupCodeEntityID);
             }
         }
     }
     if (!(CCrmOwnerType::IsDefined($entityTypeID) && $entityID > 0) && !empty($arEntityData)) {
         $entityData = $arEntityData[0];
         $entityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($entityData['ENTITY_TYPE']);
         $entityID = $entityData['ENTITY_ID'];
     }
     if (!empty($arEntityData)) {
         $arResult['ENTITY_DATA'] = $arEntityData;
     }
     if (!(CCrmOwnerType::IsDefined($entityTypeID) && $entityID > 0)) {
         $errors[] = GetMessage('CRM_SL_EVENT_EDIT_ENTITY_NOT_DEFINED');
     }
     if ($message === '') {
         $errors[] = GetMessage('CRM_SL_EVENT_EDIT_EMPTY_MESSAGE');
     }
     if (empty($errors)) {
         $fields = array('ENTITY_TYPE_ID' => $entityTypeID, 'ENTITY_ID' => $entityID, 'USER_ID' => $arResult['USER_ID'], 'TITLE' => $title, 'MESSAGE' => $message, 'RIGHTS' => $arSocnetRights);
         $parents = array();
         CCrmOwnerType::TryGetOwnerInfos($entityTypeID, $entityID, $parents, array('ENABLE_MAPPING' => true));
         foreach ($arEntityData as $entityData) {
             $curEntityTypeID = CCrmLiveFeedEntity::ResolveEntityTypeID($entityData['ENTITY_TYPE']);
             $curEntityID = $entityData['ENTITY_ID'];
             $entityKey = "{$curEntityTypeID}_{$curEntityID}";
             if (!isset($parents[$entityKey]) && !($curEntityTypeID === $entityTypeID && $curEntityID === $entityID)) {
                 $parents[$entityKey] = array('ENTITY_TYPE_ID' => $curEntityTypeID, 'ENTITY_ID' => $curEntityID);
             }
         }
         if (!empty($parents)) {
             $fields['PARENTS'] = array_values($parents);
         }
         if (!empty($attachedFiles)) {
             $fields['WEB_DAV_FILES'] = array($webDavFileFieldName => $attachedFiles);
         }
         $messageID = CCrmLiveFeed::CreateLogMessage($fields);
         if (!(is_int($messageID) && $messageID > 0)) {
             $errors[] = isset($fields['ERROR']) ? $fields['ERROR'] : 'UNKNOWN ERROR';
         } else {
             preg_match_all("/\\[user\\s*=\\s*([^\\]]*)\\](.+?)\\[\\/user\\]/is" . BX_UTF_PCRE_MODIFIER, $message, $arMention);
             if (!empty($arMention) && !empty($arMention[1]) && CModule::IncludeModule("im")) {
                 $arMention = $arMention[1];
                 $arMention = array_unique($arMention);
                 $arMessageFields = array("MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "TO_USER_ID" => "", "FROM_USER_ID" => $arResult['USER_ID'], "NOTIFY_TYPE" => IM_NOTIFY_FROM, "NOTIFY_MODULE" => "crm", "NOTIFY_EVENT" => "mention");
                 $genderSuffix = "";
                 $dbUser = CUser::GetByID($arResult['USER_ID']);
                 if ($arUser = $dbUser->Fetch()) {
                     switch ($arUser["PERSONAL_GENDER"]) {
                         case "M":
                             $genderSuffix = "_M";
                             break;
                         case "F":
                             $genderSuffix = "_F";
                             break;
                         default:
                             $genderSuffix = "";
                     }
                 }
                 $strIMMessageTitle = str_replace(array("\r\n", "\n"), " ", strlen($title) > 0 ? $title : $message);
                 if (CModule::IncludeModule("blog")) {
                     $strIMMessageTitle = trim(blogTextParser::killAllTags($strIMMessageTitle));
                 }
                 $strIMMessageTitle = TruncateText($strIMMessageTitle, 100);
                 $strIMMessageTitleOut = TruncateText($strIMMessageTitle, 255);
                 $strLogEntryURL = COption::GetOptionString("socialnetwork", "log_entry_page", SITE_DIR . "company/personal/log/#log_id#/", SITE_ID);
                 $strLogEntryURL = CComponentEngine::MakePathFromTemplate($strLogEntryURL, array("log_id" => $messageID));
                 $strLogEntryCrmURL = CComponentEngine::MakePathFromTemplate(SITE_DIR . "crm/stream/?log_id=#log_id#", array("log_id" => $messageID));
                 $serverName = (CMain::IsHTTPS() ? "https" : "http") . "://" . (defined("SITE_SERVER_NAME") && strlen(SITE_SERVER_NAME) > 0 ? SITE_SERVER_NAME : COption::GetOptionString("main", "server_name", ""));
                 foreach ($arMention as $val) {
                     $val = IntVal($val);
                     if ($val > 0 && $val != $arResult['USER_ID']) {
                         $bHasAccess = false;
                         if (in_array('U' . $val, $arSocnetRights)) {
                             $url = $strLogEntryURL;
                             $bHasAccess = true;
                         }
                         if (!$bHasAccess) {
                             $arAccessCodes = array();
                             $dbAccess = CAccess::GetUserCodes($val);
                             while ($arAccess = $dbAccess->Fetch()) {
                                 $arAccessCodes[] = $arAccess["ACCESS_CODE"];
                             }
                             $arTmp = array_intersect($arAccess, $arSocnetRights);
                             if (!empty($arTmp)) {
                                 $url = $strLogEntryURL;
                                 $bHasAccess = true;
                             }
                         }
                         if (!$bHasAccess) {
                             $userPermissions = CCrmPerms::GetUserPermissions($val);
                             foreach ($arEntityData as $arEntity) {
                                 if (CCrmAuthorizationHelper::CheckReadPermission(CCrmOwnerType::ResolveName(CCrmLiveFeedEntity::ResolveEntityTypeID($arEntity['ENTITY_TYPE'])), $arEntity['ENTITY_ID'], $userPermissions)) {
                                     $url = $strLogEntryCrmURL;
                                     $bHasAccess = true;
                                     break;
                                 }
                             }
                         }
                         if ($bHasAccess) {
                             $arMessageFields["TO_USER_ID"] = $val;
                             $arMessageFields["NOTIFY_TAG"] = "CRM|MESSAGE_MENTION|" . $messageID;
                             $arMessageFields["NOTIFY_MESSAGE"] = GetMessage("CRM_SL_EVENT_IM_MENTION_POST" . $genderSuffix, array("#title#" => "<a href=\"" . $url . "\" class=\"bx-notifier-item-action\">" . htmlspecialcharsbx($strIMMessageTitle) . "</a>"));
                             $arMessageFields["NOTIFY_MESSAGE_OUT"] = GetMessage("CRM_SL_EVENT_IM_MENTION_POST" . $genderSuffix, array("#title#" => htmlspecialcharsbx($strIMMessageTitleOut))) . " (" . $serverName . $url . ")";
                             CIMNotify::Add($arMessageFields);
                         }
                     }
                 }
             }
             return $messageID;
         }
     }
     return $errors;
 }
Пример #18
0
    $arFields = CCrmActivity::GetByID($ID);
    if (!is_array($arFields)) {
        echo CUtil::PhpToJsObject(array('ERROR' => 'NOT FOUND'));
        die;
    }
    $commData = array();
    $communications = CCrmActivity::GetCommunications($ID);
    foreach ($communications as &$arComm) {
        CCrmActivity::PrepareCommunicationInfo($arComm);
        $commData[] = array('type' => $arComm['TYPE'], 'value' => $arComm['VALUE'], 'entityId' => $arComm['ENTITY_ID'], 'entityType' => CCrmOwnerType::ResolveName($arComm['ENTITY_TYPE_ID']), 'entityTitle' => $arComm['TITLE']);
    }
    unset($arComm);
    $storageTypeID = isset($arFields['STORAGE_TYPE_ID']) ? intval($arFields['STORAGE_TYPE_ID']) : CCrmActivityStorageType::Undefined;
    CCrmActivity::PrepareStorageElementIDs($arFields);
    CCrmActivity::PrepareStorageElementInfo($arFields);
    echo CUtil::PhpToJSObject(array('ACTIVITY' => array('ID' => $ID, 'typeID' => $arFields['TYPE_ID'], 'associatedEntityID' => isset($arFields['ASSOCIATED_ENTITY_ID']) ? $arFields['ASSOCIATED_ENTITY_ID'] : '0', 'ownerID' => $arFields['OWNER_ID'], 'ownerType' => CCrmOwnerType::ResolveName($arFields['OWNER_TYPE_ID']), 'ownerTitle' => CCrmOwnerType::GetCaption($arFields['OWNER_TYPE_ID'], $arFields['OWNER_ID']), 'ownerUrl' => CCrmOwnerType::GetShowUrl($arFields['OWNER_TYPE_ID'], $arFields['OWNER_ID']), 'subject' => $arFields['SUBJECT'], 'description' => $arFields['DESCRIPTION'], 'location' => $arFields['LOCATION'], 'direction' => intval($arFields['DIRECTION']), 'start' => $arFields['START_TIME'], 'end' => $arFields['END_TIME'], 'completed' => isset($arFields['COMPLETED']) && $arFields['COMPLETED'] === 'Y', 'notifyType' => intval($arFields['NOTIFY_TYPE']), 'notifyValue' => intval($arFields['NOTIFY_VALUE']), 'priority' => intval($arFields['PRIORITY']), 'responsibleName' => CCrmViewHelper::GetFormattedUserName(isset($arFields['RESPONSIBLE_ID']) ? intval($arFields['RESPONSIBLE_ID']) : 0), 'storageTypeID' => $storageTypeID, 'files' => isset($arFields['FILES']) ? $arFields['FILES'] : array(), 'webdavelements' => isset($arFields['WEBDAV_ELEMENTS']) ? $arFields['WEBDAV_ELEMENTS'] : array(), 'diskfiles' => isset($arFields['DISK_FILES']) ? $arFields['DISK_FILES'] : array(), 'communications' => $commData)));
} elseif ($action == 'GET_ENTITY_COMMUNICATIONS') {
    $entityType = isset($_POST['ENTITY_TYPE']) ? strtoupper(strval($_POST['ENTITY_TYPE'])) : '';
    $entityID = isset($_POST['ENTITY_ID']) ? intval($_POST['ENTITY_ID']) : 0;
    $communicationType = isset($_POST['COMMUNICATION_TYPE']) ? strval($_POST['COMMUNICATION_TYPE']) : '';
    if ($entityType === '' || $entityID <= 0) {
        echo CUtil::PhpToJSObject(array('ERROR' => 'Invalid data'));
        die;
    }
    $result = GetCrmEntityCommunications($entityType, $entityID, $communicationType);
    echo CUtil::PhpToJSObject($result);
} elseif ($action == 'SEARCH_COMMUNICATIONS') {
    $entityType = isset($_POST['ENTITY_TYPE']) ? strtoupper(strval($_POST['ENTITY_TYPE'])) : '';
    $entityID = isset($_POST['ENTITY_ID']) ? intval($_POST['ENTITY_ID']) : 0;
    $communicationType = isset($_POST['COMMUNICATION_TYPE']) ? strval($_POST['COMMUNICATION_TYPE']) : '';
    $needle = isset($_POST['NEEDLE']) ? strval($_POST['NEEDLE']) : '';
Пример #19
0
        if (isset($filter['GRID_FILTER_APPLIED']) && $filter['GRID_FILTER_APPLIED'] && isset($filter['GRID_FILTER_ID'])) {
            $filterID = $filter['GRID_FILTER_ID'];
            $arResult['GRID_FILTER_ID'] = $filterID;
            $arResult['GRID_FILTER_NAME'] = isset($arResult['FILTER_PRESETS'][$filterID]) ? $arResult['FILTER_PRESETS'][$filterID]['name'] : GetMessage('M_CRM_CONTACT_LIST_FILTER_CUSTOM');
        } else {
            $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_CONTACT_LIST_FILTER_CUSTOM');
        }
        if (isset($filter['FULL_NAME'])) {
            $filter['%FULL_NAME'] = $filter['FULL_NAME'];
            unset($filter['FULL_NAME']);
        }
    }
}
if ($companyID > 0) {
    $arResult['RUBRIC']['ENABLED'] = true;
    $arResult['RUBRIC']['TITLE'] = CCrmOwnerType::GetCaption(CCrmOwnerType::Company, $companyID);
    $filter['=COMPANY_ID'] = $companyID;
}
//Setup default filter name ('NONE') if it is not assigned
if (!isset($arResult['GRID_FILTER_NAME']) || $arResult['GRID_FILTER_NAME'] === '') {
    $arResult['GRID_FILTER_NAME'] = GetMessage('M_CRM_CONTACT_LIST_FILTER_NONE');
}
$arResult['ITEMS'] = array();
$dbRes = CCrmContact::GetListEx($sort, $filter, false, $navParams, $select);
$dbRes->NavStart($navParams['nPageSize'], false);
$arResult['PAGE_NAVNUM'] = intval($dbRes->NavNum);
// pager index
$arResult['PAGE_NUMBER'] = intval($dbRes->NavPageNomer);
// current page index
$arResult['PAGE_NAVCOUNT'] = intval($dbRes->NavPageCount);
// page count
Пример #20
0
         $responsibleIDs[] = $responsibleID;
     }
     $activityFields['REFERENCE_TITLE'] = $ownerTypeID > 0 && $ownerID > 0 && ($ownerTypeID === CCrmOwnerType::Lead || $ownerTypeID === CCrmOwnerType::Deal) ? CCrmOwnerType::GetCaption($ownerTypeID, $ownerID, false) : '';
     $activityFields['CLIENT_TITLE'] = '';
     if (isset($activityFields['~DEADLINE']) && CCrmDateTimeHelper::IsMaxDatabaseDate($activityFields['~DEADLINE'])) {
         $activityFields['~DEADLINE'] = $activityFields['DEADLINE'] = '';
     }
     $activities[$itemID] =& $activityFields;
     unset($activityFields);
 }
 if (!empty($activities)) {
     $clientInfos = CCrmActivity::PrepareClientInfos(array_keys($activities));
     foreach ($clientInfos as $itemID => &$clientInfo) {
         $ttl = isset($clientInfo['TITLE']) ? $clientInfo['TITLE'] : '';
         if ($ttl === '') {
             $ttl = CCrmOwnerType::GetCaption($clientInfo['ENTITY_TYPE_ID'], $clientInfo['ENTITY_ID']);
         }
         $activities[$itemID]['CLIENT_TITLE'] = $ttl;
     }
     unset($clientInfo);
 }
 $arResult['ACTIVITIES'] = array_values($activities);
 $responsibleInfos = array();
 if (!empty($responsibleIDs)) {
     $dbUsers = CUser::GetList($by = 'ID', $order = 'ASC', array('ID' => implode('||', $responsibleIDs)), array('FIELDS' => array('ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN')));
     while ($arUser = $dbUsers->Fetch()) {
         $userID = intval($arUser['ID']);
         $responsibleInfo = array('USER' => $arUser);
         $responsibleInfo['FULL_NAME'] = CUser::FormatName($arResult['NAME_TEMPLATE'], $arUser, true, false);
         $responsibleInfo['HTML_FULL_NAME'] = htmlspecialcharsbx($responsibleInfo['FULL_NAME']);
         $responsibleInfo['PATH'] = CComponentEngine::MakePathFromTemplate($arResult['PATH_TO_USER_PROFILE'], array('user_id' => $userID));