Требуется разработчик! Поддержка серверов

CUserReportFull::Recalc: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=184086

<?php 
//    CUserReportFull::Recalc()
//    /bitrix/modules/timeman/classes/general/timeman_report_full.php:543

    
public function Recalc()
    {
        
$arParams $this->GetSettings();
        
$last_date $this->GetLastDate();
        
$time CTimeman::MakeShortTS($arParams["UF_TM_TIME"]);

        
$arFields = Array(
            
"DATE_FROM"=>"",
            
"DATE_TO"=>"",
            
"DATE_SUBMIT"=>""
        
);

        if (
$arParams["UF_REPORT_PERIOD"])
        {
            switch (
$arParams["UF_REPORT_PERIOD"])
            {
                case 
"WEEK":
                    
$arFields["DATE_FROM"] = ConvertTimeStampForReport($last_date+3600*24,"SHORT");
                    if (
$arParams["UF_TM_DAY"]<=4)//mon,tue,wen,thu
                    
{
                        if (
$last_date>strtotime("last sun -1 week") && $last_date<strtotime("last sun") || $last_date>=strtotime("last sun"))
                            
$arFields["DATE_FROM"] = $last_date+3600*24;
                        else
                            
$arFields["DATE_FROM"] = strtotime("next mon",$last_date);
                        
$arFields["DATE_TO"] = strtotime("next sun"$arFields["DATE_FROM"]);
                        
$arFields["DATE_SUBMIT"] = strtotime("next ".$this->days[$arParams["UF_TM_DAY"]-1], $arFields["DATE_TO"])+$time;

                    }
                    else
//fri,sat,sun
                    
{
                        if (
$last_date>strtotime("last sun") && $last_date<strtotime("next sun") || $last_date>=strtotime("next sun"))
                            
$arFields["DATE_FROM"] = $last_date+3600*24;
                        else
                            
$arFields["DATE_FROM"] = strtotime("mon next week",$last_date-date('Z'));
                        
$arFields["DATE_TO"] = strtotime("next sun"$arFields["DATE_FROM"]);
                        
$arFields["DATE_SUBMIT"] = strtotime("last ".$this->days[$arParams["UF_TM_DAY"]-1], $arFields["DATE_TO"])+$time;
                    }

                break;
                case 
"MONTH":
                    
$arFields["DATE_FROM"] = ConvertTimeStampForReport($last_date+3600*24,"SHORT");
                    if (
$arParams["UF_TM_REPORT_DATE"]<=20)
                    {
                        if (
$last_date>strtotime("last day of last month -1 month") && $last_date<strtotime("last day of last month") || $last_date>=strtotime("last day of last month"))
                            
$arFields["DATE_FROM"] = $last_date+3600*24;
                        else
                            
$arFields["DATE_FROM"] = strtotime("first day of next month",$last_date);
                        
$arFields["DATE_TO"] = strtotime("last day of this month"$arFields["DATE_FROM"]);
                        
$arFields["DATE_SUBMIT"] = strtotime("last day of this month"CTimeMan::RemoveHoursTS($arFields["DATE_TO"]))+$arParams["UF_TM_REPORT_DATE"]*3600*24+$time;

                        if (
$arFields["DATE_SUBMIT"]<$arFields["DATE_FROM"])
                        {
                            
$arFields["DATE_FROM"] = strtotime("first day of next month",$arFields["DATE_FROM"]);
                            
$arFields["DATE_TO"] = strtotime("last day of this month"$arFields["DATE_FROM"]);
                            
$arFields["DATE_SUBMIT"] = strtotime("last day of last month"CTimeMan::RemoveHoursTS($arFields["DATE_TO"]))+$arParams["UF_TM_REPORT_DATE"]*3600*24+$time;
                        }
                    }
                    else
                    {
                        if (
$last_date && $last_date>strtotime("first day of this month") && $last_date<strtotime("last day of this month") || $last_date>=strtotime("last day of this month"))
                            
$arFields["DATE_FROM"] = $last_date+3600*24;
                        else
                            
$arFields["DATE_FROM"] = strtotime("first day of this month");

                        
$arFields["DATE_TO"] = strtotime("last day of this month"$arFields["DATE_FROM"]);
                        
$arFields["DATE_SUBMIT"] = strtotime("last day of last month"CTimeMan::RemoveHoursTS($arFields["DATE_TO"]))+$arParams["UF_TM_REPORT_DATE"]*3600*24+$time;

                        if (
$arFields["DATE_SUBMIT"]<$arFields["DATE_FROM"])
                        {
                            
$arFields["DATE_FROM"] = strtotime("first day of next month",$arFields["DATE_FROM"]);
                            
$arFields["DATE_TO"] = strtotime("last day of this month"$arFields["DATE_FROM"]);
                            
$arFields["DATE_SUBMIT"] = strtotime("last day of last month"CTimeMan::RemoveHoursTS($arFields["DATE_TO"]))+$arParams["UF_TM_REPORT_DATE"]*3600*24+$time;
                        }
                    }
                break;
                case 
"DAY":
                    
$arFields["DATE_FROM"] = $last_date+3600*24;
                    
$arFields["DATE_TO"] = $last_date+3600*24;
                    
$arFields["DATE_SUBMIT"] = CTimeMan::RemoveHoursTS($arFields["DATE_FROM"])+$time;
                break;

            }

            
$arFields["DATE_FROM"] = ConvertTimeStampForReport($arFields["DATE_FROM"],"SHORT");
            
$arFields["DATE_TO"] = ConvertTimeStampForReport($arFields["DATE_TO"] ,"SHORT");
            
$arFields["DATE_SUBMIT"] = ConvertTimeStampForReport($arFields["DATE_SUBMIT"] ,"FULL");
        }

        return 
$arFields;
    }

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение