Esempio n. 1
0
 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;
 }
Esempio n. 2
0
            \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');