Как установить Deadline создаваемой задачи в зависимости от приоритета
Этот Create Task/Before триггер устанавливает поле "Сделать до" в зависимости от назначенного приоритета. В этом примере не учитываются рабочий и выходные дни. Чтобы их учитывать, нужно оперировать с полями класса Calendar.
package scripts.before_create_task;
import com.trackstudio.exception.GranException;
import com.trackstudio.external.TaskTrigger;
import com.trackstudio.secured.SecuredTaskTriggerBean;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
/**
* Скрипт устанавливает deadline (Сделать до) задачи в зависимости от выбранного приоритета
*/
public class SetDeadlineByPriority implements TaskTrigger {
public SecuredTaskTriggerBean execute(SecuredTaskTriggerBean task) throws GranException {
if (task.getPriority().getName().equals("Обычный")) {
Calendar now = Calendar.getInstance();
// прибавляем 8 дней
now.add(Calendar.DAY_OF_YEAR, 8);
task.setDeadline(now);
} else if (task.getPriority().getName().equals("Важный")) {
Calendar now = Calendar.getInstance();
// прибавляем 3 дня
now.add(Calendar.DAY_OF_YEAR, 3);
task.setDeadline(now);
} else if (task.getPriority().getName().equals("Низкий")) {
Calendar now = Calendar.getInstance();
// прибавляем 14 дней
now.add(Calendar.DAY_OF_YEAR, 14);
task.setDeadline(now);
}
return task;
}
}