...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_activity.php
- Класс: \CAllCrmActivity
- Вызов: CAllCrmActivity::CreateFromDealEvent
static function CreateFromDealEvent(&$arDeal) { $dealID = intval($arDeal['ID']); $originID = "DEAL_EVENT_{$dealID}"; if(self::GetByOriginID($originID) !== false) { return false; //Already exists } $now = time() + CTimeZone::GetOffset(); $typeID = $arDeal['EVENT_ID'] === 'PHONE' ? CCrmActivityType::Call : CCrmActivityType::Activity; $subject = GetMessage($typeID === CCrmActivityType::Call ? 'CRM_ACTIVITY_FROM_DEAL_EVENT_CALL' : 'CRM_ACTIVITY_FROM_DEAL_EVENT_INFO'); $date = $now; if(isset($arDeal['EVENT_DATE'])) { $date = MakeTimeStamp($arDeal['EVENT_DATE']); } elseif(isset($arDeal['DATE_MODIFY'])) { $date = MakeTimeStamp($arDeal['DATE_MODIFY']); } elseif(isset($arDeal['DATE_CREATE'])) { $date = MakeTimeStamp($arDeal['DATE_CREATE']); } $dateFmt = ConvertTimeStamp($date, 'FULL', SITE_ID); $responsibleID = 0; if(isset($arDeal['ASSIGNED_BY_ID'])) { $responsibleID = intval($arDeal['ASSIGNED_BY_ID']); } elseif(isset($arDeal['MODIFY_BY_ID'])) { $responsibleID = intval($arDeal['MODIFY_BY_ID']); } elseif(isset($arDeal['CREATED_BY_ID'])) { $responsibleID = intval($arDeal['CREATED_BY_ID']); } $arFields = array( 'TYPE_ID' => $typeID, 'OWNER_TYPE_ID' => CCrmOwnerType::Deal, 'OWNER_ID' => $dealID, 'SUBJECT' => $subject, 'START_TIME' => $dateFmt, 'END_TIME' => $dateFmt, 'COMPLETED' => ($date <= $now) ? 'Y' : 'N', 'RESPONSIBLE_ID' => $responsibleID, 'PRIORITY' => CCrmActivityPriority::Medium, 'DESCRIPTION' => isset($arDeal['EVENT_DESCRIPTION']) ? $arDeal['EVENT_DESCRIPTION'] : '', 'LOCATION' => '', 'DIRECTION' => $typeID === CCrmActivityType::Call ? CCrmActivityDirection::Outgoing : CCrmActivityDirection::Undefined, 'NOTIFY_TYPE' => CCrmActivityNotifyType::None, 'BINDINGS' => array( array( 'OWNER_TYPE_ID' => CCrmOwnerType::Deal, 'OWNER_ID' => $arDeal['ID'] ) ), 'ORIGIN_ID' => $originID, 'SETTINGS' => array() ); return self::Add($arFields, false, false); }