Закрытие нарядов на работы

Всем доброго времени суток!!!

Итак, есть одна задача, над которой бьюсь уже третий день.0

имеем iTop 2.1.0. Необходимо закрывать наряды на работы после их исполнения. При этом, если закрывать наряд нажимая на пункт меню “Изменить”, то открывшаяся форма дает возможность внести запись в журнал и затем закрыть наряд.
Если же через пункт “Закрыть” меню “Дополнительные действия”, то в точно такой же открывшейся форме журнал для редактирования уже не доступен. И таким образом можно закрыть наряд, не сделав при этом запись в журнале. Что не очень желательно, так как отметки о проделанной работе все же нужны. Это атрибут “Log” класса WorkOrder. Он же потом добавляется во внутренний журнал родительского запроса или инцидента.

Вижу два решения этой задачи:

  1. Убрать или отключить пункт “Закрыть” в меню “Дополнительные действия”, что бы не было возможности закрыть наряд этим способом. Более желательный вариант.
  2. Все же найти каким образом аттрибут “Log”, он же журнал, сделать редактируемым при закрытии.

Проводил различные эксперименты с lifecycle (менял флаги и состояния) не помогло. В wiki есть мануал как добавлять пункты в меню “Доп. действия”, но как убирать и как менять их поведение, увы нет. Копал в исходниках и не нашел классы, которые отвечают за пункты в меню.

Может кто-то решал уже подобную задачу или знает где и каким-образом формируется меню “Доп. действия”?

Привет, @Sergey333!

  1. Сделай новое текстовое поле в наряде, назови его Комментарий закрытия.
  2. Добавь новый метод, который будет копировать Комментарий закрытия в Журнал.
  3. В lifecycle флагами настрой появление поля и обязательное его заполнение при закрытии.
  4. В lifecycle для стимула ev_close добавь в действиях вызов нового метода.

Из плюсов: можно в табличном представлении нарядов вывести комментарий.

Посмотри метод EnumAllowedActions в этом интерфейсе:
http://www.combodo.com/documentation/api-ref-extensions/classes/iApplicationUIExtension.html

Огромное спасибо!!! Я почему-то не подумал о новом дополнительном поле. :slight_smile: