• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_report_full.php
  • Класс: CUserReportFull
  • Вызов: CUserReportFull::_GetReportInfo
protected function _GetReportInfo()
{

	global $DB,$USER;
	$arSettings = $this->GetSettings();

	$arReport = Array(
		"MODE"=>$arSettings["UF_REPORT_PERIOD"],
		"DATE_FROM"=>"",
		"DATE_TO"=>"",
		"DATE_SUBMIT"=>"",
		"SHOW_REPORT_FORM"=>"N",
		"LAST_REPORT"=>"",
		"DELAY_TIME"=>"",
		"IS_DELAY"=>"N",
		"IS_REPORT_DAY"=>"N"
	);

	//where is no last date report?
	if (!$arSettings["UF_LAST_REPORT_DATE"] && $arSettings["UF_REPORT_PERIOD"] && $arSettings["UF_REPORT_PERIOD"] != "NONE")
	{
		//calc last date report
		$lastDate = $this->GetLastDate();
		if($lastDate)//return ts
		{
			$this->SetLastDate($this->USER_ID,ConvertTimeStampForReport($lastDate,"SHORT"));

			$USER->Update($this->USER_ID,Array("UF_SETTING_DATE"=>$arSettings["UF_SETTING_DATE"]));

			$arSettings["UF_LAST_REPORT_DATE"] = ConvertTimeStampForReport($lastDate,"SHORT");
		}
	}

	if($arSettings["UF_REPORT_PERIOD"] != "NONE")
	{
		$arData = $this->Recalc();//calc date_from, date_to and date_submit

		$arReport = Array(
			"MODE"=>$arSettings["UF_REPORT_PERIOD"],
			"DATE_FROM"=>$arData["DATE_FROM"],
			"DATE_TO"=>$arData["DATE_TO"],
			"DATE_SUBMIT"=>$arData["DATE_SUBMIT"],
			"SHOW_REPORT_FORM"=>"N",
			"LAST_REPORT"=>$arSettings["UF_LAST_REPORT_DATE"],
			"DELAY_TIME"=>$arSettings["UF_DELAY_TIME"],
			"IS_DELAY"=>"N",
			"IS_REPORT_DAY"=>"N"
		);

		//report is delayed?
		if($arReport["DELAY_TIME"] > 0)
		{
			if($arReport["DELAY_TIME"]>time())
			{
				$arReport["IS_DELAY"] = "Y";
			}
		}

		//is time to show a report form?
		if ($this->isShowReportForm($arData["DATE_SUBMIT"]) && $arReport["MODE"])
		{
			$arReport["SHOW_REPORT_FORM"] = "Y";
		}

		//this is a report day?
		if ($this->isReportDay($arData["DATE_SUBMIT"]))
		{
			$arReport["IS_REPORT_DAY"] = "Y";
			$fix = $this->FixDateByHoliday($arData["DATE_FROM"],$arData["DATE_TO"]);

			$arReport['_FIX'] = $fix;

			if ($fix["NEED_TO_RECALC"] == true)
			{
				return $this->_GetReportInfo();
			}
			elseif($fix["DO_NOT_SHOW_THE_FORM"] == true)
			{
				$arReport["IS_REPORT_DAY"] = "N";
				$arReport["SHOW_REPORT_FORM"] = "N";
			}
		}

		$arReport['_DATA'] = $arData;
	}
	return $arReport;
}