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(); }
$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'
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; }
$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)) {
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}\" }"; }
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> </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')); }
$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'));
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; }
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); } }
$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']) { ?>
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;
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); } }
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 ' '; } echo '<span class="tasks-list-crm-div-type">' . GetMessage('TASKS_LIST_CRM_TYPE_' . $type) . ':</span>';
} } $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;
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 ''; }
$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']);
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; }
$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']) : '';
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
$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));