- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/task.php
- Класс: Bitrix\Crm\Activity\Provider\Task
- Вызов: Task::tryPostpone
static function tryPostpone($offset, array $fields, array &$updateFields, $checkPermissions = true)
{
if(!is_numeric($offset))
{
$offset = (int)$offset;
}
if(!Loader::includeModule('tasks'))
{
return false;
}
$entityID = isset($fields['ASSOCIATED_ENTITY_ID']) ? (int)$fields['ASSOCIATED_ENTITY_ID'] : 0;
if($entityID <= 0)
{
return false;
}
if($checkPermissions && !\Bitrix\Crm\Integration\TaskManager::checkUpdatePermission($entityID))
{
return false;
}
$entry = new \CTasks();
$dbResult = $entry->GetByID($entityID, false);
$fields = $dbResult->Fetch();
if(!is_array($fields))
{
return false;
}
$deadline = isset($fields['DEADLINE']) ? $fields['DEADLINE'] : '';
if($deadline === '')
{
return false;
}
$now = time() + \CTimeZone::GetOffset();
$result = $entry->update(
$entityID,
array('DEADLINE' => FormatDate('FULL', MakeTimeStamp($deadline) + $offset, $now))
);
$updateFields = array();
return $result;
}