public static function IsReckoned($typeID, &$data) { $userID = isset($data['CURRENT_USER_ID']) ? intval($data['CURRENT_USER_ID']) : 0; $typeID = intval($typeID); if ($typeID === self::CurrentDealActivies) { $activity = isset($data['ACTIVITY']) ? $data['ACTIVITY'] : null; $entity = isset($data['ENTITY']) ? $data['ENTITY'] : null; if (!is_array($entity)) { return false; } $assignedByID = isset($entity['ASSIGNED_BY_ID']) ? $entity['ASSIGNED_BY_ID'] : 0; $stageID = isset($entity['STAGE_ID']) ? $entity['STAGE_ID'] : ''; $stages = self::GetStatusList('DEAL_STAGE'); $stageSort = 0; if ($stageID !== '' && isset($stages[$stageID])) { $stageSort = intval($stages[$stageID]['SORT']); } $finalSort = isset($stages['WON']) ? intval($stages['WON']['SORT']) : 0; $isCompleted = $stageSort > 0 && $finalSort > 0 && $stageSort >= $finalSort; if (!is_array($activity)) { return !$isCompleted && $userID === $assignedByID && CCrmUserCounterSettings::GetValue(CCrmUserCounterSettings::ReckonActivitylessItems, true); } $activityResponsibleID = isset($activity['RESPONSIBLE_ID']) ? intval($activity['RESPONSIBLE_ID']) : 0; if ($userID !== $activityResponsibleID) { return false; } $isActivityCompleted = isset($activity['IS_COMPLETED']) ? $activity['IS_COMPLETED'] : false; $isActivityForCurrentDay = isset($activity['IS_CURRENT_DAY']) ? $activity['IS_CURRENT_DAY'] : false; return !$isActivityCompleted && $isActivityForCurrentDay; } elseif ($typeID === self::CurrentQuoteActivies) { $entity = isset($data['ENTITY']) ? $data['ENTITY'] : null; if (!is_array($entity) || empty($entity['CLOSEDATE'])) { return false; } $assignedByID = isset($entity['ASSIGNED_BY_ID']) ? $entity['ASSIGNED_BY_ID'] : 0; $statusID = isset($entity['STATUS_ID']) ? $entity['STATUS_ID'] : ''; $statuses = self::GetStatusList('QUOTE_STATUS'); $statusSort = 0; if ($statusID !== '' && isset($statuses[$statusID])) { $statusSort = intval($statuses[$statusID]['SORT']); } $finalSort = isset($statuses['APPROVED']) ? intval($statuses['APPROVED']['SORT']) : 0; $isCompleted = $statusSort > 0 && $finalSort > 0 && $statusSort >= $finalSort; $tsCloseDate = MakeTimeStamp($entity['CLOSEDATE']); $tsNow = time() + CTimeZone::GetOffset(); $tsMax = mktime(23, 59, 59, date('m', $tsNow), date('d', $tsNow), date('Y', $tsNow)); return !$isCompleted && $userID === $assignedByID && $tsCloseDate <= $tsMax && CCrmUserCounterSettings::GetValue(CCrmUserCounterSettings::ReckonActivitylessItems, true); } elseif ($typeID === self::CurrentLeadActivies) { $activity = isset($data['ACTIVITY']) ? $data['ACTIVITY'] : null; $entity = isset($data['ENTITY']) ? $data['ENTITY'] : null; if (!is_array($entity)) { return false; } $assignedByID = isset($entity['ASSIGNED_BY_ID']) ? $entity['ASSIGNED_BY_ID'] : 0; $statusID = isset($entity['STATUS_ID']) ? $entity['STATUS_ID'] : ''; $statuses = self::GetStatusList('STATUS'); $statusSort = 0; if ($statusID !== '' && isset($statuses[$statusID])) { $statusSort = intval($statuses[$statusID]['SORT']); } $finalSort = isset($statuses['CONVERTED']) ? intval($statuses['CONVERTED']['SORT']) : 0; $isCompleted = $statusSort > 0 && $finalSort > 0 && $statusSort >= $finalSort; if (!is_array($activity)) { return !$isCompleted && $userID === $assignedByID && CCrmUserCounterSettings::GetValue(CCrmUserCounterSettings::ReckonActivitylessItems, true); } $activityResponsibleID = isset($activity['RESPONSIBLE_ID']) ? intval($activity['RESPONSIBLE_ID']) : 0; if ($userID !== $activityResponsibleID) { return false; } $isActivityCompleted = isset($activity['IS_COMPLETED']) ? $activity['IS_COMPLETED'] : false; $isActivityForCurrentDay = isset($activity['IS_CURRENT_DAY']) ? $activity['IS_CURRENT_DAY'] : false; return !$isActivityCompleted && $isActivityForCurrentDay; } elseif ($typeID === self::CurrentContactActivies || $typeID === self::CurrentCompanyActivies) { $activity = isset($data['ACTIVITY']) ? $data['ACTIVITY'] : null; $entity = isset($data['ENTITY']) ? $data['ENTITY'] : null; if (!is_array($entity) || !is_array($activity)) { return false; } $activityResponsibleID = isset($activity['RESPONSIBLE_ID']) ? intval($activity['RESPONSIBLE_ID']) : 0; if ($userID !== $activityResponsibleID) { return false; } $isActivityCompleted = isset($activity['IS_COMPLETED']) ? $activity['IS_COMPLETED'] : false; $isActivityForCurrentDay = isset($activity['IS_CURRENT_DAY']) ? $activity['IS_CURRENT_DAY'] : false; return !$isActivityCompleted && $isActivityForCurrentDay; } return false; }
\Bitrix\Crm\Settings\DealSettings::enableCloseDateSync(isset($_POST['REFRESH_DEAL_CLOSEDATE']) && strtoupper($_POST['REFRESH_DEAL_CLOSEDATE']) === 'Y'); if ($_POST['DEAL_DEFAULT_LIST_VIEW']) { \Bitrix\Crm\Settings\DealSettings::setDefaultListViewID($_POST['DEAL_DEFAULT_LIST_VIEW']); } LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_SM_CONFIG'], array())); } } } $arResult['FORM_ID'] = 'CRM_SM_CONFIG'; $arResult['BACK_URL'] = $arParams['PATH_TO_SM_CONFIG']; $arResult['FIELDS'] = array(); $arResult['FIELDS']['tab_deal_config'][] = array('id' => 'DEAL_DEFAULT_LIST_VIEW', 'name' => GetMessage('CRM_FIELD_DEAL_DEFAULT_LIST_VIEW'), 'items' => \Bitrix\Crm\Settings\DealSettings::getViewDescriptions(), 'type' => 'list', 'value' => \Bitrix\Crm\Settings\DealSettings::getDefaultListViewID(), 'required' => false); $arResult['FIELDS']['tab_deal_config'][] = array('id' => 'REFRESH_DEAL_CLOSEDATE', 'name' => GetMessage('CRM_FIELD_REFRESH_DEAL_CLOSEDATE'), 'type' => 'checkbox', 'value' => \Bitrix\Crm\Settings\DealSettings::isCloseDateSyncEnabled(), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'CALENDAR_DISPLAY_COMPLETED_CALLS', 'name' => GetMessage('CRM_FIELD_DISPLAY_COMPLETED_CALLS_IN_CALENDAR'), 'type' => 'checkbox', 'value' => CCrmActivityCalendarSettings::GetValue(CCrmActivityCalendarSettings::DisplayCompletedCalls, true), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'CALENDAR_DISPLAY_COMPLETED_MEETINGS', 'name' => GetMessage('CRM_FIELD_DISPLAY_COMPLETED_MEETINGS_IN_CALENDAR'), 'type' => 'checkbox', 'value' => CCrmActivityCalendarSettings::GetValue(CCrmActivityCalendarSettings::DisplayCompletedMeetings, true), 'required' => false); $arResult['FIELDS']['tab_activity_config'][] = array('id' => 'RECKON_ACTIVITYLESS_ITEMS_IN_COUNTERS', 'name' => GetMessage('CRM_FIELD_RECKON_ACTIVITYLESS_ITEMS_IN_COUNTERS'), 'type' => 'checkbox', 'value' => CCrmUserCounterSettings::GetValue(CCrmUserCounterSettings::ReckonActivitylessItems, true), 'required' => false); $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'SERVICE_CODE_ALLOCATION', 'name' => GetMessage('CRM_FIELD_SERVICE_CODE_ALLOCATION'), 'items' => CCrmEMailCodeAllocation::GetAllDescriptions(), 'type' => 'list', 'value' => CCrmEMailCodeAllocation::GetCurrent(), 'required' => false); if (Bitrix\Crm\Integration\Bitrix24Email::isEnabled()) { if (Bitrix\Crm\Integration\Bitrix24Email::allowDisableSignature()) { $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'ENABLE_B24_EMAIL_SIGNATURE', 'name' => GetMessage('CRM_FIELD_ENABLE_B24_EMAIL_SIGNATURE'), 'type' => 'checkbox', 'value' => Bitrix\Crm\Integration\Bitrix24Email::isSignatureEnabled(), 'required' => false); } else { $arResult['FIELDS']['tab_outgoing_email'][] = array('id' => 'ENABLE_B24_EMAIL_SIGNATURE', 'name' => GetMessage('CRM_FIELD_ENABLE_B24_EMAIL_SIGNATURE'), 'type' => 'label', 'value' => Bitrix\Crm\Integration\Bitrix24Email::getSignatureExplanation(), 'required' => false); } } $arResult['FIELDS']['tab_format'][] = array('id' => 'PERSON_NAME_FORMAT_ID', 'name' => GetMessage('CRM_FIELD_PERSON_NAME_FORMAT'), 'type' => 'list', 'items' => \Bitrix\Crm\Format\PersonNameFormatter::getAllDescriptions(), 'value' => \Bitrix\Crm\Format\PersonNameFormatter::getFormatID(), 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_FORMAT', 'name' => GetMessage('CRM_FIELD_CALLTO_FORMAT'), 'type' => 'list', 'items' => CCrmCallToUrl::GetAllDescriptions(), 'value' => CCrmCallToUrl::GetFormat(CCrmCallToUrl::Bitrix), 'required' => false); $calltoSettings = CCrmCallToUrl::GetCustomSettings(); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_URL_TEMPLATE', 'name' => GetMessage('CRM_FIELD_CALLTO_URL_TEMPLATE'), 'type' => 'text', 'value' => isset($calltoSettings['URL_TEMPLATE']) ? $calltoSettings['URL_TEMPLATE'] : 'callto:[phone]', 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_CLICK_HANDLER', 'name' => GetMessage('CRM_FIELD_CALLTO_CLICK_HANDLER'), 'type' => 'textarea', 'value' => isset($calltoSettings['CLICK_HANDLER']) ? $calltoSettings['CLICK_HANDLER'] : '', 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'CALLTO_NORMALIZE_NUMBER', 'name' => GetMessage('CRM_FIELD_CALLTO_NORMALIZE_NUMBER'), 'type' => 'checkbox', 'value' => isset($calltoSettings['NORMALIZE_NUMBER']) ? $calltoSettings['NORMALIZE_NUMBER'] === 'Y' : true, 'required' => false); $arResult['FIELDS']['tab_format'][] = array('id' => 'section_address_format', 'name' => GetMessage('CRM_SECTION_ADDRESS_FORMAT'), 'type' => 'section');