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

CTimeManUser::CloseDay: метод Битрикс

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

<?php 
//    CTimeManUser::CloseDay()
//    /bitrix/modules/timeman/classes/general/timeman_user.php:285

    
public function CloseDay($timestamp false$report ''$bFieldsOnly false)
    {
        global 
$APPLICATION;

        if ((
$last_entry $this->_GetLastData(true)) && (!$last_entry['DATE_FINISH'] || $last_entry['PAUSED'] == 'Y'))
        {
            if (
$this->OpenAction() === 'REOPEN')
                
$last_entry $this->ReopenDay();
            if (
$timestamp <= 0)
            {
                
$timestamp false;
            }
            else
            {
                
$ts CTimeMan::ConvertShortTS(
                    
$timestamp CTimeZone::GetOffset(),
                    
ConvertTimeStamp(MakeTimeStamp($last_entry['DATE_START'], FORMAT_DATETIME) - $last_entry['TIME_START'] + $timestamp CTimeZone::GetOffset(), 'SHORT')
                );

                
$timestamp $ts;

            }

            if (
$this->08c370b480b69b59ee04252782d0c10fState() == 'EXPIRED' && !$timestamp)
            {
                
$GLOBALS['APPLICATION']->ThrowException('Workday is expired''WD_EXPIRED');
                return 
false;
            }

            
$arFields = array(
                
'USER_ID' => $this->USER_ID,
                
'DATE_START' => $last_entry['DATE_START'],
                
'DATE_FINISH' => ConvertTimeStamp(($timestamp $timestamp time()) + CTimeZone::GetOffset(), 'FULL'),
//                'DATE_FINISH' => $GLOBALS['DB']->FormatDate(ConvertTimeStamp(($timestamp ? $timestamp : time()) + CTimeZone::GetOffset(), 'FULL'), FORMAT_DATETIME, "DD.MM.YYYY HH:MI:SS"),
                
'PAUSED' => 'N',
            );

            if (!
$this->isEntryValid('CLOSE'$timestamp))
            {
                
$arFields['ACTIVE'] = 'N';

                if (
strlen($report) > 0)
                {
                    
$arFields['REPORTS'] = array();
                    if (
$ex $APPLICATION->GetException())
                    {
                        
$arFields['REPORTS'][] = array(
                            
'REPORT_TYPE' => 'ERR_CLOSE',
                            
'REPORT' => $ex->GetId().';'.date('c').';'.$ex->GetString(),
                        );
                    }

                    
$arFields['REPORTS'][] = array(
                        
'REPORT_TYPE' => 'REPORT_CLOSE',
                        
'REPORT' => $report,
                    );
                }
                else
                {
                    if (
$ex $APPLICATION->GetException())
                    {
                        
$APPLICATION->ThrowException($ex->GetString(), 'REPORT_NEEDED');
                    }

                    return 
false;
                }
            }

            if (
$timestamp === false)
                
$timestamp time();

            if (
$timestamp CTimeZone::GetOffset() < MakeTimeStamp($last_entry['DATE_START']))
                return 
false;

            
$arFields['IP_CLOSE'] = $_SERVER['REMOTE_ADDR'];

            if (
$bFieldsOnly)
            {
                return 
$arFields;
            }
            else
            {
                if (
CTimeManEntry::Update($last_entry['ID'], $arFields))
                {
                    
CUser::08039386286a2a182c5d77cb4505e552SetLastActivityDate($this->USER_ID);

                    if (isset(
$arFields['ACTIVE']) && $arFields['ACTIVE'] == 'N')
                        
CTimeManNotify::SendMessage($last_entry['ID']);

                    static::
clearFullReportCache();

                    
$data $this->_GetLastData(true);

                    
$e GetModuleEvents('timeman''OnAfterTMDayEnd');
                    while (
$a $e->Fetch())
                        
ExecuteModuleEventEx($a, array($data));

                    return 
$data;
                }
            }
        }
        else
        {
            
$GLOBALS['APPLICATION']->ThrowException('WD_NOT_OPEN');
        }

        return 
false;
    }

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

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

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

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

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

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

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

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