Ejemplo n.º 1
0
 public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false)
 {
     $ENTITY_ID = 'TASKS_TASK';
     $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID);
     if ($arElement == false || !isset($arElement['UF_CRM_TASK'])) {
         $arFields = array();
         $arFields['ENTITY_ID'] = $ENTITY_ID;
         $arFields['FIELD_NAME'] = 'UF_CRM_TASK';
         $arFields['USER_TYPE_ID'] = 'crm';
         $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['SETTINGS']['LEAD'] = 'Y';
         $arFields['SETTINGS']['CONTACT'] = 'Y';
         $arFields['SETTINGS']['COMPANY'] = 'Y';
         $arFields['SETTINGS']['DEAL'] = 'Y';
         $arFields['MULTIPLE'] = 'Y';
         $CAllUserTypeEntity = new CUserTypeEntity();
         $CAllUserTypeEntity->Add($arFields);
     }
     if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) {
         $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
         $arFilter['UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID'];
         unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']);
     } else {
         if (isset($arFilter['ENTITY_TYPE'])) {
             if (!empty($arFilter['ENTITY_TYPE'])) {
                 $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
                 $arFilter['%UF_CRM_TASK'] = $arFilter['ENTITY_TYPE'] . '_';
             } else {
                 $arFilter['!=UF_CRM_TASK'] = '';
             }
             unset($arFilter['ENTITY_TYPE']);
         } else {
             $arFilter['!=UF_CRM_TASK'] = '';
         }
     }
     if (isset($arFilter['TITLE'])) {
         $arFilter['%TITLE'] = $arFilter['TITLE'];
         unset($arFilter['TITLE']);
     }
     if (isset($arFilter['REAL_STATUS'])) {
         $arFilter['STATUS'] = $arFilter['REAL_STATUS'];
         unset($arFilter['REAL_STATUS']);
     }
     if (isset($arOrder['ID']) || isset($arOrder['id'])) {
         $arSelect[] = 'ID';
     }
     if (in_array('RESPONSIBLE_ID', $arSelect)) {
         $arSelect[] = 'RESPONSIBLE_NAME';
         $arSelect[] = 'RESPONSIBLE_LAST_NAME';
         $arSelect[] = 'RESPONSIBLE_SECOND_NAME';
         $arSelect[] = 'RESPONSIBLE_LOGIN';
     }
     $obRes = CTasks::GetList($arOrder, $arFilter, $arSelect, $nPageTop);
     return $obRes;
 }
Ejemplo n.º 2
0
 public static function GetList($arOrder = array('CREATED_DATE' => 'DESC'), $arFilter = array(), $arSelect = array(), $nPageTop = false)
 {
     // Fix for #27449
     if (!CModule::IncludeModule('calendar')) {
         $obRes = new CDBResult();
         $obRes->InitFromArray(array());
         return $obRes;
     }
     global $USER;
     $ENTITY_ID = 'CALENDAR_EVENT';
     $arElement = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields($ENTITY_ID, 0, LANGUAGE_ID);
     if ($arElement == false || !isset($arElement['UF_CRM_CAL_EVENT'])) {
         $arFields = array();
         $arFields['ENTITY_ID'] = $ENTITY_ID;
         $arFields['FIELD_NAME'] = 'UF_CRM_CAL_EVENT';
         $arFields['USER_TYPE_ID'] = 'crm';
         $arFields['EDIT_FORM_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_COLUMN_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['LIST_FILTER_LABEL'][LANGUAGE_ID] = GetMessage('CRM_UF_NAME');
         $arFields['SETTINGS']['LEAD'] = 'Y';
         $arFields['SETTINGS']['CONTACT'] = 'Y';
         $arFields['SETTINGS']['COMPANY'] = 'Y';
         $arFields['SETTINGS']['DEAL'] = 'Y';
         $arFields['MULTIPLE'] = 'Y';
         $CAllUserTypeEntity = new CUserTypeEntity();
         $CAllUserTypeEntity->Add($arFields);
     }
     if (isset($arFilter['ENTITY_TYPE']) && isset($arFilter['ENTITY_ID'])) {
         $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
         $arFilter['UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_' . $arFilter['ENTITY_ID'];
         unset($arFilter['ENTITY_TYPE'], $arFilter['ENTITY_ID']);
     } else {
         if (!empty($arFilter['ENTITY_TYPE'])) {
             $arFilter['ENTITY_TYPE'] = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
             $arFilter['%UF_CRM_CAL_EVENT'] = $arFilter['ENTITY_TYPE'] . '_';
             unset($arFilter['ENTITY_TYPE']);
         } else {
             $arFilter['!=UF_CRM_CAL_EVENT'] = '';
         }
     }
     $arFilter['CAL_TYPE'] = 'user';
     $arFilter['DELETED'] = 'N';
     if (isset($arFilter['OWNER_ID']) && is_array($arFilter['OWNER_ID'])) {
         $arFilter['OWNER_ID'] = current($arFilter['OWNER_ID']);
     }
     $arCal = CCalendarEvent::GetList(array('arFilter' => $arFilter, 'parseRecursion' => false, 'userId' => $USER->GetID(), 'fetchAttendees' => false, 'fetchMeetings' => true));
     $obRes = new CDBResult();
     $obRes->InitFromArray($arCal);
     return $obRes;
 }
Ejemplo n.º 3
0
 public static function RefreshCalendarBindings()
 {
     if (!(IsModuleInstalled('calendar') && CModule::IncludeModule('calendar'))) {
         return false;
     }
     global $DB;
     $dbResult = $DB->Query('SELECT OWNER_ID, OWNER_TYPE_ID, ASSOCIATED_ENTITY_ID FROM ' . CCrmActivity::TABLE_NAME . ' WHERE OWNER_ID > 0 AND OWNER_TYPE_ID > 0 AND ASSOCIATED_ENTITY_ID > 0 AND TYPE_ID IN (' . CCrmActivityType::Call . ', ' . CCrmActivityType::Meeting . ')', false, 'File: ' . __FILE__ . '<br>Line: ' . __LINE__);
     if (!$dbResult) {
         return false;
     }
     while ($arResult = $dbResult->Fetch()) {
         $ownerID = intval($arResult['OWNER_ID']);
         $ownerTypeID = intval($arResult['OWNER_TYPE_ID']);
         $assocEntityID = intval($arResult['ASSOCIATED_ENTITY_ID']);
         if ($ownerID > 0 && $ownerTypeID > 0 && $assocEntityID > 0) {
             CCalendarEvent::UpdateUserFields($assocEntityID, array('UF_CRM_CAL_EVENT' => array(CUserTypeCrm::GetShortEntityType(CCrmOwnerType::ResolveName($ownerTypeID)) . '_' . $ownerID)));
         }
     }
     return true;
 }
Ejemplo n.º 4
0
if (!empty($arParams['INTERNAL_FILTER']) && is_array($arParams['INTERNAL_FILTER'])) {
    $arParams['GRID_ID_SUFFIX'] = $this->GetParent() !== null ? $this->GetParent()->GetName() : '';
    $arFilter = $arParams['INTERNAL_FILTER'];
}
if (!empty($arParams['INTERNAL_SORT']) && is_array($arParams['INTERNAL_SORT'])) {
    $arSort = $arParams['INTERNAL_SORT'];
}
$sShortEntity = '';
$iEntityID = 0;
if (isset($arFilter['ENTITY_TYPE'])) {
    $sShortEntity = CUserTypeCrm::GetShortEntityType($arFilter['ENTITY_TYPE']);
}
if (isset($arFilter['ENTITY_ID'])) {
    $iEntityID = (int) $arFilter['ENTITY_ID'];
    if ($iEntityID > 0 && !empty($sShortEntity)) {
        $sShortEntity = CUserTypeCrm::GetShortEntityType('LEAD');
    }
}
if (empty($arParams['ACTIVITY_CALENDAR_COUNT'])) {
    $arParams['ACTIVITY_CALENDAR_COUNT'] = 20;
}
$arNavParams = array('nPageSize' => $arParams['ACTIVITY_CALENDAR_COUNT']);
$arNavigation = CDBResult::GetNavParams($arNavParams);
global $APPLICATION;
$arResult['GRID_ID'] = 'CRM_ACTIVITY_CALENDAR_LIST' . ($bInternal ? '_' . $arParams['GRID_ID_SUFFIX'] : '');
$arResult['FILTER'] = array();
$arResult['FILTER_PRESETS'] = array();
if (!$bInternal) {
    $arEntityType = array('' => '', 'LEAD' => GetMessage('CRM_ENTITY_TYPE_LEAD'), 'CONTACT' => GetMessage('CRM_ENTITY_TYPE_CONTACT'), 'COMPANY' => GetMessage('CRM_ENTITY_TYPE_COMPANY'), 'DEAL' => GetMessage('CRM_ENTITY_TYPE_DEAL'));
    ob_start();
    $GLOBALS["APPLICATION"]->IncludeComponent('bitrix:crm.entity.selector', '', array('ENTITY_TYPE' => array('LEAD', 'CONTACT', 'COMPANY', 'DEAL'), 'INPUT_NAME' => 'UF_CRM_CAL_EVENT', 'INPUT_VALUE' => isset($_REQUEST['UF_CRM_CAL_EVENT']) ? $_REQUEST['UF_CRM_CAL_EVENT'] : '', 'FORM_NAME' => $arResult['GRID_ID'], 'MULTIPLE' => 'N', 'FILTER' => true), false, array('HIDE_ICONS' => 'Y'));
Ejemplo n.º 5
0
     if (0 >= $intRemLen) {
         $intRemLen = 15;
     }
 }
 $strPriority = '';
 if (isset($_POST['PRIORITY'])) {
     $strPriority = ToLower($_POST['PRIORITY']);
 }
 if (!in_array($strPriority, $arPriorityType)) {
     $strPriority = 'normal';
 }
 $arResult['VALUES']['REMIND_LEN'] = $intRemLen;
 $arResult['VALUES']['REMIND_TYPE'] = $strRemType;
 $arResult['VALUES']['PRIORITY'] = $strPriority;
 if (false == $boolError) {
     $strEntityShort = CUserTypeCrm::GetShortEntityType($arResult['ENTITY_TYPE']) . '_';
     foreach ($arID as $intID => $iUserID) {
         $arCrmEvents = array();
         $arCrmEvents[] = $strEntityShort . $intID;
         $arFields = array('CAL_TYPE' => 'user', 'OWNER_ID' => $iUserID, 'NAME' => $arResult['VALUES']['CALENDAR_TOPIC'], 'DT_FROM' => $arResult['VALUES']['CALENDAR_FROM'], 'DT_TO' => $arResult['VALUES']['CALENDAR_TO'], 'DESCRIPTION' => $arResult['VALUES']['CALENDAR_DESC'], 'IMPORTANCE' => $strPriority);
         if ('Y' == $arResult['VALUES']['REMIND_FLAG']) {
             $arFields['REMIND'] = array(array('type' => $strRemType, 'count' => $intRemLen));
         }
         $intEventID = CCalendar::SaveEvent(array('arFields' => $arFields, 'userId' => $iUserID, 'autoDetectSection' => true, 'autoCreateSection' => true));
         if (0 < intval($intEventID)) {
             CCalendarEvent::UpdateUserFields($intEventID, array('UF_CRM_CAL_EVENT' => $arCrmEvents));
         } else {
             $boolError = true;
             $arResult['ERROR_MESSAGE'][] = GetMessage('BX_CRM_CACA_ERR_ADD_FAIL');
         }
     }