Добрый день!

Появилась необходимость ввести новый статус в Задачах, смысл в том, чтоб при выборе данного статуса (например "Административная эскалация") Задача не считалась просроченной и не рассылались напоминания ответственным по ней, на все время нахождения в этом статусе. Подскажите варианты решения...

Нравится

2 комментария

Добрый день, Александр!

Добавьте в справочник "Состояния задач" новое значение: Административная эскалация (код: Administration). В сервисе Tasks\General\Main Grid\scr_TaskEdit в методе UpdateControlsAndDataByStatusID после

var StatusCode = GetTaskStatusCodeByID(TaskStatusID);
       if (StatusCode == 'Running') {
	SetActualDates(BaseDBEdit.Dataset, 'ActualStartDate', true);
}

вставьте еще один блок уловия:

if (StatusCode == 'Administration')  {  
	chbRemindToAuthor.IsChecked = false;
	chbRemindToOwner.IsChecked = false;
}

Для того чтобы задачи со статусом "Административная эскалация" не отображались в отчете "Просроченные задачи", например, измените сервис Tasks\Reports\Overdue Tasks\ds_ReportOverdueTasksScript:

function SelfOnDatasetCalcFields(Dataset) {
	var TaskStatusID = Dataset.Values('StatusID');
	var StatusCode = GetTaskStatusCodeByID(TaskStatusID);
 
	if (StatusCode != 'Administration')  {
		CalcActualDuration(Dataset);
		Dataset.Values('DelayDaysStr') = GetOverdueTaskDelayString(Dataset);
	}
}

Спасибо за развернутый ответ!

Показать все комментарии