• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/template/checklist.php
  • Класс: BitrixTasksInternalsTaskTemplateCheckListTable
  • Вызов: CheckListTable::add
static function add(array $data)
{
	$data = static::normalizeColumns($data);

	if(!isset($data['SORT']))
	{
		$data['TEMPLATE_ID'] = intval($data['TEMPLATE_ID']);
		if (!$data['TEMPLATE_ID'] && intval($data['fields']['TEMPLATE_ID']))
		{
			$data['TEMPLATE_ID'] = intval($data['fields']['TEMPLATE_ID']);
		}

		if($data['TEMPLATE_ID'] && !array_key_exists('SORT', $data))
		{
			$item = static::getList(array(
				'runtime' => array(
					'MAX_SORT' => array(
						'dat_type' => 'integer',
						'expression' => array(
							'MAX(SORT)'
						)
					)
				),
				'filter' => array(
					'=TEMPLATE_ID' => $data['TEMPLATE_ID']
				),
				'select' => array(
					'MAX_SORT'
				)
			))->fetch();

			if(intval($item['MAX_SORT']))
			{
				$data['SORT'] = intval($item['MAX_SORT']) + 1;
			}
			else
			{
				$data['SORT'] = 1;
			}
			$data['fields']['SORT'] = $data['SORT'];
		}
	}

	return parent::add($data);
}