• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_report_full.php
  • Класс: CReportNotifications
  • Вызов: CReportNotifications::SendMessage
static function SendMessage($REPORT_ID, $bSendEvent = true)
{
	global $DB;

	$REPORT_ID = intval($REPORT_ID);
	if ($REPORT_ID<=0)
		return false;
	$dbReport = CTimeManReportFull::GetByID($REPORT_ID);
	if (
		CModule::IncludeModule("socialnetwork")
		&& ($arReport = $dbReport->Fetch())
	)
	{
		$date_from = FormatDate("j F", MakeTimeStamp($arReport["DATE_FROM"],CSite::GetDateFormat("FULL", SITE_ID)));
		$date_to = FormatDate("j F", MakeTimeStamp($arReport["DATE_TO"],CSite::GetDateFormat("FULL", SITE_ID)));
		if ($date_from == $date_to)
			$date_text = $date_to;
		else
			$date_text = $date_from." - ".$date_to;
		$message = GetMessage('REPORT_DONE');
		$arSoFields = Array(
			"EVENT_ID" => "report",
			"=LOG_DATE" =>$DB->CurrentTimeFunction(),
			"MODULE_ID" => "timeman",
			"TITLE_TEMPLATE" => "#TITLE#",
			"TITLE" => GetMessage("REPORT_PERIOD").$date_text,
			"MESSAGE" => $message,
			"TEXT_MESSAGE" => $message,
			"CALLBACK_FUNC" => false,
			"SOURCE_ID" => $REPORT_ID,
			"SITE_ID"=>SITE_ID,
			"ENABLE_COMMENTS" => "Y",
			"PARAMS" => serialize(array(
				"FORUM_ID" => COption::GetOptionInt("timeman","report_forum_id","")
			))
		);
		$arSoFields["ENTITY_TYPE"] = SONET_WORK_REPORT_ENTITY;
		$arSoFields["ENTITY_ID"] = $arReport["USER_ID"];
		$arSoFields["USER_ID"] = $arReport["USER_ID"];
//			CReportNotifications::Subscribe($arReport["USER_ID"]);
		$logID = CSocNetLog::Add($arSoFields, false);

		if (intval($logID) > 0)
		{
			CSocNetLog::Update($logID, array("TMP_ID" => $logID));
			$arRights = CReportNotifications::GetRights($arReport["USER_ID"]);

			CSocNetLogRights::Add($logID, $arRights);
			if ($bSendEvent) // for new report only
			{
//					CSocNetLog::SendEvent($logID, "SONET_NEW_EVENT", $logID);
				$arReport["ID"] = $REPORT_ID;
				$arReport["LOG_ID"] = $logID;
				$arReport["PERIOD_TEXT"] = $date_text;

				if (IsModuleInstalled("im"))
					self::NotifyIm($arReport);
			}
		}

		return $logID;
	}

	return false;

}