示例#1
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'));
    }
示例#2
0
function GetCrmEntityCommunications($entityType, $entityID, $communicationType)
{
    $fullNameFormat = \Bitrix\Crm\Format\PersonNameFormatter::getFormat();
    if ($entityType === 'LEAD') {
        $data = array('ownerEntityType' => 'LEAD', 'ownerEntityId' => $entityID, 'entityType' => 'LEAD', 'entityId' => $entityID, 'entityTitle' => "{$entityType}_{$entityID}", 'entityDescription' => '', 'tabId' => 'main', 'communications' => array());
        $entity = CCrmLead::GetByID($entityID);
        if (!$entity) {
            return array('ERROR' => 'Invalid data');
        }
        // Prepare title
        $name = isset($entity['NAME']) ? $entity['NAME'] : '';
        $secondName = isset($entity['SECOND_NAME']) ? $entity['SECOND_NAME'] : '';
        $lastName = isset($entity['LAST_NAME']) ? $entity['LAST_NAME'] : '';
        if ($name !== '' || $secondName !== '' || $lastName !== '') {
            $data['entityTitle'] = CUser::FormatName($fullNameFormat, array('LOGIN' => '', 'NAME' => $name, 'SECOND_NAME' => $secondName, 'LAST_NAME' => $lastName), false, false);
            $data['entityDescription'] = isset($entity['TITLE']) ? $entity['TITLE'] : '';
        } else {
            $data['entityTitle'] = isset($entity['TITLE']) ? $entity['TITLE'] : '';
            $data['entityDescription'] = '';
        }
        // Try to load entity communications
        if (!CCrmActivity::CheckReadPermission(CCrmOwnerType::ResolveID($entityType), $entityID)) {
            return array('ERROR' => GetMessage('CRM_PERMISSION_DENIED'));
        }
        if ($communicationType !== '') {
            $dbResFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => $entityType, 'ELEMENT_ID' => $entityID, 'TYPE_ID' => $communicationType));
            while ($arField = $dbResFields->Fetch()) {
                if (empty($arField['VALUE'])) {
                    continue;
                }
                $comm = array('type' => $communicationType, 'value' => $arField['VALUE']);
                $data['communications'][] = $comm;
            }
        }
        return array('DATA' => array('TABS' => array(array('id' => 'lead', 'title' => GetMessage('CRM_COMMUNICATION_TAB_LEAD'), 'active' => true, 'items' => array($data)))));
    } elseif ($entityType === 'DEAL') {
        $entity = CCrmDeal::GetByID($entityID);
        if (!$entity) {
            return array('ERROR' => 'Invalid data');
        }
        $dealData = array();
        // Prepare company data
        $entityCompanyData = null;
        $entityCompanyID = isset($entity['COMPANY_ID']) ? intval($entity['COMPANY_ID']) : 0;
        $entityCompany = $entityCompanyID > 0 ? CCrmCompany::GetByID($entityCompanyID) : null;
        if (is_array($entityCompany)) {
            $entityCompanyData = array('ownerEntityType' => 'DEAL', 'ownerEntityId' => $entityID, 'entityType' => 'COMPANY', 'entityId' => $entityCompanyID, 'entityTitle' => isset($entityCompany['TITLE']) ? $entityCompany['TITLE'] : '', 'entityDescription' => '', 'communications' => array());
            if ($communicationType !== '') {
                $entityCompanyComms = CCrmActivity::PrepareCommunications('COMPANY', $entityCompanyID, $communicationType);
                foreach ($entityCompanyComms as &$entityCompanyComm) {
                    $comm = array('type' => $entityCompanyComm['TYPE'], 'value' => $entityCompanyComm['VALUE']);
                    $entityCompanyData['communications'][] = $comm;
                }
                unset($entityCompanyComm);
            }
        }
        // Try to get contact of deal
        $entityContactID = isset($entity['CONTACT_ID']) ? intval($entity['CONTACT_ID']) : 0;
        if ($entityContactID > 0) {
            $entityContact = CCrmContact::GetByID($entityContactID);
            if (is_array($entityContact)) {
                $item = array('ownerEntityType' => 'DEAL', 'ownerEntityId' => $entityID, 'entityType' => 'CONTACT', 'entityId' => $entityContactID, 'entityTitle' => CUser::FormatName($fullNameFormat, array('LOGIN' => '', 'NAME' => $entityContact['NAME'], 'LAST_NAME' => $entityContact['LAST_NAME'], 'SECOND_NAME' => $entityContact['SECOND_NAME']), false, false), 'tabId' => 'deal', 'communications' => array());
                $entityCompany = isset($entityContact['COMPANY_ID']) ? CCrmCompany::GetByID($entityContact['COMPANY_ID']) : null;
                if ($entityCompany && isset($entityCompany['TITLE'])) {
                    $item['entityDescription'] = $entityCompany['TITLE'];
                }
                if ($communicationType !== '') {
                    $entityContactComms = CCrmActivity::PrepareCommunications('CONTACT', $entityContactID, $communicationType);
                    foreach ($entityContactComms as &$entityContactComm) {
                        $comm = array('type' => $entityContactComm['TYPE'], 'value' => $entityContactComm['VALUE']);
                        $item['communications'][] = $comm;
                    }
                    unset($entityContactComm);
                }
                if ($communicationType === '' || !empty($item['communications'])) {
                    $dealData["CONTACT_{$entityContactID}"] = $item;
                }
            }
        }
        if ($entityCompanyData && !empty($entityCompanyData['communications'])) {
            $dealData['COMPANY_' . $entityCompanyID] = $entityCompanyData;
            $dealData['COMPANY_' . $entityCompanyID]['tabId'] = 'deal';
        }
        // Try to get previous communications
        $entityComms = CCrmActivity::GetCommunicationsByOwner('DEAL', $entityID, $communicationType);
        foreach ($entityComms as &$entityComm) {
            CCrmActivity::PrepareCommunicationInfo($entityComm);
            $key = "{$entityComm['ENTITY_TYPE']}_{$entityComm['ENTITY_ID']}";
            if (!isset($dealData[$key])) {
                $dealData[$key] = array('ownerEntityType' => 'DEAL', 'ownerEntityId' => $entityID, 'entityType' => CCrmOwnerType::ResolveName($entityComm['ENTITY_TYPE_ID']), 'entityId' => $entityComm['ENTITY_ID'], 'entityTitle' => isset($entityComm['TITLE']) ? $entityComm['TITLE'] : '', 'entityDescription' => isset($entityComm['DESCRIPTION']) ? $entityComm['DESCRIPTION'] : '', 'tabId' => 'deal', 'communications' => array());
            }
            if ($communicationType !== '') {
                $commFound = false;
                foreach ($dealData[$key]['communications'] as &$comm) {
                    if ($comm['value'] === $entityComm['VALUE']) {
                        $commFound = true;
                        break;
                    }
                }
                unset($comm);
                if ($commFound) {
                    continue;
                }
                $comm = array('type' => $entityComm['TYPE'], 'value' => $entityComm['VALUE']);
                $dealData[$key]['communications'][] = $comm;
            }
        }
        unset($entityComm);
        $companyData = array();
        // Try to get contacts of company
        if ($entityCompany > 0) {
            $entityComms = CCrmActivity::GetCompanyCommunications($entityCompanyID, $communicationType);
            foreach ($entityComms as &$entityComm) {
                CCrmActivity::PrepareCommunicationInfo($entityComm);
                $key = "{$entityComm['ENTITY_TYPE']}_{$entityComm['ENTITY_ID']}";
                if (!isset($companyData[$key])) {
                    $companyData[$key] = array('ownerEntityType' => 'DEAL', 'ownerEntityId' => $entityID, 'entityType' => CCrmOwnerType::ResolveName($entityComm['ENTITY_TYPE_ID']), 'entityId' => $entityComm['ENTITY_ID'], 'entityTitle' => isset($entityComm['TITLE']) ? $entityComm['TITLE'] : '', 'entityDescription' => isset($entityComm['DESCRIPTION']) ? $entityComm['DESCRIPTION'] : '', 'tabId' => 'company', 'communications' => array());
                }
                if ($communicationType !== '') {
                    $comm = array('type' => $entityComm['TYPE'], 'value' => $entityComm['VALUE']);
                    $companyData[$key]['communications'][] = $comm;
                }
            }
            unset($entityComm);
        }
        if ($entityCompanyData && !empty($entityCompanyData['communications'])) {
            $companyData['COMPANY_' . $entityCompanyID] = $entityCompanyData;
            $companyData['COMPANY_' . $entityCompanyID]['tabId'] = 'company';
        }
        return array('DATA' => array('TABS' => array(array('id' => 'deal', 'title' => GetMessage('CRM_COMMUNICATION_TAB_DEAL'), 'active' => true, 'items' => array_values($dealData)), array('id' => 'company', 'title' => GetMessage('CRM_COMMUNICATION_TAB_COMPANY'), 'items' => array_values($companyData)))));
    } elseif ($entityType === 'COMPANY') {
        $companyData = array();
        $entity = CCrmCompany::GetByID($entityID);
        if (!$entity) {
            return array('ERROR' => 'Invalid data');
        }
        $companyItem = array('ownerEntityType' => 'COMPANY', 'ownerEntityId' => $entityID, 'entityType' => 'COMPANY', 'entityId' => $entityID, 'entityTitle' => isset($entity['TITLE']) ? $entity['TITLE'] : "{$entityType}_{$entityID}", 'entityDescription' => '', 'tabId' => 'company', 'communications' => array());
        // Try to load entity communications
        if (!CCrmActivity::CheckReadPermission(CCrmOwnerType::ResolveID($entityType), $entityID)) {
            return array('ERROR' => GetMessage('CRM_PERMISSION_DENIED'));
        }
        if ($communicationType !== '') {
            $dbResFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => $entityType, 'ELEMENT_ID' => $entityID, 'TYPE_ID' => $communicationType));
            while ($arField = $dbResFields->Fetch()) {
                if (empty($arField['VALUE'])) {
                    continue;
                }
                $comm = array('type' => $communicationType, 'value' => $arField['VALUE']);
                $companyItem['communications'][] = $comm;
            }
        }
        $companyData["{$entityType}_{$entityID}"] = $companyItem;
        if ($communicationType !== '') {
            $entityComms = CCrmActivity::GetCompanyCommunications($entityID, $communicationType, 50);
            foreach ($entityComms as &$entityComm) {
                CCrmActivity::PrepareCommunicationInfo($entityComm);
                $key = "{$entityComm['ENTITY_TYPE']}_{$entityComm['ENTITY_ID']}";
                if (!isset($companyData[$key])) {
                    $companyData[$key] = array('ownerEntityType' => 'COMPANY', 'ownerEntityId' => $entityID, 'entityType' => $entityComm['ENTITY_TYPE'], 'entityId' => $entityComm['ENTITY_ID'], 'entityTitle' => isset($entityComm['TITLE']) ? $entityComm['TITLE'] : '', 'entityDescription' => isset($entityComm['DESCRIPTION']) ? $entityComm['DESCRIPTION'] : '', 'tabId' => 'company', 'communications' => array());
                }
                $comm = array('type' => $entityComm['TYPE'], 'value' => $entityComm['VALUE']);
                $companyData[$key]['communications'][] = $comm;
            }
            unset($entityComm);
        }
        return array('DATA' => array('TABS' => array(array('id' => 'company', 'title' => GetMessage('CRM_COMMUNICATION_TAB_COMPANY'), 'active' => true, 'items' => array_values($companyData)))));
    } elseif ($entityType === 'CONTACT') {
        $contactData = array();
        $entity = CCrmContact::GetByID($entityID);
        if (!$entity) {
            return array('ERROR' => 'Invalid data');
        }
        $entityCompany = isset($entity['COMPANY_ID']) ? CCrmCompany::GetByID($entity['COMPANY_ID']) : null;
        $contactItem = array('ownerEntityType' => 'CONTACT', 'ownerEntityId' => $entityID, 'entityType' => 'CONTACT', 'entityId' => $entityID, 'entityTitle' => CUser::FormatName($fullNameFormat, array('LOGIN' => '', 'NAME' => $entity['NAME'], 'LAST_NAME' => $entity['LAST_NAME'], 'SECOND_NAME' => $entity['SECOND_NAME']), false, false), 'entityDescription' => $entityCompany && isset($entityCompany['TITLE']) ? $entityCompany['TITLE'] : '', 'tabId' => 'contact', 'communications' => array());
        // Try to load entity communications
        if (!CCrmActivity::CheckReadPermission(CCrmOwnerType::ResolveID($entityType), $entityID)) {
            return array('ERROR' => GetMessage('CRM_PERMISSION_DENIED'));
        }
        if ($communicationType !== '') {
            $dbResFields = CCrmFieldMulti::GetList(array('ID' => 'asc'), array('ENTITY_ID' => $entityType, 'ELEMENT_ID' => $entityID, 'TYPE_ID' => $communicationType));
            while ($arField = $dbResFields->Fetch()) {
                if (empty($arField['VALUE'])) {
                    continue;
                }
                $comm = array('type' => $communicationType, 'value' => $arField['VALUE']);
                $contactItem['communications'][] = $comm;
            }
        }
        $contactData["{$entityType}_{$entityID}"] = $contactItem;
        return array('DATA' => array('TABS' => array(array('id' => 'contact', 'title' => GetMessage('CRM_COMMUNICATION_TAB_CONTACT'), 'active' => true, 'items' => array_values($contactData)))));
    }
    return array('ERROR' => 'Invalid data');
}
示例#3
0
 $arSelect = $arResult['SELECTED_FIELDS'];
 if ($arResult['DISPLAY_CLIENT'] && (empty($arSelect) || in_array('CLIENT', $arSelect, true))) {
     $columnHtml = '';
     $clientInfo = isset($item['CLIENT_INFO']) ? $item['CLIENT_INFO'] : null;
     if (is_array($clientInfo)) {
         $columnHtml = CCrmViewHelper::PrepareEntityBaloonHtml(array('ENTITY_TYPE_ID' => $clientInfo['ENTITY_TYPE_ID'], 'ENTITY_ID' => $clientInfo['ENTITY_ID'], 'PREFIX' => "{$arResult['UID']}_{$item['~ID']}_CLIENT", 'TITLE' => isset($clientInfo['TITLE']) ? $clientInfo['TITLE'] : '', 'SHOW_URL' => isset($clientInfo['SHOW_URL']) ? $clientInfo['SHOW_URL'] : ''));
     }
     $arRowData['columns']['CLIENT'] = $columnHtml;
 }
 $arResult['GRID_DATA'][] = $arRowData;
 // <-- Preparing grig row
 // Preparing activity editor item -->
 $commData = array();
 if (!empty($communications)) {
     foreach ($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'], 'entityUrl' => CCrmOwnerType::GetShowUrl($arComm['ENTITY_TYPE_ID'], $arComm['ENTITY_ID']));
     }
     unset($arComm);
 }
 $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;
示例#4
0
             $contactComms = CCrmActivity::PrepareCommunications('CONTACT', $contactID, $commType);
             foreach ($contactComms as &$comm) {
                 $item['COMMUNICATIONS'][] = array('TYPE' => $comm['TYPE'], 'VALUE' => $comm['VALUE']);
             }
             unset($comm);
             if (!empty($item['COMMUNICATIONS'])) {
                 $items[$contactKey] =& $item;
             }
             unset($item);
         }
     }
 }
 // Try to get previous communications
 $invoiceComms = CCrmActivity::GetCommunicationsByOwner('INVOICE', $ownerID, $commType);
 foreach ($invoiceComms as &$comm) {
     if (!CCrmActivity::PrepareCommunicationInfo($comm)) {
         continue;
     }
     $commKey = "{$comm['ENTITY_TYPE']}_{$comm['ENTITY_ID']}";
     if (!isset($items[$commKey])) {
         $items[$commKey] = array('OWNER_ID' => $ownerID, 'OWNER_TYPE_ID' => CCrmOwnerType::Invoice, 'TITLE' => $comm['TITLE'], 'DESCRIPTION' => $comm['DESCRIPTION'], 'IMAGE_URL' => '', 'COMMUNICATIONS' => array());
         $commEntityType = $comm['ENTITY_TYPE'];
         if (!isset($imageless[$commEntityType])) {
             $imageless[$commEntityType] = array();
         }
         $imageless[$commEntityType][] = $comm['ENTITY_ID'];
     }
     if ($commType !== 'PERSON') {
         $isFound = false;
         foreach ($items[$commKey]['COMMUNICATIONS'] as &$itemComm) {
             if ($comm['VALUE'] === $itemComm['VALUE']) {
示例#5
0
 $commType = isset($commData['TYPE']) ? strtoupper(strval($commData['TYPE'])) : '';
 $commValue = isset($commData['VALUE']) ? strval($commData['VALUE']) : '';
 $subject = isset($data['SUBJECT']) ? strval($data['SUBJECT']) : '';
 if ($subject === '') {
     $msgID = 'CRM_ACTIVITY_EDIT_ACTION_DEFAULT_SUBJECT';
     if ($typeID === CCrmActivityType::Call) {
         if ($direction === CCrmActivityDirection::Incoming) {
             $msgID = 'CRM_ACTIVITY_EDIT_INCOMING_CALL_ACTION_DEFAULT_SUBJECT_EXT';
         } elseif ($direction === CCrmActivityDirection::Outgoing) {
             $msgID = 'CRM_ACTIVITY_EDIT_OUTGOING_CALL_ACTION_DEFAULT_SUBJECT_EXT';
         }
     } elseif ($typeID === CCrmActivityType::Meeting) {
         $msgID = 'CRM_ACTIVITY_EDIT_MEETING_ACTION_DEFAULT_SUBJECT_EXT';
     }
     $commInfo = array('ENTITY_ID' => $commEntityID, 'ENTITY_TYPE_ID' => CCrmOwnerType::ResolveID($commEntityType));
     CCrmActivity::PrepareCommunicationInfo($commInfo);
     $subject = GetMessage($msgID, array('#DATE#' => ConvertTimeStamp($now, 'FULL', SITE_ID), '#TITLE#' => $commInfo['TITLE'], '#COMMUNICATION#' => $commValue));
 }
 $fields = array('OWNER_ID' => $ownerID, 'OWNER_TYPE_ID' => $ownerTypeID, 'TYPE_ID' => $typeID, 'SUBJECT' => $subject, 'START_TIME' => ConvertTimeStamp($start, 'FULL', SITE_ID), 'END_TIME' => ConvertTimeStamp($end, 'FULL', SITE_ID), 'COMPLETED' => $completed, 'PRIORITY' => $priority, 'DESCRIPTION' => $descr, 'DESCRIPTION_TYPE' => CCrmContentType::PlainText, 'LOCATION' => $location, 'DIRECTION' => $direction, 'NOTIFY_TYPE' => CCrmActivityNotifyType::None, 'SETTINGS' => array());
 $notify = isset($data['NOTIFY']) ? $data['NOTIFY'] : null;
 if (is_array($notify)) {
     $fields['NOTIFY_TYPE'] = isset($notify['TYPE']) ? intval($notify['TYPE']) : CCrmActivityNotifyType::Min;
     $fields['NOTIFY_VALUE'] = isset($notify['VALUE']) ? intval($notify['VALUE']) : 15;
 }
 $bindings = array();
 if ($ownerTypeID === CCrmOwnerType::Deal) {
     $bindings["{$ownerTypeName}_{$ownerID}"] = array('OWNER_TYPE_ID' => $ownerTypeID, 'OWNER_ID' => $ownerID);
 }
 $comms = array();
 if ($commEntityType !== '') {
     $comms[] = array('ID' => $commID, 'TYPE' => $commType, 'VALUE' => $commValue, 'ENTITY_ID' => $commEntityID, 'ENTITY_TYPE_ID' => CCrmOwnerType::ResolveID($commEntityType));
示例#6
0
 public static function PrepareActivityData(&$fields)
 {
     $typeID = isset($fields['TYPE_ID']) ? intval($fields['TYPE_ID']) : CCrmActivityType::Undefined;
     $direction = isset($fields['DIRECTION']) ? intval($fields['DIRECTION']) : CCrmActivityDirection::Undefined;
     $isCompleted = $fields['COMPLETED'] === 'Y';
     $imageFileName = '';
     if ($typeID === CCrmActivityType::Call) {
         $imageFileName = $direction === CCrmActivityDirection::Incoming ? 'call_in' : 'call_out';
     } elseif ($typeID === CCrmActivityType::Email) {
         $imageFileName = $direction === CCrmActivityDirection::Incoming ? 'email_in' : 'email_out';
     } elseif ($typeID === CCrmActivityType::Meeting) {
         $imageFileName = 'cont';
     } elseif ($typeID === CCrmActivityType::Task) {
         $imageFileName = 'check';
     }
     if ($imageFileName !== '' && $isCompleted) {
         $imageFileName .= '_disabled';
     }
     $imageUrl = $imageFileName !== '' ? SITE_DIR . 'bitrix/templates/mobile_app/images/crm/' . $imageFileName . '.png?ver=1' : '';
     $data = array('ID' => $fields['ID'], 'TYPE_ID' => $fields['TYPE_ID'], 'OWNER_ID' => $fields['OWNER_ID'], 'OWNER_TYPE' => CCrmOwnerType::ResolveName($fields['OWNER_TYPE_ID']), 'SUBJECT' => isset($fields['SUBJECT']) ? $fields['SUBJECT'] : '', 'DESCRIPTION' => isset($fields['DESCRIPTION']) ? $fields['DESCRIPTION'] : '', 'LOCATION' => isset($fields['LOCATION']) ? $fields['LOCATION'] : '', 'START_TIME' => isset($fields['START_TIME']) ? CCrmComponentHelper::RemoveSeconds(ConvertTimeStamp(MakeTimeStamp($fields['START_TIME']), 'FULL', SITE_ID)) : '', 'END_TIME' => isset($fields['END_TIME']) ? CCrmComponentHelper::RemoveSeconds(ConvertTimeStamp(MakeTimeStamp($fields['END_TIME']), 'FULL', SITE_ID)) : '', 'DEAD_LINE' => isset($fields['DEAD_LINE']) ? CCrmComponentHelper::RemoveSeconds(ConvertTimeStamp(MakeTimeStamp($fields['DEAD_LINE']), 'FULL', SITE_ID)) : '', 'COMPLETED' => isset($fields['COMPLETED']) ? $fields['COMPLETED'] === 'Y' : false, 'PRIORITY' => isset($fields['PRIORITY']) ? intval($fields['PRIORITY']) : CCrmActivityPriority::None, 'IS_IMPORTANT' => isset($fields['IS_IMPORTANT']) ? $fields['IS_IMPORTANT'] : false, 'IS_EXPIRED' => isset($fields['IS_EXPIRED']) ? $fields['IS_EXPIRED'] : false, 'OWNER_TITLE' => isset($fields['OWNER_TITLE']) ? $fields['OWNER_TITLE'] : '', 'SHOW_URL' => isset($fields['SHOW_URL']) ? $fields['SHOW_URL'] : '', 'LIST_IMAGE_URL' => $imageUrl, 'VIEW_IMAGE_URL' => $imageUrl, 'STORAGE_TYPE_ID' => $fields['STORAGE_TYPE_ID'], 'FILES' => isset($fields['FILES']) ? $fields['FILES'] : array(), 'WEBDAV_ELEMENTS' => isset($fields['WEBDAV_ELEMENTS']) ? $fields['WEBDAV_ELEMENTS'] : array());
     //COMMUNICATIONS
     if (isset($fields['COMMUNICATIONS'])) {
         $communications = $fields['COMMUNICATIONS'];
         foreach ($communications as &$comm) {
             CCrmActivity::PrepareCommunicationInfo($comm);
             $comm['ENTITY_TYPE'] = CCrmOwnerType::ResolveName($comm['ENTITY_TYPE_ID']);
             unset($comm['ENTITY_TYPE_ID']);
             if (isset($comm['ENTITY_SETTINGS'])) {
                 // entity settings is useless for client
                 unset($comm['ENTITY_SETTINGS']);
             }
         }
         unset($comm);
         $data['COMMUNICATIONS'] = $communications;
     }
     return $data;
 }