Beispiel #1
0
 public function Add($arParams)
 {
     global $USER;
     $res = null;
     $calendar_id = $arParams['calendar_id'];
     $calIblock = COption::GetOptionInt('intranet', 'iblock_calendar', null, $arParams['site_id']);
     $calIblockSection = CEventCalendar::GetSectionIDByOwnerId($USER->GetID(), 'USER', $calIblock);
     if (!$calendar_id) {
         $calendar_id = CUserOptions::GetOption('timeman', 'default_calendar', 0);
     }
     if ($calIblockSection > 0) {
         $arCalendars = CEventCalendar::GetCalendarList(array($calIblock, $calIblockSection, 0, 'USER'));
         if (count($arCalendars) == 1) {
             if ($calendar_id && $calendar_id != $arCalendars[0]['ID']) {
                 CUserOptions::DeleteOption('timeman', 'default_calendar');
             }
             $calendar_id = $arCalendars[0]['ID'];
         } else {
             $bCalendarFound = false;
             $arCalsList = array();
             foreach ($arCalendars as $cal) {
                 if ($cal['ID'] == $calendar_id) {
                     $bCalendarFound = true;
                     break;
                 }
                 $arCalsList[] = array('ID' => $cal['ID'], 'NAME' => $cal['NAME'], 'COLOR' => $cal['COLOR']);
             }
             if (!$bCalendarFound) {
                 $bReturnRes = true;
                 $res = array('error_id' => 'CHOOSE_CALENDAR', 'error' => array('TEXT' => GetMessage('TM_CALENDAR_CHOOSE'), 'CALENDARS' => $arCalsList));
             }
         }
     }
     if (!$bReturnRes) {
         if (!$calIblockSection) {
             $calIblockSection = 'none';
         }
         $today = CTimeMan::RemoveHoursTS(time());
         $data = array('DATE_FROM' => $today + CTimeMan::MakeShortTS($arParams['from']), 'DATE_TO' => $today + CTimeMan::MakeShortTS($arParams['to']), 'NAME' => $arParams['name'], 'ABSENCE' => $arParams['absence'] == 'Y');
         $obCalendar = new CEventCalendar();
         $obCalendar->Init(array('ownerType' => 'USER', 'ownerId' => $USER->GetID(), 'bOwner' => true, 'iblockId' => $calIblock, 'bCache' => false));
         $arPermissions = $obCalendar->GetPermissions(array('setProperties' => true));
         $arRes = array('iblockId' => $obCalendar->iblockId, 'ownerType' => $obCalendar->ownerType, 'ownerId' => $obCalendar->ownerId, 'bNew' => true, 'fullUrl' => $obCalendar->fullUrl, 'userId' => $obCalendar->userId, 'pathToUserCalendar' => $obCalendar->pathToUserCalendar, 'pathToGroupCalendar' => $obCalendar->pathToGroupCalendar, 'userIblockId' => $obCalendar->userIblockId, 'calendarId' => $calendar_id, 'sectionId' => $calIblockSection, 'dateFrom' => ConvertTimeStamp($data['DATE_FROM'], 'FULL'), 'dateTo' => ConvertTimeStamp($data['DATE_TO'], 'FULL'), 'name' => $data['NAME'], 'desc' => '', 'prop' => array('ACCESSIBILITY' => $data['ABSENCE'] ? 'absent' : 'busy'), 'notDisplayCalendar' => true);
         if ($GLOBALS['BX_TIMEMAN_RECENTLY_ADDED_EVENT_ID'] = $obCalendar->SaveEvent($arRes)) {
             if ($_REQUEST['cal_set_default'] == 'Y') {
                 CUserOptions::SetOption('timeman', 'default_calendar', $calendar_id);
             }
         }
     }
     return $res;
 }
Beispiel #2
0
 protected function _GetPersonalSettings()
 {
     global $USER_FIELD_MANAGER;
     $arPersonalSettings = array();
     $dbRes = CUser::GetByID($this->USER_ID);
     if ($arUser = $dbRes->Fetch()) {
         $arFields = array('UF_TM_MAX_START', 'UF_TM_MIN_FINISH', 'UF_REPORT_PERIOD', 'UF_LAST_REPORT', 'UF_TM_MIN_DURATION', 'UF_TM_REPORT_REQ', 'UF_TM_REPORT_TPL', 'UF_TM_FREE', 'UF_TM_ALLOWED_DELTA');
         $arPersonalSettings = array('UF_TIMEMAN' => $arUser['UF_TIMEMAN'], 'UF_TM_MAX_START' => CTimeMan::MakeShortTS($arUser['UF_TM_MAX_START']), 'UF_TM_MIN_FINISH' => CTimeMan::MakeShortTS($arUser['UF_TM_MIN_FINISH']), 'UF_TM_MIN_DURATION' => CTimeMan::MakeShortTS($arUser['UF_TM_MIN_DURATION']), 'UF_TM_REPORT_REQ' => $arUser['UF_TM_REPORT_REQ'], 'UF_LAST_REPORT_DATE' => $arUser['UF_LAST_REPORT_DATE'], 'UF_REPORT_PERIOD' => $arUser['UF_REPORT_PERIOD'], 'UF_TM_REPORT_DATE' => $arUser['UF_TM_REPORT_DATE'], 'UF_TM_TIME' => $arUser['UF_TM_TIME'], 'UF_TM_DAY' => $arUser['UF_TM_DAY'], 'UF_TM_REPORT_TPL' => $arUser['UF_TM_REPORT_TPL'], 'UF_TM_FREE' => $arUser['UF_TM_FREE'], 'UF_TM_ALLOWED_DELTA' => $arUser['UF_TM_ALLOWED_DELTA']);
         $this->UF_DEPARTMENT = $arUser['UF_DEPARTMENT'];
         if ($arPersonalSettings['UF_TIMEMAN'] || $arPersonalSettings['UF_TM_REPORT_REQ'] || $arPersonalSettings['UF_TM_FREE'] || $arPersonalSettings['UF_REPORT_PERIOD']) {
             $arAllFields = $USER_FIELD_MANAGER->GetUserFields('USER');
             if ($arPersonalSettings['UF_TIMEMAN']) {
                 $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TIMEMAN']['ID'], 'ID' => $arPersonalSettings['UF_TIMEMAN']));
                 if ($arRes = $dbRes->Fetch()) {
                     $arPersonalSettings['UF_TIMEMAN'] = $arRes['XML_ID'];
                 }
             }
             if ($arPersonalSettings['UF_REPORT_PERIOD']) {
                 $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_REPORT_PERIOD']['ID'], 'ID' => $arPersonalSettings['UF_REPORT_PERIOD']));
                 if ($arRes = $dbRes->Fetch()) {
                     $arPersonalSettings['UF_REPORT_PERIOD'] = $arRes['XML_ID'];
                 }
             }
             if ($arPersonalSettings['UF_TM_REPORT_REQ']) {
                 $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TM_REPORT_REQ']['ID'], 'ID' => $arPersonalSettings['UF_TM_REPORT_REQ']));
                 if ($arRes = $dbRes->Fetch()) {
                     $arPersonalSettings['UF_TM_REPORT_REQ'] = $arRes['XML_ID'];
                 }
             }
             if ($arPersonalSettings['UF_TM_FREE']) {
                 $dbRes = CUserFieldEnum::GetList(array(), array('USER_FIELD_ID' => $arAllFields['UF_TM_FREE']['ID'], 'ID' => $arPersonalSettings['UF_TM_FREE']));
                 if ($arRes = $dbRes->Fetch()) {
                     $arPersonalSettings['UF_TM_FREE'] = $arRes['XML_ID'];
                 }
             }
         }
     }
     return $arPersonalSettings;
 }