- Модуль: 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;
}