$dbres = CTimeManReportFull::GetList(array("ID" => "desc"), array("ACTIVE" => "N", "USER_ID" => $curUser), array("ID"), array("nTopCount" => 1)); if ($arCurrentReport = $dbres->Fetch()) { $ID = $arCurrentReport["ID"]; } } if ($bSameUser && $arFields["ACTIVE"] == "Y") { $arFields["APPROVE"] = "Y"; $arFields["APPROVER"] = $curUser; $arFields["APPROVE_DATE"] = ConvertTimeStamp(time(), "FULL"); $arFields["MARK"] = "N"; } if ($ID) { $dbReport = CTimeManReportFull::GetByID($ID); $arReport = $dbReport->Fetch(); if ($USER->GetID() == $arReport["USER_ID"]) { $res = CTimeManReportFull::Update($ID, $arFields); } if ($arFields["ACTIVE"] == "Y" && $arReport["ACTIVE"] == "N") { $last_date = strtotime("+1 days", MakeTimeStamp($arFields["DATE_TO"])); $last_date = ConvertTimeStampForReport($last_date, "SHORT"); $tm_user->SetLastDate($arReport["USER_ID"], $last_date); $tm_user->CancelDelay(); if (!$bSameUser) { CReportNotifications::SendMessage($ID); } } } else { if (is_array($_SESSION['report_files'])) { $arFields['FILES'] = $_SESSION['report_files']; } $arManagers = CTimeMan::GetUserManagers($curUser);
public static function AddComment_Report_Forum($arFields, $FORUM_ID, $arLog) { global $USER, $DB; $mess_id = false; $dbReport = CTimeManReportFull::GetByID($arLog["SOURCE_ID"]); $arReport = $dbReport->Fetch(); if (CModule::IncludeModule("forum") && $arReport) { $ufFileID = array(); $ufDocID = array(); if (!($userName = trim($USER->GetFormattedName(false)))) { $userName = $USER->GetLogin(); } if (!$arReport["FORUM_TOPIC_ID"]) { $arTopicFields = array("TITLE" => $arReport["DATE_FROM"] . "-" . $arReport["DATE_TO"], "USER_START_ID" => $arFields["USER_ID"], "STATE" => "Y", "FORUM_ID" => $FORUM_ID, "USER_START_NAME" => $userName, "START_DATE" => ConvertTimeStamp(time(), "FULL"), "POSTS" => 0, "VIEWS" => 0, "APPROVED" => "Y", "LAST_POSTER_NAME" => $userName, "LAST_POST_DATE" => ConvertTimeStamp(time(), "FULL"), "LAST_MESSAGE_ID" => 0, "XML_ID" => "TIMEMAN_REPORT_" . $arLog["SOURCE_ID"]); $TOPIC_ID = CForumTopic::Add($arTopicFields); if ($TOPIC_ID) { CTimeManReportFull::Update($arLog["SOURCE_ID"], array("FORUM_TOPIC_ID" => $TOPIC_ID)); } } else { $TOPIC_ID = $arReport["FORUM_TOPIC_ID"]; } if ($TOPIC_ID) { $arFieldsP = array("AUTHOR_ID" => $arFields["USER_ID"], "AUTHOR_NAME" => $userName, "POST_MESSAGE" => $arFields["TEXT_MESSAGE"], "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); } } } return array("SOURCE_ID" => $mess_id, "UF" => array("FILE" => $ufFileID, "DOC" => $ufDocID)); }