Task::updateByTask

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. Task
  4. updateByTask
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/activity/provider/tasks/task.php
  • Класс: Bitrix\Crm\Activity\Provider\Tasks\Task
  • Вызов: Task::updateByTask
public function updateByTask(array $timelineParams): void
{
	$taskId = $timelineParams['TASK_ID'] ?? null;
	if (is_null($taskId))
	{
		return;
	}

	$task = TaskObject::getObject($taskId);
	if (is_null($task))
	{
		return;
	}

	$activity = $this->find($taskId);
	if (is_null($activity))
	{
		return;
	}

	$updateData = [];
	$activityStartTime = is_null($activity->getStartTime()) ? '' : $activity->getStartTime()->toString();
	$activityEndTime = is_null($activity->getEndTime()) ? '' : $activity->getEndTime()->toString();
	$taskStartDatePlan = is_null($task->getStartDatePlan()) ? '' : $task->getStartDatePlan()->toString();
	$taskEndDatePlan = is_null($task->getEndDatePlan()) ? '' : $task->getEndDatePlan()->toString();

	if ($activityStartTime !== $taskStartDatePlan)
	{
		$updateData['START_TIME'] = $taskStartDatePlan;
	}

	if ($activityEndTime !== $taskEndDatePlan)
	{
		$updateData['END_TIME'] = $taskEndDatePlan;
	}

	if ($activity->getResponsibleId() !== $task->getResponsibleMemberId())
	{
		$updateData['RESPONSIBLE_ID'] = $task->getResponsibleMemberId();
	}

	if ($activity->getSubject() !== $task->getTitle())
	{
		$updateData['SUBJECT'] = $task->getTitle();
	}

	if ($activity->getPriority() !== (int)$task->getPriority())
	{
		$updateData['PRIORITY'] = Task2ActivityPriority::getPriority((int)$task->getPriority());
	}

	if (!empty($updateData))
	{
		$updateData['ASSOCIATED_ENTITY_ID'] = $task->getId();
		$this->update($activity->getId(), $updateData);
	}
}

Добавить комментарий