Example #1
0
             }
             if (isset($_REQUEST['INFO']['TIME_FINISH'])) {
                 $arFields['TIME_FINISH'] = intval($_REQUEST['INFO']['TIME_FINISH']);
             }
             if (isset($_REQUEST['INFO']['TIME_LEAKS'])) {
                 $arFields['TIME_LEAKS'] = intval($_REQUEST['INFO']['TIME_LEAKS']);
             }
             $dbRes = CTimeManEntry::GetList(array(), array('ID' => $ID), false, false, array('*', 'ACTIVATED'));
             if ($arEntry = $dbRes->Fetch()) {
                 if ($arFields['TIME_FINISH'] && $arEntry['PAUSED'] == 'Y') {
                     $arFields['PAUSED'] = 'N';
                 }
                 $arFields['TIME_LEAKS'] = isset($arFields['TIME_LEAKS']) ? $arFields['TIME_LEAKS'] : $arEntry['TIME_LEAKS'];
                 $arFields['DURATION'] = $arFields['TIME_FINISH'] - $arFields['TIME_START'] - $arFields['TIME_LEAKS'];
             }
             CTimeManEntry::Update($ID, $arFields);
             $TMUSER = new CTimeManUser($arEntry['USER_ID']);
             $TMUSER->ClearCache();
         }
     }
 case 'admin_entry':
     $ID = $_REQUEST['ID'];
     $arAccessUsers = CTimeMan::GetAccess();
     if (count($arAccessUsers['READ']) > 0) {
         $bCanEditAll = in_array('*', $arAccessUsers['WRITE']);
         $bCanReadAll = in_array('*', $arAccessUsers['READ']);
         $dbRes = CTimeManEntry::GetList(array(), array('ID' => $ID), false, false, array('*', 'ACTIVATED'));
         if ($arRes = $dbRes->Fetch()) {
             if ($arRes['USER_ID'] == $USER->GetID() || $bCanReadAll || in_array($arRes['USER_ID'], $arAccessUsers['READ'])) {
                 $arRes['TIME_OFFSET'] = CTimeManUser::getDayStartOffset($arRes);
                 $bCanEdit = $bCanEditAll || in_array($arRes['USER_ID'], $arAccessUsers['WRITE']);
Example #2
0
 public static function Approve($ID, $check_rights = true)
 {
     if ($check_rights) {
         $hasAccess = false;
         $arAccessUsers = CTimeMan::GetAccess();
         if (count($arAccessUsers['WRITE']) > 0) {
             $bCanEditAll = in_array('*', $arAccessUsers['WRITE']);
             $dbRes = CTimeManEntry::GetList(array(), array('ID' => $ID), false, false, array('*'));
             $arRes = $dbRes->Fetch();
             if ($arRes) {
                 $hasAccess = $bCanEditAll || in_array($arRes['USER_ID'], $arAccessUsers['WRITE']);
             }
         }
         if (!$hasAccess) {
             $GLOBALS['APPLICATION']->ThrowException('Access denied');
             return false;
         }
     }
     if (CTimeManEntry::Update($ID, array('ACTIVE' => 'Y'))) {
         CTimeManReport::Approve($ID);
         CTimeManReportDaily::SetActive($ID);
         CTimeManNotify::SendMessage($ID, 'U');
         return true;
     }
     return false;
 }
Example #3
0
 public static function AddCommentMessage($arFields, $FORUM_ID, $arLog)
 {
     global $USER, $DB;
     $dbRes = CTimeManEntry::GetList(array(), array('ID' => $arLog['SOURCE_ID']));
     $arEntry = $dbRes->Fetch();
     if ($arEntry && CModule::IncludeModule("forum")) {
         $ufFileID = array();
         $ufDocID = array();
         if (!($userName = trim($USER->GetFormattedName(false)))) {
             $userName = $USER->GetLogin();
         }
         if ($arEntry["FORUM_TOPIC_ID"] <= 0) {
             $t = ConvertTimeStamp(time(), "FULL");
             $arTopicFields = array("TITLE" => $arEntry["DATE_START"], "USER_START_ID" => $arFields["USER_ID"], "STATE" => "Y", "FORUM_ID" => $FORUM_ID, "USER_START_NAME" => $userName, "START_DATE" => $t, "POSTS" => 0, "VIEWS" => 0, "APPROVED" => "Y", "LAST_POSTER_NAME" => $userName, "LAST_POST_DATE" => $t, "LAST_MESSAGE_ID" => 0, "XML_ID" => "TIMEMAN_ENTRY_" . $arLog["SOURCE_ID"]);
             $TOPIC_ID = CForumTopic::Add($arTopicFields);
             if ($TOPIC_ID > 0) {
                 CTimeManEntry::Update($arLog['SOURCE_ID'], array("FORUM_TOPIC_ID" => $TOPIC_ID));
             }
         } else {
             $TOPIC_ID = $arEntry["FORUM_TOPIC_ID"];
         }
         if ($TOPIC_ID) {
             $arFieldsP = array("AUTHOR_ID" => $arFields["USER_ID"], "AUTHOR_NAME" => $userName, "POST_MESSAGE" => $arFields["TEXT_MESSAGE"], "POST_DATE" => date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL")), time() - 1), "FORUM_ID" => $FORUM_ID, "TOPIC_ID" => $TOPIC_ID, "APPROVED" => "Y", "PARAM2" => $arLog["SOURCE_ID"]);
             $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("SONET_COMMENT", $arTmp);
             if (is_array($arTmp)) {
                 if (array_key_exists("UF_SONET_COM_DOC", $arTmp)) {
                     $GLOBALS["UF_FORUM_MESSAGE_DOC"] = $arTmp["UF_SONET_COM_DOC"];
                 } elseif (array_key_exists("UF_SONET_COM_FILE", $arTmp)) {
                     $arFieldsP["FILES"] = array();
                     foreach ($arTmp["UF_SONET_COM_FILE"] as $file_id) {
                         $arFieldsP["FILES"][] = array("FILE_ID" => $file_id);
                     }
                 }
             }
             $GLOBALS["USER_FIELD_MANAGER"]->EditFormAddFields("FORUM_MESSAGE", $arFieldsP);
             $mess_id = CForumMessage::Add($arFieldsP);
             // get UF DOC value and FILE_ID there
             if ($mess_id > 0) {
                 $dbAddedMessageFiles = CForumFiles::GetList(array("ID" => "ASC"), array("MESSAGE_ID" => $mess_id));
                 while ($arAddedMessageFiles = $dbAddedMessageFiles->Fetch()) {
                     $ufFileID[] = $arAddedMessageFiles["FILE_ID"];
                 }
                 $ufDocID = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFieldValue("FORUM_MESSAGE", "UF_FORUM_MESSAGE_DOC", $mess_id, LANGUAGE_ID);
             }
             if (IsModuleInstalled("im")) {
                 CTimeManNotify::AddCommentToIM(array("USER_ID" => $arFieldsP["AUTHOR_ID"], "ENTRY_ID" => $arEntry["ID"], "LOG_ID" => $arLog["ID"], "MESSAGE" => $arFields["TEXT_MESSAGE"]));
             }
         }
         return array("SOURCE_ID" => $mess_id, "UF" => array("FILE" => $ufFileID, "DOC" => $ufDocID));
     }
     return false;
 }
Example #4
0
 public function TaskActions($arActions, $site_id = SITE_ID)
 {
     if ($last_entry = $this->_GetLastData()) {
         $this->SITE_ID = $site_id;
         $arTasks = $last_entry['TASKS'];
         if (!is_array($arTasks)) {
             $arTasks = array();
         }
         if (strlen($arActions['name']) > 0) {
             $obt = new CTasks();
             if ($ID = $obt->Add(array('RESPONSIBLE_ID' => $this->USER_ID, 'TITLE' => $arActions['name'], 'TAGS' => array(), 'STATUS' => 2, 'SITE_ID' => $this->SITE_ID))) {
                 if (!is_array($arActions['add'])) {
                     $arActions['add'] = array($ID);
                 } else {
                     $arActions['add'][] = $ID;
                 }
             }
         }
         if (is_array($arActions['add'])) {
             foreach ($arActions['add'] as $task_id) {
                 $arTasks[] = intval($task_id);
             }
             $GLOBALS['BX_TIMEMAN_RECENTLY_ADDED_TASK_ID'] = $task_id;
         }
         $arTasks = array_unique($arTasks);
         if (is_array($arActions['remove'])) {
             $arActions['remove'] = array_unique($arActions['remove']);
             foreach ($arActions['remove'] as $task_id) {
                 $task_id = intval($task_id);
                 if (false !== ($key = array_search($task_id, $arTasks))) {
                     unset($arTasks[$key]);
                 }
             }
         }
         $arFields = array('TASKS' => array());
         if (count($arTasks) > 0) {
             $arCheck = $this->GetTasks($arTasks);
             foreach ($arCheck as $a) {
                 $arFields['TASKS'][] = $a['ID'];
             }
         }
         if (CTimeManEntry::Update($last_entry['ID'], $arFields)) {
             return $this->_GetLastData(true);
         }
     }
     return false;
 }